diff --git a/文献阅读/2020.06.01-2020.08.30.md b/文献阅读/2020.06.01-2020.08.30.md new file mode 100644 index 00000000..34dba5d4 --- /dev/null +++ b/文献阅读/2020.06.01-2020.08.30.md @@ -0,0 +1,329 @@ +# 文献整理——漏洞利用 + +> 一周后主动与夏老师交流,对当前的研究方向的困惑,以及存在的问题,是否修改当前的研究方向。唉,感觉,过去的半年,从来没有把这种研究放在心上,导致自己现在已经落后太多了,可能关键就在与研究方向的确定。 +> 其实想跟夏老师说明,自己并不想做漏洞利用,漏洞信息挖掘?数据采集?方面的还可以。群体智能与态势感知。对方向的迷惑才是最难的。 +> 基于群体智能的漏洞挖掘技术,能否成为一个很好的切入点呢? + +读懂论文-----技术实现-----补充基础知识 + +## 1 Linux 内核漏洞利用生成关键技术研究 + +### 关键名词(不太理解的基础知识) + + +* SMAP超级用户模式访问保护 +* 栈迁移 +* 汇编指令mov、pop、let +* 程序编译执行的内存空间:bss、data、code、heap、stack +* nmap、nessus。网络扫描工具和评估系统漏洞的工具 +* gcc编译器、gdb调试器以及nasm汇编器 +* 栈金丝雀 +* 模糊测试 +* 符号执行 +* 模型检测 +* 污点分析 + +### 背景 + +* 漏洞 (vulnerability)是可以用来违反系统安全策略的缺陷或错误。 +* 产生的原因:C/C++ 缺乏安全性检查->越界指针、悬空指针->内存破坏漏洞 + +* 常见的漏洞类型:**栈缓冲区溢出 (stackbufferoverflow)、类型混淆 (typeconfusion)、内存释放后使用 (use-after-free)、空指针引用(nullpointerdereference)、使用未初始化变量(use-before-initialization)、内存信息泄露(information disclosure) 等类型。** + +* 分类:用户态程序漏洞利用、操作系统内核漏洞利用 + +* 作用:内核漏洞安全风险评估;提升系统安全防御能力;完善漏洞利用的理论研究。 + + +### 内核漏洞利用生成技术 + +* 奇异状态机:内存安全违例操作-> 正常执行状态->异常状态。 +* 内核漏洞利用定义:在基于奇异状态 机的漏洞利用模型下,漏洞利用就是在异常状态空间中,寻找一条路径以实现特 定计算目标的过程。 +* 内核漏洞利用的过程: + * 构造内核漏洞触发验证程序。创建可执行程序,发起一系列系统调用并触发目标程序——Linux 内核中的漏洞 + * 寻找漏洞利用原语。常见的漏洞利用原语种类包括**控制流劫持、内存非法写和信息泄露**等漏洞利用原语。触发内核漏洞后执行的程序。漏洞利用原语用于描述漏洞利用所需 的关键程序状态转换,因此漏洞利用原语有时也被简称为“可利用”(exploitable) 程序状态。从漏洞触发状态到漏洞可利用状态。 + * 根据漏洞利用原语,生成漏洞利用。漏洞利用原语+漏洞触发的上下文(防御机制等)生成具体的漏洞利用方法。 + +* 面临的挑战: + * 缺乏内核漏洞利用生成所需的 “原料”— 漏洞利用原语。 + * 缺乏漏洞利用原语进行“加工”的技术—即根据漏洞利用原语生成实际可用内核漏洞利用的技术(利用原语评估)。 + +* 现有内核漏洞利用的局限性 + * 缺乏灵活变化漏洞触发上下文的能力 + * 缺乏内核漏洞利用原语高效评估方法 + * 突破绕过主流内核利用缓解机制的不足。 + +### 本文主要工作 + +![](/文献阅读/img/内核漏洞利用.jpg) + +* 基于模糊测试的内核UAF漏洞触发方式多样化。 +* 基于内核部分符号执行的利用原语发现与评估技术。将控制流劫持、内存非法写和内存泄露等利用原语定义为符号 执行需探索的特殊程序状态; +* 内核控制流劫持原语评估与缓解绕过技术。绕过主流Linux内核利用缓解机制能力不足、构建利用链 困难以及利用路径陷阱导致的内核崩溃等问题 + +### 研究现状 + +漏洞挖掘技术 +* 静态漏洞挖掘技术 +* 符号执行 +* 模糊测试 +* 内核模糊测试 +* 多程序分析技术的融合(动静结合?) + +常见内存破坏漏洞 +* 堆栈溢出漏洞 +* 释放重用漏洞 +* 类型混淆漏洞 + +常见漏洞利用原语 + +* 控制流劫持。可以分为代码注入攻击和代码重用攻击。 +* 数据写入 +* 信息泄露 + +常见控制流劫持防御机制 + +* 控制流完整性检查 +* 数据流完整性检查(地址空间随机化也是为了保护数据流完整性) + +操作系统内核漏洞 +* rootkit,通过内核补丁获得内核权限。 +* bootkit,修改引导扇区。 +* 内存破坏漏洞 + +自动化生成技术 +* SEMFuZZ + +### 基于模糊测试的内核UAF漏洞触发多样化 + +* 悬空指针出现与解引用之间形成时间窗口 +* 进行堆喷 +* 修改漏洞触发验证程序 + +3.2 给出了UAF漏洞触发验证程序的原理,3.2.1给出了一个UAF漏洞实例程序。3.2.2指出了UAF漏洞过程中存在的问题和解决的办法。 + +### UAF漏洞触发路径 + +* op1 申请一个对象 +* op2 指针指向对象 +* op3 悬空指针生成 +* op4 对悬空指针解引用 +* op5 其他对悬空指针解引用 + +相关定义: +* UAF漏洞触发上下文,op1~op4的四元组 +* UAF漏洞触发的中间点,op3和op4之间的过渡期。 +相关现象: +* 内核对象有多重访问方式 +* op4带来内核崩溃 +* op4之后悬空指针消失 + + +### 第四章: 基于内核部分符号执行的利用原语与评估技术 + +* 内存破坏检测器,程序插桩和动态翻译,寻找违反程序安全规则的状态。 +* 漏洞 PoC 并使用 QEMU trace 插件或 intel-PT(processor tracing) 硬件特性等工具 记录 PoC 执行的路径,并采用符号跟踪技术 (symbolic tracing)1对路径进行模拟 重放,并收集路径上的约束(pathconstraints,又称pathpredicates)使用启发式规 则发现路径重放过程中的违例程序状态。 + +具体介绍:利用基于 UAF 漏洞触发中间点的模糊测试技术获得 多样化的内核漏洞触发上下文,然后利用部分符号执行来探索不同漏洞触发上 下文中的漏洞利用原语,并进一步基于漏洞利用原语生成漏洞利用。 + + +* 首先,Fuze可以帮助安全分析人员自 动识别 UAF 漏洞利用相关的关键系统调用。 +* 其次,它可以为安全分析人员自动 计算他需要堆喷射到漏洞对象区域的数据。 +* 第三,它有助于安全分析人员查明需 要执行堆喷射和进行漏洞利用的时间范围。 +* 最后,它为安全分析人员提供了绕过 部分内核利用缓解机制的能力。 + + +### 实现方案 +* QUEM虚拟系统+GDB调试获得执行状态快照 +* 在符号执行过程中,从漏洞的角度对UAF漏洞和堆溢出漏洞进行符号化假设,即将UAF漏洞和堆溢出漏洞加入符号化过程。 +* 漏洞利用原语发现:控制流劫持原语、内存非法写原语、内核内存泄露。 +* 符号地址处理。绕过漏洞利用缓解机制。 +* 利用原语评估。ret2usr,pivot2usr,cr4寄存器篡改 +### 第五章:内核控制流劫持原语评估与缓解机制绕过技术 + +* 自动漏洞利用技术的工作流 + * 利用原语发现 + * 利用原语评估 + +* 漏洞利用存在的挑战 + * 安全防御机制:编译器插桩、敏感数据保护、虚拟化程序管理、控制流完整性。 + * 利用漏洞陷阱:意外终止利用。额外的约束条件、绕过陷阱约束。 + * 不合适的漏洞利用原语。 + +* KEPLER:单发漏洞利用链。图灵完备性。 + * 增强控制流劫持原语。 + * 绕过利用路径陷阱。 + * 突破主流内核安全防御机制。 + +* KEPLER由五个工具函数代码片段组成利用链 + * 输入输出通道函数 + * 绽放工具函数 + * 桥接工具函数 + +* KEPLER相关工具 + * IDA SDK + * KVM QEMU + * angr + +### 威胁模型与假设 +* 内核安全防御机制的设定。SMEP、SMAP、KPTI、KASLR内核空间地址随机化,金丝雀 +* 可用的漏洞利用原语:漏洞触发验证程序、控制流劫持原语、受限的内存泄露原语 + +### 实例 +* 内核漏洞触发验证程序和漏洞利用原语 + +### 通过实例中的内核漏洞触发验证程序实现漏洞利用面临的挑战 +* Linux内核安全防御机制。很多原有的攻击方法无法生效。ret2user/ret2dir/cr4寄存器劫持 +* 利用路径陷阱 + +### KEPLER设计概览 + +* 给出了工作模式图 +* 设计需求:突破安全防御机制、magic gadget、ROP漏洞、自动化漏洞生成 + +### KEPLER高层设计 +* Kepler通过单发漏洞 利用链(“single-shot”exploit)将一个基于函数指针篡改的控制流劫持原语 CFHP 变成了基于栈溢出的控制流劫持原语 CFHP' 。 + +### KEPLER设计 + +原理 +* 利用内核I/O函数打破了用户内核内存空间的隔离。 +* 灵活复用内核中的原生代码,可以将单个控制流劫 持原语转化为栈溢出,并发起 ROP 攻击。 + +具体步骤 +* 首先用copy_to_user()函数将内核栈的金丝 雀值拷贝到用户态,然后用copy_from_user()函数将攻击载荷拷贝到内核栈上 并构造栈溢出。 +* 可利用内核中大量 存在的绽放工具函数(bloominggadget)来增强对通用寄存器的控制;并利用桥接工具函数(bridging gadget)来防止原漏洞利用路径上潜在的内核崩溃,从而 提升利用链的稳定性。 + +栈泄露工具(为了泄露栈金丝雀) +* copy_to_user通过将参数原地址设置成内核的栈帧,建立内核空间迁移到用户空间的信道。从而将内核栈金丝雀泄漏到用户空间 + +辅助函数() +* 执行一套寻找辅助函数的标准。 + +### KEPLER部分5.5的主要内容 + +* 构建栈溢出 + * 栈溢出工具代码片段 + * 快速返回路径 + * 触发分页错误 +* 泄露栈金丝雀 + * 栈泄露工具代码片段 + * 辅助函数 +* 单发漏洞利用技术 + * 绽放工具函数:获得更多的寄存器 + * 桥接工具函数:获得更多的控制流劫持原语 + * 移位工具函数: + + + +通过构建FUZZ与KEPLER两个系统,实现了漏洞利用。作者显然是网络安全方面非常厉害的博士生,在各种比赛中有所表现,还有很多论文。而且这里的漏洞利用对我来说,是在网络安全中,比较上层的部分知识,如果自己真的要走漏洞利用的方向。就必须,从基础的linux开始学习。 + +这对我来说,可能是非常巨大的挑战。 + +### 需要学习的内容 + +---- +基础内容 +* Linux系统编程(开发linux的C、C++应用) +* Linux系统教程(包括系统的工作原理) +* Linux内核源代码(github上的公开源码还有很多源码阅读的博客) +* 汇编语言学习(如何在Linux上运行汇编程序) + +---- +安全相关的内容 +* 网络安全技术 +* 网络渗透技术 +* kali linux工具使用 +* 漏洞挖掘技术 + +---- +相关论文 +* 漏洞挖掘的论文(如何发现漏洞) +* 漏洞利用的论文(如何利用漏洞) + + +## 2 相关技术和名词了解 +------------- +内核保护机制 + +### SMEP、SMAP + +SMAP(Supervisor Mode Access Prevention,管理模式访问保护)和SMEP(Supervisor Mode Execution Prevention,管理模式执行保护)。禁止内核访问用户空间的数据和禁止内核执行用户空间的代码。arm里面叫PXN(Privilege Execute Never)和PAN(Privileged Access Never) + +### 栈金丝雀 + +金丝雀是通过汇编来实现的。例如,由于 GCC 的 栈保护器 选项的原因使金丝雀能被用于任何可能有漏洞的函数上。函数序言加载一个魔法值到金丝雀的位置,并且在函数结语时确保这个值完好无损。如果这个值发生了变化,那就表示发生了一个缓冲区溢出(或者 bug),这时,程序通过 __stack_chk_fail 被终止运行。由于金丝雀处于栈的关键位置上,它使得栈缓冲区溢出的漏洞挖掘变得非常困难。 + +![](img/栈金丝雀.png) + +### 数据流完整性检查 +### 控制流完整性检查 +-------------- +漏洞利用方法 + +### ret2usr +在没有SMAP/SMEP的情况下把内核指针重定向到用户空间的漏洞利用方式被称为ret2usr。 + +### ret2dir + +physmap是内核管理的一块非常大的连续的虚拟内存空间,为了提高效率,该空间地址和RAM地址直接映射。RAM相对physmap要小得多,导致了任何一个RAM地址都可以在physmap中找到其对应的虚拟内存地址。另一方面,我们知道用户空间的虚拟内存也会映射到RAM。这就存在两个虚拟内存地址(一个在physmap地址,一个在用户空间地址)映射到同一个RAM地址的情况。也就是说,我们在用户空间里创建的数据,代码很有可能映射到physmap空间。基于这个理论在用户空间用mmap()把提权代码映射到内存,然后再在physmap里找到其对应的副本,修改EIP跳到副本执行就可以了。因为physmap本身就是在内核空间里,所以SMAP/SMEP都不会发挥作用。这种漏洞利用方式叫ret2dir。 + +### pivot2usr + +假设在执行指令call ,→ rax发现一个控制流劫持原语,为了发起 pivot2usr 攻击,首先,他需要将 控制流程劫持到到栈迁移工具代码片段:xchg eax,esp; ret。然后,他需要 通过将寄存器 eax 的值设置为用户空间中的地址来将栈转移 (stack pivot) 到用 户空间伪造的栈。由于攻击者可以完全控制位于用户态的伪栈内容,因此他可以 使用伪栈以及 Linux 内核中的工具代码片段准备 ROP 攻击载荷。这种漏洞利用 方法不会直接执行驻留在用户空间中的指令,因此可以在不触发 SMEP保护的情 况下成功实现任意代码执行 + +### 控制流劫持 +代码注入攻击和代码重用攻击:传统代码注入攻击利用目标程序的输入信道将实现恶意功能的 Shellcode 注 入程序内存空间中并通过控制流劫持漏洞执行。通过代码重用攻击,既避免了注入攻击代码又可保证攻击代码的可执行 性。 + +### 堆喷射 +的数据喷射到内核中并占据漏洞对象释放前所处位置,从而相应地操 纵其内容。通过slidecode与shellcode配合,实现执行用户代码的目的。 +### ROP返回式导向编程 +ROP 通过将一系列以返回 (ret) 指令结尾的代码片段 连缀起来执行任意代码。ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术可以用来绕过现代操作系统的各种通用防御(比如内存不可执行和代码签名等)。栈溢出的控制点是ret处,那么ROP的核心思想就是利用以ret结尾的指令序列把栈中的应该返回EIP的地址更改成我们需要的值,从而控制程序的执行流程。 + + +--------------- +程序分析技术(漏洞挖掘方法) +### 符号执行 +不执行程序使用符号值来代替具体变量,来模拟每个路径来产生每一个执行的可能性,将执行语句的结果整合成若干条数学表达式。 +对某结果的数学表达式进行求解,就能获得到达该结果的路径。 +将产生漏洞的条件设置为程序执行的结果,降低分析程序的难度。 + +### 污点分析 +污点分析可以抽象成一个三元组的形式,其中,source 即污点源,代表直接引入不受信任的数据或者机密数据到系统中;sink即污点汇聚点,代表直接产生安全敏感操作(违反数据完整性)或者泄露隐私数据到外界(违反数据保密性);sanitizer即无害处理,代表通过数据加密或者移除危害操作等手段使数据传播不再对软件系统的信息安全产生危害。 + +污点分析就是分析程序中由污点源引入的数据是否没有经过无害处理,而直接传播到污点汇聚点。如果经过无害化处理,没有到达污点汇聚点,说明系统是信息流安全的;否则,说明系统产生了隐私数据泄露或危险数据操作等安全问题。 + +### 模糊测试 +模糊测试(fuzzing)技术通过不断随机生成输入并检测程序错误检测漏洞 。模糊测试是工业界最流行的漏洞发现技术,但模糊测试技术存在着路径覆 盖率低,难以穿透复杂校验等特点。对于模糊测试的研究围绕主要从提升测试 用例质量和提高检测漏洞能力方面展开。 + +### 程序插桩 + +程序插桩,它是在保证被测程序原有逻辑完整性的基础上在程序中插入一些探针(本质上就是进行信息采集的代码段,可以是赋值语句或采集覆盖信息的函数调用),通过探针的执行并抛出程序运行的特征数据,通过对这些数据的分析,可以获得程序的控制流和数据流信息,进而得到逻辑覆盖等动态信息,从而实现测试目的的方法。 + +-------------- +相关工具 +### 漏洞检测工具、渗透测试工具、漏洞扫描工具 + +* 在分析技术集成与 平台建设方面,出现了 BAP[89]、BitBlaze[90]、angr[72],radare2[91] 等集成 了各类分析技术的二进制分析平台。 + +* Nessus:Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件。 +* nmap:nmap 也是不少黑客爱用的工具 ,黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。 +* Veracode:Veracode提供一个基于云的应用程序安全测试平台。无需购买硬件,无需安装软件,使用客户马上就可以开始测试和补救应用程序,另外Veracode提供自动化的静态和动态应用程序安全测试软件和补救服务。 +* CAIN:在口令破解上很有一套技术; +* appscan:appscan是IBM公司开发的用于扫描web应用的基础架构,也是安全渗透行业扛把子的产品; +* Nikto:Nikto是一款开源的(GPL)网页服务器扫描器,它可以对网页服务器进行全面的多种扫描; +* parosproxy:parosproxy,这是一个对Web应用程序的漏洞进行评估的代理程序; +* WebScarab:WebScarab记录它检测到的会话内容,使用者可以通过多种形式来查看记录; +* Webinspect:惠普公司的安全渗透产品,运行起来占用大量内存,小家碧玉的就慎用了; +* Whisker:Whisker是一款基于libwhisker的扫描器,但是现在大家都趋向于使用Nikto,它也是基于libwhisker的。 +* BurpSuite:是一款信息安全从业人员必备的集成型的渗透测试工具,它采用自动测试和半自动测试的方式; +* Wikto:Wikto是一款基于C#编写的Web漏洞扫描工具; +* Acunetix Web Vulnerability Scanner:(简称AWVS)是一款知名的网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞; +* N-Stealth:N-Stealth 是一款商业级的Web服务器安全扫描程序。 + + +## 3 环境构建 +........... + + + diff --git a/文献阅读/2020.09.01-2020.09.03.md b/文献阅读/2020.09.01-2020.09.03.md new file mode 100644 index 00000000..0fda7fbc --- /dev/null +++ b/文献阅读/2020.09.01-2020.09.03.md @@ -0,0 +1,95 @@ +# 文献整理——威胁情报共享 + +## 1 威胁情报场景描述 + +### 现实需求 + +* 美国——自动指示情报共享系统。 +* 银联:虚假注册、批量绑卡、恶意刷单刷券等各种恶意行为会影响企业相关产品的日常运营和营销推广,而传统金融行业自身缺乏与互联网相关的安全数据,需要高质量的情报数据支持相关的风险防控工作。 +* 银联是典型多职场、多组织协同防御的结构,拥有较多安防设备且对攻击敏感,会有海量的告警信息,如何从海量告警信息中获取真实的攻击行为是一个大的挑战。同时来自外部的威胁情报数据无法完全支撑对于真实攻击的检测、阻断和溯源分析,攻击者对于外围资产实施跳跃式攻击时,也可能导致联动防御困难。在这些场景中,我们对威胁情报数据和威胁情报生产均有强需求。 + +### 存在的问题 + +威胁情报共享面临的难题: +* 情报共享的主体,因为安全理由不愿意暴露自身的情报状态。 + +* 互联网领域的威胁个体没有固定特征。互联网安全领域面临的问题是,我们去处理和应对的不是一个已知的人,而是一个可以不断变化的ID。 + + +* 另一个壁垒是网络威胁的来源可以以很快改变和调整它的攻击方向与对象。在数字化形式下,新威胁与可能的攻击向量数不胜数。企业在检测和阻断威胁的有效性和之前相比已经差很多了。如果犯罪分子也可以得到类似我们这种共享威胁情报的话,他们就可以来判断什么样的行为容易被抓住,这样他们就可以及时调整策略。 + +### 解决办法 + +* 针对安全性要求。分布式机器学习,分布式神经网络,联邦学习,匿名共享,提高机器学习的效率。 +* 人脸识别的相关算法,模糊身份认同,而不是准确身份认同。行为特征匹配度,而非真正的识别。模糊名册,不针对身份ID,而是匹配行为特征。更像一种行为模式识别(威胁狩猎) +* 日志归一的算法(情报共享合并的算法)误报处理的算法。 + + +### 相关思路 + +* 网络威胁情报的内容包括可疑和恶意活动的详细信息以及元数据,也包含了攻击媒介,使用的方法,可以采取的遏制措施。但即使分享了信誉文件,它不包含任何个人身份信息。 +* 通过各项网络特征刻画一个有威胁的情报主体。与人脸识别非常相似。所以可以通过过机器学习进行训练,识别当前的交互个体的威胁程度。给出一个威胁报告,这个报告是预测性的,分析性。这个算法应该具有很高的可靠性,用来识别不怀好意的个体。 +* 感觉这个不太像威胁情报共享系统,而是更像威胁个体评估系统。威胁情报共享,应该更加侧重于共享的内容和共享的方式,共享的内容应该全部公开,而不是经过加工处理。这个系统更像是威胁情报共享与评估系统。 +* 这应该是算法的一个应用场景。应该从算法的角度去检索相关内容。 + +### 威胁情报库 +* 威胁情报库的数据来源分为三方面,包括**内部情报、专业机构和行业联盟**。内部情报包括传统安全设备的拦截、后台SIEM等**安全分析系统的分析以及业务风控系统**的发现;专业机构会提供所处专业的多源情报,根据每家机构的专业特点进行互补,并在情报冲突时对数据进行研判;**行业联盟的威胁情报共享目前正在研究探索中**。内部情报、专业机构和行业联盟这三方面的数据聚合后,形成本地库,进行处理后,最终将数据结果反馈给最上层的应用层,推送给后台应用、防御设备或者人工调用。在综合考虑威胁情报库需求后,我们对国内相关厂商进行调研测试,最终选择北京微步在线科技有限公司旗下本地威胁情报管理平台作为银联威胁情报库的载体平台。 + +* 威胁情报库的建立,一方面能够协助我们及时**察觉黑客或恶意攻击者的各类战术、方法、行为模式**,掌握针对**支付场景的最新攻击动向,高效预防和处理各类网络风险安全事件**;另一方面高质量的情报数据能够为**风险防控提供有力支持**,实现对**外部网络异常访问行为的精确识别**。它对于防守方安全风控团队及时掌安全态势并做出正确响应具有重要价值。 + + +### 威胁情报利用 + +网络威胁情报(CTI)技术是一种基于证明的安全系统,可通过分析和共享与安全相关的数据来主动响应这些高级网络威胁。但是,如果攻击者有意将恶意数据注入到系统中,则通过创建和传播不正确的安全策略会严重损害CTI系统的性能。 + +CTI系统的核心是通过共享信息来最大化每个节点的威胁响应能力。这种方法可以对攻击类型和模式,攻击者和攻击组进行概要分析,从而预测潜在威胁并主动做出响应。网络威胁情报(CTI)系统是一种威胁分析和信息共享系统,用于增进对网络威胁的了解并主动做出反应。CTI系统通过将与威胁相关的数据重新组织和分析为形式化的形式,增强了对网络威胁的理解。 + +## 2 联邦学习 + +* 联邦学习作为分布式的机器学习范式,可以有效解决数据孤岛问题,让参与方在不共享数据的基础上联合建模,能从技术上打破数据孤岛,实现AI协作。 + + + + + +## 3 威胁情报共享与联邦学习面临的问题 + +* 数据传输同态加密技术(防止截获传输数据) +* 数据可信度评估(掺杂虚假的数据) + + +## 4 安全术语解析 + +### APT攻击 + +APT攻击,即高级可持续威胁攻击,也称为定向威胁攻击,指某组织对特定对象展开的持续有效的攻击活动。这种攻击活动具有极强的隐蔽性和针对性,通常会运用受感染的各种介质、供应链和社会工程学等多种手段实施先进的、持久的且有效的威胁和攻击。 + +* (1)攻击者:拥有高水平专业知识和丰富资源的敌对方。 +* (2)攻击目的:破坏某组织的关键设施,或阻碍某项任务的正常进行 +* (3)攻击手段:利用多种攻击方式,通过在目标基础设施上建立并扩展立足点来获取信息。 +* (4)攻击过程:在一个很长的时间段内潜伏并反复对目标进行攻击,同时适应安全系统的防御措施,通过保持高水平的交互来达到攻击目的。 + +主要特点:先进的攻击方法、隐蔽性好、持续性攻击、长期驻留目标系统。 + +### 女巫攻击(Sybil Attack) +是一种在线网路安全系统威胁,是指个人试图通过创建多个帐户身份、多个节点或电脑坐标从而控制网络。 + + +### 情报共享规范 +* CVE、CVSS +* CybOX。 +Cyber Observable eXpression (CybOX) 规范定义了一个表征计算机可观察对象与网络动态和实体的方法。可观察对象包括文件,HTTP会话,X509证书,系统配置项等。CybOX 规范提供了一套标准且支持扩展的语法,用来描述所有我们可以从计算系统和操作上观察到的内容。在某些情况下,可观察的对象可以作为判断威胁的指标,比如Windows的RegistryKey。这种可观察对象由于具有某个特定值,往往作为判断威胁存在与否的指标。IP地址也是一种可观察的对象,通常作为判断恶意企图的指标。 +* STIX。 +Structured Threat Information eXpression (STIX) 提供了基于标准XML的语法描述威胁情报的细节和威胁内容的方法。STIX支持使用CybOX格式去描述大部分STIX语法本身就能描述的内容,当然,STIX还支持其他格式。标准化将使安全研究人员交换威胁情报的效率和准确率大大提升,大大减少沟通中的误解,还能自动化处理某些威胁情报。实践证明,STIX规范可以描述威胁情报中多方面的特征,包括威胁因素,威胁活动,安全事故等。它极大程度利用DHS规范来指定各个STIX实体中包含的数据项的格式。 +* TAXII。 +Trusted Automated eXchange of Indicator Information (TAXII) 提供安全的传输和威胁情报信息的交换。很多文章让人误以为TAXII只能传输TAXII格式的数据,但实际上它支持多种格式传输数据。当前的通常做法是用TAXII来传输数据,用STIX来作情报描述,用CybOX的词汇。 +TAXII在标准化服务和信息交换的条款中定义了交换协议,可以支持多种共享模型,包括hub-and-spoke,peer-to-peer,subscription。 +TAXII在提供了安全传输的同时,还无需考虑拓朴结构、信任问题、授权管理等策略,留给更高级别的协议和约定去考虑。 + +* Common Weakness Enumeration (CWE) 定义了通用软件设计与实现的弱点,安全漏洞往往是由这些弱点而来的。 +* Common Attack Pattern Enumeration and Classification (CAPEC) 提供了一个与跨事件攻击相似的功能。 +* Malware Attribute Enumeration and Characterization (MAEC) 可用于描述恶意软件的信息,类似于CVE和漏洞之间的关系。 +* Open Vulnerability Assessment Language (OVAL) 为评估漏洞范围和影响提供了一个框架。 + + + diff --git a/文献阅读/2020.09.04-2020.09.06.md b/文献阅读/2020.09.04-2020.09.06.md new file mode 100644 index 00000000..cc57218d --- /dev/null +++ b/文献阅读/2020.09.04-2020.09.06.md @@ -0,0 +1,51 @@ +# 文献整理——威胁情报共享2 + +> 文献阅读中的思考用这种注释的方式给出把。 + +## 1 李总的报告 + +### 情报自身的讨论 + +* 行为模式、行为指纹====>描绘潜在风险对象。黑客幻想。 +* 静态情报识别:位置、函数、缓冲区等静态指纹。信息元之间不存在关联关系。 +* 动态情报识别:行为日志、操作记录。信息元之间存在关联性,例如先后顺序,操作时间差等。 +* 使用情报构件知识库。 + +### 情报共享方式的讨论 + +* 威胁情报共享,不是元数据层面的贡献,而是数据应用层面的共享。将共享的等级提升。 +* 厂商之间共享数据存在隔阂,但是可以共享检测,在不共享数据的情况下,构建联合检测模型。 +* 安全联盟,用来防御APT攻击。OCA(open cybersecurity alliance)联盟。MAPP(微软)anquan lianmeng + + +### 情报利用方向的讨论 +* 入侵检测(威胁感知系统)----基于机器学习,综合利用情报处理问题。 +* 学习最先进的攻击技术(识别最新攻击行为,用于入侵检测) +* IOC信息,用来标识入侵对象。MD5文件等入侵留下的痕迹。预防和识别入侵。 +* 将攻击行为与个体建立关联,《美国威胁报告》分析人的行为,追踪网络中国人的虚拟映像。 + +### 情报利用模型的讨论 + +* 钻石模型(通用模型,并没有什么特色。) + +### 情报输入输出的讨论 +* 情报系统的输入、情报分类:动态行为、静态属性 +* 情报系统的输出:威胁报告。 + + +> ### 对我来说的主要内容: +> * 情报利用方案。解决准确率问题 +> * 分布式解决方案。解决数据共享问题 + +相关资料 +* Yara规则 +* GITHUB APT IOC(github有很多人分享技术) +* 火眼、猎鹰 +* 思科发布公告称,其 IOS XR 软件 DVMRP 特征 中的一个新0day漏洞 CVE-2020-3566已遭在野利用,尚未推出补丁(CVSS评分8.6)。该漏洞主要影响运营商级和数据中心的路由器。https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-iosxr-dvmrp-memexh-dSmpdvfz + + +## 2 网络安全之情报浅析 +> 应该思考我们的主要工作是什么? +> * 是根据数据生成情报?(通过数据处理,分析异常数据,挖掘漏洞等) +> * 是实现情报利用?(通过已有的情报对新的情报样本进行分析,分析其危险性,给出其威胁评估) +> * 是实现情报共享?(通过共享系统,将情报在孤立的个体之间传递,提供基于情报的服务) diff --git a/文献阅读/img/内核漏洞利用.jpg b/文献阅读/img/内核漏洞利用.jpg new file mode 100644 index 00000000..89f1831c Binary files /dev/null and b/文献阅读/img/内核漏洞利用.jpg differ diff --git a/文献阅读/img/栈金丝雀.png b/文献阅读/img/栈金丝雀.png new file mode 100644 index 00000000..eeb7fb5e Binary files /dev/null and b/文献阅读/img/栈金丝雀.png differ