网络安全复习

第一章 概论

网络安全主要威胁

特洛伊木马,黑客攻击,后门,计算机病毒,拒绝服务攻击,内外部泄密,蠕虫,逻辑炸弹,信息丢失篡改销毁。

网络安全的三个基本属性 C I A (扩展5个)

机密性,完整性,可用性,可认证与可信任性,不可抵赖性,可说明性,可审计性,隐私性

黑客攻击类型:从安全属性上分类:阻断攻击,截取攻击,篡改攻击,重放攻击,伪造攻击。从攻击方式分类:主动攻击:伪装,回答,修改报文,拒绝服务。

被动攻击:报文内容泄露,通信分析。

第二章 网络攻击流程

黑客攻击流程

踩点 —> 扫描 —> 查点 —> 访问/拒绝服务 —> 提权 —> 窃取信息 —> 淹没踪迹 —> 创建后门

扫描基本步骤

确定目标系统是否真实存在,确定目标系统上那些服务正在运行或监听,探查操作系统。

nmap使用技巧

常用命令:

-sP :进行ping扫描
-sn: Ping Scan - disable port scan #ping探测扫描主机, 不进行端口扫描 (测试过对方主机把icmp包都丢弃掉,依然能检测到对方开机状态)
-sA (发送tcp的ack包进行探测,可以探测主机是否存活)
SYN扫描(半开) -sS :向目标端送SYN数据包,返回SYN/ACK数据包,可以断定该端口处于监听状态,返回RST/ACK数据包,通常表明该端口不在监听状态,然后,扫描者送出一个RST/ACK数据包(使通信双方永远不会建立一条完整连接)优点:更隐秘,目标系统一般不会将其记入日志。缺点:半开连接过多时,会形成一种拒绝服务条件而引起对方的警觉
TCP连接扫描 -sT:3次握手方式tcp的扫描 #效率低,速度慢,不需要root 很容易被目标系统察觉
-sU:udp端口的扫描 #如果返回ICMP不可达的错误消息,说明端口是关闭的,如果得到正确的适当的回应,说明端口是开放的.udp端口扫描速度比较慢
FIN扫描(秘密扫描) -sF:也是tcp的扫描一种,发送一个FIN标志的数据包 如果目标端口关闭,目标系统应该返回一个RST数据包,
否则丢弃该包。通常只对UNIX系统的TCP/IP栈有效(Window平台总是返回RST包)。由于不包含TCP三次握手协议的任何部分,所以无法被记录下来,从而比SYN扫描隐蔽FIN数据包能通过监测SYN包的包过滤器(秘密扫描)
-sX:圣诞树扫描-sN:空(NULL)扫描-sV:版本检测
TCP ACK扫描(nmap -sA):测试防火墙的规则集。判断防火墙是简单的包过滤防火墙;还是高级的、具备数据包过滤功能的状态(stateful) 防火墙不能用来确定端口是否开放或者关闭
TCP窗口扫描(nmap -sW) :测试特定目标系统(如AIX和FreeBSD系统).上的端口是否开放、 被过滤一会导致目标系统返回不同的TCP窗口长度值
TCP Ma imon扫描(nmap -sM) : 探测报文改为FIN/ACK外,其原理与TCP FIN扫描一-样;无论端口是否开放,都应响应RST报文。Uriel注意到如果端口开放,许多基于BSD的系统只是丢弃该报文
UDP扫描(nmap -sU) : 向目标端口发出UDP数据包
如果返回“ICMP port unreachable”出错消息,表明端口关闭。如果没有收到该消息,端口可能开放remark: UDP不要求必须建立一条连接,所以扫描的准确性取决于与目标网络的使用情况和过滤机制有关的许多因素(扫描结果不可靠)

查点

对识别出来的服务进行更为充分的探查

· 用户账号名(用于随后的口令猜测攻击)

· 错误配置的共享资源(如不安全的文件共享)

· 具有已知安全性漏洞的旧版本软件(如存在远程缓冲区溢出的web服务器)

攻击实施

分类:破坏性攻击:利用工具发动攻击。入侵性攻击:利用收集到的信息,找到其系统漏洞,然后利用漏洞获取尽可能高的权限

主要阶段:预攻击探测:为进一步入侵提供有用信息。口令破解与提升权限。实施攻击:缓冲区溢出、拒绝服务、后门、木马、病毒

攻击善后:留后门:长时间地保留和巩固对系统的控制权。隐藏踪迹:删除日志文件,更改日志文件,替换系统程序。

渗透测试

一种通过模拟的攻击者的技术与方法,挫败目标系统的安全控制措施 并取得访问控制权的安全测试方法

分类

白盒测试:拥有组织机构的内部知识的情况下进行的渗透测试

灰盒测试:拥有一部分内部知识的情况下进行的渗透测试

黑盒测试:模拟一个对组织机构一无所知的攻击者进行的渗透测试

步骤(七步)

前期交互阶段:确定渗透测试范围,目标,限制条件以及服务合同细节。
情报搜集阶段:获取目标网络拓扑,系统配置,安全防御措施等信息。
威胁建模阶段:针对获取的信息进行威胁建模和攻击规划。
漏洞分析阶段:总和汇总的情报信息,从漏扫结果,服务查点信息等找出可实施攻击的点。
渗透攻击阶段:利用找出的漏洞入侵系统,获取访问权限。
后渗透攻击阶段:根据目标组织经营模式,保护资产形式等自主设计攻击目标。实施能造成重要业务影响的攻击
报告阶段:凝聚所有阶段的关键情报信息,发现的系统漏洞,成功的渗透攻击过程,同时分析修补与升级方案

第四章 口令破解

暴力破解:穷举,速度慢。

字典攻击:根据用户信息建立起一个用户可能使用的口令表文件,速度快。

组合攻击:在字典列表的基础上增加几个字母或数字进行攻击。

社会工程学:偷窥,网络嗅探,搜索垃圾箱,重放。

windows口令文件

1.安全账户管理器SAM机制。

C:\Windows\System32\Config\SAM

2.SAM文件:

含有本地系统或坐在控制域上所有用户名和口令的HASH值。

密码系统:

/etc/passwd: 包含了用户名、用户的真实姓名、标 识信息以及每个用户的基本信息,各个域之间用”:” 隔开
/etc/shadow: 影子密码文件,包含了加密过的密码以 及密码失效时间

/etc/group:列出了计算机上所有的组
/etc/gshadow:计算机上所有组的群组影子密码文件

第五章 欺骗攻击

欺骗:冒充身份通过认证以骗取信任的攻击方式攻击者针对认证机制的缺陷,将自己伪装成可信任方, 从而与受害者交流,以获取信息或者展开进一步攻击

常见的欺骗攻击ip欺骗ARP欺骗邮箱欺骗DNS欺骗WEB欺骗

IP欺骗 IP协议:非面向连接,两台计算机的信任连接主要依 靠双方的IP地址

IP欺骗的方式

简单的IP地址更改:攻击者将一台计算机的IP地址修改为其它主机的地址, 以伪装冒充其它机器
源路由攻击:保证数据包始终会经 过一条经定的途径,而攻击者机器在该途径中
TCP会话劫持:接管现存动过程,即攻击者可以替代原来的合法用户,同时监视并掌 握会话内容

TCP会话劫持(Session Hijack): 接管现存动态会话的过程,即攻击者可以替代原来的合法用户,同时监视并掌握会话内容。会话劫持结合了嗅探及欺骗技术,会话劫持一般伴随着拒绝服务DoS,且不依赖于操作系统

