ATT&CK(六)–典型攻击技术的复现

之前学习了一些攻击组织、病毒的分析检测,也学习了高频攻击技术的分析检测,那么还应该对一些典型的攻击技术进行分析,以总结他们的规律,改进模型。

一、基于本地账户的初始访问

初始访问指的是使用各种登陆载体在网络中获得初始访问立足点的技术,比如攻击漏洞,鱼叉攻击等。能使用有效凭证和外部远程服务,或者更改密码让原本的用户无法登录,能导致持久化。
T1078.003本地账户:
攻击者通过获取利用本地账户凭证,实现访问初始化、持久化、权限提升、防御逃跑。
攻击者会在windows操作系统中创建具有管理员权限的账户,为了隐藏踪迹它们也会使用清楚命令。

二、基于WMI执行攻击技术
执行包括在本地执行以及远程执行。
T1047windows管理规范:
windows管理规范(WMI)是一种windows管理功能,可以为windows系统组件的本地和远程访问提供相同的环境(用于比如说远程办公)
WMI依赖本地和远程访问的WMI服务,以及远端访问的服务器消息块(SMB)远程过程调用服务(RPCS),RPCS通过135端口运作。

攻击者利用WMI与本地和远程系统进行交互,并且将其作执行许多攻击战术的手段,比如搜集信息、横向移动。

三、基于浏览器插件实现持久化

四、基于进程注入实现提权

五、基于Rootkit实现防御绕过

六、基于暴力破解获得凭证访问权限

七、基于操作系统程序发现系统服务

八、基于SMB实现横向移动

九、自动化搜集内网数据

十、通过命令与控制通道传递攻击载荷

十一、成功窃取数据

十二、通过停止服务造成危害

ATT&CK(五)–高频攻击技术

之前学习了解到一些攻击组织或者恶意程序的特征分析检测方式,那么学习当今使用频率高的攻击技术的特征分析与检测也是很有必要的。

一、命令和脚本解释器(T1059)

1.powershell(T1059.001)

在之前关于powershell以及内网安全的文章提到相关内容。

2.Windows cmd shell(T1059.003)

常常使用cmd调用本机命令,并且将这些命令得输出重定向到本地管理共享文件。

检测方法:
windows得安全事件日志,包含命令行参数的进程创建(ID4688)事件,是检查windows cmd shell被恶意使用的最佳来源。重点关注不常见的执行模式以及一些跟恶意行为有关的执行模式,这就体现了使用框架的优越性,能通过判断上下文关系,来推算出攻击手段。
·检测cmd.exe进程含有混淆字符的情况,包括^、+、%、!等
·在cmd.exe中大量使用set和call命令
·将输出重定向到本地主机管理共享中,例如:>\\computername\c$
·执行会引发其他攻击相关的命令(例如调用regsvr32.exe或者regasm.exe或者加载DLL)
·调用reg.exe,修改注册表,启用或者禁用掉远程桌面或者用户访问控制等功能

二、利用已签名二进制文件代理执行(T1218)

该技术的两个子技术:Rundll32和Mshta在目前使用频率高

1.Rundll32(T1218.011)
攻击者使用Rundll32.exe直接执行恶意代码,可以避免触发安全工具,因为目前程序将其加入白名单,工具无法对其进行监控。Rundll32是windows的一个内置的进程,支持DLL。
攻击者将恶意代码作为DLL执行,避免恶意代码直接出现在进程树中。更为常见的是攻击者利用DLL中的导出函数(如DllRegisterServer勒索病毒通过它来绕过策略)绕过代理和逃避检测。
攻击者利用Rundll32从可以写入的(有权限的)目录(如Temp目录)中的DLL文件加载代码。利用Rundll32加载合法的comsvcs.dll导出MiniDump函数,来转移某些进程的内存。

Cobalt strike利用StarW函数从命令行加载DLL,如发现有代码使用这个函数,证明可能遇到了CS

检测Rundll32主要进行命令行参数监控、进程监控。
检测Rundll32的方法:
①从全局可写文件夹执行:攻击者经常利用Rundll32从全局可写文件夹中加载或者写入DLL,所以我们可以监控跟一下位置有关的情况,如下图

②导出函数
③异常进程:看Rundll32的父进程是否合乎道理,下图进程一般不会产生新的Rundll32

