0%
你的信息还安全么?

你的信息还安全么?

信息安全作为当代信息化社会发展入口点,也是网络安全和计算机安全的着重点,其相关工作的开展以及相关安全系统的研究成为新时代信息化社会下各大IP厂商着重考虑的问题。本文结合工作经验以及当代信息化发展进度,揭露当代基层信息化安全短板,并剖析信息化发展中信息安全所代表的意义,以及今后信息安全发展的看法。

——写在前面

基层信息化发展现状与信息安全

木桶效应下的信息安全短板

信息化社会诞生于21世纪,起源于网络时代。在IP、数据、信息指数化增长的今天,信息化社会逐渐实现了从区域化向碎片化、多元化、个人化、智能化的转变。传统信息化常见于金融系统中,由于交易过程中需要不断走向高效化、无纸化,其系统安全性正遭受巨大考验。金融系统风暴过后也诞生了许多信息化安全的有效手段。时至今日,随着信息化不断走进政府、企业、个体户,传统办公模式正在逐渐被打破。整体来看,其发展方向有利,只是在相当一部分基层单位尚未获得足够重视。

由于数据可读性,信息在网络应用层已经成为明文传输的裸露状态,即使使用数据加密也可以经过一些手段处理成为明文加载破译。诸如常用加密算法AES、DES、3DES、RSA、DSA、ECC都可以运用一定的逆向手段进行反解密。当然,在加密解密这个过程中还需要考虑到”负载均衡“的问题,比如运算效率,存储大小,可逆级别等。

以最常用的WIFI加密AES,Advanced Encryption Standard算法为例,通常AES以4字节块进行分组(128位),经过10轮加密运算得出矩阵结果

/****************
*一个简单的AES循环加密演示算法
*DATE:2022-11-11
*BY:林霖澐枫
*Vison:0.0.0
****************/