1.发现攻击目标 ①目标是一个准予TCP 会话连接(例如Telnet和FTP等)的服务器②能否检测数据流2.确认动态会话3.猜测序列号 ①通过嗅探或者ARP欺骗,先发现目标机正在使用 的序列号,再根据序列号机制,可以猜测出下一 对SEQ/ACK序列号② 同时,攻击者若以某种方法扰乱客户主机的SEQ/ACK,服务器将不再相信客户主机正确的数据包,从而可以伪装为客户主机,使用正确的 SEQ/ACK序列号,现在攻击主机就可以与服务器进 行连接,这样就抢劫一个会话连接。4.使客户主机下线 对其进行拒绝服务攻击5.接管会话 ①持续向服务器发送数据包并且接管整个会话 ②创立账户留下后门

TCP会话劫持的危害

1.就其实现原理而言,任何使用Internet进行通信 的主机都有可能受到这种攻击

2产生了简单适用的会话劫持攻击软件,技术门槛的 降低导致了很多“少年攻击者”的诞生.

原因:一个最主要的原因就是它并不依赖于操作系统,另一个原因就是它可以被用来进行积极的攻击,通过攻击行为可以获得进入系统的可能。

第六章 web攻击

SQL注入

1.原理

利用Web应用对后数据库查询语句处理存在的安全漏洞,攻击者提交一段精心构造的数据库查询代码, 根据返回的结果,获得他想得知的数据。

2.注入分类普通注入:利用union查询等来进行注入。报错注入:根据报错信息进行注入。盲注:bool盲注,时间盲注。

3.注入位置只要执行了了数据库查询语句的地方都可能存在注入。

4.sql注入防范①使用预编译语句,绑定变量②对用户提交的数据和输入参数进行严格的过滤③摒弃动态 SQL 语句,改用存储过程来访问和操作数据④使用安全函数⑤最小权限原则

XSS

攻击者往Web页面里插入恶意html代码,当用户浏览该网页时, 嵌入其中的恶意代码被执行,达到特殊目的。一旦得手,黑客可以盗取用户帐户,修改用户设置,盗取 /污染cookie,做虚假广告,查看主机信息等。

1.跨站脚本攻击发起条件

Web服务器允许用户在表格或编辑框中输入不相关的字符。

Web服务器存储并允许把用户输入显示在返回给终端用户的页面上,而没有去除非法字符或者重新进行编码。

2.攻击实现条件

需要存在跨站脚本漏洞的web应用程序

需要用户点击连接或者访问某一页面

3.分类反射型XSS(XSS Reflection,非持久性的XSS):简单的将用户输入数据“反射”给浏览器,黑客需要诱导用户点击一个恶意链接。存储式XSS(Stored XSS):攻击脚本永久存储在目标服务器数据库或者文件中,比如黑客写下一篇含有恶意JavaScript代码的博客文章。DOM型XSS:利用 DOM(文档解析功能)发动攻击。

4.防御用户:教育为主

Web应用开发者

对所有用户提交内容进行可靠的输入验证。

保护所有敏感的功能,以防被机器人自动执行或者被第三方网站所执行。

web攻击防御

1.简单性:主机系统越简单,其安全性就越好。最好把不必要的服 务从服务器上卸载掉。

2.超级用户权限:尽量不用超级用户来维护系统。

3.本地和远程访问控制:访问控制是用来指定哪些用户可以访问系统的特定数据、 目录或功能。应该实现一套有效的身份验证机制,并包含用户的日志记录。

4.审计和可审计性:主要指平时对记录进行审计,在系统生成的大量审计记录 中查找可疑数据,查找攻击者或恶意程序的踪迹.

5.恢复:配置实时或增量备份策略是非常必要的,在紧急关头可以使得服务器的关键数据得以保存,从而可以迅速恢复服务以减少损失,同时便于事后取证的进行,以追查入侵者。

第七章 缓冲区溢出

什么是缓冲区: 包含相同数据类型实例的一个连续的计算机内存块, 是程序运行期间在内存中分配的一个连续区域,用于保存包括字符数组在内的各种数据类型。

缓冲区溢出(Buffer Overflow):向固定长度的缓冲区中写入超出其预定长度的内容,造成缓冲区数据溢出,从而覆盖缓冲区周围的内存空间。

堆和栈的区别:
分配和管理方式不同 堆:动态分配,其空间的分配和释放都由程序员控制 栈:由编译器自动管理
产生碎片不同 堆:频繁的new()/delete()或malloc()/free()势必会造成内存空间的不连续,造成大量碎片,使程序效率降低 栈:先进后出的队列,永远不可能有一个内存块从栈中间弹出
生长方向不同 堆:向着内存地址增加的方向增长 栈:向着内存地址减小的方向增长,由内存的高地址向低地址方向增长

黑客借此精心构造填充数据,可以修改内存中变量的 值,导致原有流程改变,甚至可以劫持进程,执行恶意代码,最终获取系统控制权\

其他攻击类型相比,缓冲区溢出攻击

技术性强
破坏力大
隐蔽性强

缓冲区溢出原理

栈溢出 PE文件代码段中包含的机器码会装入内存的代码区
(.text)。发生函数调用时,函数的调用关系等信息会动态保存
到内存的栈区。如果需要动态分配内存,则在内存的堆区分配合适的
区域

堆溢出 C使用malloc()/free(),C++使用new()/delete()函数实
现内存的动态分配和回收

BSS溢出 .bss段存放全局和静态的未初始化变量,其分
配比较简单,变量之间连续存放 如下定义的两个字符数组位于BSS段:
static char buf1[16],buf2[16];向buf2中写入16个字符A后再往buf1中写入24个.B,由于变量连续存放,buf1溢出后,就会覆盖buf2的值 利用:改写BSS中的指针或函数指针等,改变程序原先的执行流程,使指针跳转到特定的内存地址并执行指定操作

格式化串溢出 在输出函数对输出格式进行解析时产生的漏洞

整数溢出 当计算结果超过了规定的长度后,编译器一般会删除溢出的高位部分

防御

缓冲区溢出的真正原因在于编程语言缺乏类型安全,程序缺少边界检查。

1.系统管理上的防范策略

1.1关闭不需要的特权程序

1.2及时给程序漏洞打补丁

2.软件开发过程中的防范策略

2.1编写正确的代码

2.2数组边界检查

2.3改进语言函数库

2.4程序指针完整性检查

2.5栈保护机制

3.软件运行过程中的防范措施

3.1缓冲区不可执行

3.2地址空间随机化

源码级保护方法

运行期保护方法

阻止攻击代码执行

加强系统防护

第十章 身份认证

1.AAA机制:认证 :在做任何动作之前必须要识别动作执行者的真实身份。又称为鉴别、确认。主要是通过标识符鉴别用户身份,防止攻击者假冒合法用户获取访问权限。授权 :当用户身份被确认合法后,赋予该用户进行文件和数据等的操作权限,包括读、写、执行及从属权等。审计(Auditing) :每一一个人都应该为自己所做的操作负责所以在做完事情之后都要留下记录,以便核查责任

2.认证分类

基于口令认证:简单口令认证,基于单向函数的口令认证,一次性口令认证。
基于生理特征的认证。
基于地址的认证:每个主机存储着可以访问本机的其他主机的账号信息,这样只要确认了对方的主机地址,就可以进行用户验证。

3.常见身份认证技术

基于口令的认证 基于密码学认证 基于令牌的认证 基于生物特征的认证

3.Kerberos认证协议

基于可信第三方(Trusted Third Party,TTP)的认证协议;MIT的雅典娜项目组(Athena Group)开发的认证服务系统,基于对称加密技术。

基本思想(假设):能正确对信息进行解密的用 户就是合法用户

三个子协议:

  1. 认证服务器交换(AS交换):在客户C和AS间进行
  2. 票证授予服务器交换(TGS交换):在C和TGS间交换
  3. 客服服务器认证应用交换(AP交换):在C和应用服务器S间进行