2.Mshta(T1218.005)的分析与检测

Mshta能够通过受信任的程序代理执行攻击要执行的代码。与Rundll32相似,Mshta.exe是windows自带的一个二进制文件,用于执行HTA(Microsoft HTML Application)文件。Mshta能通过网络代理执行嵌入HTML中的windows Script Host代码(VBScript和JScript)。是一个受攻击者欢迎的通过受信任的签名程序代理执行恶意脚本的工具

Mshta执行恶意VBScript和JScript的方式:
·通过在命令行中传递给Mshta的参数进行内联执行;
·通过HTML Application文件或者基于COM执行,以便横向移动;
·通过调用mshtml.dll的RunHTMLApplication导出函数,用Rundll32.exe代替Mshta.exe

书本内容提到,随着2018年Kovter消失,通过命令行执行代码的方式逐渐减少。攻击者转而使用执行存储在文件中的代码这样的方式。攻击者在命令行使用本地磁盘文件路径、URI路径等,指示Mshta执行存储在本地或者远程的文件中的HTA内容。其优点是:在命令行看不到payload

检测Mshta需要收集的数据:
·进程和命令行监控:
·进程元数据:攻击者会重命名Mshta二进制文件。重命名系统程序(隐藏、抹去安全审计痕迹)、内部进程名称等二进制元数据,能有效确定进程真实身份。
·文件监控和网络连接

检测Mshta方法:
①内联脚本执行和协议处理程序:
Mshta允许内敛执行Windows WSH脚本,依据不同的协议处理程序。因此我们可以查找Mshta.exe,以及包含与mshta相关的协议处理程序的命令行的执行情况;
②可疑进程的溯源:
与Rundll类似,由于是windows自带所以很常见,此时我们要考虑异常的进程之间的派生关系。比如word执行mshta是异常的。
③Mshta伪装:
就是重命名。如果文件内部元数据信息中的文件名和Mshta一致但明显和磁盘文件名不一样,要着重注意。书中写道,攻击者还会将Mshta移出System32或者SysWOW64目录中的正常位置,给我们启发,不仅除了排查内部名称与外部名称不一致的,还可以找在合法位置之外出现执行Mshta的情况。
④网络连接和HTA内容:
Mshta执行的文件会存储在磁盘上,以.hta为扩展名。因此,需要检测分析来自URI、UNC路径、NTFS交换数据中远程托管的或者不以.hta结尾的HTA文件的执行。
查找是否有mshta.exe进行外部网络连接;排查Mshta是否通过URI下载并执行HTA内容。
HTA文件通常是MIME类型(多用途互联网邮件扩展类型)的。

三、创建或修改系统进程(T1543)

书中给出了这么一个定义:检测到最多的攻击技术是“创建或修改系统进程”,而且主要是windows服务,攻击者通过这个技术来实现持久化战术。检测到的数量多自然离不开windows服务,系统后台运行的常见二进制文件,在执行时通常不会引发警报,那么攻击者通过创建、修改系统服务进程,既能够瞒天过海,还能够取得较高权限。
攻击者经常使用Windows服务控制管理器配置工具(sc.exe),根据需要修改或者创建服务

检测windows服务要收集的数据:
·命令行监控:比如检测到使用sc.exe手动创建、注册、修改服务
·进程监控:出现随机进程名
·windows事件日志:关注4697、7045、4688
·windows注册表:对注册表的异常修改,如对HKEY_LOCAL_MACHINE\SYSTEM\CurrentSet\Services
进行修改,说明可能存在不受信任的服务
·文件监控:

四、计划任务/作业(T1053)

攻击者可以利用windows计划任务(task scheduler)实现初始访问重复执行恶意代码,在系统启动时或调度任务时执行恶意程序,实现持久化。
很多合法软件需要持久化,因此计划任务是不能够关闭或者阻止的。攻击者往往会混入正常使用,来绕过检测。攻击者常常同时使用计划任务和混淆文件或信息。
关于持久化,也就是计划任务,在学习内网安全的时候接触过,以前是用AT后来AT淘汰后使用schtasks。书中指出,在schtasks常用参数中,靠前的是 /Create、/Change、/Run、/Delete、/Query.
热知识,一天一共86400秒。攻击者很有可能在任何一秒启动计划。

