无论对于甲方还是乙方,信息安全都是一个非常重要且复杂的话题。引用圈内某佬的一句话“安全本身就是个伪概念,没法准确定义,只能说相对妥善而已“。初听时觉得装X,现在想想,确有几丝意味。故而每个投身安全行业的人都值得人们尊敬,因为我们都走在一条永远没有尽头的路上,与君共勉!
本人出身网工专业(没当过一天网管),同时兼学多种网站开发(为了赚钱吃饭),初碰安全是在11年,当时为了解决一个.net应用下的报错问题(sqli..)就无法自拔的迷恋上安全,走过了啊D,御剑,wvs,metasploit等等这么些个时代,途径2家知名甲方安全公司,一家国企,目前供职于某橙色公司。
从在乙方公司忘我日站,和基友们吹比菜刀里的shell是几位数到沉下心分析各种木马,开发代码,挖掘漏洞,再到进入甲方考虑如何“妥善”应对企业里的安全问题,虽然是一路小跑,但也在亦步亦趋中找到了自己的一点方向和理解,简单聊下,不喜勿喷~
从乙到甲转型的初衷发生在国企呆的那一年,虽是国企确是偏乙方的工作,刚去的时候发现公司的网络被各路“兄弟们”搞得惨不忍睹,更有甚者翻出公司通讯录,直接找到我联系方式,调戏/威胁…,当时就恼怒的要把安全搞好,但是还没等把我的计划部署下去就已经被国企里各种all-known的事情搞得精分。
离职后整整思考了一个多月,我那些带有乙方特色的防护方案即使部署了也无济于事,至多在某些领域增强了攻击捕获和拦截能力,完全没有提升整个公司安全水位,而且当时就已经感觉到甲方安全涉及到众多和业务,制度,合规,沟通等与技术没太多关联的东西,很多方案施行起来真的是有心无力。考虑再三,决定投身甲方,学补不足,做更有责任,更有嚼劲的企业安全。
甲方安全涉及的领域实在太多了,在笔者的所在的公司,安全覆盖了技术,业务,合规,法务,等等多个大部门,但技术一个部门又涵盖了开发,运维,运营,平台等小部门,再往下还可以分为waf,app类,无线,漏洞分析,入侵检测,src等多个小分组。况且这么划分对有些领域还无法覆盖,不甚合理。
甲方安全是一个体系化的存在,即在于安全团队内部的体系建设,也在于安全处置流程的体系管理,同样也在于安全与其他部门沟通约定的系统规程。
正如我所说,甲方的安全太过复杂,没有任何人能cover所有需要关注的领域,所以下面我只是逐一列列我在甲方中关注的某些领域的问题。
这里姑且把人员也当成企业安全运营中的资产。安全资产永远是一个企业的硬伤。说真的从乌云时代各种企业漏洞,到现在各种圈内爆出的秘闻,无不表明没有多少公司能真搞清楚自己的资产,这里所说的资产是广义的,动态的概念。
资产不一定仅仅是线上/线下的服务器,有可能包含并购的公司,拉长的业务线,合作的某实验项目,还有可能是公司员工,外包员工,临时实习生,也有可能是新采购的设备,替换的运营商出口,更有可能是进行几小时测试的开发接口,临时申请的域名等等等等,这些都是实时在变,可控性有限的资产,当数据外溢到某个未知资产上时,安全受到就成几何倍数的风险,一个最为直接的例子就是有经验的白帽子往往会在新业务和并购公司上挖洞,难道风险不也是这么来的? 安全资产真的会把人弄得筋疲力尽,但这是一切一切的基础,不得不做!
【本文由先知技术社区入驻安全脉搏专栏账号发布,文章作者:redflog 转载注明来源安全脉搏】
漏扫看起来简单,其实绝没那么轻松,甲方各家应该都有知名商业漏扫,任性的还可以自己写写,实在不济的也会用用破解版wvs 啥的。
在乙方的时候签个渗透测试协议,注明渗透过程中造成的任何风险无需承担即可。但在甲方问题来了,如果把线上业务扫挂了!后果可能是不能承受之惩罚。某甲方公司朋友曾跟我说,每次季度线上漏扫,都要把运维,开发,运营都挨个求爷爷告奶奶问一遍,让大家签字/在场才能进行扫描,碰到不好交流的一脸板砖相。
这是甲方普遍出现的问题,我们的解决方案只能是尽可能降低poc危害程度,压低线程,分区域扫描,做好备份计划。
有的时候业务的脆弱性远比想象中大的多!漏扫的坑远不至这个,漏扫部署的位置也很重要,外网,内网,测试,专线,应用在哪里扫描理应覆盖哪里,多少公司把漏扫放在办公网,殊不知根本扫不到专线应用。至于漏扫规范,紧急事件漏扫,漏扫能力评估等等问题更是纠缠不断。
扫到了漏洞就需要对漏洞进行修复,这也是企业里的老大难问题。
生产环境修复涉及业务迁移和波动,如何沟通解决让老大们拍板确定是个问题;
测试环境漏洞层出不穷,发现的比修复的还多也是个问题;碰到漏洞实在无法及时修复,但风险又很高,如何调拨安全能力重点关注这些威胁还是问题。
笔者在漏洞推修问题上碰到了太多坑,什么原因都有,总之漏洞推修远比乙方渗透报告里那几行字复杂出无数倍。
甲方企业大了,应用多了,很多安全就没法做到即时亲身干预,这个时候就需要审计来帮忙,安全审计的对象有很多,技术上来说可以有登录,操作命令,网络,进程,日志,文件等等,但就审计技术本身就没那么简单,审计数据从哪里来,如何传输,如何防绕过篡改,覆盖率和存活率如何保证等,这些基础问题是必须有方案的。
是否会在某一时间增大业务应用的压力,审计数据如何实时存储计算,如何将多个审计数据源的威胁情报交叉关联等这些问题也许要考虑和解决,还有最重要的,审计规则怎么做的有效准确,如何捕获/界定异常和违规?之前和朋友们就安全审计规则讨论过profile,打分制,异常比例,机器学习等等。然而,真正应用在业务场景下,目前还没有一个特别好的通用的方法能兼容效率,性价比,告警准确度等多方面需求,只能是不断优化,不断探索。
安全规范也是个极宽的东西,这里只提我在工作中碰到几个点,比如
每种规范都值得深思细究,而且并不是安全部门制定规范其他人执行就OK了,开发和安全因为规范“打架”的问题,估计已成甲方公司茶余饭后的消遣,规范类问题需要与运维,开发,多个部门进行协商,扯皮的过程只能用唉来形容,但也是不得不面对的问题。
安全建设在甲方也是个很重要的问题,有人曾说过在甲方,安全是基础资源,像空气和水,确实是这样的,平时没人关注安全,但是出事情都是致命的。
怎样平时就让大家关注到安全体系的变化和运行,以及多种安全平台帮助安全部门更好的运营安全,这就需要安全建设。
安全建设涉及到资产平台建设,漏洞平台,扫描平台,事件处置平台,告警规则平台等多个平台建设,这里不是说所有都要建,这需要根据实际情况来选择,
但需要知道的是每个平台都需要以数据流程为依托,然后数据流程中涉及的方方面面整理确认恐怕也不是一时半会儿能搞定的!绝不是架起来个巡风那么简单的事情。
当服务器出现异常,就需要人工登录进入干预,如果是线上服务问题就来了,业务第一还是安全第一?
保业务可能导致畏手畏脚短时间内无法排除异常,甚至给攻击者更多时间进攻内网或者是域,丧失了宝贵的拦截时机。
保安全意味着业务可能会受影响甚至挂掉,安全部门不得不承担这种后果。
甲方朋友们需要做的可能是要人工评估两种代价,然后做出选择。
如何应急止血,可能每个公司每个人都有自己的办法,有的iptables限制,有的加防火墙,有的加网络黑名单,还有的直接切热备,关机下线,这些都是需要甲方认真去考量的,
包括涉及到其他领域需要的入侵取证,攻击溯源分析,攻击源反查,服务器无害性确认等等都是需要很艰难的工作来搞定的,不仅仅是关机拔网线那么简单。
当甲方的安全做了好几年,发现不到入侵事件了,那么新的安全问题也就来了。到底是因为安全做的不错还是因为你发现不了呢?
于是渗透测试便需要加入到安全的豪华套餐里来,有渗透团队的做起了自己的红蓝对抗,没渗透团队的搞来了商业渗透测试。
但是两者存在着各自的问题,自营红蓝对抗其实是一个比较稳妥的方案,既能从内部发现威胁,尽可能暴露安全问题,也能降低渗透造成的不确定危害,
但如何组建运营蓝军以及自营蓝军怎么覆盖所有的业务场景,发现所有危险的点也就成了这一方案的核心问题,同样因为与公司过于贴近,蓝军的渗透自然会缩小攻击眼界到内部核心的几个点(大多数企业安全都是外硬内软),产生渗透测试覆盖面不全的问题。
反过来看,商业渗透有很强的攻击模拟性,可以有效验证外部入侵的killchain是否被有效关注,但是由于时间短,业务理解度低,也会产生一些问题,无法揭示所有的攻击场景。
那么如何在红蓝对抗中将内部蓝军和外部商业渗透合并到一起作为企业安全的试金石就成了该重点考虑的问题。
这是个有意思的话题,我在甲方乙方的时候都帮公司安全部门招聘过人,招聘对于求职者是个难题,其实对于甲方安全公司也是个难题。
安全是有圈子的,把圈子里熟知的牛们拉来不在我的讨论范围。招聘要解决的是补强团队在某个领域能力的缺口或者平衡工作量。
前者招聘时就该以硬实力为基础,评估其能否承担起甲方对应工作,后者则需要考察面试者的安全普适能力,比如脚本编写,漏洞原理,简单的排查/修复能力等。
对于安全出身,我倒不觉得应该区分科班好还是野路子好,凭能力,潜力以及和团队适配度是最重要的考察标准。
面试的过程不应该是以问倒面试者为荣,应该是让面试者自己阐述能力输出的案例,面试官来引导细节,判断是否真实,有逻辑。现在的安全求职和从业者确实有点鱼龙混杂,有硬实力者,CTF选手,白帽子,入门新手,也有拿着别人案例冒充自己的tricker,无主动学习能力喜欢混圈子的,只会简单技巧却口若悬河的,也有想洗白的,还有不素之客…,如何甄别,真成为甲方安全又一个艰难的问题。
扯了这么多,无非就是想和在甲方坚持的小伙伴们,尤其是乙方转到甲方的小伙伴们多交流下经验,在甲方做安全可以多考虑一些,少入一些坑。
安全不易,且行且珍惜,甲方的安全一定是与业务需求息息相关,撸服务器日战的技术固然重要,但将安全能力有效输出至企业安全,提升业务场景下的安全水位,才是甲方安全的重要之道。