8

企业安全应用安全实践

 2 years ago
source link: https://www.anquanke.com/post/id/267010
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

企业安全应用安全实践

阅读量    77179 | 评论 1



发布时间:2022-01-29 10:00:49

大家好,我是花生,某安全团队包工头,经过多年的探索,探索了一套适合当前企业的应用安全实践方法论。希望通过文章可以给中小企业团队提供一些建设经验(大厂轻喷)。

团队介绍:当前应用安全5人,1人主攻白盒代码扫描(规则优化+运营),2人负责评审测试,1人负责团队产品架构、开发相关、数据安全等各种业务,1枚小鲜肉实习生目前熟悉业务中。待招数据安全1名,如有年底观望机会的小伙伴,可与我联系。我们的团队属于小而精,紧张有序的进行日常工作。附近的大厂(某旅游龙头)每组大概10人的配额,安全部门大概50人左右。一般安全团队大概分有基础安全、数据安全、安全运营、安全开发、合规、业务安全、蓝军等等,每个公司都有独有的架构设计。人员配备和公司业务正相关,业务越大,需要的安全人员越多,业界安全的配比大概是1~3%区间(安全人员和总人数比),各个公司可能不大一样。我们团队除数据安全岗外,团队其他成员均掌握一门编程语言,可定制开发小工具,为平台安全建设添砖加瓦!经过安全团队三年努力,在产品、研发、测试、安全通力合作下,形成了适合当前业务的sdlc流程。因所列每一项,展开都可以书写文章,文章将以蜻蜓点水式介绍建设经验。同时致敬以前团队成员,因为有你我的努力,才有了现在的成果,感恩一起奋斗的日子,愿你在新的征途一切顺利!先上整体导图抛砖引玉,欢迎各路大佬指导交流~

一、主动介入

1.SDLC流程

SDL流程图

1.1项目评审

产品同事设计prd完成后,会召集测试、研发、安全参加需求宣讲会了解需求,安全部门经过评审,会将相应风险邮件告知产品、研发,在设计阶段提供规避安全建议。同时为解决人员不足、产品快速迭代可能遗漏的情况,安全团队会从配齐发布系统、jira项目中获取项目信息,做平台展示提供给负责同事查看,如需安全评审、测试,会将项目信息同步(自动化)到应用安全项目管理中,并将相关风险评估信息录入项目中,提测日会发送邮件通知责任人跟进。经过多年的磨合,新业务、新产品研发设计阶段研发同事也会邀请安全同事参与研发设计评审,共同从源头抓产品安全,为公司、客户提供安全可靠的产品服务。风险评估流程如下图:

为方便业务及时(24h)获取风险评估,我们开发了自助风险评估功能,适应快速的产品迭代,需求方可根据设计需求选择相应功能,系统会根据功能提供相应风险项,评估结束提供报告下载,业务方可参照建议提前规避风险。

自助风险评估

1.2安全测试

为了便于统计、查看(统计),我们开发了工单模式记录追踪安全测试项目,达到测试时间系统会自动邮件提醒责任人并抄送安全组,项目负责人会根据需求文档有的放矢做针对性测试,提升测试效率。为应对快速迭代的项目发布,在人员紧缺的情况,我们制定如下测试规则:如遇新项目、大项目,可多人协作测试;小项目、迭代等单人负责测试。尽最大努力满足业务安全测试需求。同时团队内部积极开发安全工具,提供被动扫描程序和bp插件等,提升测试效率和精准度。在洞态iast问世后,团队积极探索洞态IAST,部署测试环境试运营,目前功能磨合中,待测试环境运营成功,将会推动测试环境全接入,此举将大幅度减轻安全测试压力。待成功之日分享iast实践经历~

1.3黑盒扫描

因当前业务接口模式居多,且黑盒扫描较重,黑盒扫描当前仅作为辅助方式,上线前会对资产(域名、ip)做黑盒扫描,上线后会进行周期性扫描。黑盒扫描包括常规安全监测(XSS、sql注入、LFI等)、POC扫描(300+检测脚本)、知名漏扫工具、端口扫描。所有功能均为团队内部开发。此处先一笔带过,后续会在周期性扫描重点介绍。

1.4白盒代码扫描

白盒扫描v1版采用cobra扫描,经过3年的运营取得了一定成果,但误报率一直居高不下。经过团队探讨,决定尝试使用semgrep扫描工具替代,目前两套扫描同时运行,规则优化以semgrep为主,经过数月的探索,取得了一定的成果。

当前白盒流程:白盒扫描–>漏洞确认–>通知责任人–>修复–>验证通过–>处理完结

1.5API接口管理

因业务现均以api方式提供服务,且多数api接口是提供给app使用,抓包和爬虫均会有遗漏,存在漏测的可能,为减少漏测,安全团队需要掌握所有接口数据。经过和兄弟部门沟通,测试部门的接口压测平台拥有完整的接口数据信息。经测试团队和安全团队合作,安全团队每天拉取接口数据,将相应数据发送至接口扫描队列扫描,同时根据接口返回数据标记敏感字段,以便识别敏感api供数据安全评审。接口扫描业务接入初期,取得了很好的成果。同时,为了减少脏数据的产生,我们平台增加了扫描白名单功能,如有写数据接口,可一键加白(不扫描),减少脏数据,减少对测试工作的影响。

1.6安全培训

安全部门提供在线漏洞说明及定期安全意识培训,提升员工安全意识。2021年举办了安全周,通过邀请外部专家讲座、有奖问答、观看安全视频等途径,提升全员安全意识。同事集团每年均会有安全培训考核,督促全员安全知识学习。

2.周期扫描

周期扫描采用分布式节点通过授权key访问扫描任务redis,扫描节点获取任务后,定时将扫描状态、结果同步至应用安全平台。扫描任务获取:产线环境通过抓取内部cmdb数据,每天发送扫描1次;办公环境通过部署探测节点,每天扫描存活ip发送扫描1次。扫描包括端口、常规漏洞扫描(xss/sqli等)、poc扫描+一款知名漏扫工具,均已集成平台,可在平台下发任务,及时获取最新扫描信息。

当发现漏洞时,会将相应的信息录入漏洞管理,同时邮件通知相应责任人和直属领导,并自动同步相应信息至jira创建工单,并在漏洞周期内完成追踪,完成漏洞生命周期管理闭环。

同时,团队内部不断自驱完善平台功能,提升各项功能自动化覆盖率,减少重复工作,提高工作幸福感。

自动化填充功能(例)

二、辅助发现

1.信息获取

背景介绍:当前所有产品需求均通过jira发起,经过审核后进入研发流程,项目测试、发布均通过测试部门配齐系统。因现有流程采用敏捷开发模式,业务可选择性安全测试,同时应用安全会拉取jira、配齐数据,做项目信息监控。如发现需要做测试项目,会创建安全测试项目并邮件发送相关责任人。

监控项目 子项 备注

JIRA需求管理 研发项目 评审是否需要安全评审、测试

域名申请 及时获取资产信息并扫描

提测工单管理 统一管理安全测试需求

配齐发布需求管理 获取最新发布项目 补充途径评审是否需要安全测试

Github监控 监控代码泄露 集成开源hawkeye

APP安全

APP自动化加固、签名 自研加固、发布对接流程

APP安全扫描

Mobsf二次开发(辅助app隐私合规监测)

漏洞预警 及时获取最新漏洞信息,并预警 CNNVD

Seebug

阿里云

公众号

 2.定期内部攻防演练

团队每半年进行一次内外部攻防演练,模拟外部攻击内外部系统。每次演练指定项目负责人,通过团队信息共享、思维碰撞、协作,提升团队整体安全能力和公司安全水平。及时查漏补缺,防患于未然。

3.数据统计

因当前系统功能越来越多,大屏数据展示便于及时发现异常,团队可及时排查保证稳定可靠的安全服务,并且大屏数据是展示安全成果的很好途径,也方便领导视察~

一次逛菜市场,看到了菜市场交易数据总览,先看看菜场关注那些指数。

菜市场大屏 

安全大屏展示项:半年度、年度漏洞级别数量;资产信息(域名、ip等)、API(接口)数量、安全测试项目数量,每日域名扫描工单、安全扫描工单、白盒扫描量、黑扫扫描量、App加固数据;每日API扫描数量信息;近期项目信息提醒;漏洞数量分布,漏洞类型分布。

这些数据均是安全关注的指标数据,此外我们还开发了漏洞统计看板,任务看板,方便追踪任务。其中任务看板包含项目扫描信息、接口扫描信息、周期扫描信息、白盒扫描以及各类扫描的修复率,驱动负责人及时完成漏洞闭环。

安全大屏(数据为虚拟)

总结:中小企业安全建设需要服务业务、适配业务,需不断摸索最佳实践。每个公司情况可能都不一样,可以通过交流学习实现符合公司的安全模式。大厂有数量众多的安全人员,完善的安全制度和流程,是中小企业学习的标榜。中小企业安全团队紧凑,人员紧缺及复用的情况比较普遍,对业务上线要求也相应灵活,需从多角度去思考总结经验,照搬可能无法推进,适合公司的才是最好的。笔者当前服务的公司base上海,欢迎各路大神交流学习,更欢迎江浙沪的伙伴喝茶聊天,我的邮箱she11code##qq.com(##替换为@即可),欢迎交流。

感谢聆听,下一期给大家分享数据安全建设相关经验,敬请期待~


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK