Announcement

👇Official Account👇

图片

Welcome to join the group & private message

Article first/tail QR code

Skip to content

🛡️ 安全工程师成长路线

从防御加固到攻防研究,打造攻防一体的安全工程能力

课程信息说明
难度🟢 入门 → 🔴 高级
预计时长8-10 周
课程模块5 大核心模块
课时数量15 课时
实战项目安全加固实战、渗透测试报告
前置知识Linux 基础、网络基础、任意一门编程语言

🎯 课程目标

完成本课程后,你将能够:

  • 服务器安全加固 - SSH、防火墙、入侵检测、蜜罐体系
  • Web 应用防护 - OWASP Top 10、输入验证、认证授权、XSS/SQL 注入防护
  • 安全开发实践 - Go/PHP/Python安全编码、依赖管理、代码审计
  • 攻防技术研究 - 渗透测试方法论、漏洞分析、WAF 绕过
  • 应急响应能力 - 日志取证、溯源分析、安全事件处理

📚 课程大纲

🔹 模块 1:服务器安全基础(2 周)

目标: 掌握 Linux 服务器安全加固的核心技能

课时主题内容状态
1.1安全基线最小化安装、用户权限、文件权限📝
1.2SSH 安全加固密钥认证、失败限制、速率限制
1.3防火墙配置iptables、UFW、端口管理📝
1.4入侵检测fail2ban、日志监控、告警通知
1.5蜜罐技术蜜罐部署、攻击者行为分析
1.6安全更新自动更新、漏洞扫描、补丁管理📝

推荐文章:

实战练习:

  • 配置 SSH 密钥认证,禁用密码登录
  • 部署 fail2ban 防护暴力破解
  • 搭建简易蜜罐捕获攻击者行为

🔹 模块 2:Web 应用安全(2-3 周)

目标: 掌握 Web 应用常见漏洞与防护方案

课时主题内容状态
2.1OWASP Top 10十大安全风险详解📝
2.2SQL 注入原理、检测、防护(预编译、ORM)📝
2.3XSS 攻击反射型、存储型、DOM 型 XSS 防护📝
2.4CSRF 攻击原理、Token 防护、SameSite Cookie📝
2.5文件上传漏洞类型校验、病毒扫描、隔离存储📝
2.6认证与授权JWT、OAuth2、RBAC、会话管理📝
2.7输入验证白名单验证、数据清洗、参数化查询📝
2.8安全响应头CSP、HSTS、X-Frame-Options📝

推荐文章:

漏洞防护速查表:

┌─────────────────┬──────────────────┬─────────────────┐
│     漏洞类型     │     攻击方式      │     防护方案     │
├─────────────────┼──────────────────┼─────────────────┤
│ SQL 注入         │ 恶意 SQL 语句      │ 预编译、ORM      │
│ XSS             │ 恶意脚本注入      │ 转义、CSP        │
│ CSRF            │ 伪造请求          │ Token、SameSite  │
│ 文件上传         │ WebShell 上传     │ 类型校验、隔离    │
│ 越权访问         │ ID 遍历、水平越权  │ RBAC、权限校验    │
│ 暴力破解         │ 密码猜解          │ 限流、验证码      │
└─────────────────┴──────────────────┴─────────────────┘

🔹 模块 3:Go 安全开发实践(2 周)

目标: 掌握 Go 语言安全编码规范与安全库使用

课时主题内容状态
3.1Go 安全陷阱10 大常见安全隐患与修复
3.2密码学基础哈希、加密、签名、密钥管理
3.3TLS/SSL实现HTTPS、证书管理、双向认证
3.4安全随机数crypto/rand vs math/rand📝
3.5依赖安全漏洞扫描、版本锁定、SBOM📝
3.6安全库使用bcrypt、argon2、ed25519
3.7代码审计静态分析、模糊测试、漏洞扫描📝

推荐文章:

  • [Golang 中的网络安全 TLS/SSL 的实现](/security/engineering/golang%20 中的网络安全 TLS%20SSL 的实现.md)
  • [Go 语言主流安全库使用指南](/security/engineering/Go 语言主流安全库使用指南.md)

Go 安全代码示例:

go
// ✅ 安全:使用 crypto/rand 生成随机数
import "crypto/rand"

func generateToken() (string, error) {
    bytes := make([]byte, 32)
    _, err := rand.Read(bytes)
    if err != nil {
        return "", err
    }
    return hex.EncodeToString(bytes), nil
}

// ✅ 安全:使用 bcrypt 哈希密码
import "golang.org/x/crypto/bcrypt"

func hashPassword(password string) (string, error) {
    hashed, err := bcrypt.GenerateFromPassword([]byte(password), 12)
    if err != nil {
        return "", err
    }
    return string(hashed), nil
}

func checkPassword(hashed, password string) bool {
    err := bcrypt.CompareHashAndPassword([]byte(hashed), []byte(password))
    return err == nil
}

// ✅ 安全:使用预编译语句防止 SQL 注入
db.Prepare("SELECT * FROM users WHERE email = ?")

🔹 模块 4:攻防研究(2-3 周)

目标: 从攻击者视角理解系统弱点,更好地防御

