信息安全工程师笔记-案例分析(二)

x33g5p2x  于2021-11-16 转载在 其他  
字(2.1k)|赞(0)|评价(0)|浏览(270)

恶意代码具有如下共同特征:

①恶意的目的;

②本身是计算机程序;

③通过执行发生作用。

完整性验证:通过对明文M生成摘要信息,然后加密摘要信息附到明文后发送给对方,对方收到后将明文M运用同样的hash函数生成摘要信息,与解密得到的摘要信息对比,可以实现完整的验证。

在传输过程中能够保值信息的保密性、完整性、、不可否认性,设计了一个安全通信模型:

流程图如下:

解析:

M:指Message代表数据;

H:指对Message进行的Hash摘要算法;

H(M):指生成的摘要;

E:加密;

SKA:使用私钥加密(非对称加密密钥);

K:对称加密密钥;

PKA:使用公钥解密(非对称加密密钥)。

Linux系统将用户名存在/etc/passwd文件中,将口令保存在/etc/shadow中。

/etc/passwd权限:rw-r--r--

/etc/shadow权限:r--------

Linux系统的用户名文件包含如下内容:

root:x:0:0:root:root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
hujw:x:500:500:hujianwei:/home/hujw:/bin/bash

用冒号分割:

第一列:root、bin、hujw:代表用户名;

第二列:x:代表对应的帐号的口令都放到了/etc/shadow这个文件中;

第三列:0、1、500:代表用户标识号(userId),取值范围是0~65536,0代表超级用户,1~499代表管理帐号、500以上代表是普通用户;

第四列:0、1、500:代表组标识号(groupId);

第五列:root、bin、huijianwei:代表注释说明,记录用户的属性,如名称,电话地址等等;

第六列:root、/bin、/home/hujw:代表用户家目录,当用户登录就会出现在这个用户中;

第七列:/bin/bash、/sbin/nologin、/bin/bash:代表用户的shell;

心跳包格式如下:

| 心跳包类型(1字节) | 心跳包数据长度(2字节) | 数据/负载 |

如下代码:

p指向心跳包的报文数据,s是对应客户端的socket网络通信套接字

void process_heartbeat(unsigned char *p, SOCKET s){

    unsigned short hbtype;
    unsigned int payload;
    hbtype = *p++;				//心跳包数据类型
    n2s(p, payload);			//心跳包数据长度
    pl = p;
    if(hbyte == HB_REQUEST){
    	
        unsigned char *buffer, *bp;
        buffer = malloc(1 + 2 + payload);
        bp = buffer;			//bp指向刚分配的内存
        *bp++ = HB_RESPONSE;	//填充1byte的心跳类型
        s2n(payload, bp);		//填充2byte的数据长度
        memcpy(bp, pl, payload);
        /*将构造好的心跳响应包通过socket s返回客户端*/
        r = write_byte(s, buffer, 3 + payload);
    }
}

代码想实现的功能:

获得了心跳包后,将类型,长度,和数据分别获取后,构造一个响应包,其中长度和数据不变,将请求中的数据原封不动的回过去。

但是有个问题,如果数据长度是65535,而真实的数据中就只有HelloWorld,这样会有其他6万个字节的莫名其妙的数据,这些数据可能会带有tcp缓存区其他数据包的数据。

存在的漏洞:

HeartBleed漏洞。由于没有对实际数据载荷长度进行检测,导致攻击者可读出内存中其他重要数据内容

模糊测试:介于手动测试和自动化测试之间的一种测试方式,通过测试工具,随机或半随机生成大量的数据,将这些数据发送给要测试的系统,然后测试工具检测被测系统的状态(能否相应,或者响应结果是否正确)分析出是否存在安全漏洞。

模糊测试属于黑盒测试,模糊测试是自动化的动态的漏洞挖掘技术,不存在误报。

通过模糊测试可以测试出上述代码存在安全漏洞。

通过测试发送请求数据包大小、内容、响应数据包大小、内容,进行比较分析,可以发现上述代码存在漏洞。

IDS(入侵检测系统):网络安全状态的监管,属于被动防护;

IPS(入侵防护系统):对入侵行为的控制,属于主动防护;

入侵检测是动态安全模型P2DR的重要组成部分,P2DR模型的4个主要组成部分:Protection保护、Response响应、Detection检测、Policy策略;

如果通过抓包可以看到,大量的主机与我们的服务发送SYN数据包,如seq=0、win=512、len=0,这个异常的数据包。这就是拒绝服务攻击(DDOS),具体名称为SYN flood。

异常检测:入侵者的活动异常于正常的主体活动。

误用检测:通过攻击行为的特征库,采用特征匹配的方式,确定攻击事件。误报率低,检测快,但不能发现特征库中没有的攻击行为。

snort是一款开源的网络入侵检测系统,他能实时流量分析和IP协议网络数据包记录。

snort的三种工作模式:嗅探器模式、包记录模式、网络入侵检测模式。

相关文章

微信公众号

最新文章

更多