检测计划任务需要搜集的数据:
·windows事件日志:(windows-Task-Scheduler/Operational日志)监控计划的创建、修改、删除、使用。
事件ID106、ID140记录创建、更新计划任务的事件、名称。ID141监控计划任务的删除信息。书中提到还要启用对象访问审核,创建特定的安全访问控制列表(SACL),收集ID4698(计划任务创建)、ID4699(计划任务删除)、ID4700(计划任务启用)、ID4701(计划任务禁用)。

·进程和命令行监控:

检测计划任务的方法:
首先,恶意计划任务常见的二进制文件有:cmd.exe、powershell.exe、regsvr32.exe、rundll32.exe
①Taskname、Taskrun
它们分别为/TN、/TR标记的传递参数。要留意包含TaskName或者/TN值。攻击者经常将而已任务的名字伪装,如使用GUID(如Qbot)混入合法的活动名称。而Taskrun一般会指定了预定时间执行的内容,攻击者曾通过使用LOLBINs或者将磁盘上的恶意软件命名类似合法的系统封程序。任何指向脚本的Taskrun都要注意

②没有schtasks.exe的计划任务:
由于攻击者可以在COM对象的帮助下直接创建或者修改任务,无需调用schtasks.exe和taskschd.msc,我们就要注意在\Windows\System32\Tasks以及\Windows\SysWOW64\Tasks目录中监控 文件创建、修改 事件。

③异常的模块加载:
监控镜像加载,例如\Windows\System32\taskschd.dll,通常不会被Excel或者word等进程加载。收集这些异常信息我认为可以通过黑白名单的方式。

五、OS凭证转储(T1003)

在内网学习的时候OS凭证转储就发挥了横向移动的作用。攻击者常使用的是LSASS内存(T1003.001)。LSASS本地安全验证子系统服务。

使用LSASS内存的原因:
首先它存储在内存中的敏感信息数量庞大,是很容易攻击的目标。攻击者攻击LSASS进程获取里面的凭据,使用Mimikatz等工具,攻击者通过现有beacon能轻松访问LSASS。
攻击者在目标设备上运行受信任的管理工具,如Sysinternals工具(ProDump)。书中提到,如果攻击者在目标主机以特权用户执行任务管理器(taskmgr.exe)的时候可以轻而易举转储任意进程的内存数据。
创建转储文件需要用MiniDumpWriteDump函数,在dbghelp.dll和dbgcore.dll中实现。rundll32.exe可以执行Windows本地DLL文件comsvcs.dll导出的MiniDumpW函数。
能够访问LSASS的工具:
·ProDump
·任务管理器(taskmgr.exe)
·Rundll(comsvcs.dll)
·Pwdump
·Lsassy
·Dumpert
·Minikatz
·Cobalt Strike
·Metasploit
·LaZahne
·Empire
·Pyoykatz

检测LSASS内存要收集的数据:
·进程监控
·文件监控
·网络连接

检测LSASS内存方法:
①基线:分析异常使用LSASS迹象
②注入LSASS进程的可疑代码
③检测MiniDumpW函数的使用情况

六、进程注入(T1055)

攻击者通过进程注入,将如lsass.exe与正常的进程融合,通过他们来代理执行恶意活动。通过进程注入,可以运行进程的内存空间内启动恶意payload,无需将任何恶意代码存储到磁盘中。
常见的攻击者使用的方法:
·远程把DLL注入正在运行的进程
·注入受信任的内置可执行文件(如notepad.exe)建立网络连接,然后注入恶意行为的代码
·从lsass.exe跨进程注入taskhost.exe
·Metaspolit将自身注入svchost.exe
·注入浏览器进程,窥视

检测进程注入的数据:
·进程监控
·API监控
·命令行监控

检测进程注入的方法:
①异常的进程行为:进程做了不属于它职责的事情
②异常的路径和命令行:
rundll32.exe、regasm.exe等没有发现命令行选项,可能表明他们是被注入的目标;
Microsoft进程,如vbc.exe的命令行包括/scomma、/shtml表明可能注入了Nirsoft工具以进行凭证访问;
如果在linux进程的文件描述符指向的文件路径带有memfd标志,表示他是从另一个进程的内存派生出的。
③注入LSASS

七、混淆文件或信息(T1027)

攻击者用该技术来实现隐藏,常见的混淆技术:
①base64编码
②字符串拼接
③转义字符

检测混淆文件或信息所需要搜集的数据:
·windows事件日志
·进程和命令行监控:通常混淆由powershell.exe和cmd.exe命令启动

检测混淆文件或信息的方式:
①BASE64:可以检测powershell.exe和amd.exe进程的情况,看看有没有包含ToBases4String和FromBase64String等参数的命令行。
②其他编码:书中提到最常见的混淆形式是使用-EcodedCommand Powershell参数。监控当执行Powershell.exe出现转换编码命令的情况。
③转义字符:如果系统经常使用大量与混淆相关的字符,要警报。

八、入口工具转移(T1105)

书中提到LOLBINs,找到天融信介绍它的文章。LOLBINs-生活在陆地上的二进制。能被称为LOLBINs的程序符合:
·可以是带有Microsoft签名的二进制文件,可以是Microsoft系统目录中二进制文件。
· 可以是第三方认证签名程序。
· 具有对APT或红队渗透方有用的功能。
·该程序除过正常的功能外,可以做意料之外的行为。(如:执行恶意代码、绕过UAC)

攻击者进行入口工具转移的原因:
渗透测试到了后渗透阶段,攻击者就会进行持久化、留下backdoor,然后横向移动。
攻击者攻陷内部系统会尝试网络连接,以此来下载其他恶意软件、脚本、代码等。这里可以重视,攻击者必须下载文件才能成功执行入口工具转移。攻击者贡献目标后会通过二进制文件LOLBIN执行入口工具转移,通常包括:BITSadmin、Certutil、Curl、Wget、Regsvr32、Mshta

检测入口工具转移需要搜集的数据:
·命令行监控:
·进程监控
·网络连接
·数据包捕获

检测入口工具转移的方式:
①最有效的方式是,检测powershell命令行的关键字和特定模式。比如有无使用:
·downloadstring;
·downloaddata;
·downloadfile;
又或者,命令行出现的参数由bitsadmin.exe、certutilulrcache、split这些字符串,很有可能存在下载恶意文件的行为。
②注意检测可疑的命令模式,如Wget、curl

九、系统服务(T1569)

攻击者可以通过与服务交互或者创建服务来执行恶意代码,并且通过开机自启动实现持久化,攻击者最常使用的技术是“服务执行“(T1569.002)

攻击者利用windows服务控制管理器(services.exe)执行恶意命令或恶意payload。

在操作系统中,只有所有的进程都退出了才能关闭系统,而为了保证业务可靠性,可以通过检测每个程序的守护进程来判断能否关机。所有的windows服务都是作为services.exe的子进程产生的的。

需要检测的数据:
·进程和命令行监控
·DLL加载监控:Sysmon事件的ID7
·设备驱动程序加载监控:windows defender应用程序控制(WDAC)是设备驱动程序监控的有效数据源
·UNIX/Linux系统:系统对守护进程的配置文件变更发出警报。

检测系统服务最有效的方式:查找从服务控制管理器派生的cmd.exe实例。在命令行中查找/c能缩小潜在的交互式会话。

十、伪装(T1036)

通过伪装,躲开检查。经常用到重命名系统程序(T1036.003)

检测伪装的方式:
·已知的进程名称
检测内外名称不一致的情况
·已知的进程路径
内外路径不匹配的情况
·已知的进程哈希值
哈希值出现偏差要警报
·系统进程已知的命令行参数
两个进程用到同样的命令行参数,要警惕

ATT&CK(四)–一些攻击组织和恶意软件的分析检测

学习这部分内容,感觉一下子拉回到了2018到2019的那段时间,宏病毒再各大学校肆虐,学校机房上课的老师忙着杀毒恢复数据。但培训还要用到宏,顶着风险课还是照常教我们用word的宏。注意到在很多用于勒索的恶意活动,都以宏作为载体,编写恶意代码,在编写具有诱惑力的钓鱼文件,促使很多人中招。所以还是说不管技术多么先进,人的意识不够高警惕性不够强的话极有可能正中攻击者下怀。

通过分析一些攻击组织或者恶意软件的特征,帮助我们日后排查安全问题的时候产生思路,或者有目的的对不安全的系统进行加固。下面根据书中介绍简单做下笔记:

1.TA551(一个攻击组织)攻击行为的分析与检测
该组织十分喜欢网络钓鱼来投递payload,投放的payload包括IcedID和Valak。它们常利用宏加载病毒的word文档压缩成zip包,并对其进行加密,放到钓鱼邮件中诱使受害者打开,之后会从其他地方下载后续使用的恶意软件。
禁用宏是很好的方法,但是为了高效办公或者其他原因,很多组织机构和用户是不禁用宏的。为了安全,它们最好启用纵深防御。恶意代码下载的DLL文件可能会使用“.theme”之类的扩展名来混淆,word是很多个文件压缩而成的,”.theme”是文档使用的主题一类的代码。
尽管该组织经常想要绕过防御,但还是会泄露出一些特征,比如恶意word执行了regsvr32.exe是极其不寻常的事情,就可表明存在恶意宏。
此外我们还可以检测二进制文件的哈希值或者内部元数据,若预期的文件名和观察到的文件名不一致,就要检查,发现与典型行为异常的事情就可能出现安全问题。类似的wmiprvse.exe作为mshta.exe的父进程出现是极其不寻常的。

2.cobalt strike的分析与检测
cs作为主要的渗透测试框架工具,被广泛使用,如果能检测到cs的使用痕迹,就要做出对应的措施。
cs可以生成和执行DLL、EXE、shellcode形式的payload,也叫cs的beacon。
·cs beacon通常利用进程注入绕过防御,在rundll.32.exe等windows二进制文件的内存空间执行恶意代码。
·cs beacon也可作为windows服务执行,利用poweshell代码或二进制文件,实现PsExec的功能。
·cs 还可以用命名管道模拟NT AUTHORITY/SYSTEM执行代码,实现对主机的无限制访问。
那么怎么检测cs活动呢?
·检测beacon,比如搜索powershell.exe进程,其命令行含有常见的关键词个BASE64编码变体,包括IO.MemoryStream、FromBaselineString、New-Object
·识别命令处理程序CMD.EXE的实例来检测通过命名管道模拟实现权限提升的行为,找到关键字为echo、pipe。

3.银行木马Qbot
Qbot是针对银行的木马,通常作为勒索软件的传递代理,传播包括ProLock和Egregor勒索软件。
他主要窃取用户数据和银行凭证,防御思路是检查正常的esentutl命令行,如果看到引用Windows\webcache是很不正常的事情,那么我们可以编写程序查找windows\webcache中的esentutl.exe进程。

4.银行木马IceID
也叫Bokbot,它会创建本地文件来拦截失陷主机上所有浏览器的流量,窃取敏感信息。IceID会通过下载二进制文件到用户的本地文件夹来实现持久化。它还包含VNC功能,用于远程访问目标机器。
我们可以:
·检测使用msiexec.exe执行随机文件名的.msi文件;
·检测用户漫游文件夹中执行计划任务,比如寻找启动文件在%Users%文件夹中的计划任务,排除IceID持久化的风险

5.凭证转储工具Mimikatz(内网常见)
主要用来提取密码、横向移动。
之前的攻击者会把Mimikatz二进制文件保存在C:\PerfLogs\目录中,该目录值得重视。
该工具有个常见的模块sekurlsa::logonpasswords,用于提取最近在主机上登陆的账号和密码,是可以被检测的明显特征。

6.恶意软件shlayer
这个木马与恶意广告相关,他会伪装成Flah,利用AWS部署基础设施。
我们可以检测:通过curl命令下载payload

7.银行木马Dridex
通常通过附带恶意excel的文档的电子邮件传播,通常跟Ursnif、Emotet、TrickBot、DoppelPaymer等共用。
Dridex最常用技术是对各种合法的windows可执行文件进行DLL搜索顺序劫持。
我们可以检测:
·创建包含系统目录的和计划任务
Dridex通过Windows\System32\、Window\SysWOW64、winnt\System32和Winnt\SysWOW64等系统目录创建计划任务,实现持久化。我们查找命令行中是否包含“/create”标志和系统路径的schtask.exe,用于发现dridex残留
·检测用Excel生成的regsvr32.exe。我们可以查找是否有excel.exe生成子进程regsvr32.exe.

8.银行木马Emotet
它主要作为其他恶意软件的下载器或者drooper。它窃取用户数据和银行凭证,并把自己部署到攻击目标上。
我们可以检测:
·poweshell字符串混淆
查找是否有powershell进程执行使用格式运算符“-f”连接字符串的命令。

9.银行木马TrickBot
它能生成Ryuk和Conti。
它窃取敏感数据和凭证,也可以传播cs等后续payload,分发上述俩恶意软件。
我们可以检测:
·svchost.exe端口连接异常。比如svchost使用447、449端口进行外部链接是不正常的
·检测%appdata%d的计划任务执行,可以查找父进程是taskeng.exe或者svchost.exe且进程文件在APPdata/Roaming中的可疑程序

10.蠕虫病毒Gamarue
它是一个恶意软件家族,通常是僵尸网络的一个构成部分。用于传播其他恶意程序以及窃取信息。用户点击了伪装成U盘上合法文件的恶意LNK文件,这会导致rundll32.exe开始执行,之后加载恶意DLL文件。
我们可以检测:
·可以查找是否存在没有命令行的msiexec.exe进行外部网络连接
·检测域名

通过学习检测这些攻击团队或者恶意程序的思路,有助于我形成更大的大局意识,处理安全事件要思路广泛,一切挂钩的事件都有可能潜藏着攻击者精心布置的文件,我们要能识别出它们,根除它们,保证信息安全。

ACC&CK(三)–数据源

框架能否发挥应有的作用我想最关键的地方就在于它的“数据源”

框架建立在从数据源上搜集信息,对信息进行分析处理,得到了上下文联系,由此对于入侵检测入侵防御的精确度提高有所帮助。也就是说我们继续改进对于数据源的利用,会让我们的工作更加高效。

书中有三个方法提高数据源的利用效果:

①定制数据源定义
②标准化命名方法
③确保平台一致性

·定制数据源定义
所谓数据源,我想就是获取我们想要收集数据的地方,比如某个日志,比如某个配置文件。定义好数据源让我们清晰的区分不同的数据源,以及理清楚数据之间的关系

·标准化命名方法
其重要性在于正确区分数据源,精确搜集数据

·确保平台一致性
因为某些数据源在某些平台是没有的,所以确定好数据收集平台,能提高效率。

我们明白了要改进利用数据源的方法,那么具体实现应该是怎么样的呢,换句话说我们该如何正确定义、描述数据源?书中给出了如何描述数据源的结构和方法的答案。

①利用数据建模
②通过数据元素定义数据源
③整合数据建模和攻击者建模
④将数据源作为对象集成到ATT&CK框架中
⑤扩展ATT&CK数据源对象
⑥使用数据组件扩展数据源

·利用数据建模
三个概念:
数据对象/元素:描述数据源的数据元素
数据对象属性:数据的一些属性信息,比如说名称,地址等
关系:数据之间的关系,比如一个进程可以创建另外一个进程

·通过数据元素定义数据源
也就是给数据源起名字的方法。可以使用数据元素来命名与攻击行动有关的数据源
例如:
以windows注册表为数据源,他的数据元素中包括进程、注册表项、用户,其中注册表项是用来识别主要数据对象的,可以用来作为数据源名称。
再例如:
对提供某项服务的数据元素进行分组,根据他们共有功能取名称。

·整合数据建模和攻击者建模
因为框架针对的是已知的攻击方式,所以要确定必须收集某些特定的事件,覆盖已知的特定的攻击

知道了要怎么定义、描述数据源后,应该要着手实装这些方法。书中以改进进程监控为示范,解释如何改进:

1.改进进程监控

①确定数据源
可以从内置事件提供程序(如microsoft-windows-security-auditing)和开源第三方工具(sysmon)来采集跟进程相关的信息。在这一步骤目的是找到攻击行动的主要数据元素,比如从安全日志中找到跟进程相关的,同时给出说明,也就是描述进程做了哪些事情,发生了哪些事情。

②确定数据元素
也就是列出跟相关的数据,比如用户、进程、命令、主机、ip、端口都可以跟进程产生一定的联系。书中提到,数据源的命名由核心数据元素表示,比方说“进程监控”,由于监控是围绕进程产生的行为,我们应该选择“进程”作为数据源名称,从而删除多余的无关措辞。

③确定数据元素之间的关系
根据采集到的数据来描述跟“进程”相关的安全事件案中的关系

④定义数据组件
组件其实就是根据数据元素的功能或者特性进行分类,形成对数据元素之间关系的更高级的描述,也就是更细致的描述。

⑤构建ATT&CK数据源对象

书中的描述 “进程”这一数据源的方法

接下来我们要跟技术/子技术联系在一起,如下图,书中给出了应用的例子:

ATT&CK(二)–针对容器的攻防矩阵

容器,是一种轻量型的虚拟化技术,用于进行云应用程序快速部署。也就是虚拟机,把云应用当镜像一样丢进去运行,就跟玩kali那样。

kubernetes是最常见的容器编排工具,而docker是容器,它们算得上是云技术的基础设施。

ATT&CK针对容器这一部分提到,攻击者主要是通过让受害者下载并且运行恶意镜像,导致受害者主机执行了恶意代码。
针对容器的技术:
①执行命令或进程
②植入恶意镜像实现持久化
③通过容器逃逸实现权限提升
④绕过或者禁用防御机制
⑤基于容器API获取权限访问
⑥容器资源访问

针对kubernetes的攻防矩阵:
①通过漏洞实现对kubernetes的初始访问
②恶意代码执行
③持久化访问权限
④获取更高级访问权限
⑤隐藏踪迹绕过检测
⑥获取各类凭证
⑦发现环境中的有用资源
⑧横向移动
⑨给容器化环境造成伤害

ATT&CK(一)—了解这个框架

以前区长说:“三流企业靠产品、二流企业靠理念、一流企业靠标准”

信息安全发展来到今天,面对未知挑战,我们需要靠标准化来促进安全从业人员交流,众志成城。

Mitre ATT&CK框架概述

业内知名项目CVE、CWE都是由Mitre公司发起并且维护至今。

ATT&CK是对抗战术和技术知识库(Adversarial Tactics,Techniques,and Common Knowledge)是一个对抗行为知识库

这个知识库具有以下特点:
·基于真实观察数据创建的
·公开免费、全球可访问
·由社区驱动发展

在该框架中会反复提及“战术”、“技术”:
·战术:实施ATT&CK的原因,就是攻击者要达到的预计目标,比如说攻击者想要横向移动
·技术:实现战术目标利用的具体手段,比如说,我要实现横向移动需要使用hash传递

MITER ATT&CK确定的三个技术领域:
①Enterprise-用于传统企业网络和云技术
②Mobile-用于移动通信设备
③ICS-工业控制系统

网络杀伤力链(七个阶段):
①侦察
②武器化
③载荷投递
④漏洞利用
⑤控制
⑥执行
⑦维持

ATT&CK的Enterprise对应侦察到漏洞利用部分。

使用这个框架的用意之一在于在被攻击的时候能逆向推出攻击者的攻击手段,也预测攻击者攻击之后的意图,提前进行防御。

ATT&CK通过收集新技术相关的信息,完善自身,一般来自:
·威胁情报
·会议报告
·网络研讨会
·社交媒体
·博客
·开源代码仓库
·恶意软件样本

ATT&CK是中级抽象模型,比起低级抽象模型的网络杀伤力链和高级抽象模型的漏洞库和利用模型,ATT&CK能通过联系威胁情报和事件数据推测谁在做什么

痛苦金字塔模型
痛苦金字塔模型由IoC(indicators of compromise,失陷指标)组成,ico用来衡量攻防对抗中的价值,下面由高到低给出痛苦金字塔模型:

①TTPs(Tactics,Techniques and Procedures战术、技术及步骤):很难
②工具:有挑战性
③网络/主机部件:恼人
④域名:简单
⑤IP地址:小菜一碟
⑥哈希值:不值一提

ATT&CK五大对象:
①攻击组织
②软件
③技术/子技术
④战术
⑤缓解措施

框架的意义在于能根据上下文推测出攻击者的意图以及倒退步骤,我想搜集到足够的数据之后,我么能够在网络攻击发生刚开始就能识别出可能的后续,进而让系统自主防御。这跟IPS和防火墙有明显的性质,那就是它们只能识别已知的安全问题,对于未知如0day漏洞等也肯定是无能为力。不过就算是0day也会需要一些前提条件,框架发挥的作用在于让这些前提条件无法达成。