做一名安静的Web渗透测试人员必备的8种素质和技能

简介:

无疑,Web安全测试工程师或Web渗透测试工程师的任务就是审计公司的Web应用程序、Web服务、Web服务器的安全性。那么,公司如何才能请到优秀的Web应用安全专家而不是纸上谈兵的“赵括”?下面的这八项素质或技能可以为公司选聘Web渗透测试人员提供参考:

做一名安静的Web渗透测试人员 要必备的8种素质和技能

1. Web渗透测试人员拥有一定的开发背景(知道如何编码)

公司不可能聘用一位连编写代码都不懂人成为渗透测试人员。公司的Web渗透测试者应首先是开发者,在此基础上才考虑对Web漏洞扫描器的掌握技能,其好处有五个方面:

· 了解所开发WEB应用的漏洞和缺陷;

· 知道如何保障应用的安全,如何为其打补丁,如何测试;

· 可以使评估者开发自己的安全工具;

· 与那些没有任何开发经验的人员相比,如果培训得当,开发者更容易适应测试Web应用的任务。

· 能用简单的脚本编写验证代码,能验证已发布漏洞的真实性。

如果Web渗透测试者甚至不知道如何用html编码,或者以前也从没有做过程序员的工作,公司敢请他从事静态代码的测试吗?

2.了解开放式Web应用程序安全项目(OWASP)

Web渗透测试工程师应熟悉开放式Web应用程序安全项目的TOP 10,即OWASP的最重要文档,这是因为它向渗透测试人员传达了Web应用程序的最重要的安全意识。

OWASP的TOP 10涉及一些最严重的Web应用程序漏洞的细节,其中包括SQL注入、失效的认证和会话管理、跨站脚本攻击、不安全的直接对象引用、安全性的错误配置、敏感数据的暴露、功能级访问控制的缺失、使用有漏洞的组件、未经验证的重定向和转发。

如果渗透测试者能够深入理解和评述OWASP的TOP 10,甚至能够在其自己的实验室或机器上演示这些攻击,他就足以胜任此工作。

除了上述项目,如果渗透测试者还熟悉由OWASP发起的一些项目,如Mutilidae,或者搭建了一个有安全问题的OWASP Web应用项目,他就是一个有着攻击Web应用程序热情的真正爱好者。

3.参与过漏洞奖金项目

什么是漏洞奖金项目?就是由某个公司发起的一个奖励黑客的计划:黑客必须能够在公司提供的应用程序中找到安全漏洞,并且通过一种可靠的揭露方式来报告此漏洞。

如果申请渗透测试工程师的人曾经是一个漏洞奖金猎人(黑客),他就必然曾经遇到和报告过除SQL注入、跨站脚本攻击、RCE之外的非一般漏洞。这证明该黑客能够在公司的应用中找到一些重要漏洞。

如果申请者的名字曾经出现在诸如谷歌、微软、Twitter、Facebook等提供漏洞奖金项目的公司网站上,尤其是他曾经因报告过火狐、IE、Chrome的漏洞而获得过奖金,那么,该申请者就是一位杰出的渗透测试工程师。

4. 在Exploit-DB、Packet Storm或其它漏洞数据库中发布过漏洞利用程序

漏洞利用程序的开发者、漏洞研究人员、漏洞猎人等往往都揭露过开源软件和企业产品中的安全漏洞,尤其值得注意的是,如果这些人员曾经获得过CVE(通用漏洞与披露)的ID或OSVD(开源漏洞数据库)的ID,那将是非常出色的申请者。

这些申请者能够轻松地复制、修复、处理安全扫描器所发现的漏洞。由于这些人员还是精通安全的开发者,因而由他们为特定漏洞开发验证代码是非常容易的。

这些申请者中的多数人还是熟练的逆向工程师和静态代码审计师,所以除非没有受到激励,否则,他们将是很出色的选择。当然,如果他们曾经给Metasploit Framework贡献过漏洞利用模块和辅助模块,更是锦上添花。

5.对安全的好奇心和热情(或称黑客思想)

公司不能雇佣那些只是理论上知道OWASP方法的人,也不应通过其阅读的安全文档而雇佣某人。真正的Web渗透测试者还必须了解如何从外部来思考,并运用或测试这种方法,例如,他可以搭建自己的安全试验室,从而可以练习所学习的方法,攻击其自己的有漏洞的Web应用。

