diff --git a/明阳研究院.md b/明阳研究院.md index 366255a..eb34b28 100644 --- a/明阳研究院.md +++ b/明阳研究院.md @@ -2,56 +2,21 @@ #### 1、怎么区分安全设备是不是误报 -**以下几个方面进行判断:** - -1. 报警信息的详细程度: - - 查看报警的具体信息,包括攻击类型、攻击源、攻击目标、使用的协议和端口等。如果信息非常模糊或者缺乏具体的攻击细节,可能需要进一步核实。 -2. 报警源的可靠性: - - 评估报警来源的可靠性。一些知名的安全设备或服务提供商通常会有较为严格的报警生成机制,误报率相对较低。 -3. 报警的频率: - - 如果同一类型的报警频繁发生,需要检查是否为误报。但也可能是受到了持续攻击,需要结合实际情况判断。 -4. 与已知威胁情报对比: - - 将报警信息与已知的威胁情报进行对比,看是否有匹配的已知攻击模式或恶意行为。 -5. 系统的安全状态: - - 检查系统的日志和安全状态,看是否有异常的登录尝试、文件更改或其他异常行为。 -6. 实地调查: - - 对报警涉及的系统和网络进行实地调查,包括检查系统日志、网络流量分析等。 -7. 规则和签名更新: - - 确保安全设备中的规则和签名是最新的。过时的规则可能导致误报。 -8. 专家分析: - - 如果无法自行判断,可以求助于安全专家或第三方安全服务提供商进行分析。 - -**以下是一些具体的步骤:** - +- 查看报警的具体信息,包括攻击类型、攻击源、攻击目标、使用的协议和端口等。 +- 将报警信息与已知的威胁情报进行对比,看是否有匹配的已知攻击模式或恶意行为。 +- 检查系统的日志和安全状态,看是否有异常的登录尝试、文件更改或其他异常行为。 - 确认安全设备配置:确保安全设备配置正确,没有设置过于敏感的规则。 -- 查看日志:检查系统日志,确认是否有与报警相关的可疑活动。 - 复现测试:尝试复现报警条件,看是否能够稳定触发。 #### 2、如果存在挖矿,怎么进行研判 -1. **监控系统资源使用情况**: - - CPU使用率:挖矿软件通常会占用大量的CPU资源。可以通过系统监控工具(如Windows的任务管理器、Linux的top或htop命令)来检查CPU使用率是否长时间异常高。 - - 内存使用情况:虽然挖矿主要依赖CPU或GPU,但也可能伴随较高的内存使用。 - - 网络流量:挖矿程序可能会产生异常的网络流量,尤其是与已知挖矿池的通信。 -2. **检查进程和任务**: - - 使用进程管理工具(如Windows的任务管理器、Linux的ps命令)检查是否存在可疑的进程。 - - 查看任务的命令行参数,挖矿软件通常会有特定的命令行参数。 -3. **分析网络连接**: - - 使用网络连接监控工具(如netstat命令)检查服务器上异常的外部连接,特别是连接到已知挖矿池的端口。 - - 检查防火墙规则和出入流量记录,看是否有异常的对外连接。 -4. **日志审计**: - - 审计系统日志,查找异常的登录行为、系统文件修改等。 - - 安全日志中可能记录了挖矿软件的安装和运行痕迹。 -5. **使用专门的检测工具**: - - 安装安全软件或使用专门的挖矿检测工具来扫描系统。 - - 有些安全厂商提供了免费的在线扫描服务,可以帮助检测系统是否感染了挖矿恶意软件。 -6. **系统行为分析**: - - 分析系统的行为是否与往常不同,比如系统运行缓慢、响应时间长等。 - - 挖矿软件可能会修改系统配置,如启动项、计划任务等,以实现开机自启。 -7. **与正常运行时的基线对比**: - - 建立服务器正常运行时的资源使用基线,任何与基线明显偏离的行为都值得进一步调查。 +- 通过系统监控工具(如Windows的任务管理器、Linux的top或htop命令)来检查CPU使用率是否长时间异常高。 +- 使用进程管理工具(如Windows的任务管理器、Linux的ps命令)检查是否存在可疑的进程。 +- 使用网络连接监控工具(如netstat命令)检查服务器上异常的外部连接,特别是连接到已知挖矿池的端口。 +- 查看任务的命令行参数,挖矿软件通常会有特定的命令行参数。 +- 挖矿软件可能会修改系统配置,如启动项、计划任务等,以实现开机自启。 @@ -60,9 +25,9 @@ 1. **WebShell上传特征** - 先看JAVA的,主要原理和冰蝎的差不多。关键在于加密、类加载和反射,可以提取关键操作的代码作为静态检测的特征,如: - AES加/解密:javax.crypto.Cipher.getInstance(“AES”) - 类加载:ClassLoader - 反射:Class.forName + - AES加/解密:javax.crypto.Cipher.getInstance(“AES”) + - 类加载:ClassLoader + - 反射:Class.forName - C#的webshell核心在于使用Assembly来动态解析执行已编译的DLL二进制文件,以及流量加密。使用Assembly的特征为System.Reflection.Assembly,实现加/解密:System.Security.Cryptography.RijndaelManaged() - PHP没有沿用AES加密的流量,而是通过异或实现自定义的加密,并且直接使用eval函数进行代码执行。 @@ -78,17 +43,13 @@ - 请求体特征 (较强特征) - > 因为无法准确识别加密的请求体,所以只能采用比较宽泛的匹配条件去匹配请求体特征,宽泛的匹配思路其实就是基于区别大部分正常的数据包,加密数据包自身体现的特征。这种宽泛的匹配在一些情况下可能会带来误报,因此有时候难以作为一种非常有效的检测手法。 + > 首先看一下base64编码的数据包,对于这种数据包唯一的识别方法就是识别流量中的base64编码。当然不能仅仅去识别数据包中存在base64编码就拦截,因为很多应用正常的参数也会采用base64编码加密。哥斯拉在进行初始化时会产生一个比较大的数据包,后面进行命令执行等操作时产生的base64数据包会比较小。在长度上做一个匹配条件在一定程度上也可以降低误报率。 > - > 哥斯拉支持对加密的数据进行base64编码以及原始的加密raw两种形式的通讯数据,对于请求体的检测也要考虑两种情况。 - > - > 首先看一下base64编码的数据包,对于这种数据包唯一的识别方法就是识别流量中的base64编码。当然不能仅仅去识别数据包中存在base64编码就拦截,因为很多应用正常的参数也会采用base64编码加密。哥斯拉在进行初始化时会产生一个比较大的数据包,后面进行命令执行等操作时产生的base64数据包会比较比较小。在长度上做一个匹配条件在一定程度上也可以降低误报率。 - > - > - > 对于原始加密raw请求体,没想到比较好的方法,目前只想到到了匹配较多的不可见字符的思路。同样的,这种检测方法也会产生误报,像一些对传输安全要求比较高的金融机构,不少应用也会实现一些加密的通讯流量。需要注意的是,在匹配不可见字符时,需要排除文件上传,也就是multipart/form-data数据包,因为文件上传的流量也会包含大量的不可见字符。 - + > + >对于原始加密raw请求体,没想到比较好的方法,目前只想到到了匹配较多的不可见字符的思路。同样的,这种检测方法也会产生误报,像一些对传输安全要求比较高的金融机构,不少应用也会实现一些加密的通讯流量。需要注意的是,在匹配不可见字符时,需要排除文件上传,也就是multipart/form-data数据包,因为文件上传的流量也会包含大量的不可见字符。 + - 响应体特征 (强特征) - + > 和请求体一样,请求响应体也分两个格式,base64编码的和原始加密raw数据。如果请求体采用base64编码,响应体返回的也是base64编码的数据。在使用base64编码时,响应体会出现一个很明显的固定特征。这个特征是客户端和服务端编写的时候引入的。 > > 从代码可以看到会把一个32位的md5字符串按照一半拆分,分别放在base64编码的数据的前后两部分。整个响应包的结构体征为:md5前十六位+base64+md5后十六位。 @@ -235,22 +196,22 @@ WebLogic: #### 9、是否熟悉天眼 +奇安信 +#### 10、熟悉哪些态势感知设备 -#### 10、熟悉那些态感设备 - -- **入侵检测/防御系统(IDS/IPS)**:用于监控和分析网络流量,以识别和阻止潜在的攻击。 -- **SIEM系统**:它能够帮助安全团队收集、监控和分析来自多个源的安全事件,以提供实时的威胁检测。 -- **安全运营中心(SOC)平台**:通过整合各种安全工具,提供对网络安全的全面监控。 -- **端点检测与响应(EDR)工具**:专注于端点保护,能够检测并响应高级威胁。 +- 入侵检测/防御系统(IDS/IPS):用于监控和分析网络流量,以识别和阻止潜在的攻击。 +- 安全信息和事件管理(SIEM)系统:它能够帮助安全团队收集、监控和分析来自多个源的安全事件,以提供实时的威胁检测。 +- 安全运营中心(SOC)平台:通过整合各种安全工具,提供对网络安全的全面监控。 +- 端点检测与响应(EDR)工具:专注于端点保护,能够检测并响应高级威胁。 #### 11、了解Javaweb吗? - +一点点 @@ -312,32 +273,33 @@ WebLogic: (3)异常堆栈中出现与 JNDI 相关的类或方法: > 在应用程序的异常堆栈中,可能会出现与JNDI相关的类或方法,如javax.naming.directory.InitialDirContext 等。这表明攻击者已经成功地利用了 log4j2 漏洞,执行了远程代码并导致异常。 - - + (4)大量的异常日志记录: + + > 攻击者可能会尝试多次利用 log4j2 漏洞,因此在日志中可能会出现大量的异常日志记录。这些异常日志记录通常会包含与 JNDI 相关的内容,如 JNDI 协议地址或异常堆栈信息。 - > 攻击者可能会尝试多次利用 log4j2 漏洞,因此在日志中可能会出现大量的异常日志记录。这些异常日志记录通常会包含与 JNDI 相关的内容,如 JNDI 协议地址或异常堆栈信息。 + + - **log4j2 漏洞防御措施** (1)设置 log4j2.formatMsgNoLookups=True: > 这个设置将禁用 log4j2 中的消息查找(Lookups),这样可以防止恶意代码利用 JNDI 注入漏洞。通过设置此选项,log4j2 将不会解析消息中的变量或执行 JNDI 查找。 - - + (2)对包含特定字符串的请求进行拦截: - - > 监测应用程序的日志,如果发现其中包含"jndi:ldap://"、"jndi:rmi://"等可疑字符串,可以使用WAF(Web应用程序防火墙)或 IDS(入侵检测系统)等工具来拦截这些请求,从而阻止潜在的攻击。 - - + + > 监测应用程序的日志,如果发现其中包含"jndi:ldap://"、"jndi:rmi://"等可疑字符串,可以使用WAF(Web应用程序防火墙)或 IDS(入侵检测系统)等工具来拦截这些请求,从而阻止潜在的攻击。 + + (3)对系统进行合理配置,限制对外访问: - - > 配置网络防火墙,限制系统对外部网络的访问,并阻止不必要的业务访问外网。 - - + + > 配置网络防火墙,限制系统对外部网络的访问,并阻止不必要的业务访问外网。 + + (4)升级 log4j2 组件到新的安全版本: - - > 及时升级 log4j2 到最新的安全版本,以修复已知的漏洞并增强系统的安全性。 + + > 及时升级 log4j2 到最新的安全版本,以修复已知的漏洞并增强系统的安全性。 @@ -382,7 +344,7 @@ WebLogic: -#### 16、如何通过态感设备可快速定位攻击地址 +#### 16、如何通过态势感知设备可快速定位攻击地址 - 使用SIEM(安全信息和事件管理)系统:SIEM系统能够聚合和分析来自多个源的安全相关数据,帮助快速识别攻击源。 - 进行流量分析: