随着国内外重大信息安全事件频繁爆发,网络安全领域在IT行业中的关注度持续走高,渗透测试从业者的规模也在不断扩大。然而,安全体系庞大且错综复杂,绝非短时间内就能掌握全部专业知识和技能。最近读到一篇国外安全专家的博客,他结合自身多年的从业经验,总结了渗透测试人员真正需要具备的核心能力。这里结合自己的理解重新梳理一下,供大家参考。
1、精通一个操作系统。这一点的重要性不言而喻。太多人想成为黑客或系统安全专家,却对自己要攻击和防护的系统缺乏深入理解。如果你戴着系统管理员的帽子,这更是最基本的常识。作为渗透测试者,就算拿到了root权限,如果不知道它意味着什么、能做什么,那等于什么都没干。你不知道自己在系统中留下了哪些痕迹,又怎么能擦除干净?对系统没有足够了解,你根本不清楚所有操作是如何被记录到日志里的。
2、良好的网络知识和协议知识。能列举OSI模型只是基础,更重要的是对网络和协议有真切的深入理解。你需要透彻掌握TCP协议——不是只知道它叫传输控制协议,而是要知道TCP包的结构、内部承载的内容以及它的完整工作过程。同时要清楚TCP和UDP的区别;理解路由原理,能详细描述一个数据包从源地址到目标地址的完整路径;深入理解DNS和ARP的工作机制;了解DHCP,知道你的终端是如何动态获取IP地址的——不妨想想,当你插入网线的那一刻,究竟发生了什么?NIC建立了什么类型的通路?是第二层还是第三层?
3、如果你不理解上面第二点,那你很难真正搞懂ARP欺骗和中间人攻击是怎么实施的。简单来说,如果你不知道一个进程怎么工作,你又怎么去攻击或操控它?更糟糕的是,你甚至可能根本不知道有这样一个进程存在。这提醒我们,一定要保持对事物工作原理的好奇心——每当我们看到一些有意思的东西时,不妨在脑子里快速转一下:它是怎么工作的?
4、学习几种基本的脚本语言。从简单的开始,比如VBScript或Bash。
5、了解一个基本的防火墙。学习怎么配置它来实现访问控制,然后试着去突破它。可以找一个廉价的或二手的路由器和防火墙做实验——买一个,或者向公司要一个旧的。从简单的ACL(访问控制列表)配置开始,学习如何通过IP欺骗和其他基本技术来扫描它们。只有亲自实践,才能真正理解这些概念。掌握了这些之后,就可以转向PIX或ASA这类更专业的设备了。
6、对取证有一定的了解。这会帮助你更好地掩盖自己的踪迹,其影响是显而易见的。
7、好好学习一门编程语言。找出你想让它自动化完成的事情,或者一些你想自己创造的小工具。比如端口扫描——你可以找一些类似的工具,看看它们的源代码,然后试着做出自己的端口扫描器。
8、有一个明确的目标,驱动自己去学习新东西。这一点比其他所有都重要,因为你需要把时间投入进去,并始终保持热情。
9、学习少量的数据库知识。了解数据库是怎么工作的,下载各种数据库看看,查找资料,尝试设计一个简单的数据库。不必成为数据库专家,但掌握基本知识会带来很大的帮助。
10、保持与人分享交流的热情。最好建立自己的博客,记录下学习的过程。
