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