当前位置: 首页 > 科技观察

说说一些关于反入侵技术的事情

时间:2023-03-21 18:59:09 科技观察

背景在经历了近几年敲诈勒索行业的暴利和虚拟货币的繁荣之后,很多行业从业者对入侵检测的意识明显增强,甚至很多组织都深受其影响。危害在于,在数字业务快速增长的同时,安全风险的暴露也在快速增长。在法律合规性日益完善和攻击者威胁的背景下,组织也被迫对安全体系建设保持警惕。安全建设的主要方向大致可以分为两类,安全合规和反入侵;合规驱动力是首要的商业模式,类似于ISO27001、等级保护等维度。在反入侵方向,主要的出发点是保护现有业务的CIA属性,并从攻击者的角度审视当前的风险,对其进行防护和检测。与合法合规性相比,明确了各项指标和参数。Checklist中,反入侵工作的难度显然更大,挑战和技术积累也更苛刻。安全工作的本质是攻防双方的对抗、攻击技术与检测技术的对抗、流程与组织结构的对抗。常见攻击场景知己知彼,百战不殆。很多反入侵人员如果不了解黑客常用的入侵手段,最后往往会陷入“自高自大”的圈子。想当然的认为只要我用XXX的流行技术实现XXXX的功能,去应对XXXX的场景,最终还是背离了安全建设的本质;从对应场景来看,个人习惯往往可以简单分为三种主要的攻击场景:挖矿、DDOS僵尸网络、网站恶意挂马SEO黑链菠菜为主的黑灰生产场景中的处理攻击;以敲诈勒索、针对性攻击、窃取软件为主的高持久性和隐蔽性攻击团伙;数据重放、恶意爬虫、优惠券活动、撞库Master的业务安全攻击团伙。挖矿、僵尸网络和黑链从自身安全运营的反馈数据来看,第一类基于挖矿和僵尸网络进程的攻击流量基本可以占恶意攻击的70%以上。其中,几个热门的挖矿挖矿群最为活跃,如8220挖矿群、Bluehero挖矿群、H2Miner、Myking等群的攻击流量。由于现在的挖矿几乎都是按照蠕虫方式的进程攻击,所以中毒主机也成为了攻击的源头。一些企业资产,特别是一些边际资产,在中毒的情况下并没有意识到,并继续蔓延。这些挖矿攻击手段也比较简单,主要是基于一些流行的NdayRCE漏洞、各种应用暴力破解、webshel??l上传、未授权访问等攻击场景,如Docker、Jenkins、Redis、K8sAPI、Spark等,未授权访问HadoopYarnRESTAPI;Shiro/Fastjson反序列化、S2全系列RCE、weblogic全系列RCE;暴力破解主要针对一些SSH、RDP、Web应用、数据库应用的弱口令。一些有良心的帮派往往比较内向,会很快整合一些新的EXP来提高成功率。不久前刚刚公开的log4j很快就部署好了。除了抢占先机,由于多为股市,加上新的武器库,此类场景的攻击者往往从四个思路入手:杀死同行、排除异己、垄断资源;增长持久化方法,防止被基础操作清理掉;增加对双平台的支持,对windows不满意的场景兼容linux场景;扩大攻击目标,将主战场放在相对脆弱的内网环境中进行安全建设。目前此类攻击场景的技术维度比较单一。常规的方法是通过各种方式获取shell,然后执行一些下载命令,从网上的某个地址拉取相应的挖矿套件(包括挖矿配置文件)。、挖矿程序主体、向内传输的payload、资产发现模块、互联网检测模块等)、Linux下的类脚本Powershell、bat、shell脚本,以及类PE文件和ELF程序体。一些攻击者为了躲避查杀,还会利用一些系统白进程来执行恶意代码。一些典型的程序,例如某些mshta.exe和certifi.exe,通常具有甚至可以保存在磁盘上的有效负载;根据这几年的技术观察不得不承认,黑灰制作也是一个很内向的行业,不注意技术很容易掉队。从清除异己的角度来说,毕竟挖矿主要还是靠算力资源,别人不准在沙发上打呼噜。许多Linux样本通常在脚本中内置了许多其他挖矿文件的路径和脚本。运行前首先清理战场的历史痕迹,甚至可以使用Iptables基于访问控制来阻断存在的风险,防止其他团体再次入侵。少数小组甚至使用预加载来隐藏某些进程(这确实有点棘手)。从持久化方式开始,更多的是各种操作,比如一些定时任务、系统服务、WMI、开机的例行操作等。之前也接触过一些用MSSQLCLR写后门的团伙。这非常棘手。我手里有重要的资料。每条sql查询命令都经过仔细打字。我担心如果后续的攻击者开始尝试使用rootkit、文件替换,甚至是驱动文件来隐藏后门,那可就真的麻烦了。.遇到DDOS僵尸网络的概率也小很多。不知道是流量清洗技术成熟了,还是CDN、云反D已经广泛应用,还是自身安全数据缺失。这种类型的僵尸网络除了少数几个,除了XorDDos、XnoteDDos和billgates之外没有流行的样本。此类攻击手段一般比较简单纯粹,以SSH暴力破解为主要入侵手段。出于好奇,我在网上搭建了一个VP_S来测试cowrie的蜜罐,没想到抓到了很多这样的样本。对于很多对业务连续性和可用性要求高的业务,除了常规的DDOS,还有很多需要正常高并发流量和BOT流量的管理对抗场景。从Web业务场景来看,也存在大量进行马匹、轮链、黑链、菠菜等批量挂载攻击流量的Web入侵。此类攻击场景中常见的攻击手段都比较简单,主要依靠webshel??l上传漏洞,而web木马产品的质量和功能极其丰富,环环相扣。从反制的角度来看,虽然此类场景的攻击手段较多,但总体技术门槛并不是很高。从安全风险的角度来看,主要有两个关键问题:漏洞和弱口令。两者都是安全建设中无法回避的两个问题。漏洞的存在一方面来自于开发过程中的疏忽,另一方面来自于外部的风险输入。通过安全开发的基线、代码审查、流程规范以及相应的安全检测工具(IAST、DAST)的帮助,可以规避自身的安全开发。对于很多明显的上传漏洞和存在安全风险的配置项,已经存在高风险的风险框架和组件可以得到积极的影响。同时,借助人工渗透测试,从源头上尽可能降低明显的风险;许多新披露的漏洞可以得到及时修复或缓解。随着当前安全检测技术的成熟,在一定程度上,对此类攻击的检测是基于现有的防火墙、入侵检测与防御、Web防火墙、各种概念封装的态势感知等。速率上基本没有挑战(及时更新规则库)。经过三年的攻防演练,基本可以有效应对一些热门攻击事件。比如现在流行的自动交互响应(AutomatedInteractionResponse,SOAR),是由多个安全产品共同证明和处理的,但它存在于这样的场景中。一些天然的优势(攻击脚本的paybook相对固定)也可以大大减少安全操作的工作量。因此,这种撒网式的收割方式显得咄咄逼人、暴力,实际有效的成功案例相对较少。少数资产缺乏安全防御和边际资产,这些历史遗留下来的资产在中毒后成为主要的受害者群体。对原本安全的内网造成了极大的威胁,所以最近出现了一个关于ASM(AttackAssetExposureSurface)的新分类,主要是从互联网方面寻找更多不在保护列表中的“带”,思路是红队。疾病在线”资产。勒索、定向攻击、窃密,很多时候喜欢把挖矿和勒索放在一起讨论,都是一些常见黑产的能力变现方式。如果从遭遇频率和所使用的技术水平,两者在入侵思路和模式上存在较大差异,与大范围撒网的收割模式不同,大量勒索团伙采用的方式更接近于APT模式,具有针对性以及广泛的信息收集,循序渐进的入侵模型,查明家庭背景后的快速摊牌。从流行的wannacry广泛使用MS17-010和RDP,SMB暴力破解传播,GlobeImposter的后续部分开始使用mimikatz抢密码和群发勒索,现在流行的勒索phobos家族爆发,我们可以清晰的感知到勒索过程中的人为参与逐渐增加。之前参与了多起勒索事件的溯源和审查,印象深刻的是发现攻击者入侵长达5个月之久,广泛搜集内网各类信息寻找核心业务资产和服务器。在内网横向阶段,低级的RDP爆破方式逐渐被摒弃,取而代之的是缓慢的内网检测和基于主机信息收集的定向RDP登录,甚至清理痕迹和删除日志的习惯。对于一些安装了终端杀毒的终端,使用一些驱动级的工具进行卸载较为简单粗暴,以至于大部分被勒索主机的回收站和操作记录中都有一些应急工具的痕迹。祸患往往积聚于丝毫。与批量RCE和漏洞检测相比,大部分恶意行为已经偏离了原有的攻击特征,以至于市面上的大部分安全产品和解决方案似乎都无法如愿以偿。在一定程度上,当前勒索软件产业链后端(勒索软件即服务)的入侵路径与针对性攻击的方式相同,技术上更难以识别和期望依赖单一产品或解决方案。想要一劳永逸地避免此类事件的发现,就必须要……似乎有点盲目自信。之所以将勒索、针对性攻击和窃取场景归为一类,是因为它们在入侵手段上高度一致,但在最终目的上却各有表现;由于最近连续三年的攻防演练,直接对抗这项非常专业的赛事被放在明面上进行比较。最终,不少参会人员发现,很多安全产品的能力在真实对抗场景中,在易用性、安全能力、场景适配等方面存在较大差异。差距。简单总结一下,目前成功率比较高的主要管理方式有:存在高危漏洞、没有安全保护的边缘资产,利用这个跳板接入内网网络;攻击;针对流行/工业应用软件、网络设备和安全设备的0-day攻击;将信息收集与不当配置和泄露帐户相结合的业务级攻击。另一个比较大的特点是,安全厂商在回顾年度攻防演练时,也会结合一些典型案例进行专项升级,这也变相地促进了攻击手段的创新。如果再提升的话,后续活动的成功率会下降很多,甚至直接暴露自己。因此,我们可以看到目前很多攻击的隐蔽性都得到了明显的提升,比如当前流行的DOH域前端技术、webshel??l变形抗性、基于TCP/UDP的隧道通信、白进程远程/本地加载恶意dll、基于Java的增强型字节码内存马后门、无文件攻击、CS马bypassEDR、各种自定义加密的webshel??l通信流量、电视向日葵作为远程软件等。一些恶意漏洞检测流量被用来蒙蔽天空,分散运营的精力职员。还需要时刻提防应用程序的各种0day。从安全构建者的角度来看,在这样的场景下,始终处于被动防御的过程中。甚至不知道攻击者来自哪里,使用什么攻击手段等。攻击那些资产,虽然欺骗防御技术在短时间内得到了推广,但无法解决两大主要问题(业务模拟、漏洞对策)。在大多数群体中,安全人员往往将精力投入到相对有限的资源中,对网络资产并不清晰。在业务快速增长的背景下,风险出现的频率更高。仅依靠目前主流的安全设备进行监控,在应对高隐蔽性攻击场景方面还有较大差距。现在很多场景开始提倡威胁狩猎(Threathunting),基于主动发现威胁的思路,从线索中定位这些高级威胁。企业安全保障建设中比较头疼的问题之一是如何体现工作带来的价值。没有意外的时候,觉得没有存在感。当出现一些安全问题时,日常的工作就显得不完整了。年终总结的时候,比较常规的方法是总结一年抵御了多少次XXX攻击,发现了XXX病毒,紧急处理了XXX事件;但从业务安全角度出发的思路也逐渐清晰起来。是否量化保护XXX用户的信息安全更加明显。在一定程度上,业务安全建设比基础安全建设更容易体现价值。从Web安全角度看,sql注入、XSS、文件包含类等Web基础漏洞出现频率逐渐下降。随着开发者安全意识的提高,各种框架提供的安全组件,安全厂商的设备覆盖,SDL进程限制,以及少量开源的RASP和基于类Nginx中间件的安全模块,此类漏洞的危害已经逐渐减少。因此,在很多渗透测试场景中,更倾向于挖掘业务安全漏洞,典型场景如账号碰撞、未授权访问、请求包重放、条件竞争、任意重置账号密码、短信验证码爆破等场景。但是,此类攻击通常会在应用程序级别造成损失。多年早期典型电商平台存在因身份验证不严导致的任意取消订单、支付漏洞、订单遍历等安全隐患,此类场景下的安全建设往往需要结合具体的业务场景进行分析。从技术角度来看,业务安全最关键的一点是需要解决流程自动化攻击的问题。需要确认当前提交请求的对象是个人还是机器。个人用户在终端上的操作频率和输入量相对有限。很多扫描工具、数据包发起工具、爬虫也可以减少更多没有实用价值的告警声;同时,他们在响应各种类型的猫池、分布式请求和账户维护方面也依赖于不同的业务位置。埋点和行为分析,定位隐藏在正常业务逻辑下的恶意请求。应对入侵-威胁检测入侵检测设备主要分为三类,基于网络流量、终端检测、日志分析;典型网络流量主要涵盖各类IPS/IDS/FW/NTA,终端检测主要涵盖一些国际上常见的杀毒软件(启发式文件查杀,Yara特性),行为检测(IOA),依赖于网络行为(发起和操作系统层面的接收)、进程/服务行为(拉起、创建)、文件行为(打开、写入、更新、删除)进行收集和分析。常见的日志分析类型包括Splunk、LogEasy,或者基于ES二次开发的SIEM分析平台。主要数据源可以分析不同安全设备的告警日志、部分Web应用的日志、操作系统的日志。除了流行的三大类之外,还有威胁情报、沙箱、蜜罐产品等一些特殊能力的产品等不同的产品形态。稍微总结一下,这类安全产品的主要工作原理基本大同小异,基本上都是采集数据、处理数据、分析数据(场景分析、特征工程)、产生安全告警。不同的是,不同的产品采集的数据对象不同,优势场景不同。例如在识别SSH暴力破解的场景中,流量层产品往往无法识别此类加密流量的数据内容,只能从行为端进行判断,但通过终端侧的登录日志分析,可以轻松获取攻击者的来源IP、登录账号、时间等信息。在数据泄露场景下,依靠流量层的数据,从上下行报文的大小和频次统计保护对象的外出流量或检测异常,相比之下在开销和易用性方面存在明显差异到终端级别。优势。但换个思路,你会发现无论是终端数据的分析,还是流量层的数据分析,最终需要识别的攻击场景基本都在第一层。两花开一枝,攻击本身无法察觉。它独立于终端、网络和日志而存在。至少它之前缺少相应的采集探针(Sensors)。做安全运维、分析、溯源的应该都知道,收集的数据越全面,描述一个攻击行为就越详细、详细。准确,从安全效果的术语描述就是高检测、低误报。虽然采集的数据不同,但是处理数据的思路基本是一样的。将字段拆解成多维度的键值对进行存储。当数据量较小时,ES是主要方法。单节点ES通过性能优化EPS在2W左右,集群场景可以适用于数据量小的场景。对于海量数据,无论是分布式存储还是现在流行的数据湖概念,都是针对格式化数据的存储方案(一些商业产品基于流引擎,不存储原始数据)。呈现在用户面前的安全效果的价值,更依赖于安全测试人员能从这批原始数据中提取出的有用信息;分析数据更能体现一个人/团队的安全能力在工程能力阶段,第一阶段是确定应该识别哪些安全问题,过程中使用哪些数据,使用哪些检测方法,以及预期达到什么效果。具体安全场景的选择本身就是一个重点。需要了解目前白帽常用的攻击方式,一些衍生变种,在什么场景下会选择什么样的攻击方式。比如从今年的攻防演练中发现,攻击者普遍以大量的钓鱼邮件作为主要攻击手段,那么我们就需要分析一下在这种场景下需要收集什么样的数据。对于流量层的SMTP、Pop3、HTTP-webmail等内容,如果是加密的httpswebmail或私有协议,很可能无法通过标准化的流量传感器获取到相关信息,终端传感器可以识别新添加的文件。执行可以进一步查杀样本,但无法获取邮件正文的内容。是否可以从流量端识别中毒主机的C2进程?有没有新的方法补充抗杀样本?等等一系列的问题不得不靠安全研究人员去思考,并想出一套切实可行的解决方案。安全检测的思路安全检测的主要思路大致分为两种:基于模式匹配的误用检测和基于算法基线的异常检测。目前,误用检测的逻辑仍然被广泛使用。安全研究人员从已知的黑样本/攻击方式中提取相应的特征域,可能是特定的字符串内容和特定传输协议的字符。字符串集合,开源yara规则识别恶意样本的典型场景。由于攻击者的方法普遍变化很快,一些规则过于严格的策略无法识别变体攻击行为,从而提高检测率的同时牺牲了误报率。虽然单一特征的检测方式准确、快速、有效,但仍然面临着很大的安全挑战,尤其是当特征维度增加时(多条件判断),特征对每个不同维度的权重显得尤为重要。调整有很大的误差,请问代码可以解决吗?答案是肯定的。目前很多AI+安全思想本质上就是解决这样的问题,将设置的好的特性以编码的方式表现出来。通过大量分类优质样本训练,最终将抽象判断转化为多维向量乘法(安全的终点是数学?)。但这也增加了很多不确定性,导致很多安全问题最终无法准确描述;而这类方案有一个很致命的问题,现有的安全能力都是基于已知的攻击方式,这意味着如果是全新的攻击方式,或者不在特征规则范围内的行为,就会被错过了,大量已知的攻击也在衍生出更多新的攻击。由于安全研究人员的特点,安全研究人员需要不断增长知识,提取新规则,识别新风险。从这个背景来看,他们在对抗过程中依然处于弱势地位,只是被动应对。我们希望能够主动应对各种威胁,通过对受保护资产进行一定时间的细粒度化学习定位“出厂配置”的标准行为,只要后续行为满足基线要求访问正常,否则不正常。基于这种思想,即使对于各种变化多端的攻击行为,它仍然可以作为一个常量来应对变化。想法确实比较新,但是在这个过程中,很难建立成百上千种行为的基线,并且要根据具体的场景和行为来建立基线。目前最主要的挑战,对业务复杂/频繁变化的保护对象的适用性比较差。从长远来看,两种不同的检测思路最终会走向统一的方向,以适应当前日益不对等的攻防思路。很多在红队工作的大佬,普遍思维比较活跃,异想天开,出人意表。用安全行话来说就是:表哥姿势很多,但是如何把个人能力转化为产品能力,把进攻能力转化为防御能力?然而,仍然面临许多挑战。最后一个主题是关于安全效果的评估。我觉得在过去的几年里,确实缺乏一种合理的方法或工具来评估现有安全产品的能力。通常,每个产品或制造商都会提供一些“公平公正”的优势。POC的样本集,最后不管怎么测,反正你是最强的,其他的都不好。直到最近,攻守兼备的演练才成为一种最佳的练习方法。颇有一种不接受分数的错觉。应该没有什么比实战环境下的能力考核更有效更有说服力了。安全效果取决于操作,安全操作发现的问题(误报和漏报)可能对安全效果的提升适得其反。每个人都试图在检测率和误报率之间找到一个相对合理的平衡点,这是相当有生成对抗网络的逻辑的,但是安全运维的工作更依赖于白帽的努力。总结甲方(单一场景)和安全厂商乙(多场景)的目标都是保护业务免受安全风险。被保护的业务可能大不相同,但在其所面临的攻击手段和检测技术领域。高度相似,从安全的源头入手降低开发阶段的风险,上线后进行相应的安全防护和检测,应对安全问题,追根溯源。安全是一个很专业的东西,本质一直都是攻防技术。对抗。由于这一年写了很多内部文档,感觉身心俱疲。正好元旦有空,总结一下个人对反入侵技术的一些理解和趋势。文档中有一些遗漏,请指正,如有不同意见或想法,欢迎讨论。