今天公司年会,又木有抽到奖,求安慰/(ㄒoㄒ)/~~
言归正传,我曾经在推特发过一个Skill CheatSheet,被转发和点赞了几百次,我又更新了一下,在公众号首发^_^
由于内容比较多,简单的的逐一点评一下:
动态调试技能
沙箱技术,Cuckoo Sandbox是一个开源的病毒自动分析框架,著名的malwr就是基于这套沙盒框架。
网络分析,主要是抓包,分析各种通信协议,还原网络通信的内容。
虚拟化技术主要是使用虚拟机比如VirtualBox,VMWare等,还有用QEMU的虚拟化技术可以用来虚拟执行代码,甚至可以模拟UEFI启动,调试UEFI代码。
各种工具,动态的观察进程,线程,驱动,钩子等系统重要的地方。特别推荐一下PowerTool,大家懂的,特别提一下Wireshark和Fiddler,观察网络通信的必备神器,Wireshark的原理是NDIS过滤驱动,Fiddler的原理是透明代理。
Fiddler截图
Wireshark截图
还有昨天说的在线分析系统
2. 类似YARA这样的恶意软件模式匹配病毒库。
3. 掌握各类编程语言,最近有很多解析小工具都是python编写的,而著名的Metaspolit是Ruby编写的,而C,汇编和Shellcode是实现各种邪恶功能的,不会驱动内核开发也不可能成为一位安全攻城师。
4. 各种文件格式的解析,每一种文件都有自己的组成结构,要学会解析各类文件,比如提取Office文档的宏(Macro),pdf文档里的脚本,检查是否是恶意的。
5. OS Internals也可以理解为操作系统原理,大致有这些内容:
推荐书籍《Windows内核情景分析》,《Windows Internals(6th Edition)》
6. 逆向技术,逆向分静态和动态分析,我觉得最基本要会用IDA静态分析,和OllyDbg和WinDBG动态调试分析,还有用WinDBG分析各种Crash和蓝屏的dmp文件,根据观察寄存器,堆栈,内存等,具备有一定的还原代码的能力。
7. 各种对抗与反对抗,反反对抗技术,比如对抗虚拟机,反调试,还有就是病毒会用rootkit隐藏和保护自己,这就要求安全攻城师绕过这些对抗技术,抓住病毒木马。
8. 内存数字取证,简单的说就是dump出你需要的内存或者文件,然后从dump中分析出你所需要的信息。比如从中招的电脑中取证出中毒信息,从罪犯的电脑中取证出犯罪证据等。。之前看过有从微信的数据库文件EnMicroMsg.db取证出聊天记录的。
有一个著名的开源取证系统Volatility,用python写的,有兴趣的可以去看下。
由于写的比较匆忙,有不对的地方还望大家海涵,我会收集大家的意见,更新版本的,谢谢^_^