优秀的Web渗透测试工程师应像黑客一样思考,因为黑客是一种充满好奇且不断创新的人。对企业来说,雇佣一个总是愿意和乐于学习的安全专家更好呢,还是雇佣一个拥有许多安全证书、在信息安全领域有了很多知识却没有将其所学应用到实践中的人更好呢?

必须承认,证书并不能造就黑客,成就黑客的是创新精神和激情,但这并不是说安全证书不值钱。

6.精通UNIX或GNU/Linux

虽然多数企业Web应用程序的漏洞扫描器(如IBM的Security Appscan)都运行在Windows上,但仍有许多免费的开源的Linux工具可用于Web渗透测试和审计。

精通GNU/Linux和UNIX可以使渗透测试人员比Windows用户更占优势,因为精通Linux的用户可以更容易地使用Kali Linux和Backbox Linux等绑定了渗透测试工具的Linux发行版。如果申请渗透测试工作的人拥有Linux和UNIX背景,那么使用命令行工具就不是一个问题。

尤其值得注意的是,多数网站都由有着良好稳定性和合理TCO(总拥有成本)的GNU/Linux的服务器管理。

7.安全证书仍是加分项

通过了某项安全认证考试(如CEH、ECSA、CEH、CISSP)本身就是一种投资。用户将时间投资于道德黑客和渗透测试。参加某种安全认证考试的培训可以使用户获得、阅读、学习、练习各种优质资源。

通过某项认证并不能保证某人就已经是一名黑客,却是一个良好的开端和基础。

在雇佣Web安全测试工程师时,通过安全认证并不是必需的,因为Web安全渗透测试仍依赖于申请者的Web安全和安全测试技能。知识、技能、认证三管齐下终归是一种强大证明。

8.参加过安全大会或当地的黑客活动

花费很多时间参加黑客大会(如DEFCON、黑帽、ROOTCON)可能证明申请成为Web渗透测试工程师的人员对安全和黑客文化的激情。黑客大会有很多话题和比赛,其中会向参与者透露很多信息和新的猛料。


作者:赵长林

来源:51CTO

相关文章
|
1月前
|
安全 测试技术 网络安全
如何在Python Web开发中进行安全测试?
如何在Python Web开发中进行安全测试?
|
1月前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
34 4
|
2月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
146 5
|
15天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
65 19
Selenium IDE:Web自动化测试的得力助手
|
17天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
113 17
Selenium:强大的 Web 自动化测试工具
|
1月前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
32 4
|
2月前
|
XML JavaScript 前端开发
JavaScript控制台:提升Web开发技能的秘密武器
作为Web开发人员,掌握JavaScript控制台中的各种方法至关重要。本文介绍了22种实用的console方法,从基本的log()到高级的profile()和memory,每种方法都配有示例和说明,帮助开发者更高效地调试和记录信息。通过了解这些工具,您可以优化代码、提高开发速度,减少错误,使编码过程更加顺畅愉快。
49 1
JavaScript控制台:提升Web开发技能的秘密武器
|
1月前
|
JavaScript 前端开发 数据安全/隐私保护
Web开发者必看:手把手教你如何轻松播放m3u8流地址,解锁视频播放新技能,让你的项目更上一层楼!
【10月更文挑战第23天】随着互联网技术的发展,m3u8格式因良好的兼容性和高压缩率被广泛用于网络流媒体传输。本文介绍如何在Web端播放m3u8流地址,包括引入视频播放器(如Video.js)、创建播放器容器、初始化播放器及播放m3u8流的具体步骤。此外,还涉及处理加密m3u8流的示例。
300 1
|
2月前
|
测试技术 网络安全
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
文章全面介绍了软件测试的基本概念、目的、岗位分类、与开发和调试的区别,并阐述了成为优秀测试人员应具备的素质和技能。
280 1
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
|
1月前
|
Web App开发 测试技术 数据安全/隐私保护
自动化测试的魔法:使用Python进行Web应用测试
【10月更文挑战第32天】本文将带你走进自动化测试的世界,通过Python和Selenium库的力量,展示如何轻松对Web应用进行自动化测试。我们将一起探索编写简单而强大的测试脚本的秘诀,并理解如何利用这些脚本来确保我们的软件质量。无论你是测试新手还是希望提升自动化测试技能的开发者,这篇文章都将为你打开一扇门,让你看到自动化测试不仅可行,而且充满乐趣。