在实际安全事宜剖析的阶段紧张创造存在2个大问题阻挡了我成为最强安全打工人。
0x2 二个问题第一个问题安全事宜太多且种类多样;由于很多甲方上帝网络比较大导致全体环境当中有很多的安全设备、同时考虑到异构的场景,可能还不止只有2家厂商的设备;我的对手可能只是轻描淡写的打开了一个常规的漏扫,当前监控页面可能就会涌现100+个安全报警;比如一个热门的漏洞利用扫描每每包括常规的Shiro反序列、S2系列、THinkphp系列、Solar类、某OA系列类、已知CMS类、Weblogic类探测;一个S2可以从S2-016考试测验到S2-061还有POST和Get方法、再测试几个大略的编码绕过;由于当前很多安全设备的检测能力紧张还是基于规则检测的多一些,每每一种攻击办法会有多个检测规则方法和场景,部分安全厂商会命中一条报警一条,针对大量的安全事宜告警防守职员很难做到点开数据包一个一个剖析只能选择在边界对攻击IP进行封堵,宁教我负天下人、休叫天下人负我。最恐怖的也便是如果本地挂了一个代理池,攻击源IP就会非常多非常多靠人工的办法事情量就太大了。
同时不同的安全厂商报警的安全事宜、格式内容什么的都不一样,有些描述很详细XXX框架XXX漏洞XXX攻击(CVE-XXX-XXX)熟系的小伙伴一眼就知道发生了什么,有些描述就比较大略了便是一个XXX系统XXXXXX;由于吃了甲方金主的零食喝了红牛和奶茶事情还是做好的,此类场景下也只能点开这些安全事宜的详细界面查看一些数据包举证,看一下攻击者的IP和韶光、次数以及一些详细描述、结合攻击的高下文信息进行综合判断,遇上一个冷门的漏洞可能自己还须要上网搜一下,有一些的确是一些真实攻击的payload看一下有没有攻击成功的可能后直接封堵攻击IP就好;有一部分是业务场景下的误报须要奉告到甲方金主(虽然他们也不一定会改),确定是正常业务的可以对该行为进行加白,某些金主的运用系统里面就喜好在参数里面随着各种sql查询的命令select insert union from and or group by之类的都有乃至很多结尾还有二个--符号,一条数据流可以产生7、8条报警事宜都不想点开看;有一部分也不知道命中了什么规则看起来十分正常,心里面就有点犯嘀咕万一是个什么高端攻击自己能力有限看不出来怎么办?但是这个数据包怎么看都正常啊!
嗯,还是先把这个IP给办了错杀无所谓了。

第二个问题便是误报问题的涌现,非攻击者的行为被识别成恶意行为就认为是误报,总体上来说误报也分二种场景:业务误报与检测误报;大多数参与攻防对抗的主力选手对用户上帝的网络情形基本上都是不求甚解,以是在很多业务场景下存在着很多惊喜的报警;比较常见的如一些文件共享、文件备份的做事器精彩遭受到大量的SMB暴力破解,或者一些网络管理的操作系统批量的对内网发起端口扫描、部分负载均衡的地址猖獗攻击内网某web做事器、数据平台遭受大量的ES未授权访问、邮件网关设备中了几百种僵尸网络等等的情形;这种情形下颇有一种磨练革命友情的意思,如果用户方对这些业务场景比较理解的话很多行为实在都是说的通,也能够理解这便是一个分外的用户场景,如果用户方不理解这些业务场景就依赖于防守的小伙伴自己结合更多的行为去揣测或者勾引用户确定对应的业务场景。踩的坑多了多多少少也就知道怎么回事了,紧张结合一些其他的流量行为、最近一段韶光内的全部行为做一个综合剖析。比较多的坑包括负载均衡、反向代理、域控做事器、DNS转发、云平台、文件共享做事器、漏扫场景、运维运用处景、网关类接入场景、分外运用处景等等,以是多理解点用户的利用场景对安全研究职员来说是值得的,毕竟攻防是个对抗的过程防御检测时候能派上用场,攻击渗透的时候一样有用;
如果说业务误报是和用户的二人转的话,规则误报的场景就可能是安全研究职员的独角戏。估计大多数的安全研究职员对一些攻击姿势的积累和知识储备远远多于对检测技能的积累,研究什么数据统计、关联算法、检测模型、机器学习、特色工程、流量剖析之类的东西相对来说呆板乏味的多,且实际动手的本钱较高没有膜拜一下大佬的诡异姿势和绕过操作来的淋漓畅快一些,且不同安全厂商识别同一种的攻击方法也是各类各样更多的像一种预测。 目前紧张的检测方法普遍采取的办法可以大略的分为三大类、规则匹配(内容剖析)、行为模型检测、关联剖析识别;为了方便理解大略举几个例子阐明一下,所谓的规则匹配紧张是一种检测payload特色的一种办法,比如考试测验一个脚本文件上传的检测办法紧张思路便是从HTTP协议当中筛选出POST要求再分离出上传的文件,从文件名后缀和文件内容二个方面识别这个上传的文件到底是不是个脚本,范例的jsp、php、aspx、php3等文件后缀,再从文件内容当中检测是否包含一些<?jsp eval assert等分外的字符之类的方法,当然这里也有很多的反检测姿势在里面常见的代码稠浊、编码绕过、加密、文件包含、后缀名假造、解析漏洞等办法,以是除了黑名单策略之外每每还有一些白名单的技能在里面,非白即黑;每每内容特色检测都有一些字符的举证,比如在一个完全的HTTP数据包当中进行高亮标注清楚;行为检测的话每每是根据一段韶光内的行为进行识别,常见的A主机扫描B主机在一定的韶光内达到了一定的频率,次数就会识别成扫描或者考试测验多少次账号暴力破解,须要设定多少个账号、多少个密码、失落败次数等维度进行判断;此类报警的事宜举证起来就相对模糊一些每每只是对行为进行措辞性的描述。
0x3 告警优化场景总得来说由于场景的多样性,对安全职员在研判的过程当中增加了不少的难度,同时也对研判职员对安全事宜的理解与业务场期望可以景熟习程度提出了更高的哀求。以是最空想的状态该当是,无论是通过职员还是一定的算法在大量的安全事宜报警面提高行聚合过滤后天生少数几个准确度高、危害度高的定向攻击行为出来;由于不同设备的产生的安全告警的数量是巨大的而且有很多真实攻击每每殽杂在一些无用的扫描器的漏洞探测的情形发生,以是须要一种方法将这些安全事宜进行聚类剖析。常见的方法比如攻击源同源、攻击行为同源、时序关系干系、因果关系聚类、攻击场景聚类;
攻击同源还是比较理解100个安全事宜的告警在同一个韶光都来自于同一个外网攻击源IP、可以理解这些告警属于同一个组织或者团队。或者根据情报显示、多个攻击源IP属于同一个团伙。多个攻击IP地址在一定韶光内接管到了大量来自某一个地区、某一个城市或者IP位于同一个供应商、在一个C段的场景都可以理解为攻击同源;
攻击行为同源紧张从攻击手腕层面出发,某个IP地址之前针对某个OA系统上传了一个php、在一定的韶光内其余一个IP地址进行了IP的链接,可以认为当前二个IP地址对应的安全告警都属于同一个团队。或者当前某个外网资产在一定的韶光段内先后遭受了S2-045、S2-046、S2-032的漏洞测试,可以认为当前几个IP存在较大的可能性属于同一个团队;
通过去重、聚类等方法在减少告警的数量后依然会存在较多的安全告警无法剖析,在研判职员韶光、精力都有限的条件下优先会选择剖析哪些疑似攻击成功的攻击数据包。攻击者每每在攻击成功之前一定会有大量的探测、考试测验攻击的攻击行为,一招致命的毕竟还是少数。如果从告警当中筛选出攻击成功的事宜就显得格外主要;100次失落败漏洞利用效果不如1次成功攻击来的恐怖,目前主要的攻击成功判断办法紧张依赖:要求payload与response内容的回显、多源数据的关联、前置关系的关联;
基于回显的攻击成功目前来看该当是最主流的一种办法,实在也比较大略每一次攻击从数据当中提取出payload部份再根据内置一些攻击者常常实行的命令whoami、ipconifg、net user、ifconfig、dir、ls等命令,在内置一些每一个对应命令返回内容的格式,前面命中了payload后面命中了返回的格式内容,即可以认为当前攻击的状态是成功的,此类办法的误报率还是可以掌握的,纯挚的依赖返回状态码、数据包大小等手腕就不是很靠谱了。
多源数据关联的办法的思路紧张还是来自于溯源剖析,纯挚的依赖流量层面的数据仅仅是对部分的攻击行为能够做识别。端点层面的探针供应的信息每每更加丰富一些,常见的SSH暴力破解、RDP暴力破解由于都是加密流量无法做到对密码和状态的判断,能够借助终端上的日志在流量层面的安全告警过程中读取OS的系统日志 4625、4624就随意马虎的多;创造一个遭受webshell上传的行为,无法判断是否成功结合终端是否有文件天生;涌现命令实行的场景,重点监控weblogic、IIS、Apahce此类进程的调用顺序在攻击成功的判断方面具备较好的效果与代价。
由于很多用户环境都不是特殊干净,内网当中必定有一些中毒的机器特殊是最近几年黑产的活动越来越频繁。在浩瀚的安全告警当中也须要摈弃那部分中毒主机导致的告警,这部分主机的确是有问题只是当前处理的不是时候,也有一部分可能是不好处置或者处置不了一些历史遗留问题。以是有必要把这部分的事宜给分离出来原则上须要对所有的安全报警类型进行分类,冰蝎webshell访问、FRP穿透、ICMP隧道通信、CS、MSF工具流量活动、特定内容的鱼叉邮件、DNSlog注入多数便是定向攻击的行为,XXX家族的威胁情报访问、各种payment、invoice发\票之类的病毒邮件便是范例的病毒类型的告警,内网横向的MS17-010、RDP暴力破解、网段扫描等场景二者都有可能,同样也是值得关注。
0x4未知威胁应对
相信对付绝大多数有多年安全从业履历的选手来说,对主流的攻击手腕多多少都见过一些纵然没有怎么利用过,用来实现什么目的都还是清楚的,在大多数的事宜研判上问题该当都不大。最大的不愿定性该当是担心某些行为根本没有安全事宜产生,巧妇难为无米之炊,在活动当中利用到之前保存的一些0-day或者免杀的样本、加密流量、特定场景的绕过姿势导致检测的探针都没有报警就有点降维打击的觉得,以是全体活动当中大家都是兢兢业业的担心对手不来(觉得自己没有什么用),却也担心悄无声息来(觉得自己没有什么用),大家心里实在都没有底,目前针对未知威胁的检测比较成熟的方法紧张有二大类:文件沙箱(针对样本的行为判断恶意)、行为非常识别(针对攻击者行为与正常业务行为的差异性);对付很多高等白帽子来说对抗杀软绕过静态的特色扫描的思路也是各类各样,在文件沙箱虚拟实行的过程中难度就会更高一些,轻微有一些敏感的动作都比较随意马虎标记成恶意行为于是就衍生了不少技能在动态实行、对抗虚拟机沙箱、反调试的一些技能的研究和知识储备。
由于一些重大的安全活动的缘故原由,每年都有一些0-day、免杀样本、无特色工具、新的攻击手腕被表露出来成为热门的话题之一,伴随着红蓝对抗的意识越来越强更加趋近于常态化事情,对当前的安全检测能力提出了更好的哀求。目前主流的开源入侵检测引擎紧张为Suricata、Snort、Zeek三个相对利用的多一些检测方法紧张为基于特色的检测和基于非常的检测为主。针对付新的攻击手腕与漏洞利用,基于非常的检测每每效果会更好一些,这里实质上是在区分攻击者与业务利用职员在信息不对称的场景下的分外行为,对业务系统很熟习的安全职员清晰的知道当前网络的拓扑、业务系统情形,以及访问关系图大概的路径、网段的划分以及安全设备的支配情形。试想一下在攻击者成功拿到某台做事器的权限之后期望更进一步的内网漫游,纵然通过前期的信息网络拿到了很多账号和密码没有爆破、漏洞利用的攻击行为但是总得有一些网络访问或者登录行为,一台公网的Web做事器主动发起对其他网段的RDP访问,通过鱼叉邮件被掌握的办公电脑对DMZ区的做事器发起连接、192.168的终端首次访问10.1网段的做事器这些行为结合对历史访问关系的判断都能够产生一定的告警并进行研判剖析。
除了内置一些范例的UserCase之外还可以依赖当前主流的一些分类算法统计区分非常。常规的一些算法对网络的流量访问关系基于低颗粒度,区分正常流量与非常流量的访问,k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类剖析算法,其步骤是随机选取K个工具作为初始的聚类中央,然后打算每个工具与各个种子聚类中央之间的间隔,把每个工具分配给间隔它最近的聚类中央。聚类中央以及分配给它们的工具就代表一个聚类,通过对一段韶光内的访问关系进行学习剖析建立一定的基线模型,在真实的攻防场景下涌现的非常访问的点就值得重点关注和排查,特殊是在内网横向的场景下具备较好的识别效果,加密流量、正常流量纵然无法进行内容匹配或者特色识别还可以从网络层的行为进行判断识别是目前针对未知威胁的紧张方向之一,干系的算法模型还有很多包括各种图、树、森林、概率转化、数据挖掘算法可参考运用此类方法最须要的还是大量可供学习的数据源或者针对不同场景下的特色向量提取。
类似的场景还比较多常见的比如非常流量的外发(超出日常水平)、基于webshell访问的罕有流量、运维场景下的首次访问、主机非常外联场景、敏感的鱼叉邮件、高可疑的加密流量通信、做事器之间的非常访问做事器、境外IP的非常登录等场景纵然是目前常用的一些DNSlog、DOH技能都依赖一定韶光窗口内的数据统计具备对应的检测方法和路子。很多高对抗的攻击行为的确很难基于传统的特色检测去识别,通过对主机行为、流量访问数据层面一定韶光内所有的小的非常点的告警事宜进行非线性累加与场景判断,相对大多数的攻击场景都创造。相对付特色检测而言每每非常识别的误报率常常会翻好几倍,数量与质量的担保都不一定会比较精确,多数只是一个非常点须要熟系业务的人对对应的情形进行识别排查,每每须要一定的知识积累和精力投入。于是有很多技能职员对此类告警觉得很不准以为质量不高,但是攻防对抗的对抗的是双方选手的技能功底、精力、韶光投入的方方面面,攻击者的定向攻击从最开始的信息网络、踩点打点、漏洞利用和信息网络乃至是0-day的挖掘同样花费了比较多韶光精力为了bypass安全设备做的免杀与无特色通信的技能研究,防守职员不花点心思和精力剖析就轻易创造岂不是在否认别人努力成果了。
0x5 一些方法论与资料攻防对抗的场景是一个持续学习、持续改进的过程,冰冻三尺非一日之寒,须要安全职员对当前方向上的持续研究。安全效果与代价的可视化伴随着一些活动的展开变得更加随意马虎和量化,用户对安全的需求的也更显的清晰可见,用实战化的结果来评估攻击者的技能水平、防守方的识别能力、网络当中的存在的薄弱性与可能存在的风险。PDCA是为了更好地理解和更故意识地在事情生活中利用PDCA思考模型,由于它真的太有用了,能力须要持续打磨非一夕一朝之劳。
Plan:从最开始的方案预研、针对不同的攻击手腕与特色进行剖析研究确定当前的方案与须要达到的目标;
Do:根据设计和布局进行详细运作,实现操持中的内容通过自己的思路考试测验并考验效果
Check:通过运营对结果进行剖析是否存在可以优化的空间,漏报误报检出的平衡点
Acion:通过对运营的结论进行改进与探索新的方法与方向
ATTCK模型通过对案例和攻击手腕的梳理整理出了攻击这个阶段的一些知识点,比较适宜部分安全研究职员探索,纸上得来终觉浅自己考试测验测试一下一些攻击手腕想必收成也会颇丰。目前该模型很多用户喜好把这个模型作为一个安全全景图用于描述当前安全能力的现况,既然是全景图一定有很多攻击手腕利用场景非常的分外并不一定是热门事宜或者常用技能,且有部分覆盖不到的地方,对付很多从业者和爱好者作为学习资料还是不错的也不必太过追捧。
Cyber Kill Chain“网络杀链”是由洛克希德.马丁研所发的威胁情报的驱动防御模型,用于辅导识别攻击者为了达到入侵网络的目的所需完成的活动。攻击者每每也是按照一定的攻击顺序进行渗透入侵,对攻击者的攻击阶段有个良好的分类在后续溯源、风险判断都有比较大的帮助,由于KillChain紧张是按照攻击者攻击手腕进行参考属于纯粹的攻击者视角,比如这武器化/工具化这个阶段对受害者完备是无感知,对应很多安全知识理解不深刻的用户很难从中去明白当前发生了什么事宜。其余一个问题是多数安全厂商按照不同的理解都有自己的安全告警阶段分类,导致很多企业用户在培植自己的SIEM、SOC、SOAR之类的平台的时候很难做到针对不同的厂家的安全事宜的归一化,后续的报警的理解与关联剖析就存在更大的障碍。
0x6 总结
都说安全培植是一个范例的木桶理论思想整体的安全能力只能取决于最薄弱的地方,大家普遍认可基于纵深网络的网络培植体系。对攻击者针对目标只需找到一个最薄弱的地方单点打破,而对应企业内部的安全培植却须要花费很大的本钱在构建一个相对合理的防御体系,然而却很难做到面面俱到,打破点可能是一个弱密码、可能是github的路径、可能是开源组件的bug、可能是某个框架的漏洞、可能是某个OA的默认密码、可能是某些运用的访问掌握不严等。偏偏安全所产生的代价并没有那么随意马虎凸显且存在较高的认知门槛,不出安全事件觉得无代价出了事件创造也没有代价,but whatever