文章目录
- 恶意软件
- 什么是恶意软件
- 传播机制和载荷
- 传播
- 载荷
- DDoS 攻击和防范
- 防火墙
- 什么是防火墙
- 防火墙类型
- 防火墙载体
- 入侵检测
- 入侵者
- 入侵检测
- 蜜罐技术
- 口令管理
- 基于Bloom过滤器的口令检查技术
恶意软件
什么是恶意软件
恶意软件定义为:隐蔽植入另一段程序的程序,它企图破坏数据,运行破坏性或者入侵性程序,或者破坏受害者数据,应用程序或者操作系统的机密性、完整性和可用性。
概括:被植入的恶意程序,目标就是破坏数据。
有两种分类方法。
一是按照依赖于宿主的和独立于宿主的,即是否寄生。
二是按照不进行复制的和进行复制的,前者是在宿主程序被调用执行某一特定功能时被激活,如逻辑炸弹、后门和僵尸;后者是独立的程序段,当被执行时复制自身,如病毒和蠕虫。
第二点跟里面提到的被调用没关系,直接用是否复制判断就可以。
比方说,后门、僵尸不会复制;病毒、蠕虫会复制。
举例:病毒、蠕虫、后门、逻辑炸弹、特洛伊木马、勒索软件、僵尸、Rootkit
传播机制和载荷
传播机制是指恶意软件如何在不同的计算机系统或网络之间扩散的方法。
载荷则是指恶意软件一旦成功侵入目标系统后,所执行的具体恶意行为或功能。
传播
(1) 感染内容 - 病毒
病毒是一种可以通过修改自身来感染其他程序的程序。
四个阶段:潜伏阶段、传染阶段(复制自身)、触发阶段、发作阶段。
病毒分为简单的病毒和压缩的病毒,一般嵌入在可执行文件中。病毒的关键是程序被调用时,先于程序的原始代码执行。
由于感染后的程序比原本程序长,因此对可执行文件进行压缩使之长度不变,以防被检测到。
按感染目标,病毒可以被分为:引导扇区感染病毒、文件感染病毒、宏病毒、混合体病毒。
按隐藏策略,病毒可以被分为:加密病毒、隐蔽性病毒、多态病毒、变形病毒。
(2)漏洞利用 - 蠕虫 Worms
蠕虫被激活后也表现为病毒,作用是植入特洛伊木马程序或者做破坏性活动。
蠕虫在传播前首先需要搜寻可感染的目标,扫描或特征识别。扫描策略有四个:扫描策略:随机、预先生成的目标列表、内部目标列表、本地子网。
蠕虫的传播原理是利用程序的已知漏洞和薄弱的密码。传播速度表现如下图:
蠕虫传播的特点:多平台、多攻击点、超速传播、多态、变形。
(3)社会工程 - 垃圾邮件与特洛伊木马
社会工程:欺骗用户去协助恶意软件窃取他们自己的系统或个人信息。
垃圾邮件指未经同意而发送给接收者的大量邮件,浪费资源且可能是恶意软件载体。
特洛伊木马:一种表面上有用的程序或实用工具,但包含隐藏代码,背地里将会执行一些有害的操作。字面意思,特洛伊木马。
载荷
(1)系统破坏
字面意思,满足条件后,攻击受感染系统的数据,甚至导致设备损坏。
(2)攻击代理 - 僵尸病毒与机器人
被感染或控制的计算机系统称为僵尸或机器人,这样的机器人的集群成为机器人网络。
用来代理发动攻击,比如 DDoS、垃圾邮件等等。
(3)载荷 - 信息窃取 - 键盘监测器、网络钓鱼与间谍软件
攻击者在被感染系统上安装键盘监测器,捕获输入信息。
钓鱼,模拟诱导。
(4)隐身 - 后门与隐匿程序
后门也称陷门,是程序的秘密入口点,可以绕开访问控制机制。
隐匿程序可以对系统进行改动以隐藏自身的存在。
DDoS 攻击和防范
两种攻击方式:SYN 突发流量攻击、分布式 ICMP 攻击。
防范:
(1)攻击前:攻击预防
(2)攻击中:攻击检测和过滤
(3)攻击后:攻击源追踪
防火墙
什么是防火墙
是网络控制和监视的关键点
用不同的信任与网络相连接
对网络服务进行强制性限制
对访问进行审查和控制
提供NAT和使用监视
用 IPSec 实现 VPN
对于渗透是免疫的。
概括:一种负责网络控制和审查,免疫渗透的限制性连接。
设计目标:所有通信都必须经过防火墙、只有被授权的通信才能通过防火墙、防火墙本身不能被攻破。
局限性:1、会被绕过;2、防火墙内部危险。
防火墙类型
按照实现形式划分:软件防火墙、硬件防火墙。
传统防火墙有三个端口,分别接在内网、外网、DMZ 区(非军事化区)。
新型防火墙有第四个端口,被称为配置口或管理口。
防火墙访问策略决定监控的级别。
- 包过滤防火墙
对每个收发的 IP 包应用一些规则后决定传递或者丢弃。
一般是双向过滤。
包过滤器设置成一些 基于 IP 或 TCP 字头域 匹配的规则。
调用匹配的规则来判断下一步操作。如果没有匹配的规则,则执行默认操作,默认有丢弃或传递。 - 状态检测防火墙
状态检测包过滤器通过建造了一个出站TCP连接目录加强了TCP流量的规则。
人话:建了个表,每次连接时,表都会记录连接的信息。通过这个表(也叫目录)匹配相应的规则,加强流量管理。
- 应用代理防火墙
应用于与应用层网关。
应用层网关,也称为代理服务器,起到了应用层流量缓冲器的作用。
应用层网关不需要大量检查 TCP/IP 连接流量,只需要细查一些允许的应用程序即可,比包过滤器更安全。 - 链路层代理防火墙
应用于链路层网关。
链路层网关,也称作链路层代理,它可能是单机系统或者是应用层网关为特定应用程序执行的专门功能。
防火墙载体
常见的防火墙载体有三个,分别是堡垒主机(堡垒机)、主机防火墙、个人防火墙。
- 堡垒主机
堡垒机:又被称为“堡垒主机”,是一个经过加固,具有较高安全性的主机系统。 - 主机防火墙
主机防火墙:用来保护个人主机的软件模块。该模块可以在多种操作系统中应用,也可以作为附加包。和简便独立防火墙一样,主机防火墙也对数据包进行过滤和限制。
优点:
·(1)过滤规则可以符合主机环境。
·(2)保护的提供是独立于拓扑结构的。
·(3)和独立防火墙一起使用,主机防火墙可以提供额外的层保护。 - 个人防火墙
个人防火墙:可以控制一边是个人计算机或工作站,而另一边是因特网或者企业网络之间的通信,可以用在家庭环境以及公司内网中。
个人防火墙的基本功能是防止未经认证的远程接入计算机,还可以监测出具有检测功能的活动。
入侵检测
入侵者
- 什么是入侵者
入侵分为用户非法入侵(黑客)与软件非法入侵(病毒)。
用户入侵者可以分为三类:假冒用户、违法用户、秘密用户。
入侵分为恶意入侵和非恶意入侵,但都可能消耗大量资源。无论是直接入侵,还是通过代理的方式入侵,其目的都是 获得系统访问权限 或 提升访问权限的级别。 - 入侵者行为模式
黑客、犯罪(比起黑客有明确目的)、内部攻击。
入侵检测
入侵检测建立的前提是假设入侵者的行为在某些情况下不同于合法用户的行为,然而两者仍有重叠部分。相似但不同
两种方法:
(1)统计异常检测:根据一定时间内与合法用户的行为相关的数据集合定义通用的或期望的行为,是检测假冒用户的有效手段。根据大数据建模对比,比如事件频率阈值检测、基于行为曲线。
(2)基于规则的检测:定义一套能够用于判断某种行为是否是入侵者行为的规则或者攻击模型,通常称为签名检测。能有效地检测出违规用户的渗透攻击行为和攻击动作序列。加入签名或是其他明确规则,比如异常检测或渗透识别。
个人简单理解(1)是模糊匹配,(2)是精确认证。
蜜罐技术
蜜罐是诱导潜在的攻击者远离重要系统的圈套。
作用:
(1)转移攻击重要系统的攻击者
(2)收集攻击者活动的信息
(3)希望攻击者在系统中逗留足够的时间,使管理员能对此攻击做出响应
内部信息都是虚假的,因此任何对蜜罐的访问都是可疑的。
蜜罐系统使用的工具包括灵敏的监视器和事件日志。
以多个机器建立蜜罐网络,使用实际的或模拟的通信量和数据,模拟一个企业网络。
钓鱼执法。
口令管理
所有的多用户系统都要求用户不仅提供用户名或者是标识符(ID),还要提供口令。
就是 PASSWORD 吧
使用基于口令认证的系统维持一个 按用户 ID 索引的口令文件,一般存储口令的散列函数值。
- 口令的脆弱性
离线字典攻击:直接绕过访问控制获得口令文件,建立字典去挨个比对。
专用账号攻击:对一个账号进行爆破,遍历口令。
常用口令攻击:专用账号攻击的变种,区别在于这中攻击是对许多账号爆破。
针对单用户的口令猜测:这个方法就偏社工了,根据账户持有人的信息知识猜测口令。
…等很多攻击方式。
下方碎碎念
一般来讲,如果依靠系统生成的复杂口令,用户是难以接受的,因为太复杂记不住,而且不同场合的不同口令更加增加了复杂度。
所以常见的一些维护口令方法包括:用户设置口令时避免简单的使用个人信息;增加字符种类;增加口令长度(如果记得住,毕竟越长越不好遍历);定期更换口令;对于不同场合避免使用相同口令(不能在一棵树上吊死,防止一个场合爆了别的场合跟着全爆了)。
基于Bloom过滤器的口令检查技术
一种有效和高效的先验口令检查技术,基于拒绝列表上的单词。
算是设置口令黑名单的一种
一个 k 阶 Bloom 过滤器包含 k 个相互独立的散列函数 H 1 ( x ) , H 2 ( x ) , … , H k ( x ) H_1(x), H_2(x), …, H_k(x) H1(x),H2(x),…,Hk(x),每个散列函数将一个口令映射为一个范围在 0 ~ N-1 的散列值,即: H i ( X j ) = y H_i(X_j) = y Hi(Xj)=y 1 ≤ i ≤ k , 1 ≤ j ≤ D , 0 ≤ y ≤ N − 1 1\leq i\leq k, \ 1\leq j\leq D, \ 0 \leq y \leq N-1 1≤i≤k, 1≤j≤D, 0≤y≤N−1其中 X j X_j Xj 是口令字典中的第 j 个词,D 是口令字典中词的总数,N 是预定义的一个散列表的长度。
- 技术步骤:
(1)首先定义一个散列表,长度为 N 比特,初始化为全 0;
(2)对于每个口令,计算 k 个散列值,并将表中相应位置记为 1;
(3)此时,对于新口令,计算其 k 个散列值,如果对比发现表中相应位置均为 1,拒绝该口令。由此易猜测整个口令字典中的所有口令均会被拒绝。
误判情况:如果一个词不在词典中,但是算的位置的值也是 1,会被误判不可信。
上面的步骤已经是我自个描述的了,再看个我举的例子或许会更清晰一些:
首先这里有一个字典,里面有 x1='aaa', x2='bbb' 俩词。
(1)定义一个空的表,长为 N=100。里面全初始化成 0。
(2)我们有 k=3 个散列函数 H1 ~ H3。挨个计算H1(x1),H2(x1),H3(x1)、H1(x2),H2(x2),H3(x2)。假设计算结果依次为H1(x1)=5,H2(x1)=20,H3(x1)=41、H1(x2)=30,H2(x2)=73,H3(x2)=99。
(3)相应的,把表中 5, 20, 30, 41, 73, 99 这六个位置的值变为 1。
此时如果新的词计算后的位置都已经是 1 了,那这个词就不可信。几种情况:
case1:x3=x1='aaa'。计算后的位置分别是5, 20, 41。这几个位置都是 1 ,所以 x3 不可信。
case2:x4='ccc'。计算后的位置分别是33, 44, 99。这几个位置里有 0,所以 x4 可信。
case3误判:x5='ddd'。计算后的位置分别是20, 30, 99。这几个位置都是 1,判断 x5 不可信。实际上 x5 的值和不信任字典中x1, x2都不一样,计算后的位置也都不一样,只是碰巧相应的位置是 1。
对于这种误判情况,应设计更好的散列方案使误判断的发生达到最小化。