前言
整理博客,统一到常用的站点。
基础知识
网络安全的三个基本属性:CIA三元组
- 机密性 Confidentiality
- 完整性 Integrity
- 可用性 Availability
网络安全的基本需求
可靠性、可用性、机密性、完整性、不可抵赖性、可控性、可审查性、真实性
网络安全主要威胁来源
计算机信息系统安全保护
1.我国:1999年发布计算机信息系统安全保护等级划分准则(Classified Criteria for Security Protection of Computer Information System)—GB17859-1999
GB17859-1999各等级安全保护能力(5个安全保护级别)
2.TCSEC(Trusted Computer Evaluation Criteria,可信计算机系统评估准则,美国国防部标准(1983);4类7级)
- D级 :安全保护欠缺级
- C1级:自主安全保护级
- C2级:受控存取保护级
- B1级:标记安全保护级
- B2级:结构化保护级
- B3级:安全域保护级
- A级 :验证设计级
公布漏洞的权威机构
1.CVE(Common Vulnerability and Exposures):对每个漏洞进行编号、审查。CVE编号通常也是应用漏洞的标准方式;已成为安全漏洞命名索引的业界事实标准
2.CERT(Computer Emergency Response Team,计算机应急响应中心)
3.微软的安全中心
网络攻击分类
1.从安全属性上分,可分为5类
- 阻断攻击
- 截取攻击
- 篡改攻击
- 伪造攻击
- 重放攻击
2.从攻击方式上可分为
- 主动攻击
- 被动攻击
安全策略
1.定义:安全策略是赋予了组织机构技术和信息资源使用权的人员必须遵守的准则的正规陈述,即安全策略是一套含有组织机构计算机安全规则细节的文档
2.安全策略用作网络中安全系统设计和运行的指导方针,安全策略也可用作衡量组织安全的尺度
OSI安全体系结构
主要考虑信息安全的三个方面:
1.安全服务(RFC 2828定义): 一种由系统提供的对系统资源进行特殊保护的处理或通信服务
2.安全机制:保护信息安全所采用的手段。用来保护系统免受侦听、阻止安全攻击及恢复系统的机制
3.安全攻击
OSI安全体系结构的5类安全服务
1.机密性
2.完整性
3.不可否认性
4.访问控制
5.鉴别
OSI安全体系结构的8种安全机制
加密、访问控制、公证、路由控制、流量填充、身份认证交换、数字签名、信息完整性
攻击流程
黑客攻击的流程
1.踩点(Footprinting):确定目标地址范围、查询名字空间、并收集信息;关键在于不要漏掉任何细节
2.扫描(Scaning):评估目标系统,识别监听业务,使攻击者将精力集中于最有希望攻克的途径
3.查点(Enumeration):识别目标系统上合法用户账户和保护力不够的共享资源
4.获取访问权限(Gaining Access):利用收集的足够数据,尝试访问目标系统
5.提权(Escalating privilege):如果上步只是普通用户访问权限,则寻找系统的完全控制,提升用户权限以实现对系统的完全控制
6.窃取信息(Pilfering):再次进行信息获取,以确定目标系统的入侵机制和途径
7.掩踪灭迹(Covering Tracks):为避免被系统管理员发现,当务之急是掩盖来访踪迹
8.创建后门(Create backdoor):在系统中留下后门和陷阱,为下次入侵创造条件
9.拒接服务:如果无法取得特权,但又志在必得,那就最后一招—使用准备好的漏洞代码来使目标系统瘫痪
具体分析
踩点(footprinting):收集目标信息的技巧
1.从公开渠道查出该组织使用的域名、网络地址块、与因特网相联的系统的IP地址以及与信息安防现状有关的其他细节等
2.途径:
- 公开渠道获取信息
- WHOIS查询:域名,IP地址查询
- DNS查询:nslookup, dig, fierce
- 网络侦查:尝试确定网络的拓扑结构和可能存在的网络访问路径
区域传送(zone transfer)
1.后备服务器使用主服务器的数据刷新自己的数据库,以防止主域名服务器因意外故障变得不可用时影响到全局
2.允许不受信任的因特网用户执行DNS区域传送是最严重的错误配置之一
3.安全问题:在没有使用公用/私用DNS机制来分割外部公用/内部私用DNS信息时,内部主机名和IP地址都暴露给了攻击者
扫描
1.对比
踩点⟺在一个区域内寻找有用信息
扫描⟺逐寸敲打墙壁以期找出所有门窗
2.扫描的基本步骤:
确定目标系统是否真实存在->确定目标系统上哪些服务正在运行或监听->探查操作系统
3.目标系统扫描
- 基本的ping:向目标发ICMP ECHO(类型8)数据包,如返回 ICMP ECHO_REPLY数据包(类型0),说明目标系统真实存在
- nmap –sP 适用于windows和linux
若目标系统阻断了ICMP数据包,可尝试通过-PT
选项指定的端口(通常是80端口)进行TCP ping扫描; 该选项向目标网络发出TCP ACK数据包并根据返回的RST数据包判断活跃主机
4.端口扫描:
主动连接目标系统的TCP和UDP端口以确定哪些服务正在运行或处于LISTENING(监听)状态
主要目的:
- 确定运行的TCP/UDP服务
- 确定操作系统的具体类型
- 确定提供服务的应用程序名称和版本
5.探查操作系统
主要技术:
- 旗标抓取技术
- 协议栈指纹分析技术(更准确),可分为:
主动式协议栈指纹分析技术和被动式协议栈指纹分析技术
协议栈指纹分析技术的工作原理:
- 不同厂家的IP协议栈实现存在着许多细微的差别
- 探查这些差异,就能对目标系统做出有依据的判断
扫描类型
1.TCP连接扫描(TCP Connect()扫描;nmap -sT): 连接目标端口并完成一次完整的三次握手过程;
缺点:很容易被目标系统觉察
2.TCP SYN扫描(半开扫描;nmap -sS):向目标端口送SYN数据包
若返回SYN/ACK数据包,可以断定该端口处于监听状态
若返回RST/ACK数据包,通常表明该端口不在监听状态
然后,扫描者送出一个RST/ACK数据包(使通信双方永远不会建立一条完整连接)
优点:更隐秘,目标系统一般不会将其记入日志
缺点:半开连接过多时,会形成一种“拒绝服务”条件而引起对方的警觉
3.TCP FIN扫描(秘密扫描;nmap -sF): 向目标端口发送FIN数据包
- 如果目标端口关闭,目标系统应该返回一个RST数据包,否则丢弃该包。通常只对UNIX系统的TCP/IP栈有效(Window平台总是返回RST包)
- 由于不包含TCP三次握手协议的任何部分,所以无法被记录下来,从而比SYN扫描隐蔽
- FIN数据包能通过监测SYN包的包过滤器(秘密扫描)
秘密扫描的两个变体:
- TCP Xmas扫描(圣诞树扫描;nmap -sX): TCP包包头设置所有标志位,若目标端口关闭,目标系统应该返回一个RST数据包
- TCP Null扫描(空扫描;nmap -sN): 关掉所有的标志,若目标端口关闭,目标系统应该返回一个RST数据包
4.TCP ACK扫描(nmap -sA):测试防火墙的规则集。判断防火墙是简单的包过滤防火墙;还是高级的、具备数据包过滤功能的状态(stateful)防火墙
注:不能用来确定端口是否开放或者关闭
5.TCP窗口扫描(nmap -sW): 测试特定目标系统(如AIX和FreeBSD系统)上的端口是否开放、被过滤——会导致目标系统返回不同的TCP窗口长度值
6.TCP Maimon扫描(nmap -sM) :探测报文改为FIN/ACK外,其原理与TCP FIN扫描一样
7.UDP扫描(nmap -sU) :向目标端口发出UDP数据包
- 如果返回“ICMP port unreachable” 出错消息,表明端口关闭
- 如果没有收到该消息,端口可能开放
注意:UDP不要求必须建立一条连接,所以扫描的准确性取决于与目标网络的使用情况和过滤机制有关的许多因素(扫描结果不可靠)
查点
1.查点技术——旗标抓取:可用telnet, netcat, FirefoxFirebug
2.综合智能信息收集:maltego
3.漏洞扫描:分析确认目标主机中可以被利用的漏洞
- 手动分析:过程复杂、技术含量高、效率较低
- 自动分析:人为干预过程少,效率高。如Nessus、OpenVAS、X-Scan等综合型漏洞检测工具及专用扫描工具
常用扫描工具比较
扫描的防御
1.端口扫描监测:
- 在某个不常用的端口进行监听:如发现对该端口的连接请求,就认为有端口扫描。一般这些工具都会对连接请求的来源进行反探测,同时弹出提示窗口
- 混杂模式下抓包(wireshark)并进一步分析判断
- 蜜罐系统(Honeypot)
2.审计技术(Auditing)
-
使用系统记录下的使用时间、敏感操作和违纪操作等,为系统进行事故原因查询、事故发生后的实时处理提供详细可靠的依据或支持
-
记录网络连接的请求、返回等信息,从中识别出扫描行为
-
IIS服务器的日志记录:
“%SystemRoot%/System32/LogFiles”目录存放关于WWW、FTP、SMTP等服务的日志目录 -
Apache会使用两个标准的日志文件:
access_log:所有对Apache Web服务器访问的活动记录
error_log:运行期间所有的状态诊断信息,包括对Web服务器的错误访问记录
一般在/usr/local/apache/logs目录下
攻击的善后阶段
攻击者为了自身的隐蔽性,须隐藏踪迹:
- 获得系统最高管理员权限后就可以任意修改文件,最简单的方法就是删除日志文件——明确告诉管理员系统已经被入侵
- 更常用的办法是只对日志文件中有关自己的部分作修改,修改方法根据不同的操作系统有所区别
- 更高级的方法:替换系统程序(用来替换正常系统程序的黑客程序称为rootkit)
如Linux-RootKit:可以替换系统的ls,ps,netstat,inetd等系统程序
渗透测试
1.渗透测试(Penetration Testing):一种通过模拟攻击者的技术与方法,挫败目标系统的安全控制措施并取得访问控制权的安全测试方法
2.渗透测试的分类
- 白盒测试(White-box Testing,内部测试):拥有组织机构的内部知识的情况下进行的渗透测试
- 黑盒测试(Black-box Testing,外部测试):模拟一个对组织机构一无所知的攻击者所进行的渗透攻击
- 灰盒测试(Gray-box Testing)介于白盒测试与黑盒测试的一种渗透测试,多用于集成测试阶段
3.渗透测试执行标准(PTES:Penetration Testing Execution Standard)将渗透测试过程分为七个阶段:
- 前期交互阶段(Pre-Engagement Interaction)
- 情报搜集阶段(Information Gathering)
- 威胁建模阶段(Threat Modeling)
- 漏洞分析阶段(Vulnerability Analysis)
- 渗透攻击阶段(Exploitation)
- 后渗透攻击阶段(Post Exploitation)
- 报告阶段(Reporting)