TL;DR
陌陌安全本次开源一系列构建工具插件,用于检测工程项目中存在漏洞的第三方依赖组件,欢迎各位试用。
从SCA说起
企业加速业务研发,常常会使用开源技术提升研发效率。于此同时,开源组件也会引入诸多不安全因素。软件成分分析(SCA)的主要功能之一即是列出目标产品所使用的的开源组件,并发现其中潜藏的漏洞隐患。本次陌陌开源的系列插件重点关注此类问题。
MOSEC-X-PLUGIN
检测第三方组件的安全隐患是个两端繁重,中间轻松的工作。一端要适配不同语言不同种类的构建工具(或依赖管理工具),另一端对漏洞规则数据的要求较为严格,而中间的比对工作相对轻松。
陌陌安全在公司内部实践过程中,借鉴了Snyk公司的产品理念,对其部分开源项目二次开发,并加入创新功能。插件不仅能够支持传递依赖检测,漏洞分级检测等常规操作,陌陌内部还将其推广到研发端,做到研发自主检测,主动修复。同时,陌陌内部CICD平台也接入本系列插件,以保证线上项目符合安全生产规范。
我们的优势
明确唯一的提示
当前业界漏洞规则大多使用公开的CVE/CNVD数据,其数据多而繁杂。以jackson-databind举例,截止目前统计单组件就拥有26个CVE编号之多。将这些内容一股脑推送给研发同学,定会让他们头痛不已。往往,研发同学并不重点关注“怎么了”,更希望知道“怎么做”。
陌陌插件会根据漏洞数据产生明确且唯一的升级提示,简化理解难度,明确工作内容,降低工作复杂程度。
多语言工具支持
使用跨语言工具既是挑战,也可能是灾难。陌陌为不同的构建工具分别开发插件,无论是接入CICD平台,还是研发自主检测,都能够在同语言环境的工具下操作,从而降低工作难度。
自定义漏洞规则数据
开源软件除了免费,透明的特点以外,还可以灵活自定义。
实践中发现,内部自研组件也会出现漏洞和升级需求,这可是CVE数据里找不到的。
自定义漏洞规则,可以满足构建过程主动拦截不合规的内部组件,完成内部组件全量升级的需求。
工具地址
Composer插件:https://github.com/momosecurity/mosec-composer-plugin
Maven插件:https://github.com/momosecurity/mosec-maven-plugin
Gradle插件:https://github.com/momosecurity/mosec-gradle-plugin
node组件:https://github.com/momosecurity/mosec-node-plugin
pip组件:https://github.com/momosecurity/mosec-pip-plugin
后端API:https://github.com/momosecurity/mosec-x-plugin-backend (含样例数据)