网络安全概论
三小时女娲补天网安概论
0x01网络信息安全发展历史
- 网络信息安全历史:
- 通信保密阶段:COMSEC,20世纪20-60年代,主要解决发方和收方的信息源编码(Source Coding)、信道编码和传输(Channel Coding)、通信协议和密码的问题。
- 信息安全阶段:INFOSEC,20世纪80-90年代,主要目标为保密性Confidential、完整性Integrity、可用性Availability。包括TCSEC橙皮书和ITSEC白皮书。
- 信息保障阶段:IA,20世纪90年代至今,主要为为从整体角度考虑其体系建设的信息保障(Information Assurance)阶段,代表是美国的IATF规范。
- 网络空间安全:2010年后
- 信息安全的基本特征:
- 相对性
- 时效性
- 安全攻击源和防范对象的不确定性
- 反传统的技术思维和复杂的人-机关系
- 相关性
- 信息结构的高度脆弱性和风险性
- 动态性
0x02计算机网络
-
OSI七层模型
应用层Application Layer,表示层Presentation Layer,会话层Session Layer,传输层Transport Layer,网络层Network Layer,数据链路层DataLink Layer,物理层Physical Layer
-
TCP/IP协议栈
应用层,传输层,网络层,网络接口层
-
五层参考模型
应用层,传输层,网络层,数据链路层,物理层
-
相关概念
- MAC地址
- IP地址、端口号、套接字Socket
- TCP vs. UDP
- 域名解析
-
网络工具
- ping使用ICMP检查目标IP是否可达
- ipconfig/ifconfig查看网络配置信息
- netstat查看网络连接状态
- arp查看ARP缓存信息
0x03安全基础
- 信息安全的定义:信息安全是防止对知识、事实、数据或能力的非授权使用、误用、篡改或拒绝使用所采取的措施。
- 完整的定义:指在既定的安全密级条件下,信 息系统通过预警、保护、检测、响应、恢复和反击机制,抵 御意外事件或恶意行为攻击,确保信息系统避免非授权的访 问、破坏或者服务中断,实现信息和资源的保密性、完整性、 可用性、非否认性和可控性的能力。
- 三要素:
- 机密性Confidential:不被截获和未授权使用
- 完整性Integrity:内容真实可信、不被冒充伪造和篡改
- 可用性Availability:信息和信息服务被授权人正常使用
- 其他属性:
- 不可否认性No-Repudiation:行为的不可否认
- 可控性Controllability:验证Authentication和审计Accountability
- 可存活性Survivability:在攻击和错误情况下继续提供服务
- 安全攻击
- 中断Interruption:破坏了可用性
- 修改Modification:破坏了完整性
- 伪造Fabrication:破坏了真实性
- 截取Interception:破坏机密性
- 安全服务
- 认证Authentication:提供实体的身份保证
- 访问控制Access Control:授权资源访问
- 机密性服务Confidential:信息不泄露和暴露
- 完整性服务Integrity:数据的价值和存在性没有改变
- 不可抵赖服务
- 安全机制:安全服务的实现
- 加密机制
- 数字签名
- 访问控制
- 数据完整性
- 通信业务流填充
- 路由控制
- 认证交换
- 公证机制
0x04威胁和攻击技术
- 安全问题的根源:
- 物理安全因素:设备本身的问题、环境的安全
- 方案设计因素:安全策略不合理、安全配置不当、设计需要牺牲安全机制
- 系统安全因素:操作系统和网络软件等的漏洞和后门
- TCP/IP协议的安全因素:设计之初没有考虑安全问题
- 人的因素:无意的失误和错误、恶意攻击
- 攻击技术:
- 被动攻击:窃听和监视数据传输,不对数据进行修改,难以检测,重在预防
- 嗅探sniff
- 分析
- 主动攻击:数据流的篡改和错误数据的添加,能够检测,难以防止
- 假冒fabrication
- 重放replay
- 篡改modification
- 被动攻击:窃听和监视数据传输,不对数据进行修改,难以检测,重在预防
- 攻击过程
- 预攻击pre-attack:搜集信息,域名、IP、拓扑、OS、端口、服务
- 攻击attack:远程权限、接入、本地权限、提权、攻击
- 后攻击post-attack:植入木马、删除日志、进一步渗透
- 攻击手段:
- 网络监听sniff:监听网络状态和数据流
- 密码破解crack:字典攻击、暴力破解
- 会话劫持session hijack:”中间人攻击“
- 缓冲区溢出buffer overflow:输入数据规模超过了给定缓冲区的大小
- 拒绝服务攻击DoS:消耗目标资源使其无法为正常用户提供服务
- 病毒和蠕虫worm:自我复制和传播,利用漏洞传播
- 木马trojan:隐蔽运行,远程控制和信息窃取
- SQL注入SQL insert:访问数据库的动态网页
- APT攻击:
- 高级可持续性攻击:Advanced Persistent Threat
- 攻击路径:网络欺诈和0day攻击——找到漏洞——感染内部人员——获取数据
0x05网络信息安全模型
- 网络通信模型:
- 包括:消息的安全转换、通信主体共享的秘密信息(密钥)、可信第三方trusted third party。
- 消息经过安全转换后经由信道传输。其中的安全转换通过该秘密信息指导。
- 访问安全模型:
- 外部安全:阻止非授权用户
- 内部安全:内部安全控制
- P2DR模型:
- 安全策略Policy、防护Protection、检测Detection、响应Response
- 基于时间的安全理论,通过每一个行为消耗的时间衡量安全能力
- 暴露时间E = 检测时间 + 响应时间 - 攻击时间。攻击时间越短、响应时间越长,则暴露时间越长,系统越危险。当暴露时间小于0,可以认为系统是安全的。
- 系统安全 = 风险分析 + 安全策略 + 系统防护 + 实时监测 + 实时响应 + 灾难恢复,其中外围五个因素都收到了系统安全策略的影响。
- 信息技术安全评估准则:
- TCSEC桔皮书:A、B3、B2、B1、C2、C1、D
- INSEC桔皮书的进一步发展
0x06密码学技术
- 密码学发展:手工阶段、机器阶段、现代密码学
- 基本概念:
- Cryptology、Cryptography、Cryptanalysis
- 加密Encryption、解密Decryption
- 无条件安全Unconditionally Security、计算安全Computationally Security
- 编码原则:加密算法建立在算法的公开不影响铭文和密钥的安全
- 古典密码:古典替换(substitution,替换明文)、古典置换(permutation/transportation,改变明文字符的位置)
- 密码分析方式:
- 唯密文攻击:只有密文串和加密算法,利用统计方式分析
- 已知明文攻击:具有明文密文和加密算法,推导密钥
- 自适应选择明文攻击:攻击者选择明文并得到对应的密文
- 选择密文攻击:攻击者选择密文兵构造对应的明文
- 选择文本攻击
- 典型攻击方式:
- 暴力攻击Brute Force:穷举法、字典攻击
- 数学方式:差分攻击(明文插值对密文插值的影响)、线性密码、插值攻击
- 密钥相关攻击
- 对称密钥体系:
- 分组密码:明文和密文分组,相同密钥和明文能得到相同密文
- 序列密码:流密码,按bit加密
- 分组密码原理:
- 明文消息编码得到的序列分组,在密钥控制下变换成等长的输出序列
- 混乱原则:Confusion,即使用替换法Substitution,S-box。防止利用明文和密文的依赖关系破解。
- 扩散原则:Diffusion,即使用置换法Permutation,P-box。密钥的每位数字影响密文的多个数字,明文的每位数字影像密文的多个数字。
- Feistel加密结构:多轮迭代、使用动态子密钥
- 数据加密标准DES:
- 56bit的密钥加密64bit的明文分组
- 16轮迭代
- double-DES、triple-DES
- 高级加密标准AES:
- 明文分组为16字节128bit
- 10轮迭代,但是不是Feistel结构
- 随机数:
- 特性:不可预料性、统计独立性
- 生成方法:自然随机数源,随机数生成函数,通常只能生成伪随机数序列
- 流密码:
- 原理:一次一密的密码体制绝对安全。
- 使用种子密钥生成密钥序列,利用密钥序列一次加密明文的一个或几个比特
- 硬件实现简单
- 公开算法包括RC4算法
- 分组密码模式:
- ECB电子密码本:每一个分组使用相同的密钥
- CBC分组链接:当前明文段与上一密文段异或处理后进行加密
- CFB密码反馈:将分组密码转为流密码
- CTR计数器:计数器加密后与明文异或后进行加密
0x07公钥密码技术
- 消息认证:
- 验证发送者的身份(真实性),验证信息完整性
- 常规方式:共享密钥、序列号、时间戳、错误检测码
- 非加密方式:报文鉴别码、单向散列函数
- 消息认证码MAC:
- 使用密钥,从消息中生成数据,成为MAC或密码校验和(cryptographic checksum)
- 通信双方使用相同的密钥计算MAC并验证,保证了完整性和真实性
- 信息摘要/哈希/散列函数:
- 变长输入压缩到定长的输出,输入改变后输出变化很大。
- MAC计算速度慢,需要密钥,但是计算信息摘要不需要密钥,只能验证完整性
- 特点:单向性、抗碰撞性
- 安全问题:密码分析法(分析算法缺陷)、穷举攻击
- 典型散列算法:
- MD5:明文补全为512bit的组,生成128bit的摘要,已经被证明了不安全可以破解。
- SHA:明文补全为512bit的组,生成160bit的摘要,记录在5个32bit的数据中。
- HMAC:使用散列函数实现的MAC,使用密钥参与哈希过程
- 公钥密码思想:
- 公钥公开,私钥保密,私钥可导出公钥,公钥难以计算私钥。
- 公私钥的生成利用了单向陷门函数,即容易计算但难以求逆,给定陷门后易于求逆。
- 常用数学难题:大整数因子分解,有限域上乘法群的离散对数问题,椭圆曲线离散对数问题。
- RSA机制:
- 利用大整数因子分解难题
- 给定素数p、q,公开其乘积n,选择e与$\varphi(n)$互素,计算$d=e^{-1}mod\ \varphi(n)$。
- 给定私钥p和q和d,计算公钥e和n比较简单,但是逆运算非常难。
- Diffie-Hellman密钥交换:
- 用户事先共享a和p
- 用户选择随机数$X_A$和$X_B$
- 计算$Y_A = a^{X_A}mod\ p$和$Y_B = a^{X_B} mod\ p$并交换
- 计算$K = Y_B^{X_A} mod\ p= Y_A^{X_A}mod\ p$。
- 容易被中间人攻击
- 椭圆曲线机制ECC,相比RSA在较短的密钥提供了更高的安全性。
- 对称和非对称加密
- 对称加密:速度快,密钥短但是管理困难
- 非对称加密:密钥管理简单,可以数字签名,速度慢
- 数字签名技术:
- 同时保护信息完整性和信息发送者的身份确认
- 原理:数字信息经过散列函数计算摘要,使用私钥加密信息摘要并作为信息的一部分。使用公钥解密得到摘要并检查信息的完整性。
0x08密钥分发和用户认证
- 密码管理处理密码产生到销毁过程中的各个问题,包括初始化、产生、存储、分配、停用、更新、销毁。
- 密钥生产形式:密钥管理中心集中生产(有边界生产),个人生成(无边界生产)
- 密钥分配:自动分配机制减轻负担,同时尽量减小密钥量
- 对称密码体制:
- 一方选择密钥,通过安全方式传递给另一方
- 可信第三方选定,安全方式传递给双方
- 使用旧密钥加密新密钥传输
- 可信第三方的加密分发:设立KDC(Key Distribution Center)使用永久密钥加密传输会话密钥,会话密钥用于加密会话内容,一次一密。
- 分布式环境认证:
- 一组工作站和一组分布式服务器组成
- 工作站可以保证用户认证,客户端向服务器验证,客户端和服务器的双向验证
- Kerberos:提供两个密钥TGT和ST,用户向DC验证身份得到TGT,访问服务时通过TGT得到ST,使用ST与服务器加密传输并验证身份。
- kerberos保存有用户的ID和密钥散列,同时与每一个应用服务器共享一个保密密钥。
- 一个kerberos环境包括kerberos服务器、应用服务器和工作站。实际上存在跨环境的访问,此时需要不同环境的Kerberos服务器之间共享一个密钥实现相互注册。
- 公钥证书:
- 证书管理机构CA(Certificate Authority),证书Certificate
- 证书包括用户的相关信息,用户的公钥,时间戳等
- CA使用公开公钥,使用自己的私钥为证书签名
- 对称+非对称的密钥分配:
- 使用对称密钥加密信息,使用非对称加密方式分发加密密钥
- 分配步骤:使用对方公钥加密交互信息(验证对方身份)+使用自己私钥和对方公钥加密信息密钥+使用信息密钥加密传输
- X.509标准:
- CA为用户颁发证书,证书包括用户公钥,使用CA公钥签名
- CA保证了用户信息的正确性,证书内容无法伪造或篡改
- 根CA向下级CA签名,构建树状结构、证书链
- 根证书可以是自签名的
- PKI公钥基础设施:
- PKI是生成、管理、存储、分发和吊销基于公钥密码学的公钥证书所需要的硬件、软件、人员、策略和规程的总和
- 包括证书库、CA、RA、证书注销列表、密钥备份恢复、应用接口
- 用户的证书请求经由RA发送到CA
- 不同的CA之间可以交叉认证,交换密钥信息,验证对方的可信任性
- 信息隐藏:利用载体中随机性的荣誉部分隐藏秘密信息。
- 数字水印
0x09网络访问控制和云安全
- 访问控制:允许或限制访问能力和范围。包括阻止对资源的未授权访问和拒绝向非授权主体提供服务
- 访问控制实体:
- 客体:被保护的资源对象
- 主体:访问行为发起者
- 授权:安全访问策略,规定主体对客体执行的动作
- 访问控制策略
- 最小特权策略,
- 最小泄露策略
- 多级安全策略
- EAP协议(Extensible Authentication Protocol):运行在链路层的安全认证协议
- IEEE 802.1X协议:基于端口的认证策略
- 云计算:并行计算、分布式计算、网格计算的融合和发展
- 一种弹性计算资源,通过网络获取的共享资源
- 网络获取、可伸缩性、资源共享
- 服务模式:SaaS软件即服务、PaaS平台即服务、IaaS基础设施即服务
- 部署模型:公有云、私有云、社区云、混合云
- 云计算安全风险:滥用和恶意使用、不安全的API、数据泄露、账户或服务劫持
0x0A WEB安全和传输层安全
- 架构:Browser/Server结构,应用层使用HTTP协议
- Web内容
- 静态内容:固定网页的访问
- 动态内容:利用数据库维护,动态生成网页内容
- Web不安全的根源:
- Internet的开放性,任何人都可以建立web站点
- DNS域名可以自由注册,按时间顺序
- 浏览器安全问题
- 辅助应用程序:web数据是浏览器无法解析的类型时,会自动调用辅助应用程序
- 插件:浏览特定信息的软件模块,可以发送有害数据攻击
- Cookie:存储传递的状态信息,可能会泄露用户的信息
- 脚本:运行在服务器/浏览器上的程序,可以嵌入恶意代码
- 服务器安全问题:
- 口令被破解
- 文件被未授权访问
- DoS攻击
- 命令注入攻击
- web安全:
- 浏览器安全:限制权限、限制数据类型
- 服务器安全:访问控制、认证、防火墙、日志、用户账户管理、服务端口管理
- 流量安全
- 流量安全:IPsec、SSL/TLS、HTTPS等
- SSL/TLS:传输层安全协议
- 建立在TCP之上的安全套接层,包括握手协议、压缩、加解密、计算校验
- 传输流程:分段,压缩,增加MAC,加密,增加SSL记录(头部),得到SSL报文
- 握手流程:交换基本信息、传输证书并确认、密钥交换获得会话密钥
- HTTPS:应用层安全协议,即HTTP+SSL/TLS
- SSH:安全的远程登录和交互式会话,可以替代telnet,也可以建立传输隧道。
0x0B 无线网络安全
- 无线网络组网:基站,Wi-Fi热点、无线AP
- 无线网络特点:
- 开放性:容易接入,无硬件防护
- 移动性:设备移动范围较大
- 动态性:动态拓扑
- 不稳定性:信道传输不稳定,易监听和干扰
- 无线网络安全威胁:
- 窃听、监听、截取:入侵者接入系统
- 主动攻击:IP/MAC欺骗、DoS攻击、恶意代码、网络接管
- 法律问题
- 移动设备安全问题:缺乏物理控制、不可信网络、未知来源程序等
- 传输安全:数据加密、认证机制、防火墙、入侵检测等
- WLAN标准:802.11协议、Bluetooth协议等
- 802.11协议框架
- 只涉及物理层和数据链路层的MAC子层,上层与其他保持一致。
- 最小组成块BSS包括一个接入点AP和若干个移动站STA。
- 通过固定设施将若干BSS组成一个整体ESS
- WLAN安全:
- 考虑:组织未授权用户进入网络,防止数据窃听
- 安全服务:AP的SSID匹配、有线等效保密WEP、物理地址MAC过滤
- WEP机制:提供身份验证、加密和密钥管理、完整性检查。认证太简单被破解、单向认证、重放攻击、密钥管理机制不完整
- WPA机制:WEP机制的进一步发展,每一个分组使用不同的分组密钥
- 安全无线网络802.11i标准
- 包括801.1x协议、EAP、RADIUS协议
- 包括TKIP密钥协议和CCMP安全协议
0x0C 电子邮件安全
- 电子邮件发送流程:
- 用户与用户代理MUA交互,使用POP或者IMAP协议
- 用户代理借助报文传输代理交互,使用SMTP协议
- 电子邮件安全问题:
- 协议安全问题,例如SMTP和MIME的安全问题
- 内容安全:邮件窃听、邮件欺骗、利用邮件传播病毒
- 垃圾邮件
- 电子邮件安全机制
- 端到端安全机制:PGP,S/MIME等
- 传输层安全机制:SSL SMTP,SSL POP等
- 应用层网关
- PGP安全邮件标准
- 提供服务:认证(使用数字签名)、保密(使用对称加密)、压缩(zip压缩)、兼容性(base64编码)、分段重组
- 密钥:会话密钥、公钥、私钥、口令
- 定义了密钥ID,即公钥的低64位作为身份的标识符
- 用户的私钥使用口令进行CAST-128/IDEA/3DES加密
- 基于信任的关系模型,每个公钥被签名,用户对公钥的信任程度取决于对签名人的信任程度
- SMTP:
- 只能传输ASCII字符
- 邮件内容大小的限制
- S/MIME:
- MIME的安全性扩展
- 结合PKI,使用X.509证书
- 提供数据加密、数据签名、加密和签名的嵌套
- DKIM电子邮件验证标准:
- 邮件的加密签名和域名/企业关联起来,防止电子邮件欺诈
- 公钥位于DNS,私钥位于邮件服务器,在邮件中签名
0x0D IP安全
- 当前的互联网使用TCP/IP协议栈,基本完全建立在IP之上,但是IP协议设计时并没有考虑很多安全问题,从本质上来说就是不安全的,修改IP报文非常简单。攻击包括:窃听、篡改、IP欺骗、重防攻击
- IPsec:
- IP协议中集成的安全机制
- 在IP层上创建安全的隧道层VPN
- 包括三个协议:AH协议、ESP协议、IKE协议
- 两种操作模式:传输模式和隧道模式
- 两个数据库:安全策略数据库SPD,安全关联数据库SAD
- IPsec的体系:DOI即解释域,使用IKE协商SA。
- 工作模式:
- 传输模式:保护IP载荷,用于主机的端到端通信
- 隧道模式:保护IP包,将旧包封装在新包中传输,用于网关模式
- SA安全关联
- IPsec的基础,两个实体协商建立的协定
- 内容包括IPsec协议,工作模式、各种算法、密钥、窗口、计数器等信息
- 单向的逻辑连接,因此常成对出现
- 三个参数惟一标示:安全参数索引、目的IP地址、安全协议标识符
- SAD:每个SA的参数值
- SPD:人机的安全接口
【后面还有很多内容 暂时跳过】
0x0E 恶意软件
- 恶意破坏作用的代码和程序,非授权性和破坏性
- 恶意代码:
- 病毒:自我复制和破坏
- 蠕虫:自我复制和传播,消耗系统资源
- 木马:窃取信息,远程控制,隐藏
- 僵尸:远程控制发动攻击
- 病毒特征:传染性、隐蔽性、潜伏性、破坏性、寄生性
- 病毒生命周期:睡眠、传播、触发、执行
- 宏病毒:将宏代码写入模版文件,再写入所有的文件中
- 蠕虫:利用漏洞自主传播消耗资源
- 木马:隐蔽窃取信息,自启动,信息传播
- 僵尸网络:CC服务器控制大量僵尸主机
- 钓鱼和鱼叉攻击:伪造信息获得信任
- 病毒检测:
- 特征码检测
- 文件比较
- 启发式扫描、文件散列
- 行为检测、沙箱
- 系统边界、流量检测
- DDoS:消耗目标服务器计算资源/缓冲区,利用协议设计的漏洞
0x0F 入侵检测
- 三种手段:
- 统计分析:统计正常使用的属性
- 模式匹配:匹配误用数据库
- 完整性分析:检查文件和对象是否被更改
- 两种模型:
- 异常检测Anomaly Detection:基于用户行为,包括各类阈值
- 误用检测Misuse Detection:基于规则和模式匹配,记录非正常操作的规则和特征
- 信息响应:
- 主动响应:根据检测到的入侵行为采取措施
- 被动响应:记录和报告问题
- 主动响应:
- 搜集信息:使用蜜罐等技术
- 入侵追踪:基于主机或者给予网络
- 联动响应:通知防火墙和其他控制设备加以响应和处理
- 审计记录
- 对于用户的行为做记录
- 包括:主体、客体、时间戳、异常条件、行为
- IDS:
- 从系统关键点搜集信息,检测是否有攻击发生并发出警告
- 基本不具有访问控制能力,只能用于侦察和预警
- 是防火墙的补充
- IDS分类
- 基于主机:从主机中获得数据
- 基于网络:获得的信息为网络中的数据包
- 混合型,完备的IDS是网络和主机混合的分布式系统
- 口令的脆弱性:字典攻击、穷举攻击、Hash表攻击等
- 口令的防护:安全策略(时间、长度、复杂性)、限制尝试次数、加盐
0x10 防火墙
- 防火墙:内外网边界的过滤机制,保护本地系统不受网络安全威胁
- 划分:
- 内部网络:安全可信赖
- 外部网络:不安全,不可信赖
- DMZ非军事区:内网对外提供服务的主机位于非军事区
- 防火墙提供了服务控制、方向控制、用户控制和行为控制
- 分类
- 包过滤:在网络层,根据数据包的报头信息加以处理
- 网关/代理服务器:在应用层,处理用户的应用层请求
- 状态监测:在传输层和应用层,检测传输层连接的跟踪
- SOCKS防火墙安全会话转移协议:
- 一种传输层的网络代理协议
- 利用防火墙简单的转发传输数据包
- 防火墙部署:
- 双宿主机Dual-homed,位于不同网络上的多个网卡
- 屏蔽主机:增加路由器,数据先经过包过滤路由器和堡垒主机
- 屏蔽子网:两个路由器,形成DMZ隔离带