安全攻防技能 30 讲
2025-06-09 12:11:30 1 举报
AI智能生成
由浅入深构建系统级安全防御体系
作者其他创作
大纲/内容
开篇词
开篇词 | 别说你没被安全困扰过<br>
作者:何为舟
作者背景
信息安全专业本硕学历
美团点评安全平台负责人
曾在新浪微博负责网络安全和业务安全研发和设计
参与全球网络安全竞赛,做过渗透测试,取得信息系统安全专业认证
文章主题:为什么要学习安全?<br>
安全意识
Equifax 数据泄露事件导致损失<br>
公司工程师缺乏安全意识
安全是公司不可或缺的一环
小公司缺乏安全,大公司补安全
建议开发和管理人员具备基础的安全知识
学习安全
公司初期的安全需求相对简单
安全入门需要掌握前端、后端、操作系统、网络等知识
安全学习过程中宽度比深度更重要
实践出真知,通过思考题进行“沙盘演练”<br>
专栏内容
安全基础
Web 安全<br>
Linux 系统和应用安全<br>
业务安全
期望
学完专栏后既懂“攻”又懂“防”,既懂理论也懂实践<br>
设计了几篇不定期加餐,加深对安全的理解
希望能够给想往安全专业发展的同学一些指引
建议多练习,多总结
安全基本概念(5讲)<br>
01 | 安全的本质:数据被窃取后,你能意识到问题来源吗?<br>
安全是什么?<br>
安全原则
总结
思考题
02 | 安全原则:我们应该如何上手解决安全问题?<br>
上讲:拆解学习了 CIA 三元组<br>
机密性
完整性
可用性
安全问题的解决思路
方法原则
黄金法则
认证
身份识别
身份认证
认证形式
授权
授权机制
自动化授权
授权策略
审计和问责
审计
问责
日志
企业安全建设管理
安全管理方式
安全规划
总结
黄金法则的核心内容
安全保护措施
安全防御
思考题
分析系统和应用中的工作
推动安全建设
03 | 密码学基础:如何让你的密码变得“不可见”<br>
黄金法则
认证
授权
审计
加解密
对称加密算法
DES
IDEA
AES
国密 SM1 和 SM4
非对称加密算法
RSA
ECC
国密 SM2
散列算法
MD5
SHA
国密 SM3
应用场景
加密通信
数据库加密
Cookie 和营私信息加密存储<br>
认证和签名场景
总结
对称加密优先考虑
对多一场景使用非对称加密
不可逆计算使用散列算法
具体算法选取
对称加密用 AES-CTR
非对称加密用 ECC
散列算法用 SHA256 加盐<br>
04 | 身份认证:除了账号密码,我们还能怎么做身份认证?<br>
身份认证包括哪些东西?<br>
身份认证主要面临哪些威胁?<br>
身份认证的安全怎么保证?<br>
单点登录如何解决身份认证问题?<br>
总结
思考题
05 | 访问控制:如何选择一个合适的数据保护方案?<br>
身份认证
单点登录
CAS 流程
JWT
OAuth<br>
OpenID<br>
身份认证与授权
身份认证 vs. 授权<br>
授权的重要性
访问控制模型
主体
客体
请求
常见的访问控制机制
DAC(Discretionary Access Control)<br>
role-BAC(role Based Access Control)<br>
rule-BAC(rule Based Access Control)<br>
MAC(Mandatory Access Control)<br>
威胁评估的步骤
识别数据
识别攻击
识别漏洞
总结
4 种访问控制机制的特点
使用场景
组合使用
威胁评估
思考题
设计授权机制
通过威胁评估说服面试官
Web 安全(7讲)<br>
06 | XSS:当你“被发送”了一条微博时,到底发生了什么?<br>
产生原因<br>
HTML 的灵活性
插入恶意 JavaScript 脚本<br>
类型
反射型 XSS
示例
原理
基于 DOM 的 XSS
示例
原理
持久型 XSS
示例
原理
攻击效果
窃取 Cookie<br>
未授权操作<br>
按键记录和钓鱼
防护方法
验证输入 or 验证输出<br>
编码
检测和过滤
CSP
07 | SQL 注入:明明设置了强密码,为什么还会被别人登录?<br>
产生原因
用户信息存储在数据库中
用户登录时执行 SQL 语句
黑客通过恶意输入参数篡改 SQL 语句
攻击方式
修改 where 语句<br>
示例:输入 " or "" = "<br>
执行任意语句
利用分好分割 SQL 语句
示例:1; drop table users<br>
攻击后果
绕过验证
任意篡改数据
窃取数据
消耗资源
防护方法
使用 PreparedStatement<br>
合理使用可避免 99.99% 的 SQL 注入问题<br>
使用存储过程
将解析 SQL 的过程由数据库驱动转移到数据库本身
验证输入
对所有输入进行验证或过滤操作
避免 SQL 语句中出现字符串拼接的操作
思考题
获取除 username 之外的其他字段<br>
了解 union 概念<br>
08 | CSRF/SSRF:为什么避免了 XSS,还是“被发送”了一条微博?<br>
CSRF
产生
浏览器保存身份信息
通过恶意 JavaScript 脚本窃取身份信息<br>
伪造请求
防护
CSRF Token<br>
二次验证
SSRF
产生
服务端发起伪造请求<br>
内网穿透
防护
白名单限制
协议限制
请求端限制
09 | 反序列化漏洞:使用了编译型语言,为什么还是会被注入?<br>
产生原理
构造恶意序列化数据
控制反序列化过程中调用的类方法
实现任意方法调用
可导致执行任意命令
防御方法
认证和签名
通过认证避免接受异常输入
加入签名进行身份校验
限制序列化和反序列化的类
构造黑名单检测异常调用链
避免序列化和反序列化接口类
RASP 检测
通过 hook 方式监控应用<br>
实现拦截反序列化漏洞工具
性能损耗
思考题
了解所使用的序列化和反序列化插件是否存在漏洞
思考漏洞可能带来的影响
10 | 信息泄露:为什么黑客会知道你的代码逻辑?<br>
错误信息泄露代码逻辑
错误信息中的敏感信息
避免错误信息泄露
其他泄露方式
注释信息泄露
避免关键注释信息出现在线上代码
返回信息泄露
避免返回信息过于明确
直接泄露方式
版本管理工具中的隐藏文件
避免源码泄露
上传代码到 github<br>
防护措施<br>
总结
信息泄露的危害
防护手段
屏蔽信息
代码检测
人工审计
思考题
11 | 插件漏洞:我的代码看起来很安全<br>
为什么要重视插件漏洞?<br>
如何建立插件漏洞的防护体系?<br>
总结
思考题
12 | 权限提升和持久化:为什么漏洞修复了,黑客还是能够自由进出?<br>
漏洞修复后的问题
权限提升
权限持久化
总结
Linux 系统和应用安全(5讲)<br>
13 | Linux 系统安全:多人公用服务器,如何防止别人干“坏事”?<br>
Linux 系统和应用安全<br>
代码、操作系统、网络、数据库
基础环境和工具中的安全机制
正确配置安全机制提升安全保障
Linux 的安全模型<br>
内核层和用户层
内核层的安全功能
用户层的安全基础
内核安全的重要性
内核安全被突破的影响
不需要过多关心内核的安全
按照插件漏洞的防护方法
使用官方镜像并保持更新·
用户层的操作
主体 -> 请求 -> 客体流程<br>
Linux 内核安全提供的基于权限的访问控制<br>
用户层需要确保权限的正确配置
黄金法则在 Linux 系统中的应用<br>
Linux 系统安全防护核心<br>
正确配置用户层权限
认证、授权和审计
Linux 中的认证机制<br>
/etc/passwd 和 /etc/shadow<br>
Chage 命令修改密码管理策略<br>
弱密码导致的身份信息泄露
制定适当的密码策略
使用弱密码库检测弱密码
Linux 中的授权机制<br>
文件和目录的读、写、执行权限
文件属性和粘滞位的功能
解决权限问题
实践最小权限原则
防止权限滥用 root<br>
最小权限原则在 Linux 系统中的应用<br>
Linux 中的审计机制<br>
系统日志信息存储
用户登录日志、特殊事件日志和进程日志
日志监控工具
思考题
检查 Linux 服务器的 root 权限<br>
用户具备 root 权限<br>
进程具备 root 权限<br>
是否可以利用知识对 root 权限进行限制<br>
14 | 网络安全:和别人公用 WI-FI 时,你的信息会被窃取吗?<br>
内网安全
最小权限原则
分区和隔离
对内网进行水平划分
VLAN
对内网进行垂直划分
隔离内网和外网
有限网络安全
劫持问题
ARP 和 DNS 劫持
避免劫持的方法
合理划分网络
定期检测
无限网络安全
认证和加密
WPA2 协议
强制门户
伪造热点
避免未知热点
DDoS 攻击<br>
DoS 攻击<br>
漏洞攻击
垃圾流量攻击
DDoS 攻击产生方式<br>
使用“肉鸡”<br>
防护方法
带宽扩容
15 | Docker 安全:在虚拟的环境中,就不用考虑安全了吗?<br>
Docker 服务安全<br>
Docker 守护进程<br>
Docker 镜像安全<br>
总结
思考题
16 | 数据库安全:数据库中的数据是如何被黑客拖取的?<br>
数据库安全
Redis 安全<br>
安全性设计初衷
黑客连入 Redis 后的操作<br>
任意修改数据
发起权限提升
利用 Redis 保存文件功能执行命令<br>
安全防护手段
增加密码
使用最小权限原则
间接实现授权功能
避免使用 root 权限启动 Redis<br>
MySQL 安全<br>
黑客攻击方式
读取服务器本地文件
写入服务器本地文件
安全选项配置
密码管理功能
多用户认证体系
授权机制
ROLE-BAC 机制
审计功能
SSL 加密功能
硬盘加密功能
最小权限原则
总结
数据库面临的威胁
安全防护手段
认证
授权
审计
加密
最小权限原则
思考题
其他数据库的安全选项
17 | 分布式安全:上百个分布式节点,不会出现“内奸”吗?<br>
Hadoop 安全性探讨<br>
安全风险
Hadoop 攻击方式<br>
Hadoop 自带的安全功能<br>
Hadoop 安全框架<br>
安全框架选择
思考题
安全防御工具(7讲)<br>
18 | 安全标准和框架:怎样依“葫芦”画出好“瓢”?<br>
安全标准和框架
等级保护制度
安全等级划分
国家信息安全监管部门监督
ISO 27000 系列
兼容性极高的安全体系
信息安全管理的最佳实践指导
NIST
美国政府提出的安全框架
IPDRR 方法框架
COBIT
内控的框架
ITIL
服务质量的标准框架
现有安全标准和框架的借鉴
等保
安全分为管理和技术
ISO 27001
PDCA 流程
NIST
IPDRR 方法框架
Identify<br>
Protect<br>
Detect<br>
Respond<br>
Recover<br>
总结
安全标准的思维提炼
安全要分为技术和管理
通过 PDCA 流程规划安全建设
安全可以通过 IPDRR 建立纵深防御
主动学习设计思路
思考题
安全标准和框架的内容和思想
如何依靠这些思想推动公司的安全建设
19 | 防火墙:如何和黑客“划清界限”?<br>
防火墙如何为网络提供保护?<br>
防火墙概述
部署位置
工作层级
防火墙类型
包过滤防火墙
工作层级
过滤规则
限制
应用网关防火墙
工作层级
功能
影响
状态检测防火墙
工作层级
连接视角
性能
防火墙可以为网络边界提供哪些保护呢?<br>
保护操作系统的漏洞
漏洞类型
及时更新补丁
智能防火墙
阻止非法的信息流动
规则约束
数据流出
数据加密
限制可访问的服务和审计
安全制度
带宽限制
日志功能
防火墙有哪些防御盲区?<br>
位置限制
边界设备
未经防火墙访问
无法防御的攻击
授权服务中的攻击
防火墙外部攻击
总结
防火墙作用
配置复杂度
专业性
思考题
端口检查
端口限制
防火墙限制
20 | WAF:如何为漏洞百出的 Web 应用保驾护航?<br>
WAF
专注于 Web 安全的防火墙<br>
工作模式
透明代理
反向代理
插件模式
功能
HTTP 解析能力<br>
Web 安全防护<br>
审计告警
数据保护和虚拟补丁
WAF 的工作模式
透明代理
优点
缺点
反向代理
优点
缺点
插件模式
优点
缺点
WAF 的功能
HTTP 解析能力
解析 HTTP 请求
解析 XML、JSON 等 RPC 传输协议
解码能力
解密 HTTPS 请求
Web 安全防护<br>
签名匹配
正则匹配
行为分析
审计告警
安全相关的审计
提供其他审计能力
数据保护和虚拟补丁
加密 HTTP 响应中的 Cookie 内容<br>
对返回内容中的敏感字段进行统一的打码处理
提供虚拟补丁的功能
总结
WAF 的工作模式和主要功能
选取 WAF 时需要考虑的因素
思考题
21 | IDS:当黑客绕过了防火墙,你该如何发现?<br>
什么是 IDS?<br>
NIDS
工作原理
检测能力
HIDS
工作原理
检测能力
IPS
工作原理
检测和拦截能力
什么是蜜罐?<br>
低交互蜜罐
特点
高交互蜜罐
特点
如何构建入侵检测体系?<br>
组合使用 IDS、IPS 和蜜罐
微蜜罐
ELK 统一收集日志
思考题
安全产品之间的协同工作方式
22 | RASP:写规则写得烦了?尝试一下更底层的 IDS<br>
RASP
RASP 的原理
RASP 的有事
RASP 的劣势
RASP 的其他功能
思考题
23 | SIEM:一个人管理好几个安全工具,如何高效运营?<br>
SIEM 有哪些功能?<br>
收集日志
数据分析统计
完整的运营流程
SIEM 是如何落地的?<br>
制定计划
设计阶段
SIEM 需要管理哪些设备,收集哪些数据
安全运营目前遇到的痛点的典型场景<br>
完整的安全运营流程
建设阶段
建立短期预期,并且快速迭代
运营阶段
SIEM 落地中有哪些常见问题?<br>
垃圾数据太多
数据维度缺失
人员投入不足
总结
安全的发展,前期在于技术建设,长期在于运营升级
SIEM 的落地和生效是一个长期发展的过程
思考题
24 | SDL:怎么才能写出更“安全”的代码?<br>
SDL 中的基础概念
软件开发生命周期 DLC
什么是 SDL?<br>
安全培训
需求分析
设计
开发
测试
部署
响应
如何推动 SDL 落地?<br>
基于现有的制度拓展 SDL
灵活变通,不要生搬硬套
在 SDL 的覆盖面上,可以有所取舍
总结
思考题
业务安全(6讲)<br>
25 | 业务安全体系:对比基础安全,业务安全有哪些不同?<br>
如何理解业务安全?<br>
基础安全 vs 业务安全<br>
基础安全:安全攻防视角下的安全概念和知识,也叫网络安全<br>
业务安全:通过产品策略对黑产进行识别和拦截,保障业务正常运行<br>
黑产和黑客有哪些差异?<br>
基础安全中的黑客
通过 Web 安全或系统安全漏洞攻击<br>
擅长各类计算机技术
业务安全中的黑产
产业化
强调资源对抗
业务安全如恶化防护?<br>
业务安全的本质
保障用户价值不受黑产的恶意影响
提高黑产的资源成本
资源对抗
用户资源
通过黑名单实现拦截
IP 资源
限制 IP 下的登录用户数量
设备资源
对虚拟设备进行识别
操作资源
使用验证码提高黑产的操作成本
26 | 产品安全方案:如何降低业务对黑灰产的诱惑?<br>
IPDRR 安全框架
基础安全 vs 业务安全<br>
识别
威胁评估
邀约活动威胁评估
其他业务活动威胁评估
保护
安全产品方案
登录业务的安全产品方案
满减红包的安全产品方案
其他安全产品方案
27 | 风控系统:如何从海量业务数据中,挖掘黑灰产?<br>
产品方案
提高用户使用成本
风控系统
从业务数据中挖掘黑产行为的数据分析系统
需要对黑产用户进行区分
风控系统框架
前端 SDK
规则引擎
验证流程
前端 SDK
采集各类用户数据
计算设备指纹
规则引擎
识别黑产
工作模式
同步
异步
离线
规则管理
验证流程
降低拦截机制对用户体验的影响
风控人员
策略人员
运营人员
应急响应人员
28 | 机器学习:如何教会机器识别黑产?<br>
机器学习在安全领域中的应用
如何正确认识机器学习?<br>
机器学习的作用和局限性
机器学习是对人为经验的总结
无监督学习在安全中的应用
无监督学习的目的
无监督学习的局限性
无监督学习的评价和监控方法
有监督学习在安全中的应用
有监督学习的基础和作用
挖掘“已知的威胁”<br>
设计合理的标签系统
思考题
业务安全场景中的风险分析
深度学习和图算法在安全领域中的应用
29 | 设备指纹:面对各种虚拟设备,如何进行对抗?<br>
设备指纹技术
设备指纹的优势
设备指纹面临的主要挑战
设备指纹的信息采集
设备指纹的 ID 计算
设备指纹对异常设备的识别
思考题
30 | 安全运营:“黑灰产”打了又来,如何正确处置?<br>
IPDRR 的前三个部分
风控系统的框架
算法
设备指纹的相关技术
业务中处理黑产的手段
直接拦截
不同的识别模式下的拦截方案
注意误伤问题
验证拦截
人机验证
图片验证码
滑块验证码
同人验证
异地登录的短信验证
好友列表验证
订单验证
人脸识别、声纹识别
验证方式的安全性
假数据拦截
爬虫场景中的拦截方式
优势和成本
业务之外处理黑产的运营手段
情报收集
监控公开信息源
加入“羊毛群”<br>
打入黑产交流群
钓鱼执法
钓鱼执法的手段
分析被黑产掌握的账号的历史行为
注意钓鱼执法的结果的使用范围
案件打击
打击黑产的基础条件
确定黑产目标
明确损失金额或黑产收益金额
提供证据
总结
业务中处理黑产
间接方式的处理
降低误伤影响
增加黑产绕过难度
业务之外处理黑产
情报收集和钓鱼执法
司法手段的打击
思考题
验证方式的用户体验和难度
自动化进行验证的可能性
知识串讲(3讲)<br>
模块串讲(一) | Web 安全:如何评估用户数据和资产数据面临的威胁?<br>
威胁评估
用户数据
盗取用户身份
弱密码
社工手段
Web 漏洞<br>
XSS 漏洞
SQL 注入漏洞
CSRF 漏洞
资产数据
控制内网服务器
SSRF 漏洞
反序列化漏洞
插件漏洞
后门
认证和授权的安全防护
检测和过滤
加强认证
补丁管理
最小权限原则
WAF
IDS
模块串讲(二) | Linux 系统和应用安全:如何大范围提高平台安全性?<br>
怎么大范围提高平台安全性
安全培训
安全基线
安全规范
技术手段检测
安全基线的检测
安全基线的共用
重点知识回顾
认证
授权
审计
加密
思考题
其他平台或工具的安全功能
模块串讲(三) | 安全防御工具:如何选择和规划公司的安全防御体系?<br>
安全防御工具
安全标准和框架
防火墙
WAF
IDS
RASP
SIEM
SDL
场景一:公司发展初期,没有真实的攻击发生<br>
优势
业务体量小
用户量少
开发人员少
领导支持
安全需求不急迫
安全建设的最优方案
从基础开始做起
安全制度
安全培训
安全管理制度
场景二:公司发展中后期,没有真实的攻击发生<br>
安全条件
业务大
用户多
开发多
领导不完全支持
有紧迫的安全需求
安全建设方法
安全测试
安全演练
满足合规需求
场景三:有真实攻击发生<br>
救火状态的安全工作
分析攻击路径
发现安全漏洞
修复漏洞
安全防御体系的发展方式
先快再好
防火墙、WAF、IDS
逐步完善和深入
总结
安全制度为基础
显著的安全问题
先快速阻断攻击,再逐步深入解决安全问题
思考题
公司所属场景
推动公司的安全发展的首要问题
特别加餐(5讲)<br>
加餐1 | 数据安全:如何防止内部员工泄露商业机密?<br>
为什么员工会主动泄露公司机密?<br>
赚钱
倒卖公司数据
欺诈
贪污
对公司不满而实施的报复行动
裁员
辞职
删库跑路
跳槽
商业间谍
炫耀心理
如何防止内部员工泄露机密?<br>
背调
DLP(数据泄露防护系统)<br>
异常检测
规章制度
思考题
泄密行为的影响
公司的防泄密措施
加餐2 | 前端安全:如何打造一个可信的前端环境?<br>
前端安全性
攻击事件:12306 网站被篡改<br>
黑客通过分析前端代码进行篡改
黑客复刻前端应用
混淆技术
无序化代码
去除空格、换行、锁紧
使用无意义的随机字符替代方法名和变量名
简单逻辑复杂化
加入无意义的代码
加入不会被执行的代码
固定字符动态化
将关键字符串改成多个字符串拼接的形式<br>
使用更复杂的方法获取关键字符串
反调试
域名锁定
无限断点
混淆技术的负面影响
增加代码体积
影响性能
无法分析报错
思考题
分析熟悉的语言和环境中的代码混淆方式
加餐3 | 职业发展:应聘安全工程师,我需要注意什么?<br>
安全岗位有哪些?<br>
渗透测试
安全运维
业务安全
开发和算法
安全研究
数据安全
合规审查
面试安全工程师,必备安全能力
安全专业背景
攻击渗透能力
开发能力和算法能力
安全研究能力
加餐4 | 个人成长:学习安全,哪些资源我必须要知道?<br>
安全入门书籍
《白帽子讲 Web 安全》<br>
《黑客攻防技术宝典》<br>
《Metasploit 渗透测试指南》<br>
攻击进阶练习
WebGoat<br>
Pwnable.kr<br>
CTF 比赛<br>
企业防御书籍
《企业级安全防护》<br>
《企业网络安全防护》<br>
《企业信息安全管理》<br>
安全证书
CISP
CISSP
OSCP
安全咨询
FreeBuf<br>
安全客<br>
安全漏洞联盟
加餐5 | 安全新技术:IoT、IPv6、区块链中的安全新问题<br>
IoT 安全<br>
设备更多
设备性能更低
更加开放
认证复杂化
物理攻击流行化
复杂的安全威胁
IPv6 对安全的影响<br>
网络扫描不再可能
公司安全负担增加
IPv6 的复用性<br>
区块链中的安全问题
去中心化
完整性保障
机密性牺牲
用户密钥丢失
比特币的匿名性
比特币的使用
总结
独特的安全问题
持续关注新技术
思考题
结束语(2讲)<br>
结束语 | 在与黑客的战役中,我们都是盟友!<br>
黑客与安全人员
黑客
深入研究技术细节
发现安全漏洞
对技术钻研
安全人员
修复安全漏洞
拦截攻击
提供安全防护
安全工作
参与安全工作
实战和沟通
实战训练重要性
沟通技巧重要性
实战演练
渗透实战平台
错误和教训
大胆尝试
吸取教训
总结经验
沟通
安全圈
子主题
安全能力
公司安全能力
安全作为必备技能
未来的安全学习和工作
遇到困难
安全战役中的盟友
毕业问卷
结课测试 | 这些安全知识,你都掌握了吗?<br>
上次总结结果
完结的《安全攻防技能 30 讲》课程<br>
收到很多留言,感谢学习和支持
上次总结后续的文章
一套结课测试题
20 道题目
10 道单选题
10 道多选题
满分 100 分
点击按钮开始测试
课程迭代(6讲)<br>
续写新篇 | 塑造新时代的安全蓝图<br>
安全建设从 0 到 1
安全建设从 1 到 10
大模型时代的 AI for Security<br>
大模型时代的 Security for AI<br>
网络安全行业的发展趋势<br>
0 条评论
下一页