课时主题内容状态
4.1渗透测试方法论信息收集、漏洞扫描、利用、后渗透📝
4.2信息收集域名枚举、端口扫描、指纹识别📝
4.3漏洞扫描Nmap、Nikto、Dirb、自动化扫描📝
4.4Web 漏洞利用SQLMap、XSS 注入、文件包含📝
4.5内网渗透域渗透、横向移动、权限维持📝
4.6WAF 绕过编码、分块、协议层绕过📝
4.7漏洞分析CVE 分析、PoC 编写、修复验证📝

实战环境:

  • DVWA (Damn Vulnerable Web Application)
  • OWASP Juice Shop
  • HackTheBox / TryHackMe

⚠️ 法律提示:所有攻防技术仅限学习和授权测试使用,未经授权的渗透测试是违法行为。


🔹 模块 5:应急响应与安全运营(1-2 周)

目标: 建立安全事件应急响应能力

课时主题内容状态
5.1应急响应流程准备、检测、遏制、根除、恢复、总结📝
5.2日志取证日志收集、分析、时间线重建📝
5.3入侵溯源IP 追踪、攻击者画像、威胁情报📝
5.4安全运营安全监控、告警分级、值班流程📝
5.5合规与审计等保 2.0、ISO27001、安全文档📝

应急响应检查清单:

□ 1. 确认安全事件类型和范围
□ 2. 隔离受影响的系统
□ 3. 保存现场证据(日志、镜像)
□ 4. 分析攻击路径和漏洞原因
□ 5. 修复漏洞并验证
□ 6. 恢复系统和服务
□ 7. 编写事件报告
□ 8. 更新安全策略和监控规则

🛠️ 安全工具栈

安全工具链
├── 服务器加固
│   ├── fail2ban (入侵检测)
│   ├── UFW/iptables (防火墙)
│   └── OSSEC (HIDS)
├── 漏洞扫描
│   ├── Nmap (端口扫描)
│   ├── Nikto (Web 扫描)
│   ├── SQLMap (SQL 注入)
│   └── Gosec (Go 代码扫描)
├── 渗透测试
│   ├── Burp Suite (Web 代理)
│   ├── Metasploit (漏洞框架)
│   └── Hydra (暴力破解)
├── 监控响应
│   ├── Wazuh (SIEM)
│   ├── ELK Stack (日志分析)
│   └── Velociraptor (取证)
└── 开发安全
    ├── Snyk (依赖扫描)
    ├── Trivy (容器扫描)
    └── Semgrep (代码审计)

🏆 实战项目

项目 1:服务器安全加固

目标: 对一台 Linux 服务器进行完整安全加固

检查清单:


项目 2:Web 应用安全审计

目标: 对一个 Go Web 应用进行安全审计

审计内容:


项目 3:渗透测试实战

目标: 在合法环境中进行完整渗透测试

测试流程:

  1. 信息收集(域名、IP、端口、服务)
  2. 漏洞扫描(自动化 + 手动)
  3. 漏洞利用(获取权限)
  4. 权限提升(本地提权)
  5. 横向移动(内网渗透)
  6. 编写渗透测试报告

📖 学习资源

官方文档

实践平台

安全资讯


🎓 学习建议

1️⃣ 合法合规

  • 所有技术仅限学习和授权测试
  • 不要对未授权系统进行测试
  • 遵守当地法律法规

2️⃣ 攻防一体

  • 既要学习防御加固
  • 也要理解攻击手法
  • 知己知彼,百战不殆

3️⃣ 实践为主

  • 搭建实验环境
  • 参与 CTF 比赛
  • 在合法平台练习

4️⃣ 持续学习

  • 安全领域更新快
  • 关注最新漏洞动态
  • 持续学习新技术

📊 课程进度

模块进度状态
模块 1:服务器安全基础3/6🚧 进行中
模块 2:Web 应用安全0/8📝 规划中
模块 3:Go 安全开发实践4/7🚧 进行中
模块 4:攻防研究0/7📝 规划中
模块 5:应急响应与安全运营0/5📝 规划中

总体进度: 7/33 (21%)


💡 常见问题

Q: 安全工程师需要掌握编程吗?

A: 需要。自动化脚本、工具开发、代码审计都需要编程能力。建议掌握 Python 或 Go。

Q: 如何入门网络安全?

A: 从基础开始:Linux → 网络 → Web 技术 → 安全基础 → 实践平台。

Q: 渗透测试和安服有什么区别?

A: 渗透测试侧重攻击模拟,安服(安全服务)包括评估、加固、培训等更全面的服务。

Q: 女生适合学安全吗?

A: 非常适合!安全领域需要多元化视角,细心、耐心、逻辑思维都是优势。


🤝 参与贡献

本课程正在建设中,欢迎参与:

  • 📝 编写课时:认领任意未完成的课时
  • 🐛 报告问题:发现错误或不清晰的地方
  • 💡 提出建议:新的实战案例或工具推荐

GitHub 仓库 | 联系作者


⚠️ 法律免责声明:本课程涉及的攻防技术仅限学习和授权的安全测试使用。未经授权的渗透测试是违法行为,后果自负。

返回课程总览 →

上次更新于: