安全职业与 IT 基础
fundamental-it-skills、硬件与编程基础。
网络安全入门:建立安全思维
这一课你将能做到
- 用 CIA 三元组准确描述一次安全事件究竟破坏了什么
- 在本机搭建一套完全合法的学习靶场(Docker + DVWA)
- 为自己的 Spring Boot 项目列出第一份资产清单与攻击面地图
为什么要学
网络安全不是「黑客炫技」,而是系统性降低风险的工程学科。对企业来说,一次接口越权、一次数据库脱库,损失是直接的金钱、口碑与合规处罚;对开发者来说,安全是代码质量的最后一道验收。Java 后端工程师是最贴近攻击面的人——你写的每一个 Controller 都可能被直接访问,你引入的每一个依赖都可能带着 CVE。
初学者最容易把安全当成「一堆玄学工具包」。本课的目标是让你像工程师一样理解安全:定义资产 → 识别威胁 → 设计控制 → 持续验证。
先建立图像
把系统想象成一栋办公楼:
攻击者
│ 扫端口 ≈ 推门试探
▼
┌──────────────────────────────────────┐
│ 大门(公网入口):负载均衡 / WAF / 网关 │ ← 边界防御
│ ┌──────────┐ ┌──────────┐ │
│ │ 前台(应用) │ │ 保安(IAM) │ │ ← 认证授权
│ └────┬─────┘ └──────────┘ │
│ ▼ │
│ 办公区(业务逻辑、服务间调用) │ ← 内部隔离
│ ▼ │
│ 保险柜(数据库 / 对象存储 / 密钥) │ ← 数据保护
└──────────────────────────────────────┘
审计摄像头(日志)覆盖每一层 ← 检测与取证
CIA 三元组对应三种破坏方式:
- 机密性(Confidentiality):数据被偷——脱库、越权读取
- 完整性(Integrity):数据被改——篡改订单金额、劫持更新包
- 可用性(Availability):服务瘫痪——DDoS、误删生产库
跟着做
步骤 1:声明授权边界(最重要的一步)
未经授权对他人系统扫描或测试是违法行为。合法做法只有三种:
- 在自己拥有的虚拟机 / 云主机上练习
- 使用官方授权靶场:DVWA、VulnHub、HTB Academy、PortSwigger Web Security Academy
- 参与有书面授权的 SRC / 众测项目
本课起所有命令默认只打向 localhost。建议本机安装 Docker,练习环境随起随删。
步骤 2:部署 DVWA 靶机
# 启动 DVWA(练习 SQL 注入 / XSS / CSRF 的经典靶机)
docker run --rm -it -d -p 80:80 vulnerables/web-dvwa
# 浏览器访问
http://localhost
# 默认账号 admin / password,登录后点 Create / Reset Database 初始化
步骤 3:第一次「指纹收集」(对 localhost)
curl -I http://localhost
# 观察响应头:Server、X-Powered-By 暴露技术栈与版本
# Cookie 是否带 HttpOnly / Secure
Java 平台同理:Spring Boot 的 /actuator 若直接暴露公网,/actuator/env、/actuator/heapdump 会把配置和内存dump给攻击者。
步骤 4:给自己的项目建资产清单
| 资产 | 例子 | 被破坏的后果 | 现有控制 |
|---|---|---|---|
| 用户数据 | 手机号、密码哈希 | 泄露 → 机密性 |