应用安全工程师的职业历程
由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!
介绍
当你开始担任应用安全工程师时,你可能会期望遇到一些简单的任务。但事实并非如此,因为每家公司都有其自身的数据安全愿景和策略,这说明不同组织的安全成熟度可能存在差异。
不断发生的数据泄露和网络安全事件证明,目前还没有哪个国家拥有成熟的网络安全体系。
如果你已经在这个领域工作,我想你有时会觉得自己毫无建树,在组织里也越来越不被重视。我认为最大的挑战是如何提高你的知名度,以及如何与你的经理和其他同事建立更透明的关系。
在本文中,我想分享一下我在这个领域工作期间所学到的东西。
了解公司的业务和产品。
在深入研究安全问题之前,你应该对你所支持的产品了如指掌。如果你不了解其底层原理,就无法指望你发现漏洞和缺陷。
怎么做呢?
- 请阅读文档。
- 要敢于提问,不要害羞也不要傲慢。
- 观摩学习有时可以帮助加快学习过程。
阅读或参与制定工作流程和程序。
流程和程序提供了一种理解方式:
- 需要做什么?为什么?
- 这些流程需要如何实现?由谁执行?目的是什么?
一开始就索要这些文件,以免将来提出不必要的问题。
请记住,你的贡献会让你更加引人注目,而且这表明你了解内部运作方式。
了解如何有效地测试您的产品。
在开始查找漏洞和缺陷之前,我通常会制定一个测试计划。为此,我会问自己几个问题,例如:
- 你是否遵循了正确的流程?
- 你们在测试什么(确定测试范围)?
- 您是否具备进行这项测试所需的所有资源?
- 我在什么时间期限内需要提交报告?
- 目标受众是谁(企业高管、软件工程师等)?
当你得到这些问题的相关答案后,就可以开始深入了解软件开发生命周期(SDLC),理解其工作流程,并思考自己如何融入其中,因为你应该参与到开发生命周期的各个阶段(设计、需求分析等)。这样,你就可以在开发的每个阶段都融入安全性(读读这本《敏捷应用安全》吧,以后你会感谢我的 😉)。
如果您参与早期开发阶段,请考虑使用威胁建模来帮助您的团队量化风险和漏洞。
自动化是一件好事。
当你开始使用 SAST、IAST、DAST、SCA 等工具时,要找到一种方法将这些工具集成到构建周期/持续集成中,这样你就可以在提交新代码时检查源代码是否存在已知漏洞。
这些工具提供的结果需要人工审核和验证所报告的问题。您需要使用漏洞管理系统来维护产品和应用程序信息、对漏洞进行分类,并将发现的问题推送至 JIRA 和 Slack 等系统。例如:
- 涅索斯。
- IBM Security QRadar。
- DefectDojo。
- AlienVault USM(来自 AT&T Cybersecurity)。
- SaltStack。
- BurpSuite。
- Invicti 出品的 Acunetix。
- Qualys云平台。
- InsightVM(Nexpose)。
使用标准(OWASP、NIST、OSSTM 等)
与第三方渗透测试人员合作
有些公司更倾向于与第三方渗透测试公司合作,以获得二次验证和一份出色的报告,以便向审计人员展示。因此,您可能会被邀请参加一些会议,分享您的经验,并帮助外部测试人员确定关键资产等等。
……还有很多事情需要讨论;等我有时间的时候,我会修改这篇文章。
如果你想在这份工作中取得成功,请考虑与团队其他成员合作。
如有任何疑问,您可以通过 LinkedIn 联系我@Bour Abdelhadi
文章来源:https://dev.to/bscript/application-security-engineer-5dn8