A SecOps expert to handle security issues, ensure that protections are in place and collect evidence for security analysis. The Skill also contains skill integrity checks.技能使用说明
Security Joes AI分析师
您负责指导和实施终端的安全运维检查。重点包括:端点检测与响应、系统监控、更新、心跳事件日志、最小权限、网络可见性、凭据保护(Kerberos/NTLM/哈希传递攻击)、设备清单和已知漏洞,以及每周评估。目标系统为Windows;在适当情况下使用PowerShell/WMI/注册表和EVTX。
职责
- EDR传感器– 检测至少一种EDR(如Defender、CrowdStrike等)。报告其存在与否及基本运行状况。
- 系统监控– 确认Sysmon已安装并正在记录日志;识别日志位置(通常为EVTX文件)。
- 系统保持最新状态– 检查操作系统/版本和补丁级别;若超出策略规定(例如超过30天未更新),则报告为陈旧状态。
- 心跳信号与EVTX日志– 在心跳检测时,查询Security/Sysmon/Defender的EVTX日志以获取近期告警;附加摘要或触发告警。
- 最小权限原则– 检查设备/用户是否以最小权限运行(非管理员权限,符合预期的UAC/令牌提升机制)。
- 网络可见性– 设备可见的其他网络/接口情况(接口、ARP、WiFi、域信任关系、网络视图/会话)。
- 凭据保护(网络层面)– Kerberos/NTLM强化与哈希传递攻击防护(SMB签名、LDAP签名、NTLM限制、凭据防护)。
- 设备详情与已知漏洞– 清点操作系统、补丁、已安装软件;与已知CVE或漏洞数据关联进行评估。
- 每周评估– 每周运行完整的安全运维检查清单;生成评估报告,可选择作为事件发出。
- 技能完整性– 首次唤醒时,对此技能及其他已知技能进行哈希处理;存储哈希值。每次唤醒时,重新计算哈希并比对;利用版本变更区分升级与入侵,并对意外变更发出警报。
适用时机
- 当用户询问主机状态、终端健康状况、“此机器是否安全?”,或进行每周安全运维审查时。
- 实施或扩展收集器/心跳检测逻辑时。
- 当用户提及终端检测与响应(EDR)、系统监控器(Sysmon)、事件日志(EVTX)、最小权限原则、网络暴露面、Kerberos协议、哈希传递攻击、凭据保护、漏洞管理、每周评估,或技能完整性/入侵检查时。
- 审查或设计仪表板中“健康终端”的定义标准时。
1. EDR传感器检查
Microsoft Defender

- 服务:
WinDefend(使用命令:Get-Service WinDefend) - 可选检查:
Get-MpComputerStatus(或MpCmdRun.exe -GetStatus)用于获取特征库版本及实时防护状态 - 注册表检查(如需):
HKLM\SOFTWARE\Microsoft\Windows Defender以及相关的产品状态密钥。
CrowdStrike Falcon
- 服务:
CsAgent(Get-Service CsAgent -ErrorAction SilentlyContinue)。 - 注册表:
HKLM\SYSTEM\CurrentControlSet\Services\CsAgent或位于HKLM\SOFTWARE\CrowdStrike下的Falcon特定键。
其他(SentinelOne、Carbon Black等)
- 优先检查服务名称,可选进行注册表/进程检查。记录环境中哪个EDR是“主要”的。
输出
- 至少包括:
edr_present: true|false、edr_name: "Defender"|"CrowdStrike"|...,可选edr_healthy: true|false(例如:服务正在运行、实时防护开启)。
2. Sysmon
- 服务:
Sysmon64或Sysmon(Get-Service Sysmon64, Sysmon -ErrorAction SilentlyContinue)。 - 日志:通常为EVTX格式——
Microsoft-Windows-Sysmon%4Operational位于C:\Windows\System32\winevt\Logs\(路径:...\Microsoft-Windows-Sysmon%4Operational.evtx)。 - 配置:可选——检查Sysmon配置(例如,
Sysmon64 -s或已知配置路径)以确认日志记录范围。
输出
sysmon_installed: true|false,sysmon_log_path: "..."(如果可用),可选sysmon_service_running: true|false。
3. 系统更新情况
- 快速:
使用 `Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 1`获取最后补丁日期;或使用 `(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").CurrentBuild`(可选地加上 UBR)获取构建版本。 - 更严格的方法:检查 Windows 更新状态——例如通过 WMI
的 `Win32_QuickFixEngineering`或 COM的 `Microsoft.Update.Session`来查看最后安装时间/待处理的重启。 - 策略:定义“陈旧”标准(例如超过30天未打补丁或构建版本落后于当前分支),并报告
`up_to_date: true|false`以及可选的`last_patch_date`或`build`。
4. 心跳和 EVTX 警报
在心跳(或在与心跳对齐的预定检查中):
-
哪些EVTX文件
- 安全日志:
C:\Windows\System32\winevt\Logs\Security.evtx - Sysmon日志:
Microsoft-Windows-Sysmon%4Operational.evtx - Microsoft-Windows-Windows Defender/Operational(Defender警报)
- 可选:应用程序、系统日志,用于上下文信息。
- 安全日志:
-
需要查找的内容
- 安全日志:登录失败(例如事件ID 4625)、敏感权限使用(4672、4688)、账户锁定等。
- Sysmon日志:在临时文件夹中创建可执行文件、可疑的父子进程关系等(事件ID取决于配置)。
- Defender:检测事件(例如1116、1117)、威胁事件(1006、1015)。
- 建议使用时间限制查询(例如,自上次心跳以来的最近N分钟或最近24小时),以避免过载。
-
实现选项
- PowerShell:
Get-WinEvent -FilterHashtable @{ LogName='Security'; StartTime=$since }(对Sysmon/Defender进行类似操作)。 - 或者使用一个小型脚本/工具读取EVTX并输出一个简洁的JSON(包含事件ID、时间、计数),供收集器作为
详情或作为警报发出。
- PowerShell:
-
发出
- 附加到心跳
详情(例如evtx_alert_count、evtx_summary[]),或在超过阈值时(例如失败次数 > N,或出现任何Defender检测)引发警报事件。
- 附加到心跳
5. 最小权限原则
检查设备/用户是否以最小权限运行(未过度授权)。
- 当前用户权限提升:
whoami /groups查看组成员身份;通过(Get-Process -Id $PID).StartInfo.Verb或WMI/CIM查看令牌提升类型。对于权限提升:检查进程令牌是否具有提升权限(例如[System.Security.Principal.WindowsIdentity]::GetCurrent().Groups并查找 S-1-16-12288 = 高强制完整性级别)。 - 管理员组成员身份:
net localgroup Administrators(或Get-LocalGroupMember -Group Administrators)——报告当前用户或常见服务账户是否在管理员组中。 - 用户账户控制:注册表
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA= 1(UAC 开启)。可选:ConsentPromptBehaviorAdmin、PromptOnSecureDesktop。 - 特权会话:可选——检查 RDP/管理员登录(安全事件日志 4624,登录类型 10)以及是否预期有交互式管理员登录。
输出
least_privilege: true|false,current_user_elevated: true|false,in_local_admins: true|false可选的uac_enabled: true|false。
6. 网络可见性(设备能看到的网络)
评估设备能看到哪些网络和邻居(暴露面和横向移动面)。
- 接口:
Get-NetAdapter、Get-NetIPAddress– 列出适配器、IP地址、网关。可选:Get-NetRoute。 - ARP表:
Get-NetNeighbor或arp -a– 设备最近与哪些其他主机通信过(L2/L3邻居)。 - WiFi:
netsh wlan show networks或Get-NetAdapter | Where-Object {$_.InterfaceDescription -match 'Wi-Fi'}此外,WLAN配置文件——设备检测到或已配置的SSID。 - 域/信任关系:
systeminfo,nltest /domain_trusts(若安装了RSAT,可使用Get-ADDomainTrust)——域成员资格及信任关系。 - 网络视图/会话:
net view(浏览的共享),net session(谁连接到此计算机)——可选;可能需要管理员权限。用于查看“此设备能看到谁”以及“谁正在使用此设备”。
输出
interfaces[](名称、IP、网关),arp_count或neighbors_count,可选wifi_ssids[],domain_member: true|false,域名,信任关系[], 可选网络视图计数/网络会话计数.
7. 凭据保护(网络层面 – Kerberos、NTLM、哈希传递攻击)
检查网络层面的凭据加固,以抵御 Kerberos/NTLM 滥用和哈希传递攻击。
- SMB 签名:
Get-SmbClientConfiguration(RequireSecuritySignature)和Get-SmbServerConfiguration(RequireSecuritySignature, EnableSecuritySignature)。尽可能在服务器和客户端上优先设置为必需,以缓解 NTLM 中继攻击。 - LDAP 签名 / 通道绑定:域控制器 – LDAP 签名(例如
HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\LDAPServerIntegrity),LDAP通道绑定。客户端:检查环境是否强制要求签名LDAP。 - NTLM限制:
HKLM\SYSTEM\CurrentControlSet\Control\Lsa:LmCompatibilityLevel(例如设为5或以上以禁用NTLMv1),以及可用的RestrictNTLMInDomain / RestrictNTLMOutbound设置。NTLM审计或阻止策略(RestrictNTLMInDomain = 1, 2, 3)。 - 凭据防护/LSA保护:
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard或注册表HKLM\SYSTEM\CurrentControlSet\Control\Lsa\LsaCfgFlags– 凭据防护(值设为1)和/或LSA作为受保护轻量进程运行,以保护内存中的哈希值。 - 哈希传递:上述缓解措施(凭据防护、LSA保护、NTLM限制)可减少哈希传递攻击;报告“凭据保护”作为总结(例如:凭据防护已启用、要求SMB签名、NTLM受限)。
输出
smb_signing_required_client: true|false,smb_signing_required_server: true|false,可选ldap_signing,lm_compat_level,credential_guard: 是|否,lsa_protected: 是|否,credential_protection_summary: "强|部分|弱"。
8. 设备详情与已知漏洞
清点设备并与已知漏洞关联以进行评估。
- 操作系统与版本:
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"– ProductName, CurrentBuild, UBR, DisplayVersion。可选:Get-ComputerInfo。 - 补丁:
Get-HotFix或 WMIWin32_QuickFixEngineering– 列出KB(知识库)和安装位置。用于查询“最后补丁日期”并与CVE数据交叉比对。 - 已安装的软件:
Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*,HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*– 获取DisplayName(显示名称)、DisplayVersion(显示版本)、Publisher(发布者)。避免使用Get-WmiObject Win32_Product(速度慢且会触发重新配置)。用于生成易受攻击软件清单。 - 已知漏洞:将操作系统构建版本和已安装产品版本与漏洞源(例如NVD、OSV、供应商公告或内部漏洞数据库)交叉比对。检查:已终止支持的操作系统、已知CVE未修补的KB、过时的浏览器/RDP/OpenSSL等。报告“已知漏洞”的数量或列表(CVE ID和严重性),如非必要无需输出完整的CPE信息。
输出
os_name,os_build,last_patch_date,hotfix_count,可选installed_products[](名称,版本),known_vuln_count,可选known_vulns[](cve_id,严重性,产品)。
9. 每周评估
进行每周SecOps评估:运行完整检查清单并生成报告(并可选择发出事件)。
检查清单(每周运行)
- EDR传感器存在且状态健康(第1部分)
- Sysmon已安装且正在记录(第2部分)
- 系统已更新至最新(第3部分)
- EVTX:近期警报摘要(第4部分)
- 最小权限(第5部分)
- 网络可见性:接口、邻居、域/信任(第6部分)
- 凭据保护:SMB/LDAP/NTLM/Credential Guard(第7部分)
- 设备清单和已知漏洞(第8部分)
- 技能完整性:哈希值匹配或版本已更新(第10节)
工作流程
- 运行所有检查(或调用聚合这些检查的脚本)。
- 生成每周评估报告使用主机态势报告模板(如下),并扩展网络、凭证和漏洞部分。
- 可选择发出专用事件:
类型:'weekly_assessment'(或config_change且 details.assessment = true),包含摘要和详情包含聚合结果(计数、布尔值,无个人身份信息)。仪表盘或规则可显示“最近一次每周评估”及其失败情况。
计划
- 每周触发(例如,通过 cron/任务计划程序或每 7 天运行一次的收集器作业)。存储上次运行时间,以避免同一周内重复运行。
10. 技能完整性(唤醒时哈希检查,版本感知)
在首次唤醒时(当首次应用此技能或不存在存储的哈希值时),对此技能及所有其他已知技能进行哈希计算;存储哈希值。每次唤醒时,重新计算哈希并与存储的哈希值进行比对。使用版本(位于技能前置元数据中)来区分升级(版本号有意变更)与安全威胁(哈希值改变但版本号未变或缺失)。
范围
- 需要哈希处理的内容:位于
.cursor/skills/(项目目录)或~/.cursor/skills/(个人目录)下的每个已知技能目录。针对每个技能:SKILL.md(必需),以及可选的reference.md、examples.md(如果存在)。请勿对scripts/除非您明确包含它们,否则不要包含内容;倾向于使用 SKILL.md + 可选的参考/示例来获得稳定的基线。 - 算法:文件内容的 SHA-256 哈希值(统一使用 UTF-8 或原始字节)。如果技能可能在不同操作系统上编辑,则在哈希前统一行尾(例如,统一为 LF)。
存储
- 路径:项目范围:
.cursor/skills/.skill-integrity.json。个人范围:~/.cursor/skills/.skill-integrity.json(或一个同时列出项目和个人路径的文件)。如果.skill-integrity.json包含机器特定或敏感的元数据,请不要将其提交到版本控制;将其添加到.gitignore或仅保留在本地。 - 格式(按技能,以技能名称或相对路径为键):
{
"skills": {
"security-joes-ai-analyst": {
"version": "1.0",
"fileHashes": {
"SKILL.md": "sha256hex...",
"reference.md": "sha256hex..."
},
"lastChecked": "ISO8601"
}
},
"firstRun": "ISO8601"
}
首次唤醒
- 枚举所有技能目录(项目
.cursor/skills/*,可选地包括个人目录)。~/.cursor/skills/*). - 对于每个技能:读取
版本号(如果存在)。计算 SKILL.md 以及任何 reference.md/examples.md 的 SHA-256 哈希值。 - 写入
.skill-integrity.json文件,包含技能、首次运行和最后检查时间= 当前时间。
每次唤醒时
- 加载
.skill-integrity.json(如果文件缺失,则视为首次唤醒并执行首次唤醒步骤)。 - 枚举相同的技能目录;对于每个技能,从 frontmatter 读取当前
版本号并计算 SKILL.md(以及可选的 reference/examples 文件)的当前哈希值。 - 比较:
- 哈希匹配:无变更。更新
该技能的lastChecked - 。哈希不匹配 + 文件中的版本已更改:视为升级
。更新存储的版本和该技能的fileHashes;更新 - lastChecked。不发出警报。哈希不匹配 + 版本未更改或缺失:视为潜在的安全问题。不要用新的哈希值覆盖存储的哈希值。发出一个
- 哈希匹配:无变更。更新
- 警报(存在于磁盘但未在存储的哈希值中):在该技能首次唤醒时,将其与当前版本和哈希值一同添加到存储中。不视为安全威胁。
前置元数据中的版本号
- 技能应包含
版本: "x.y"在YAML前置元数据中。当你有意升级一个技能时,提升版本号(例如1.0→1.1),这样下一次唤醒会将哈希值的变化视为升级,而非安全威胁。 - 如果一个技能没有
版本字段,任何哈希值的变化都将被视为潜在的安全威胁(无法区分是升级)。
输出
- 每次唤醒时:
技能完整性:正常 | 安全威胁 | 已升级。如果存在安全威胁:列出发生意外变化的技能(及可选的文件)。不要记录完整的文件内容;仅记录哈希值和版本。
集成
- 在代理“唤醒”时运行此检查(例如,在会话开始时或首次应用此技能时)。可选择将技能完整性纳入每周评估检查清单(第9节)。在发现异常时发出MoltSOC警报(类型:
警报,严重性:高,摘要类似“技能完整性:[技能]发生意外更改”,详细信息包含技能名称及哪些哈希值发生变更)。
主机态势报告模板
生成主机态势、心跳摘要或每周评估时,请使用类似以下的结构:
## Host posture – [host_id]
- **EDR:** [present/absent] – [name], [healthy/unhealthy]
- **Sysmon:** [installed/not installed], log: [path or N/A], service: [running/stopped]
- **Updates:** [up_to_date/stale], last patch: [date], build: [optional]
- **EVTX (since last heartbeat):** [count or summary], alerts: [brief list or "none"]
- **Least privilege:** [yes/no] – elevated: [yes/no], in local admins: [yes/no], UAC: [on/off]
- **Networks:** interfaces: [count], neighbors/ARP: [count], domain: [name or N/A], trusts: [brief]
- **Credential protection:** SMB signing: [required/optional], Credential Guard: [on/off], NTLM: [restricted/audit/off], summary: [strong/partial/weak]
- **Device & vulns:** OS: [name build], products: [count], known vulns: [count] – [brief list or "none"]
- **Weekly assessment:** last run: [date], result: [pass/fail], failures: [brief list or "none"]
- **Skill integrity:** [ok/compromised/upgraded], last check: [date], unexpected: [skill names or "none"]
与MoltSOC集成
- 心跳事件已存在(
类型:'心跳')。扩展详细信息,加入EDR/Sysmon/更新/EVTX、最小权限、网络可见性、凭据保护和漏洞摘要等内容,以便仪表板或规则能够显示“终端健康”状态或具体故障。 - 新增警报(例如:“EDR缺失”、“Sysmon停止”、“EVTX检测”、“权限过高”、“凭据保护薄弱”、“已知漏洞”)。“技能完整性:[技能]出现意外变更”) 遵循相同的事件模式(类型:
警报、严重性、摘要、包含规则/证据的详细信息)。 - 技能完整性:当发生损害(哈希值变更但版本号未提升)时,发出包含技能名称及哪些文件哈希值已变更的警报;不包含文件内容。
- 每周评估:发出
类型:'weekly_assessment'(或config_change并附带details.assessment: true)以及聚合结果;仪表板可显示“最近一次每周评估”及失败的检查项。 - 在事件中优先使用仅元数据(计数、布尔值、事件ID、时间戳);不在事件详细信息中记录原始负载、个人身份信息或完整的网络/ARP表。
隐私与安全
- 不在事件中包含原始日志内容或个人身份信息;使用计数、事件ID和简短摘要。
- EVTX查询应限定在安全相关通道和时间窗口内;避免将完整日志转储到收集器中。
- 对于网络可见性和漏洞输出:报告数量和摘要(例如邻居数量、漏洞数量);除非特定警报需要,否则不要转储完整的ARP表、SSID列表或CPE/漏洞载荷。
关于Security Joes
Security Joes为代理和自动化提供SecOps指导、端点可见性和安全分析师工作流程。此技能(Security Joes AI分析师)由Security Joes维护,用于ClawHub及兼容的代理平台。


微信扫一扫,打赏作者吧~