Nervi0z/soc-analyst-starter
GitHub: Nervi0z/soc-analyst-starter
一份为SOC一级分析师打造的入门实战指南,涵盖基础知识、工具使用、练习平台、实验室搭建及职业发展路径的完整学习资源。
Stars: 2 | Forks: 0
SOC Level 1 分析师入门实战指南。涵盖基础知识、必备工具、实战练习平台及职业发展路径。
面向防御性安全领域的新人——包括转型做安全的 IT 专业人士、学生,以及希望寻找一条清晰路径进入 SOC 领域而不受干扰的自学者。
## 目录
- [如何使用本指南](#how-to-use-this-guide)
- [学习方法](#learning-approach)
- [核心知识](#core-knowledge)
- [SOC 工具](#soc-tools)
- [快速参考](#quick-reference)
- [练习平台](#practice-platforms)
- [家庭实验室](#home-lab)
- [保持前沿](#staying-current)
- [职业路径](#career-path)
- [贡献](#contributing)
## 如何使用本指南
这里内容很多。不要试图一次性全部消化。
如果你在网络和操作系统方面是新手,请按照建议的顺序学习——基础知识部分的存在是有原因的。一旦你建立了基础,就可以根据你的角色或兴趣需求深入钻研。
理论与实践相结合。光靠阅读无法建立技能。请使用实验室进行练习。
Fork 这个代码库并在学习过程中进行批注。标记你已完成的内容、想要重温的内容,并添加你自己的笔记。
## 学习方法
**主动优于被动。** 总结你读到的内容,复述给自己听,在实验室中练习。被动消费无法建立技能。
**刻意练习。** 专注于特定的短板。不要重复你已经掌握的内容。
**间隔重复。** 对于需要牢记的定义和概念,[Anki](https://apps.ankiweb.net/) 很有效。用起来。
**记录一切。** 保留关于命令、工作流、错误和修复的笔记。[Obsidian](https://obsidian.md/)、[Joplin](https://joplinapp.org/) 或纯文本都可以。格式并不重要——重要的是习惯。
**需要避免的陷阱:**
- 花太长时间选择学习路径而不是开始学习
- 只看教程而不做实验(“教程地狱”)
- 跳过网络和操作系统基础——它们在实际工作中经常出现
- 不可持续的节奏导致倦怠——一致性每次都能战胜强度
## 核心知识
### 网络
理解设备如何通信是发现异常的基准。
需要涵盖的主题:OSI 和 TCP/IP 模型、IPv4/v6 和子网划分基础、常见端口和协议(HTTP/S, DNS, DHCP, ICMP, SSH, RDP)、MAC 地址、交换机与路由器。
资源:
- [Professor Messer — Network+ (N10-008)](https://www.professormesser.com/network-plus/n10-008/n10-008-training-course/) — 免费、清晰、完整
- [TryHackMe — Network Fundamentals Path](https://tryhackme.com/path/outline/networkfundamentals) — 交互式实验室
- [Practical Networking](https://www.practicalnetworking.net/) — 图文并茂的清晰解释
- [Cloudflare Learning Center](https://www.cloudflare.com/learning/dns/what-is-dns/) — 关于 DNS, TCP/IP 的短文
### 操作系统
你将不断与 Windows 和 Linux 日志打交道。两者都很重要。
**Linux:** 目录结构、核心命令(`ls`, `cd`, `cat`, `grep`, `find`, `ps`, `awk`, `sed`)、权限和用户、日志位置(`/var/log/`)。
**Windows:** 目录结构、CMD/PowerShell 基础(`ipconfig`, `netstat`, `tasklist`, `Get-WinEvent`)、事件查看器通道和常见事件 ID(4624, 4625, 4688, 4698, 4720)、注册表结构、任务管理器和资源监视器。
资源:
- [TryHackMe — Linux Fundamentals Path](https://tryhackme.com/path/outline/linuxfundamentals)
- [TryHackMe — Windows Fundamentals Path](https://tryhackme.com/path/outline/windowsfundamentals)
- [Linux Journey](https://linuxjourney.com/) — 带练习的文本教程,免费
- [OverTheWire — Bandit](https://overthewire.org/wargames/bandit/) — 通过战争游戏学习 Linux 命令
- [Ultimate Windows Security — Event ID Encyclopedia](https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/)
### 安全基础
需要涵盖的主题:CIA 三要素、AAA 模型、纵深防御、Cyber Kill Chain、MITRE ATT&CK(简介)、常见威胁类型(恶意软件、网络钓鱼、勒索软件、DDoS)。
资源:
- [Professor Messer — Security+ (SY0-601)](https://www.professormesser.com/security-plus/sy0-601/sy0-601-training-course/) — 免费
- [MITRE ATT&CK](https://attack.mitre.org/) — 浏览矩阵,不要试图死记硬背
- [Cyber Kill Chain — Lockheed Martin](https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html)
- [NIST Glossary](https://csrc.nist.gov/glossary)
## SOC 工具
### SIEM
日志被收集、归一化和关联的中心点。作为 Tier 1 分析师,这是你的主要工作空间。
关键概念:集中式日志收集、事件关联、告警、仪表板、数据源(防火墙、端点、代理、DNS、认证)。
学习平台:[Wazuh](https://wazuh.com/)(开源)、[Security Onion](https://securityonionsolutions.com/)(开源)、Splunk(行业标准 — 免费试用)、Microsoft Sentinel(Azure 原生)。
### 流量分析 — Wireshark
需要构建的技能:捕获流量、使用显示过滤器、追踪 TCP/UDP/HTTP 流、导出对象。
- [Wireshark User's Guide](https://www.wireshark.org/docs/wsug_html_chunked/)
- [TryHackMe — Wireshark Room](https://tryhackme.com/room/wireshark)
- [Chris Greer — YouTube](https://www.youtube.com/@ChrisGreer) — 实战演示
### 端点分析
关键概念:EDR 的作用及其重要性。
工具:带有 [SwiftOnSecurity 配置](https://github.com/SwiftOnSecurity/sysmon-config)的 [Sysmon](https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon)、[osquery](https://osquery.io/)、原生工具(事件查看器、任务管理器、资源监视器)。
### 日志分析
Linux:`grep`、`awk`、`sed`、`sort`、`uniq`、`cut`、`less`。
Windows:事件查看器过滤器、PowerShell 中的 `Get-WinEvent`、正则表达式。
- [Regex101](https://regex101.com/) — 交互式正则表达式测试
- [Ubuntu CLI tutorial](https://ubuntu.com/tutorials/command-line-for-beginners#1-overview)
### 威胁情报
关键工具:[VirusTotal](https://www.virustotal.com/)、[AbuseIPDB](https://www.abuseipdb.com/)、[Shodan](https://www.shodan.io/)、[Any.Run](https://any.run/)、[Hybrid Analysis](https://www.hybrid-analysis.com/)。
## 快速参考
在值班或调查期间用于快速定位的命令。
**日志分诊 — Linux**
```
# 按类型统计事件
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -rn
# 认证失败中前 10 个源 IP
grep "Failed password" /var/log/auth.log | grep -oP 'from \K\S+' | sort | uniq -c | sort -rn | head -10
# 查找过去 24 小时内修改过的大文件
find /var /etc /tmp -type f -mtime -1 -size +1M 2>/dev/null
# 检查 /etc 中的全局可写文件
find /etc -perm -0002 -type f 2>/dev/null
```
**日志分诊 — Windows PowerShell**
```
# 登录失败事件 (4625) — 过去 2 小时
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=(Get-Date).AddHours(-2)} |
Select-Object TimeCreated, Message | Format-List
# 使用 PowerShell 的进程创建 (4688)
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4688} |
Where-Object {$_.Message -match 'powershell'} | Select TimeCreated, Message
# 新建计划任务 (4698)
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4698} | Select TimeCreated, Message
```
**Wireshark 显示过滤器 — SOC 必备**
```
# 可疑 DNS
dns.qry.name contains "pastebin"
dns.resp.len > 200
# 与异常外部端口通信的内部主机
ip.src == 192.168.0.0/16 && tcp.dstport == 4444
# POST 请求(潜在数据渗漏)
http.request.method == "POST"
# 连接到非标准端口的 TLS
tls && tcp.port != 443 && tcp.port != 8443
# SYN 扫描模式
tcp.flags == 0x002 && tcp.window_size <= 1024
```
**osquery — 端点搜寻**
```
-- Processes with no binary on disk (fileless indicator)
SELECT pid, name, path, cmdline FROM processes WHERE on_disk = 0;
-- Network connections to external IPs
SELECT pid, name, remote_address, remote_port
FROM process_open_sockets
WHERE remote_address NOT LIKE '127.%'
AND remote_address NOT LIKE '192.168.%'
AND remote_address != '0.0.0.0';
-- Autorun entries
SELECT name, path, source, status FROM startup_items;
-- Recently installed packages (Linux)
SELECT name, version, install_time FROM deb_packages
WHERE install_time > (strftime('%s','now') - 86400);
```
**IOC 查询 — 快速分诊**
```
# 无需上传的 Hash 查询
curl -s "https://www.virustotal.com/api/v3/files/
" \
-H "x-apikey: YOUR_VT_KEY" | jq '.data.attributes.last_analysis_stats'
# IP 信誉
curl -s "https://api.abuseipdb.com/api/v2/check?ipAddress=&maxAgeInDays=90" \
-H "Key: YOUR_ABUSEIPDB_KEY" | jq '.data.abuseConfidenceScore'
# Shodan 主机查询
shodan host
```
**Sysmon 事件 ID — 速查表**
| ID | 事件 | 重要性 |
|----|-------|----------------|
| 1 | 进程创建 | 命令行、哈希、父进程 |
| 3 | 网络连接 | 进程 → 外部 IP 映射 |
| 7 | 镜像加载 | DLL 劫持检测 |
| 8 | CreateRemoteThread | 进程注入指标 |
| 10 | ProcessAccess | LSASS 访问(凭证转储) |
| 11 | 文件创建 | 投递器活动 |
| 15 | 文件流创建 | 备用数据流 |
| 22 | DNS 查询 | C2 域名解析 |
| 23 | 文件删除 | 证据擦除 |
## 练习平台
### 建议学习路径
这只是一个初步建议——根据你已知的内容进行调整。
1. **基础:** TryHackMe Pre-Security 和 Introduction to Cybersecurity 路径。Linux 和 Windows 基础。OverTheWire Bandit。
2. **安全概念:** Professor Messer Security+。PicoCTF 动手基础。
3. **SOC 专项:** TryHackMe SOC Level 1 路径。
4. **真实 SOC 模拟:** LetsDefend(告警分诊、SIEM/EDR 工作流)。BlueTeamLabs Online(基于场景的挑战)。
5. **通过真实案例深化:** CyberDefenders — 基于真实事件的挑战。
### 平台
| 平台 | 重点 | 费用 |
|----------|-------|------|
| [TryHackMe](https://tryhackme.com/) | 引导式路径,适合初学者到 SOC L1 | 免费增值 |
| [Hack The Box Academy](https://academy.hackthebox.com/) | 模块化,扎实的防御和基础内容 | 免费增值 |
| [LetsDefend](https://letsdefend.io/) | SOC 模拟 — 分诊告警、SIEM/EDR 工作流 | 免费增值 |
| [BlueTeamLabs Online](https://blueteamlabs.online/) | 100% 防御,基于场景(内存、日志、取证) | 免费/付费 |
| [CyberDefenders](https://cyberdefenders.org/) | 蓝队 / IR 挑战,基于真实案例 | 免费/付费 |
| [PicoCTF](https://picoctf.org/) | 对初学者友好,适合打基础 | 免费 |
| [OverTheWire](https://overthewire.org/wargames/) | 通过战争游戏学习 Linux 技能 | 免费 |
| [CTFTime](https://ctftime.org/) | CTF 比赛日历 | 免费 |
## 家庭实验室
无限制练习的最佳方式之一。不需要很昂贵。
**基础设置:**
- 虚拟化:[VirtualBox](https://www.virtualbox.org/)(免费)或 VMware Workstation Player(免费)
- 防火墙:[pfSense](https://www.pfsense.org/) 或 [OPNsense](https://opnsense.org/)
- SIEM/IDS:[Security Onion](https://securityonionsolutions.com/) 或 [Wazuh](https://wazuh.com/)
- 漏洞靶机:[Metasploitable](https://docs.rapid7.com/metasploit/metasploitable-2/)、[VulnHub VMs](https://www.vulnhub.com/)、[DVWA](https://dvwa.co.uk/)
## 保持前沿
**新闻和公告:**
- [CISA Advisories](https://www.cisa.gov/news-events/cybersecurity-advisories) — 关键漏洞和威胁警报
- [Bleeping Computer](https://www.bleepingcomputer.com/) — 当前威胁、勒索软件、技术指南
- [The Hacker News](https://thehackernews.com/) — 全球安全新闻
- [INCIBE — CERT Advisories](https://www.incibe.es/incibe-cert/avisos) — 专注于西班牙
**社区:**
- [/r/blueteamsec](https://www.reddit.com/r/blueteamsec/) — 专注于防御
- [/r/cybersecurity](https://www.reddit.com/r/cybersecurity/) — 综合、新闻、职业
- [/r/AskNetsec](https://www.reddit.com/r/AskNetsec/) — 适合初学者提问
## 职业路径
### L1 之外的角色
- **SOC L2:** 更深入的分析、复杂事件、指导 L1、早期威胁搜寻
- **SOC L3:** IR 负责人、主动搜寻、检测规则工程
- **安全工程师:** 设计和管理安全工具(SIEM, EDR, 防火墙)
- **威胁情报分析师:** 研究行为者、TTP 和攻击活动
- **DFIR 分析师:** 事件后取证调查
- **渗透测试人员 / 红队成员:** 转向进攻性角色
- **GRC:** 治理、风险、合规、策略工作
### 认证
**入门级:**
- **CompTIA Security+** — 基础知识,广泛认可
- **Blue Team Level 1 (BTL1)** — 实战,100% 防御,强烈推荐用于 SOC L1
**下一步:**
- **CompTIA CySA+** — 威胁分析和 IR 重点
- **Splunk Core User / Power User** — 如果你的组织使用 Splunk
- **Microsoft SC-200** — 用于 Azure/Sentinel 环境
**长期:**
- **GIAC (GSEC, GCIA, GCIH)** — 受尊重,昂贵(隶属 SANS)
### 简历和求职
- 针对 SOC L1 调整简历:日志分析、SIEM 经验、网络、操作系统技能、特定工具
- 包含实验室工作个人项目——它们能展示主动性
- 尽可能量化,即使是实验室经历:“在 LetsDefend 中使用 Elastic SIEM 分诊了 200+ 个告警,按严重程度和攻击向量对事件进行分类”
- 带有文档化项目的 GitHub 个人资料可增加可信度
- LinkedIn 关键词:`SOC Analyst`, `SIEM`, `Threat Detection`, `Incident Response`, `Blue Team`
### 面试准备
**需要准备的技术问题:**
- 解释 TCP 握手及其对检测扫描的重要性
- 演练从邮件头到载荷的网络钓鱼邮件分析过程
- 描述常见的 Windows 事件 ID 及其含义
- 解释误报与真品的区别,以及你将如何处理每一种情况
**情境问题:- “如果……你会怎么做?”场景——结构化思维比完美答案更重要
- 当多个高严重性告警同时出现时,你如何划分优先级
- 在调查过程中,你如何处理不确定性或不完整的数据
**在面试前研究公司**:了解其所在行业、可能的威胁概况以及他们使用的工具。准备问题——这表明了真正的兴趣。
### 软技能
技术技能让你进门。这些技能让你留下:
- **书面沟通** — 清晰、简洁的事件文档和升级说明
- **批判性思维** — 质疑假设,关联数据,追踪证据
- **注重细节** — 微小的指标很重要
- **团队合作** — SOC 工作是协作性的,尤其是在事件发生期间
- **压力下的镇定** — 遵循程序,不要在压力下即兴发挥
- **求知欲** — 威胁形势不断变化;保持好奇是一项实用技能
## 贡献
如需建议新资源、更正或添加章节,请开启一个 Issue。要直接贡献,请 Fork 本代码库,在描述性分支上进行更改,并开启一个 Pull Request,清晰描述更改内容。
完整流程请参见 [CONTRIBUTING.md](CONTRIBUTING.md)。
许可证:[MIT](LICENSE)标签:AI合规, BurpSuite集成, Cloudflare, IT转型, Level 1 Analyst, MITRE ATT&CK, SOC分析师, 入门教程, 威胁情报, 子域枚举, 学习路线, 安全实验室, 安全教育, 安全运营中心, 实战指南, 库, 应急响应, 应用安全, 开发者工具, 开源资源, 网络安全, 网络安全基础, 网络映射, 职业发展, 隐私保护