最近这段时间一直没有机会投稿,前段时间被拉去做产品的集中研发,还分饰部分产品经理的角色,后来因为疫情原因又耽误了,最近是做商务推广,搞得我一个技术人员都快变成了高级商务……闲话不多说,吐槽到此为止,前面好多期都是跟大家聊WAF,因为WAF基本等于了web安全的基础,WAF产品也是web安全中必不可少的一环。这一期想跟大家聊一聊攻防演练平台。
如果大家对我了解不多或者忘记了我工作的背景,可以回顾我之前的系列文章,简单总结一句话:一个人的信息安全部。
背景就是一个人的信息安全部,按照攻防演练的国际说法,不管红队还是蓝队,都是我一个人自娱自乐的项目,很多人说,攻防演练平台这种产品,只适用于大企业,安全体系成熟的企业,对于中小微企业来说,有一个安全人员就已经不错了,攻防演练根本就搞不起来,总不能自己跟自己打吧。
首先想跟大家分享一个概念,攻防演练的意义是什么。
一提到攻防演练,大家(不仅限于安全人员)的脑海中不由浮现出CTF、黑客、打擂、红客、高端、应急演练等等(以上是找公司的各个部门人员做的印象调研,包括开发、高层、市场、运维、产品等)。实际上攻防演练很简单,从字面意义上来说,就是一组人发起攻击,一组人进行防御。好像太直白了一些……不过事实如此。
在这里回应很多人的说法,一个人的安全部有必要做攻防演练吗?一人分饰两角真的有意义吗?
站在我的角度说,如果让我一人分饰两角,那真是没有什么意义,但是如果红蓝队的范围不仅仅限于安全呢?
在生产中其实会出现各种各样的事故,不单单是由安全问题引起的,比如服务器故障、代码紊乱、时间同步紊乱、数据库同步丢失、网络问题等等。而事实上,运维有事故应急演练,开发有紧急上线,安全有攻防演练,看似各司其职,但实际上却是谁也离不开谁。举个简单的例子,拿网络波动来说,如果不进行细致的分析,很难发现到底是因为运维的原因还是网络的原因,或者是安全的原因。以生产中的实例为依据,以下是事故现场还原,贴符的勿进以免破功~
一个风和日丽的下午,我正遨游在知识的海洋中,一个电话打破了平静的生活:
紧急情况,接到客诉说连接咱们的生产域名一直超时,赶紧组织人手排查事故原因,加紧恢复。此时收到某云通知,区域性网络瘫痪已恢复。之后开始查异常。
首先是网络:
我这没有异常,解析域名能解析到,telnet是通的
紧接着开发:
有业务日志,看日志也没问题
运维回应:
nginx日志也正常,CPU内存都正常,流量正常没有堆积
安全回应:
一切正常,没有异常请求
2分钟后恢复瘫痪状态……整个业务无法访问
那问题从哪来的呢?先是讨论网络,毕竟从现象上看更接近网络问题,然后讨论安全,大流量DDOS攻击导致网络瘫痪?域名劫持?查了半个小时,最后发现nginx的问题,虽然端口开着,但是假死了,业务过不去,这个神奇的现象来自于linux的文件系统,此bug是某云在经历了整个区域网络瘫痪后启用恢复导致的。属于云运维事件具体就不多说了。
在这里我说的是,一个事故的发生必须要经过各个方面的排查,有经验的应急人员能快速准确的排查出问题属于哪,但不意味着排查问题要单线程的工作(仅凭经验一个方向一个方向排查),应该是发散似的有重点排查,也有协助排查。同样攻防平台也是一样,要有重点,同样也要有协助。
我个人认为对于攻防平台来说,靶场选择、人员考核、技能学习是重点,靶场维护、观战是协助。
作为中小企业的靶场选择,尽量选择贴近自身业务环境的靶场是关键,这样不会花大量的时间去研究靶场环境,同时对于人员熟悉度来说也是相对比较高的,花费的时间成本不会太多,甚至业务测试环境都可以直接用来做靶场。这样就以为着平台的靶场接口要非常灵活,可以直接导入自定义镜像。
红蓝队的人员选用对于中小企业来说是比较头疼的,因为懂安全的是非常少的,基本只有1个专职安全人员,这时红队人员应该怎么选呢?可以集结一部分架构人员结合安全人员进行培训,中小企业的架构师偏重于研发,在研发项目初期的选型阶段,研发架构往往会选择稳重便捷开发的架构,会考虑响应时间,处理速率,处理逻辑等问题,但在安全方面的重视程度或者说了解程度普遍没有那么深入,结合攻防演练平台,可以和安全人员一同学习安全技能,了解黑客大体是怎么进行入侵的,对应在研发过程以及架构选型中就可以提前避免一些不必要的研发漏洞。运维人员可以集体参与进来,一旦事故发生,安全与运维结合处理事故是必不可少的,通过攻防演练平台,运维人员可以清楚的知道黑客入侵进服务器会做什么操作,让运维人员提前做好关键日志的备份,而不是全备,全备的好处是在信息量全面,但是极为消耗性能与存储空间,各有利弊。同时可以在整个排查阶段了解如何快速进行排查,以便在日后的生产环境中遇到简单的问题可以快速分析出是哪方面的事故。
在技能学习方面,知识的传达一定是高效的。中小企业怎么做到高效,我个人认为应该通过分析业务使用语言进行知识的传达。比如我们使用的是java,那么了解相关的java安全知识就相对重要,序列化与反序列化将作为重点。使用了Jenkins作为自动发布,那么
Jenkins所有使用中的组件漏洞应当被当作重点知识传达。攻防平台不仅是攻防的实践,更是知识储备的平台,时刻作为人才培养与储备的平台,感兴趣的核心研发人员都可以在此进行研发方面的学习认知,了解基础安全与组件安全,方便研发过程中的选型与基础安全问题排查。
攻防平台不仅仅是统计的一个分数,作为技能考核,更应该能回溯整个攻防过程,以便攻防人员进行交流讨论。
最后打个广告,四维创智的天幕攻防平台,有意的可以私信我,如果看上四维的任何产品都可以走代理价呦,正式开启作者生涯中的地摊阶段。
原文 http://4hou.win/wordpress/?p=46962