Lenny Zeltser 09月29日 10:49
技术公司CISO如何平衡安全与工程团队目标
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文由一位技术公司的CISO分享经验,探讨如何在软件开发周期中融入安全。文章强调理解工程团队的动机,例如业务目标、客户获取和收入增长,并指出安全团队应以与这些目标相符的方式来推进工作。作者建议安全与工程团队应相互平衡彼此的职责,确保在追求业务发展的同时,不忽视安全风险。通过提供指导、施加建设性压力以及早期发现和优先处理安全问题,安全团队可以支持工程团队,同时维护产品的安全态势。文章还提倡务实的风险管理,接受一定的残余风险,并与开发团队协商服务级别协议(SLA),以实现持续的安全改进。

💡 **理解团队动机以促进协作**: 安全团队需要深入理解软件工程团队的核心驱动力,如季度和年度业务目标、客户获取、收入增长以及职业成功因素。将安全工作与这些既定目标相结合,并使用对方熟悉的语言来沟通,是建立有效协作的关键。例如,当安全团队提出担忧时,理解工程团队面临的发布截止日期压力,有助于保持冷静并以更合适的方式提供指导。

⚖️ **平衡彼此职责,实现协同效应**: 工程和安全团队因其不同的角色和目标,对同一事项可能持有不同视角。这种差异是宝贵的,能够实现相互制衡。例如,工程团队可能关注新功能如何吸引用户,而安全团队则会评估新功能如何扩大攻击面。通过平衡双方的努力,可以避免过度强调安全导致业务放缓,或因疏忽工程导致公司面临不可接受的风险。

🤝 **施加支持性压力,共同推进安全**: 安全团队应通过识别超出风险承受能力阈值的实践,提供指导并追究安全责任,来对其他团队施加建设性的压力。这需要安全专业人员了解产品经理和软件工程师的工作,熟悉他们的术语,审阅路线图和冲刺细节,并参与关键决策会议。早期发现和报告漏洞(如在代码提交和构建阶段),能显著降低修复成本和干扰。

As the CISO at a tech company, my responsibilities include empowering our software engineering teams to maintain a strong security posture of our products. While everyone agrees that security is important, the different incentives of security and engineering teams can make it harder to collaborate. Here's some advice on weaving security into the software development cycle based on my experience as a security leader (now, at Axonius) and a product manager (prior to my current role).

Understand the Teams' Motivations

To collaborate with software teams, first understand their worldview. What motivates them? What incentives has the company defined for their work this quarter, this year, and for the longer term? What factors do they believe contribute to their professional success? Security teams need to frame our efforts in a way that works with these goals.

Product teams are primarily driven by business objectives such as shipping requested features, acquiring customers, and hitting revenue for the business. With these motivators, security can get deprioritized, especially when release deadlines loom. Contrast this mindset with that of security teams, which focus on reducing risk, ensuring compliance, responding to incidents, and earning customer trust.

Understanding the motivations of the engineering team will help security professionals maintain levelheadedness, for example, when they don't understand why their security concerns are not immediately addressed. And it'll make it easier to offer security guidance in the right way and at the right time.

Balance Each Other's Responsibilities

Because of the different roles and objectives, engineering and security teams often see the same goal from very different perspectives. That's good because this allows each team to balance each other.

For example, when supporting the expansion of the company's user base, engineering and product management teams might ask, "What new features should we develop to attract more users?" The security teams will wonder, "How will the new features expand our attack surface?"

Even though all teams' work ultimately supports the company's business objectives or mission, we play different roles. We should balance each other's efforts so that there is not too much security (which can slow down the business) and not too much careless engineering (which can expose the company to unacceptable levels of risk).

Apply Pressure While Being Supportive

So, the security team's focus on secure coding principles and risk mitigation should balance product and engineering teams' software and revenue goals. The security team can help the company balance these objectives by applying pressure on other teams. This involves highlighting practices that exceed risk tolerance thresholds, offering guidance, and holding the teams accountable for their security responsibilities.

To apply pressure in a constructive way, security professionals need to understand the world of product managers and software engineers. This means knowing their terminology but also reviewing the relevant roadmap plans and sprint details. This also involves being invited to and attending discussions where prioritization and architecture decisions are made.

Security teams are often in the position to identify or report vulnerabilities in homegrown code or third-party dependencies. Being supportive in this aspect of our practice involves spotting such issues as early in the development process as possible--the earlier we bring up the issue such as during code commit and build, the less costly or disruptive it is for the engineers to address it.

Applying security pressure often means prioritizing the vulnerabilities and influencing the engineering teams to address them in a timely way. This means being careful about not overwhelming developers with immaterial or inaccurate findings and ranking. When prioritizing such issues, we should take into account not only the vulnerability's severity--say based on the results of an automated scan--but also factors such as exploitability and business criticality. We should include in the analysis context and conduct a more nuanced risk analysis to know which security flaws should be prioritized for remediation over others.

We should recognize that the product's code base will always have some vulnerabilities and carry some level of risk. Be pragmatic in deciding what residual risk levels are acceptable. Work with devs to establish SLAs that allow them to ship on time while also fixing the highest-risk issues within a reasonable timeframe after release. Making incremental security gains over multiple release cycles is often more sustainable than aiming for perfection in every release.

Keep Learning About Securing Software Products

To hear more of my thoughts on securing products, watch the Seeding AppSec podcast episode that I recorded with Nir Valtman and Simon A. Wenet. The content of this post draws on our discussion:

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

CISO 软件安全 DevSecOps 团队协作 风险管理 CISO Software Security DevSecOps Team Collaboration Risk Management
相关文章