前言
又经历了两年,时间匆匆,随着安全的发展,有些想法已经改变了,有始有终,把这个文章结尾。还是按照时间顺序去写吧,后面说一下个人对目前安全的拙见,大佬轻喷。
一、续
上一篇的结尾写道接下来要做的事情,蜜罐、AI、业务安全……结果是全部未实现,原因很简单,业务萎靡,在公司存亡之际,安全是多余的。
二、2018
这一年集团出现大的变动,公司也受到影响,安全所负责的业务仅仅只有支付牌照下的四个业务了(之前还有P2P、大数据、电商),本来这一年要做蜜罐和SDL,全部泡汤了,但是SDL也算是积累些内容,为下一年做了准备,在源代码安全,把yasca替换成fortify,增加了jar包的扫描(OWASP Dependency-Check),之前部署的巡风已经落灰了,git监控后来也用携程的了,openstar的waf也下线了,漏洞预警全靠朋友圈……
由于这一年的“清闲”,帮朋友加固了一套系统,在这过程中,感受到对抗内鬼和黑客的欠缺,对基线安全的重新认知,把反序列化漏洞学习了一下。其实红蓝对抗如果真的做了,意义还是挺大的,在这个过程中,会发现许多安全上的不足,拿别人的系统学到了些经验。
比如平时不在意的linux的S标记位权限,sudo的权限,bash的记录,认为安全目录下的内容(比如腾讯云的hids目录),监控程序的自身规则完整性,遇到内鬼这些都是他们利用的点,提权,维持权限,清理日志。于是在这样的碰撞中,自己的基线又增强了。
总结来说,这是黑暗的一年,差点就离职了,这也是积攒力量的一年,接下来都用到了。也让我体会到了安全在甲方的位置,在什么样的公司做安全会有怎样的未来(不看好一个人安全的原因之一)。
三、2019
重振旗鼓,把SDL推下去了,更新了基线,上线wazuh,升级了linux的n多洞和jar包。
去年的PPT终于用上了,在公司推了SDL,这个东西还是要靠领导层去推进,各个部门的协调,每个技术部的人员配合,内容不是很复杂,复杂的是推进,无论你怎么讲,这个东西提高代码质量、积累可传递、提高安全、减少修复漏洞成本等等,没有领导的推进基本就死在半路了。
培训拿webgoat和dvwa做的环境,过程中带了个运维同事一起搞,许久没有体会到的工作乐趣,两个人搞事情真的比一个人要有动力和效率(不看好一个人安全的原因之一),最后培训他还主讲了两期,培训内容主要是漏洞原理以及防御。
需求分析针对互金行业主要是合规、数据安全以及漏洞风险,不过由于开发流程上的设计,目前还没有安全需求这块,就是夹杂在安全设计里面,在项目初期评审会上提出来。
安全设计开始打算用微软的建模工具,后来看了看有些繁琐和不与时俱进,于是就用了excel表格,这类表格很多大佬分享过,在此基础上完善就好了。
我们开发都是java,开发的同事工具上都装了findbug的插件,多多少少能提升些,然后内部搭建了wiki,一些安全开发的要求以及总结都发布在上面,每个人都可以看到。
安全测试这块在jenkins上结合sonar和Dependency-Check,sonar用的规则是findbug的sec规则,其他的没开,不然问题太多,然后这个规则还要自己慢慢优化,发布自动进行扫描,可以解决大多数问题,然后再结合fortify和awvs、人工测试,后续利用测试团队的自动化测试框架,把安全的测试用例放进去,会减少更多工作量,不过目前还没想好怎么搞,如何全面的将安全测试用例整理出来放进去。。。。。。然后在git上找了找poc,接下来就是利用下。。有好方法的大哥也可以支支招
后续的安全上线还是之前做的基础上稍加完善,后面的测试、上线、应急基本为运维部分,这个在之前就做好了,只是融合在SDL里面。
整个过程推进才是痛苦的,中途赶上HW,领导及其重视,把jar包全部升级了,还是很认可,于是顺理成章的将其列入到流程中了,大家也都接受了。
基线更新,把系统、网络、数据库的基线全部用思维导图方式搞了一遍,大家也比较认可,看起来直观方便,加固的内容参考CIS的基线,然后结合之前遇到的问题进行了整合(sudo禁止了vi,vim,find等,/etc,/bin,/sbin,/usr/bin下的权限,审计了一些关键命令,bash的记录),见图吧,框架给个清晰的。
系统补丁的升级,很难想象没有nessus,fortify这些破解软件,安全工作会有多难,同时推动升级更加难,好在借助HW的力量,谁也不想出安全事情,大力推安全,趁机把公司测试环境内网检查了一遍还真发现很多弱口令、未授权访问这些问题(F-Scrack挺好用的),这种东西虽然制度上有要求,但是很难避免,还是要事前、事后两把抓,定期扫描查漏补缺还是很重要的。然后用nessus把linux的模板用登录的方式彻底扫了一遍(我们服务器都是一套基线模板做出来的,然后会有监控配置,所以基本上没什么大的差异,这要只扫描一台就可以评估到所有,资产的管理在此就很重要了),然后评估了下,基本升级变动很大,用Dependency-Check全环境jar扫了一遍,然后评估升级。这两件事情对于运维和开发都是天大的工作量,从测试环境、灰度环境到生产环境的升级,足足用了小半年,生产环境的不停机更新才是最痛苦的,业务不中断是第一位,做这种操作一定要拉上所有leader开会出方案,谨慎再谨慎,不然就是大锅,我们运维确实挺厉害的,开发在领导的强压下,连续加班1个月,也把jar升级,难点在于有些功能的变动,还要改动代码和测试,工作量挺大的。所以安全是一个成本高,又很难看到收益的工作,就是费力不讨好(又一个因素)。
Wazuh也是一个大活,官方文档超级全,基本功能测了测,然后添加了写自定义的规则,多数为用户行为、系统行为(主要针对入侵后的检测),其实wazuh主要还是对日志进行分析,关键在于规则的定义,利用好audit的规则可以做很多事情,毕竟audit监控的是系统调用,比如被入侵了会做什么,那么我们就记录什么,起码知道自己被黑了吧,不太重要的目录就用syscheck去做完整性校验就够了,间隔可以长一些,原理是md5校验。本来想用OSCP功能扫描cve漏洞,省去了nessus,后来发现centos没有这个库,放弃了这个功能。后来发现自带的vulnerability-detector可以进行漏洞扫描,我还没和nessus的扫描结果对比过,wazuh可以读到服务器所有rpm包然后与cve库对比,如果好用以后就不用nessus的登录扫描了。Wazuh对合规的支持也很好,用到的有PCI-DSS和GDPR。
Wazuh大规模部署还是要集群 ELK,目前还没有全部上,这个缺点在于agent要把日志都发到server端去分析,而不是在agent分析完把结果发到server,这要对server的负担比较大,目前没有大规模测试完,只是猜测会有这样的影响。然后ELK新版本多了SIEM,看了看虽然目前支持不多,但是后续也可以把防火墙日志吐到里面集中分析,图形化集中的日志分析也有了。
进程总结
wazuh-api api调用 wazuh-clusterd 服务端集群 wazuh-modulesd 与其他模块联动,包括第三方模块如OpenSCAP ossec-monitord 监控客户端链接,每天切割和压缩日志 ossec-logcollector 日志收集(监控配置文件和命令进行) ossec-remoted 服务端连接客户端 ossec-syscheckd 完整性检测,包括权限、所有者的更改 ossec-analysisd 日志分析 ossec-maild 通过邮件报警 ossec-execd 事件响应执行脚本命令 wazuh-db 列表基础库的客户端key、文件完整性、恶意程序事件存储 ossec-authd 客户端服务端认证 ossec-agentd 客户端进程 ossec-agentlessd 未安装客户端的系统上完整性检测 ossec-integratord 外部API、报警的连接 ossec-dbd 报警日志插入数据库 ossec-csyslogd 通过syslog转发报警 ossec-reportd 生成报告
主要用到的功能
日志收集 文件完整性监控 异常和恶意软件检测 安全配置评估 命令执行 事件响应(针对事件出发一系列动作,目前没有用) 系统信息 漏洞检测
漏洞扫描截个图吧,其他也很炫酷。
四、总结
不知不觉工作8年多了,4年乙方,4年甲方,好的团队(所有工作都是在团队的支持下完成),坑人的公司(现在这家公司还欠我10多w理财逾期2年了)。
之前有大佬搞过甲方企业安全速成班,讲真,很多东西你知道框架模型,技术细节,但是在应用的时候要因地制宜,这个因地制宜就是需要丰富的经验、广泛的知识领域以及一定的交际能力,这些最好的锻炼环境,就是在乙方,那种越坑的项目越锻炼人,磨练几年,可以在一个领域做深,也可以出来去甲方,但是如果你刚毕业就去了甲方,再跳乙方,会有点难。乙方都是专业的团队,可以从同事身上学到很多知识,而甲方很少有专业团队,大多数一两个人。
再说说不看好一个人的安全部吧,现在的法律法规越来越多和严格,很多企业招一个人就是做合规或者背锅,他们并不在乎自己的安全,只是别出事就好,因此在安全的投入上也会很少,尤其人员的重视程度,没人配合,寸步难行。甲方安全真的看领导是否重视,而只有一个人的编制,你觉得会重视吗?其次是工作杂,要做的事情很多,尤其在金融相关公司,合规能够占掉一个季度的工作量。一个人能做的事情就是拿别人开源的东西自己搭起来,稍微改改,没有精力去深入研究(工作时间)。相对的以后的发展趋势是安全小团队,4,5个人,分工明确,各有专精,不但可以在自己擅长的领域深耕,还可以大而全的了解整体安全,最重要的是有一个团队可以交流分享。看一看网上的开源安全工具,基本都是甲方小团队搞出来的。一个人的安全部的公司,你可以抱有希望,努力建立团队,如果在你的努力下公司依然不重视,就作为一个很好的过渡和历练吧,仅此而已。
最后说说等保2.0吧,前几批考过测评师证,当时还搞了内部的测评依据,对外给教育部搞了套培训……其实等保并不是为了合规而做,它是结合nist sp800、iso27001好几个国外的法规(找不到之前ppt了),有技术类的,有管理类的,现在成为了我国的基本保护要求,也就是说,最基础的安全,如果连基本要求都达不到,那么安全真的做的挺次的,2.0的测评依据和1.0重合部分基本没变,而且更合理了些,三级测评点少了50个。管理可以参考上篇文章目录去做,技术上,划分安全域、设置访问控制、能检测入侵和病毒,每个设备、终端有一些密码、账号、访问的策略,有个统一的日志收集平台做日志审计,数据和设备的备份冗余、敏感数据的处理、传输存储加密,不算应用安全,基本上及格没问题了吧。所以这样来看,等保就是个促进大众企业达到一个及格分的政策,就像什么3c认证、安全食品认证、iso9001认证,是促进企业进步、给老百姓安全的好政策(想想企业不重视的前几年,我们的个人信息随随便便被人买卖的年代)。
站在风口,猪都能起飞,或许就是现在的安全行业。
微信chapla,欢迎赐教交流
*本文原创作者:pur0,本文属于FreeBuf原创奖励计划,未经许可禁止转载