一个乌龙??
甲方领导最近对我们的攻击面管理平台检测工作和结果很不满意,直接一个电话把我们叫到办公室劈头盖脸一顿批评:
“明明没有漏洞,你们的风险暴露面检测却列出一堆风险资产,是你们的误报率太高还是为了报告硬拗一些风险?”
说完甩给我们一个报告,“你们的系统自动化成熟度确实很高,直接检测后告诉我这几个系统是有高风险,偏偏你们自动化的漏洞检测报告的漏洞数量是‘0’,这个你们如何解释??”
看着数字资产的漏洞数量显示确实是“0000”,我们一度也感觉系统是不是闹了个乌龙,准备开始进行深刻反省和自我批评。
但出于对多年实战经验训练出来的攻击面管理平台的信任,终归还是得分析分析,看看平台给出这个结论到底是为什么?
这一看恍然大悟。不愧是白泽攻击面管理平台!它用实际的分析能力告诉我们,它不是一个单纯的“漏洞扫描器”,它通过各种暴露面分析才得出了此资产是一个高风险特性资产,并已经用鲜红的颜色把风险组件标记了出来。而这几个资产的风险其实来自“软件供应链”。是的,问题就出在这几个架构上,并不是系统存在的漏洞。
风险暴露面不能仅仅盯住资产的漏洞,很多时候最大的风险隐患来自“软件供应链”,而“软件供应链”的风险信息往往要依靠“资产的全面检测”+“软件供应链风险情报”才能获取。
通过漏洞扫描获得风险信息?可能要等系统都被干掉了!
从软件供应链安全说起
既然平台报告没有问题,还是需要跟甲方领导解释为什么报告资产风险、为什么标红那几个架构。说到这,甲方领导对“软件供应链安全”来了兴趣,没办法,毕竟软件供应链安全还是一个新鲜词(虽然我们已经默默地维护软件供应链安全很多年)。
废话不说,开始讲解:
“在现代软件开发生态系统中,许多软件开发公司、组织或个人往往会利用第三方或开源组件来加速软件开发过程,这就构成了软件供应链。然而如果这些第三方组件或开源软件本身存在漏洞、后门或其他安全问题,那么这些问题可能会被嵌入到最终的软件产品中,从而对软件供应链的安全性构成威胁。另外在软件开发和应用过程中,架构设计的不完善或缺陷也可能会为恶意攻击者留下漏洞,从而给应用程序带来各种安全风险。
第三方组件或开源软件的缺陷,应用架构的风险很多时候的表现形式并不是自身的安全漏洞,也可能是配置缺陷或应用结构缺陷。那么会有什么样的安全问题呢?
不恰当的数据验证和输入验证
如果应用架构未对用户输入进行充分验证,可能导致恶意用户提交恶意代码或脚本,从而触发应用程序漏洞,引发安全问题。
不安全的身份验证和授权机制
软件应用架构中存在弱身份验证和授权机制时,黑客可以通过伪装、暴力破解等方式绕过身份验证,获取未授权的权限,对系统进行攻击。
敏感数据泄露
若在软件应用架构中未正确处理敏感数据的存储、传输和处理,可能导致用户隐私数据泄露,造成严重后果。
跨站脚本攻击(XSS)
软件应用架构中存在XSS漏洞时,黑客可以将恶意脚本注入到应用中,盗取用户信息、劫持会话等,危害用户利益。
SQL注入攻击
如果软件应用架构中未正确过滤和转义用户输入的数据,可能导致SQL注入攻击,黑客可以通过注入恶意SQL代码,达到破坏、篡改数据库的目的。
不安全的通信机制
当软件应用架构未配置安全的通信协议和加密机制时,可能导致数据在传输过程中被窃取或篡改,造成数据泄露或信息劫持。
单点故障
软件应用架构的单一集中式设计容易成为黑客攻击的目标,一旦发生故障或遭受攻击,整个系统将面临崩溃风险。
回头看:客户的风险资产如何发现?
甲方领导对软件供应链的安全算是理解了,但是问题又来了:“你们的风险面暴露管理平台是如何判断这几个数字资产的架构有问题呢?”
对于这个提问,是时候让客户再一次了解云科安信白泽攻击面管理平台的强大了。白泽的“资产的全面检测”+“软件供应链风险情报”+“入侵攻击模拟POC验证”,可实现软件供应链的自动化闭环安全检测。
首先
“资产的全面检测”将客户的数字资产完整梳理,架构、应用、支撑中间件一清二楚;
其次
风险情报汇总曝光相关架构出现的风险、事件和入侵信息;
最后
入侵攻击模拟POC针对相关架构调用脚本,验证是否存在风险路径。
回头再看前面报告的风险资产,架构、风险情报综合分析指向了“某OA系统”的架构可能存在较大的安全问题,那么转到POC验证的报告看看,果然风险路径都画出来了,属于架构存在“不安全的身份验证和授权机制”。
按照POC给出的验证说明手工再复现一下。
果然,互联网上不需要验证身份,直接就访问到了OA的后台管理页面,创建角色、授权用户,无所不能啊,这可不是风险资产嘛?!(此时甲方领导已经急着打电话呼叫安全经理尽快处理问题去了)
安全建议
解答了客户的疑问,本着对客户负责的态度,我们还给客户领导分享了一些建议。
软件供应链安全需要采取一些管理和技术手段,确保软件开发和交付过程中各个环节的安全性,在这些环节中防止恶意攻击、数据泄露、篡改或其他安全风险的发生。为了确保软件供应链的安全,组织和开发者可以采取以下措施:
✦
•
**定期风险面管理审查:**定期审查所使用的第三方组件和开源软件,通过可靠的情报获取安全风险信息,确保架构没有暴露的弱点,无恶意代码,并及时更新以修补可能存在的漏洞。
✦
•
**加强供应链管理:**管理软件供应链的过程中,采用严格的权限控制、访问控制和审计机制,以减少潜在的安全风险。
✦
•
**采用安全开发实践:**在软件开发过程中,采用安全的编码实践、代码审查和安全测试,以确保开发的软件产品没有安全漏洞。
✦
•
**建立应急响应机制:**建立应急响应计划,以便在发现供应链安全事件时能够迅速应对、调查和修复。
总之,软件供应链安全是保障软件生态系统安全的重要一环。通过加强对软件供应链的管理和控制,可以有效地减少软件供应链安全风险,提高软件产品的安全性和可靠性。
撰稿:周颖