构成 : 一个完整的 Kerberos 环境包括一个 Kerberos 服务器,一组工作站和一组应用服务器。

第十一章 访问控制

访问控制(Access Control)在身份认证的基础上,依据授权对提出的资源访问请求加以控制。对机密性、完整性起直接作用;是针对越权使用资源的防御措施

访问控制策略模型:自主访问控制:指一个实体可以被授权按照自己
的意志使另一个实体能够访问某些资源 强制型访问控制:通过比较具有安全许可的安全标记来控制访问 基于角色的访问控制:基于用户在系统中所属的角色和针对各种角色设定的访问权限来控制访问 基于属性的访问控制:基于用户,被访问资源以及当前环境条件控制访问。

访问控制机制包括:访问控制列表ACL,能力表,锁与钥匙,保护环

计算机安全形式化模型:机密性安全策略Bell-L aPadula模型,完整性安全策略Biba模型

第十二章 防火墙

基本原理

1.防火墙是位于两个网络间的实施网间访问控制的组件的集合,防火墙通常是单独的计算机、路由器或专有硬件设备, 充当访问网络的唯一入口点。

内网和外网的所有网络数据流必 须经过防火墙.
只有符合安全策略的数据流才能通过防火墙.
防火墙自身对渗透(penetration) 是免疫的.

2.处理方式

ACCEPT:允许数据包或信息通过

Reject:拒绝数据包或信息通过,并且通知信息源该信息被进制

Drop:直接将数据包或信息丢弃,不通知信息源

3.基本策略默认允许原则:没有明确禁止的都是允许的。默认拒绝原则:没有明确允许的都是禁止的

4.主要功能网络安全的屏障。强化网络安全策略。对网络存取和访问进行监控审计。防止内部信息的外泄

防火墙的分类

1.包过滤防火墙

工作在网络层和传输层。设定访问控制列表ACL(Access Control List),检查所有通 过的数据包。

发展:静态包过滤防火墙,动态包过滤防火墙(状态检测)。

优点:
逻辑简单,价格便宜,对网络性能的影响较小,有较强的透明性。
与应用层无关。
缺点:
需要对IP、TCP、UDP等协议有深入了解,否则容易出现因配置不当而带来问题。
过滤有限,不能充分满足各种安全要求。
不能彻底防止地址欺骗。

2.代理服务器

应用层代理/代理服务器通过在主机上运行代理服务程 序,直接对特定的应用层进行服务,因此也称应用型防火墙。

优点:
1.易于配置,界面友好。
2.不允许内外网主机的直接链接。
3.提供详细日志。
4.可以隐藏用户内部的IP,可以给单个用户授权
缺点:
1.速度相对慢。
2.需要为不同的网络服务建立专门的代理服务。

3.电路级网关

监控受信任的客户或服务器与不受信任的主机间的TCP握手信息,以决定会话是否合法。

网络地址转换(NAT):属接入广域网技术,一种将私有IP地址转化为合法广域网IP地址的转换技术,被广泛应用。

NAT分类:静态NAT,动态NAT,端口转换NAPT。

4.混合型防火墙

防火墙的配置方案

1.屏蔽路由器:最简单的防火墙配置,直接在内网和 外网之间加装一个包过滤路由器或者应用网关

2.双宿主机模式:采用主机替代路由器执行安全控制功能, 类似于包过滤防火墙,是外部网络用户进入内部网络的唯一通道。

特点:主机的路由功能被禁止,两个网络间的通信通过双宿主机完成。

弱点:一但堡垒机被攻破,可任意访问内网。

3.屏蔽主机模式:包过滤路由器连接外网,堡垒主机安装在内网。

4.屏蔽子网模式:较流行的一种结构,采用两个包过滤路由器和一个堡垒主机,在内外网络之间建立一个被隔离的子网,称为DMZ

协商协议的参数
交换公共密钥
对双方进行认证
在交换后对密钥进行管理