一、网络安全基础
1. CIA三元组 (Confidentiality, Integrity, Availability)
-
机密性 (Confidentiality):确保信息只能由授权人员查看,防止信息泄露。加密技术(如AES、RSA)通常用于保护机密性。
-
完整性 (Integrity):确保数据在传输或存储过程中未被未经授权的更改。哈希算法(如SHA-256)和数字签名通常用于验证数据完整性。
-
可用性 (Availability):确保信息在需要时对授权用户可用。通过冗余、负载均衡、备份和容错机制来保证可用性。
2. OSI安全服务 (OSI Security Services)
-
机密性:保护信息不被未授权者访问。加密技术(如对称加密和非对称加密)用于确保数据机密性。
-
完整性:通过技术手段确保信息未被篡改。数字签名、MAC(消息认证码)和哈希函数可以用来保证数据的完整性。
-
鉴别:确认通信双方的身份,确保没有伪装和冒充。常用的身份验证方法包括用户名/密码、双因素认证等。
-
访问控制:通过定义用户权限和角色,限制谁可以访问系统和数据。常见技术有ACL(访问控制列表)和RBAC(基于角色的访问控制)。
-
抗拒抵赖:确保一方不能否认其已进行的操作或通信。通常通过数字签名来确保抗拒抵赖。
3. AAA模型 (Authentication, Authorization, Accounting)
-
认证 (Authentication):验证用户或系统的身份,确保通信双方确实是其声称的身份。
-
授权 (Authorization):在认证后,根据用户的角色或权限控制用户访问的资源。
-
计账 (Accounting):记录用户的活动行为,用于审计、追踪及检测异常行为。通常包括访问日志、操作日志等。
二、网络协议与防护技术
1. RADIUS/NAC 与零信任
-
802.1X 流程:802.1X是一个网络接入控制协议,包括三个角色:
-
Supplicant(客户端):发起连接的设备。
-
Authenticator(认证设备):验证客户端设备是否符合访问条件,如交换机或无线接入点。
-
Radius Server(认证服务器):执行实际的身份验证,决定是否允许设备接入网络。
-
-
NAC四要素:NAC(网络访问控制)通过四个要素确保设备的安全性:
-
身份认证:验证设备的身份。
-
姿态评估:检查设备的安全状态(如是否安装了防病毒软件、补丁等)。
-
策略执行:根据评估结果执行访问策略。
-
持续监控:设备在网络中持续监控,确保其行为符合安全标准。
-
2. TLS/SSL
-
TLS/SSL:传输层安全协议(TLS)和安全套接字层协议(SSL)都是用于加密网络通信的协议。SSL已被TLS取代,TLS用于确保数据的机密性和完整性,并验证通信双方的身份。TLS通常工作在OSI模型的表示层(或会话层),用于加密数据传输。
3. DoS / DDoS 攻击类型
-
SYN Flood:攻击者发送大量的SYN请求,目标服务器无法处理所有请求,导致系统资源耗尽。
-
Smurf攻击:攻击者发送伪造的ICMP请求包到网络广播地址,使网络上的所有主机向目标主机发送响应,从而产生流量风暴,耗尽目标系统的带宽。
-
攻击分类:
-
容量耗尽攻击:消耗网络带宽或服务器资源,使目标系统无法响应正常流量。
-
协议耗尽攻击:攻击特定网络协议(如TCP连接)导致协议资源耗尽。
-
应用层耗尽攻击:攻击特定应用(如Web服务器),通过消耗其资源使服务崩溃。
-
4. 扫描与渗透
-
TCP SYN 半开扫描:攻击者发送SYN请求,但不完成三次握手,从而探测目标系统是否开放特定端口。
-
Netfilter流程:Linux中的Netfilter模块用于包过滤,其数据包处理过程包括:
-
PREROUTING:处理入站数据包,修改目标地址。
-
INPUT / FORWARD:分别处理目标是本机或其他设备的数据包。
-
OUTPUT:处理离开本机的数据包。
-
POSTROUTING:处理出站数据包,修改源地址。
-
三、系统与平台安全
1. Windows Server
-
Server Core:Windows Server的最小化安装版本,去除了图形用户界面(GUI)和一些不必要的服务,减少了系统的攻击面和补丁需求。
-
GS Cookie:Windows中的栈保护机制,通过在栈上插入“cookie”值,防止栈溢出攻击。它通过确保返回地址未被恶意修改来保护程序的安全,但也存在一些局限性。
2. Linux / UNIX
-
DAC与MAC:
-
DAC(自主访问控制):每个文件的拥有者控制该文件的访问权限。
-
MAC(强制访问控制):系统强制实施访问控制策略,用户不能自行更改文件的访问权限。
-
-
SELinux/AppArmor:两者都是Linux系统的安全模块,提供强制访问控制(MAC)。SELinux通过标签实现细粒度的访问控制,而AppArmor则通过路径和应用程序配置进行控制。
3. SELinux专项
-
文件系统接口:
/sys/fs/selinux
文件夹用于查看和配置SELinux的状态,可以修改SELinux的安全策略。 -
文件上下文:SELinux通过设置文件的安全上下文来控制文件的访问权限。
semanage fcontext
命令用于定义文件上下文,restorecon
命令用于应用新的上下文配置。 -
布尔值:SELinux使用布尔值来控制特定安全策略的启用或禁用。例如,
httpd_can_network_connect
控制Web服务器是否能访问网络。 -
标签三元组:SELinux为系统中的每个对象(如进程、文件)分配标签三元组(user:role:type),以便根据这些标签进行安全策略的强制执行。
4. 虚拟化与云
-
Hypervisor → VM Escape:虚拟机监控程序(Hypervisor)负责管理虚拟机,VM Escape是指虚拟机能够突破虚拟化环境的隔离,影响宿主机的安全。
-
多租户隔离核心技术:虚拟交换机和虚拟防火墙用于云环境中多租户的资源隔离,确保不同租户的数据和网络访问不互相干扰。
5. 物联网安全
-
感知层:物联网中的感知层包括传感器和设备,这一层最容易遭受物理篡改。攻击者可能通过物理访问设备来修改或窃取数据。
四、密码学与安全通信
-
VPN基础:虚拟私人网络(VPN)是一种通过公用网络(如互联网)建立的安全通信隧道,用于保护数据传输的机密性和完整性。VPN广泛用于远程访问、站点间互联等。并非所有VPN都使用IPsec协议,某些VPN协议(如PPTP、L2TP)可以提供安全保护。
五、应用层与防火墙技术
1. 包过滤
-
L3/L4 字段:包过滤技术通过检查IP层(L3)和传输层(L4)字段(如源/目标IP、端口号等)来决定数据包是否允许通过防火墙。
2. 状态检测
-
连接表:状态检测技术通过维护连接表,跟踪每个会话的状态,确保数据包属于有效连接。如果数据包不属于现有连接,则被丢弃。
3. 应用层代理(ALG)
-
深度解析 HTTP/SQL/DNS:应用层代理可以深入分析HTTP、SQL、DNS等协议的数据包,进行内容检查和恶意内容阻止。
4. NAT & ACL
-
NAT:网络地址转换(NAT)用于将内部网络的私有IP地址转换为公共IP地址,便于多个设备共享一个公网IP。
-
ACL:访问控制列表(ACL)用于限制网络资源的访问,基于源IP、目标IP、端口号等来定义访问权限。
六、数据库与数据安全
-
威胁来源:数据库面临的威胁来源包括物理威胁(如设备丢失)、系统威胁(如漏洞利用)和人为威胁(如员工滥用权限)。
-
权限最小化:确保用户仅拥有完成任务所需的最小权限,减少数据泄露或滥用的风险。
-
备份链:数据库的备份策略应包括差异备份和增量备份,确保数据在损坏时能够恢复。
七、软件安全与缓解
1. 经典栈溢出
-
缓冲区溢出、返回地址覆盖:通过缓冲区溢出攻击,攻击者可以覆盖栈中的返回地址,从而控制程序的执行流。
-
安全编码:使用安全的编码函数(如
strncpy()
)来防止缓冲区溢出。 -
ROP绕过:利用ROP(返回导向编程)技术,绕过栈保护(如ASLR、NX、Canary)来执行恶意代码。
2. 利用流程
-
偏移定位、Shellcode + NOP sled:通过确定溢出偏移位置和构造Shellcode,攻击者利用NOP sled(无操作指令填充)来确保攻击成功。
-
Canary处理、JMP ESP地址搜寻:通过绕过栈保护机制,攻击者找到合适的内存地址并执行恶意代码。
3. 缓解机制
-
DEP/NX、ASLR、Stack Canary:通过数据执行保护、地址空间布局随机化和栈保护机制减少栈溢出攻击的风险。
八、DDoS攻防补充
-
SYN、UDP、ICMP放大攻击:通过利用协议漏洞放大攻击流量,导致目标系统无法正常运行。
-
云清洗 & Anycast:通过云清洗技术和Anycast技术分散流量,缓解DDoS攻击。
九、综合运维与故障分析
1. Apache目录迁移 + SELinux
-
迁移流程:包括规划、备份、修改配置文件等,确保迁移后的目录访问权限正确,并通过
semanage fcontext
和restorecon
等命令确保SELinux策略的正确应用。
2. 网络设备安全加固
-
路由器登录安全:使用SSH代替Telnet进行远程管理,限制vty访问,并设置登录失败锁定,防止暴力破解攻击。