4000-618-418

如何建立有效的安全策略2-开云网络安全服务

2022年12月14日

系统用户态:检测系统层面的API调用行为是否在创建CGI文件  

       除非websvr直接是root启动且能加载任意代码,否则攻击者几乎很难绕过检测了,见图5

  图5. 用户态监控CGI文件创建事件

  l  系统内核态:通过内核inotify事件来发现CGI创建行为

  在这一层我们甚至不担心root启动的websvr加载恶意代码带来的可能的逃逸行为,至少在完成后续的攻击之前,创建CGI文件的可疑行为必定被发现,见图6。

6.png

  图6. Inotify监控创建CGI文件事件

  越高维度的策略,越不易被绕过,联动起来,则更为精准。以上策略检测模型汇总起来,就是图7的样子。

7.png

  图7. 上传Webshell可以做的高纬防守

  2个木马检测案例

  前面看到,通常供攻击者施展的漏洞利用或攻击渠道能做的事情通常毕竟有限,在防守方在高一维度对事件的观察与检测让攻击方很难逃逸。而对入侵\漏洞场景的细致分析,以及入侵场景关键环节的提炼则是策略制定的关键,否则同样会陷入不断为旧策略打补丁的尴尬境地。

  要解决一个入侵场景,在制定策略之前需要做好足够的分析并提炼其最核心的技术点,贴近此特征制定策略效果就非常好,且不易被绕过。下面选择2个linux系统常见的木马场景和案例来说明。

  熟悉恶意代码取证的同学应该清楚常见的反连木马,‘核心’代码部分一般是这样的:

  connect(sockfd, (struct sockaddr *)&cliaddr, sizeof(struct sockaddr));

  dup2(sockfd, 1);

  dup2(sockfd, 2);

  execve("/bin/sh","sh",envp);

  那防守方的检测就十分简单,通常一个bash进程是不会有网络连接的,所以检测策略是bash的 STDIN/STDOUT绑定了socket则为木马。

8.png

  图8. 常规linux反连shell检测思路

  有一些老练的木马代码则不会那么偷懒,譬如mod_rootme。为了复用apache的监听端口以及获得root权限的shell,mod_rootme在代码逻辑上作了很多精巧的变换组合,使得检测不能像普通木马一样方便。TSRC官微曾经有分享过如何发现mod_rootme这类极为隐蔽的后门(http://t.qq.com/p/t/330573116082464)。

  但是,再狡猾的后门,他也有异于系统正常行为的地方,比如mod_rootme会存在多于2个root权限的httpd进程、apache进程开启多个管道并且使用了伪终端(详见微博),根据异常行为建立策略是相比签名特征更为靠谱的检测手段。

9.png

  图9. mod_rootme检测思路,根据root权限的httpd进程、管道和伪终端判断

  总结

  安全设备与检测系统布置在合适的维度可以使得防守处于非常有利的位置,同时尽可能的提炼入侵场景的关键环节,则是检测思想的精髓。

  笔者认为甲方安全团队应该尽量避免针对每一个漏洞和黑客攻击手法制定个性化防护的策略,那样看似大而全,实际却难以穷举同类场景并难以维护。

  针对自身业务特点,分析其主要风险,针对性的制定策略。将有限的资源用于对抗清晰的风险场景,才是更为可取且有效率的事。

上一篇:建立有效的安全策略1-开云网络安全服务

下一篇:上网行为管理和负载均衡-开云网络安全服务