void SboxByte (int Byte[4][4],int s_box[128])   //构建加密矩阵,构建128位S盒
{
   int x,y;                  //定义横纵坐标
   for(i=0;i<4;i++){
     for(j=0;j<4;j++){
        Byte[i][j]=s_box[i][j];      //4*4构建128位S盒
     }
   ;
}

void SlmpByte (int Byte[4][4],int Keyin )  //偏移加密
{
   Keyin = 1  //区分加密解密,1为加密,0为解密,这里赋值为1加密,可传入参数此处缺省
   int first,temp;   //定义储值变量用于循环储值
   if(Keyin==1){      //判断是否为加密过程
     for(i=1;i<4;i++){     //进入循环位移,错位步长1,4行全部采用步长为1的位移
          first=Byte[i][0];   //首位存储
          Byte[i][0]=Byte[i][1];
          Byte[i][1]=Byte[i][2];
          Byte[i][2]=Byte[i][3];        
     }
   }
}

/*加密过程
加密过程实质是矩阵相乘再异或,以矩阵乘法为例运算过程可以概括为:
Sa={Sa00  Sa01  Sa02  Sa03
    Sa10  Sa11  Sa12  Sa13
    Sa20  Sa21  Sa22  Sa23
    Sa30  Sa31  Sa32  Sa33}
Sb={Sb00  Sb01  Sb02  Sb03
    Sb10  Sb11  Sb12  Sb13
    Sb20  Sb21  Sb22  Sb23
    Sb30  Sb31  Sb32  Sb33}
Sa^Sb={Sa00*Sb00+Sa01*Sb10+Sa02*Sb20+Sa03*Sb30  Sa00*Sb01+Sa01*Sb11+Sa02*Sb21+Sa03*Sb31  Sa00*Sb02+Sa01*Sb12+Sa02*Sb22+Sa03*Sb32  Sa00*Sb03+Sa01*Sb13+Sa02*Sb23+Sa03*Sb33
       Sa10*Sb00+Sa11*Sb10+Sa12*Sb20+Sa13*Sb30  Sa10*Sb01+Sa11*Sb11+Sa12*Sb21+Sa13*Sb31  Sa10*Sb02+Sa11*Sb12+Sa12*Sb22+Sa13*Sb32  Sa10*Sb03+Sa11*Sb13+Sa12*Sb23+Sa13*Sb33
       Sa20*Sb00+Sa21*Sb10+Sa22*Sb20+Sa23*Sb30  Sa20*Sb01+Sa21*Sb11+Sa22*Sb21+Sa23*Sb31  Sa20*Sb02+Sa21*Sb12+Sa22*Sb22+Sa23*Sb32  Sa20*Sb03+Sa21*Sb13+Sa22*Sb23+Sa23*Sb33
       Sa30*Sb00+Sa31*Sb10+Sa32*Sb20+Sa33*Sb30  Sa30*Sb01+Sa31*Sb11+Sa32*Sb21+Sa33*Sb31  Sa30*Sb02+Sa31*Sb12+Sa32*Sb22+Sa33*Sb32  Sa30*Sb03+Sa31*Sb13+Sa32*Sb23+Sa33*Sb33}
异或运算以二进制为例遵循相同为0,相异相加的原理
*/

void AesVd (int Byte[4][4],int Key[4][4],int AesByte[4][4])   //加密,Byte为加密数据,Key为密钥,AesByte为密文
{
    int TempByte[4][4]={0};   //定义临时矩阵存储运算数据
    int x,y,m        //定义矩阵行列乘算约束    X为行,m为列,y为伪列                
    y=0;       //伪列起始赋值
      for(x=0;x<4;x++){     //行循环
         for(m=0;m<4;m++){    //列循环
         TempByte[x][m]=Byte[x][y]*Key[y][m]+Byte[x][y+1]*Key[y+1][m]+Byte[x][y+2]*Key[y+2][m]+Byte[x][y+3]*Key[y+3][m];    //矩阵乘法运算
            /*   数据集
                   00           00*00                  01*10                    02*20                    03*30
                   01           00*01                  01*11                    02*21                    03*31
                   02           00*02                  01*12                    02*22                    03*32
                   03           00*03                  01*13                    02*23                    03*33
                   10           10*00                  11*10                    12*20                    13*30
                   11           10*01                  11*11                    12*21                    13*31
                   12           10*02                  11*12                    12*22                    13*32
                   13           10*03                  11*13                    12*23                    13*33
                   20           20*00                  21*10                    22*20                    23*30
                   21           20*01                  21*11                    22*21                    23*31
                   22           20*02                  21*12                    22*22                    23*32
                   23           20*03                  21*13                    22*23                    23*33
                   30           30*00                  31*10                    32*20                    33*30
                   31           30*01                  31*11                    32*21                    33*31
                   32           30*02                  31*12                    32*22                    33*32
                   33           30*03                  31*13                    32*23                    33*33
            */  
         }
      }
    for(x=0;x<4;x++){
      for(m=0;m<4;m++){
         AesByte[x][m]=TempByte[x][m];    //转移数据输出
      }
    }
   back AesByte[4][4];
}


在这个算法过程中,信息经过异或运算成为加密信息,就算法本质而言似乎没有任何漏洞,但当我们以逻辑逆推时,依旧可以找到信息还原的蛛丝马迹,比如可以想到以暴力破解的方式,或者以逆向思维尝试一个矩阵中的某行数据很快就能得到偏移的数值,进而进一步推演其算法的逆。

从一个简单的无线网络安全漏洞衍生出的是一个整体的网络裸露漏洞,就像在传统的办公网络中,异或高级的分组交换网络中,域内一台计算机被攻破,那么往往意味着整个域内计算机整体沦陷。就像雪崩一样。听起来似乎很有趣,也很简单,但要知道当前基层网络依托的往往就是这样的模型构建。

NET——-> HUB/ROOTER——–>SEVER
PC——–PC—-X—-PC
————————————————————————————————————————-
HUB/ROOTER——-X–>SEVER
PC——–PC—-X—-PC
内网服务与外网服务

例如通过简单的局域网入侵,以无线的形式即可在不知不觉中获取域内共享的数据,再使用一些典型的命令如netstat、ping、routprint、tracert,可以找到或者发现当前网段,进而通过PING开启扫描,发现域网内其他设备。当然这是一个基本的入侵。就像这样。

@局域网内基本的资源获取示例
当用算法逆推出无线网络密钥和SSID并加入局域网络后,就可以开始用netstat
>netstat

活动连接

  协议  本地地址          外部地址        状态
  TCP    192.168.1.2:50633      101.226.144.165:https  CLOSE_WAIT
  TCP    192.168.1.2:50652      101.91.17.81:https     CLOSE_WAIT
  TCP    192.168.1.2:50946      180.163.249.3:http     ESTABLISHED
  TCP    192.168.1.2:54304      20.198.162.76:https    ESTABLISHED
  TCP    192.168.1.2:59583      oth:8081               TIME_WAIT
  TCP    192.168.1.2:59584      oth:8081               TIME_WAIT
  TCP    192.168.1.2:59585      oth:8081               TIME_WAIT
  TCP    192.168.1.2:59586      oth:8081               TIME_WAIT
  TCP    192.168.1.2:59591      cloud:https            ESTABLISHED
  TCP    192.168.1.2:59593      180.163.238.134:https  ESTABLISHED
  TCP    192.168.1.2:59594      tpstelemetry:https     ESTABLISHED
  TCP    192.168.1.2:59595      tpstelemetry:https     ESTABLISHED
  TCP    192.168.1.2:59596      tpstelemetry:https     ESTABLISHED
  TCP    192.168.1.2:59597      tpstelemetry:https     ESTABLISHED
  TCP    192.168.1.2:59598      www:https              ESTABLISHED
  TCP    192.168.1.2:59599      www:https              ESTABLISHED
  TCP    192.168.1.2:59600      s1:https               ESTABLISHED

@监听活动的TCP/UDP协议IP及端口状态
>ping 180.163.249.3

正在 Ping 180.163.249.3 具有 32 字节的数据:
来自 180.163.249.3 的回复: 字节=32 时间=66ms TTL=54
来自 180.163.249.3 的回复: 字节=32 时间=67ms TTL=54
来自 180.163.249.3 的回复: 字节=32 时间=68ms TTL=54
来自 180.163.249.3 的回复: 字节=32 时间=67ms TTL=54

180.163.249.3 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 66ms,最长 = 68ms,平均 = 67ms

@进行SMB://资源链接尝试,获得共享资源

后续操作不再一一赘述,从这个简短的例子中,不难发现,获得内网路由表极其轻松,甚至可以用arp -a直接获得存储在本地的路由表。获得IP后那么SMB、FTP等尝试依旧较为轻松,只需要使用万能的Administrator进行登录即可,甚至有些计算机还会使用Guest账户进行共享。那么如果你还想深入用wireshark或许是个不错的选择,用抓包的方式或者伪装IP,虚拟一些网卡实现包的错误,会变得更加轻松。

看到这里我们不难发现,当前信息安全的一些短板已经慢慢浮现,例如用固定的系统账号、固定的IP地址网段,路由网段作为当前域网内默认的信息,在不使用密码字典的情况下,就能轻而易举的攻破计算机信息安全防线。

信息安全=高投入零回报?

信息安全的意义该指向何处

从投资者的角度而言,说服投资者去填补一块还未出现的破洞似乎很难,因为在投资的背后远远看不到回报,以至于让人误以为投资信息安全是空穴来风的傻瓜行为。因为大部分网络用户并没有遭受网络信息安全威胁,或者说损失的信息不足以打动他们为看起来昂贵的信息安全产品买单。这就对信息安全问题的普及描绘了一个并不重要的假相。但当我们回顾数据时发现,真相并没有那么简单。不相信那么请跟我继续看下去。

YUNDUN全网攻防态势

通过云盾全网攻防态势分析可以看到,遭受网络攻击最多的国家正是中国,在0.26千万次的攻击下,你的个人计算机安全胜算还有多少?如果你认为你的个人计算机并没有什么,那么你已经输了。把整个中国看作一个计算机域,那么所有的设备都将是一根绳上的蚂蚱,因为你所在的局域网络连接着上一级广域网,直到顶层的网络服务商,大家都在一个共同的网络中存在着。如果一台计算机被攻破,那么通过这台计算机即可访问全服务商内所有的资源,试想当这台计算机伪装成为某个聊天工具的服务器,那么你的钱包以及信息将毫无隐私可言。

从这个意义上说,在信息安全领域内,每一个个体终端都将是整个网络崩溃的隐患,更何况就像先前讲到的弱口令和ID作为默认账户的情况下,对你以及全网设备信息安全将是一场考验。那么,此刻的你看到你的信息,在洋葱浏览器某网站特卖的时候,你是否还会觉得信息安全是一个遥不可及的东西呢?

贴膏药还是重塑

信息安全应该怎么加强?

信息安全应该怎么加强?许多人认为信息安全是一件复杂的工作,当然,在更高一级的层次中的确如此。投入会逐级增加,甚至一些需要信息安全的企业会购买信息安全服务产品。那么在基层工作中,信息安全是否可以用小投入做到尽善尽美呢?答案是——当然可以!你可以修改你的路由器网段,当然尽可能在不环回的情况下区别化你的路由器网段比如199.199.199.1,使用一些掩码而不是使用255.255.255.0的通用掩码设置你的网络,要知道任何一款扫描工具或者脚本都是以0.0.0.0开始向高位计算扫描直至255.255.255.255,也可以将你的端口设置为高位端口,除8080,80,8888,6969等,当然8888端口以及888端口作为一个危险的端口,你也可以尝试将其更换为高位端口。那么这么做有什么意义呢?

在计算机网络中,计算机扫描端口进行尝试渗透时,往往需要知道你的服务端口,越容易破解的端口往往在于低位端口号以及低位IP地址,在枚举的时候其计算过程都是单向的。

/*这是一个IP生成器的示例低到高枚举生成
*DATE:2022-12-8
*BY:林霖澐枫
*Vison:0.0.1
*/

//当然字符串赋值并非规范,这里为了方便直观了解,暂且以这种方式编写
void IPaddressMake(str Address[7])
{
    Address[2] = ".";
    Address[4] = ".";
    Address[6] = ".";
    for(q=0;q<=255;q++){     //网段A.B.C.D构建A段
      for(w=0;w<=255;w++){     //B段
         for(e=0;e<=255;e++){      //C段
             for(r=0;r<=255;r++){       //D段
                    Address[7]=r;
                    Address[5]=e;
                    Address[3]=w;
                    Address[1]=q;
             }
          }
       }
    }
 /*   码表       0.0.0.0  0.0.0.1 0.0.0.2 .........
                 0.0.1.0  ....... 0.0.2.0 .........
                 0.1.0.0 .......  0.2.0.0 ........
                 1.0.0.0 ....... 1.0.0.0  ........
                  .........................
                 255.255.255.255
  */
}

那么这样一来,由于一些障碍设置,你可以避开以往的通用,从而完成你的“专用”,节省的时间能够让你通过网络活动发现更多入侵的蛛丝马迹,让你有更多挽救的可能。

除此以外,强化弱口令和弱账户ID也是防止轻松攻破的手段之一,就像一本密码字典一样,传统的密码字典都会以上述IP枚举的方式生成字典从而加快运算速度,提高破解效率。高级的密码字典会让破解工作有了更多的可能。这样一来弱口令和弱ID成为了让入侵者轻松攻破你的信息安全防线的重要突破口。

我们来随意找一找当前网络中零碎的信息,比如随意打开抖音的一条个人信息,在这个信息区块中,可以得到很多关于字典可能性的信息,比如你来自重庆,你的偏好昵称是“氰化秀”,你的抖音号等等,都可以作为你的密码字典的一角。

随意截取自https://www.douyin.com/

这个时候你的密码字典可以是这样的。

/*这是一个密码生成器的示例低到高枚举生成
*DATE:2022-12-8
*BY:林霖澐枫
*Vison:0.0.1
*/

//当然字符串赋值并非规范,这里为了方便直观了解,暂且以这种方式编写
void KeyMake(str Key[5])
{
    str InKey[0] = "qinhuaxiu";     //这里是已知的一些信息组成的可能的密码片段
    str InKey[1] = "qinghuaxiu";
    str InKey[2] = "qhx";
    str InKey[3] = "cq"; 
    str dateS[2]="";
    str dateO[65500]=""; 
    int addr=0;
    for(q=0;q<=9999;q++){     //q,w,e构建出生年月q代表年
      for(w=0;w<=12;w++){      //w代表月
         for(e=0;e<=31;e++){       //e代表日
                dateS[0]=e;
                dateS[1]=w;
                dateS[2]=q;    
                dateO[addr]=dateS;
                addr++;               
         }
      }
    }
    for(a=0;a++;a<=65500){
         Printf(%InKey[0]%dateO[a]);    循环输出
         ................
    }
/*码表     199011qinghuaxiu..........*/
}

这样有关这个号主的信息形成了一个可能的密码本,从而加快密码破解。

对于同样弱小的计算机密码而言,只要了解你的单位名称(在大门口就可以看到)、姓名(办公门口或者相关网站就可以看到)可以轻松的枚举出你的计算机账户和口令,这代表着你的计算机所设置的账户密码无疑是在裸奔。但往往基层单位使用的依旧是这样简单易于记住的密码,且长年不曾更换。

自此你还觉得你的信息安全处于保护之中么?

版权说明

作者: 林霖澐枫
分类: 站内文章, 站长杂谈
版权: CC BY-NC-SA 4.0
链接: https://skyllyf.cc/?p=624