Upload
karleigh-williams
View
159
Download
9
Embed Size (px)
DESCRIPTION
恶意软件(病毒)的分析与 防范 Defence & analysis of malware. 计算机学院 傅建明 [email protected]. 恶意软件. 开设本课程的目的是使学生了解并掌握计算机恶意代码所涉及的基本知识和防范技术,提高计算机安全保护意识,具备防范恶意代码的基本能力. 教学安排. 恶意软件概述和基础知识 传统的计算机病毒 网络蠕虫 网页(移动)恶意代码(木马) 后门 木马 rootkit. 网络蠕虫. 什么是蠕虫? 为什么使用蠕虫? 蠕虫的简史 蠕虫的组成 蠕虫传播的障碍 蠕虫的发展 蠕虫的防治. 什么是蠕虫. - PowerPoint PPT Presentation
Citation preview
23/4/24 2
恶意软件• 开设本课程的目的是使学生了解并掌握计算机恶意代码所涉及的基本知识和防范技术,提高计算机安全保护意识,具备防范恶意代码的基本能力
23/4/24 3
教学安排• 恶意软件概述和基础知识• 传统的计算机病毒• 网络蠕虫 • 网页(移动)恶意代码(木马) • 后门• 木马• rootkit
23/4/24 4
网络蠕虫• 什么是蠕虫?• 为什么使用蠕虫?• 蠕虫的简史• 蠕虫的组成• 蠕虫传播的障碍• 蠕虫的发展• 蠕虫的防治
23/4/24 5
什么是蠕虫• 计算机蠕虫可以独立运行,并能把自身的一个包含所有功能的版本通过网络传播到另外的计算机上的程序代码。• 蠕虫的定义中强调了自身副本的完整性和独立性
23/4/24 6
蠕虫
病毒 蠕虫 存在形式 寄生 独立个体
复制机制 插入到宿主程序(文件)中 自身的拷贝 传染机制 宿主程序运行 系统存在漏洞(vulnerability) 搜索机制(传染目标) 针对本地文件 针对网络上的其它计算机
触发传染 计算机使用者 程序自身 影响重点 文件系统 网络性能、系统性能 计算机使用者角色 病毒传播中的关键环节 无关
防治措施 从宿主文件中摘除 为系统打补丁(Patch) 对抗主体 计算机使用者、反病毒厂商 系统提供商、网络管理人员
23/4/24 7
为什么使用蠕虫• 技术的体现• 接管大量系统• 使得追踪困难• 可以发动其他攻击 --DDOS
23/4/24 8
蠕虫的简史• Xerox PRAC , 1980 年• Morris Worm , 1988年 11月 2 日 • WANK Worm , 1989年 10月 16 日 • ADM Worm , 1998年 5 月 • Millennium , 1999年 9 月 • Ramen Worm , 2001年 1 月 • Lion Worm , 2001年 3月 23 日• Adore Worm , 2001年 4月 3 日 • Cheese Worm , 2001年 5 月 • Sadmind/IIS Worm , 2001年 5 月 • CodeRed Worm , 2001年 7月 19 日 • Nimda Worm , 2001年 9月 18 日• Slapper , 2002年 9月 14 日 • Slammer , 2003年 1月 25 日• Dvldr32 , 2003年 3月 7 日• MSBlaster , 2003年 8月 12 日• Nachi , 2003年 8月 18 日
23/4/24 9
蠕虫的简史• MyDoom.C 2004年 2月 9 日• Witty Worm 2004年 3月 20 日• Sasser Worm 2004年 4月 30 日• Santy Worm 2004年 12月 21 日
23/4/24 10
蠕虫的行为特征1 . 主动攻击2 . 行踪隐蔽3 . 利用系统、网络应用服务漏洞4 . 造成网络拥塞5 . 降低系统性能 6 . 产生安全隐患 7 . 反复性 / 破坏性
23/4/24 11
蠕虫的组成
未编译的源代码
蠕虫实体结构
可运行代码
信息数据
受感染系统上的可执行程序脚本已编译的链
接模块
23/4/24 12
蠕虫的组成
弹头 传播引擎 目标算法 扫描引擎 有效载荷
23/4/24 13
弹头如何获得控制权(打开传输通道):• 缓存区溢出探测;• 文件共享攻击;• 电子邮件;• 其它的错误配置;
23/4/24 14
传播引擎• FTP• TFTP• HTTP• SMB• 其它 UDP/TCP
23/4/24 15
目标选择算法• 电子邮件列表• 主机列表( hosts)• 被信任的系统( MAC/IP)• 邻域网• 域名服务查询• 任意选择一个目标网络地址( A/B/
C,32bits)
23/4/24 16
扫描引擎检测有效的目标:• NMAP;• Xscan;……Ref:http://www.xfocus.net/tools/1.html
23/4/24 17
有效荷载• 打开一个后门• 安装代理 / 肉鸡• 执行一些运算……
23/4/24 18
蠕虫的工作流程随机生成 IP 地址 -- 〉探测地址 -- 〉主机是否存在 -- 〉漏洞是否存在 -- 〉攻击、传染和现场处理
23/4/24 19
案例分析 --Nimda弹头 : (2001 年 9 月,他既是蠕虫,也是病毒)• Microsoft的 IIS web 服务器漏洞:可以执行不位于 web 目录下的文件;• 感染浏览器所在的主机:访问有漏洞的 IIS;• Outlook 漏洞: MIME 的头等;• Windows 文件共享;• 探测其他蠕虫留下的后门: Code Red II 等;
23/4/24 20
案例分析 --Nimda传播引擎:• Web—HTTP;• Outlook—SMTP;• File share—SMB;• IIS—TFTP;
23/4/24 21
案例分析 --Nimda目标选择算法:• 电子邮件—地址簿 /html;• 随机生成一系列的目标 IP 地址,探测漏洞;
23/4/24 22
案例分析 --Nimda有效荷载:• 共享 c 盘;• 激活 guest 账号;
23/4/24 23
MyDoom
• 2004 年 2 月发现,该蠕虫病毒利用自带的 SMTP 引擎来发送病毒邮件,利用点对点工具( KaZaA )的共享目录来欺骗下载。
• 病毒发作时会启动 64个线程进行DoS(www.sco.com )攻击,造成系统和网络资源的严重浪费。
23/4/24 24
Sasser
• 2004 年 4 月 30 ,利用 WINDOWS平台的 Lsass 漏洞进行广泛传播,开启上百个线程不停攻击其它网上其它系统,堵塞网络。病毒的攻击行为可让系统不停的倒计时重启。
• 该病毒并不通过邮件传播,而是通过命令易受感染的机器下载特定文件并运行,来达到感染的目的。
23/4/24 25
Sasser
• Sasser 是直接在 SHELLCODE里面完成了一个 FTP 程序, BIND 一个 5554端口,支持几种最基本的 FTP命令。• Lsass认证进程中的溢出
23/4/24 26
Santy 蠕虫• 描述:
– 2004年 12月 21 日发现,截止到 12月 22日, google 可以统计到被 santy 蠕虫破坏的网站已经达到 26000多;– 利用论坛系统 phpBB 的漏洞传播;
• 智能特性:– 从搜索引擎 google 得到攻击站点列表;
• 存在形式:– 脚本代码;
23/4/24 27
Santy 蠕虫• 如何检测智能蠕虫?
– 不需扫描,流量无明显异常;– 查询条件的无穷组合;– 脚本代码的任意变化;
23/4/24 28
蠕虫的爆发周期越来越短…
漏洞发现 攻击代码 蠕虫爆发 控制 清除
越来越短 越来越长,越来越难
最佳时机 及时 太晚了
23/4/24 29
蠕虫的传播模型
23/4/24 30
蠕虫传播的原因• 网络体系结构• 漏洞 (弱配置,缓冲区溢出 )
23/4/24 31
网络系统的特性 -- 网络系统的形成过程
……
23/4/24 32
互联网的自然特性• 成长性:网上资源不断膨胀和更迭的特性。• 自治性:网上资源局部自治、没有集中管理的特性。• 异构性:网上资源存在着广泛差异的特性。
23/4/24 33
自然特性带来的好处• 促使互联网迅速成长为覆盖全球的廉价的通信平台;• 促使互联网逐步演变为覆盖全球的灵活的计算平台;• 人类的信息处理能力将突破时空局限,实现质的飞跃。
23/4/24 34
互联网的一个图景
23/4/24 35
成长性 +优先连接
摘自“ Scientific American”2003 年第 5 期
23/4/24 36
无尺度网络
摘自“ Scientific American”2003 年第 5 期
航空网
23/4/24 37
随机网络
摘自“ Scientific American”2003 年第 5 期
公路网
23/4/24 38
随机网络的容错
摘自“ Scientific American”2003 年第 5 期
23/4/24 39
无尺度网络的容错能力
摘自“ Scientific American”2003 年第 5 期
23/4/24 40
无尺度网络与恶意攻击
摘自“ Scientific American”2003 年第 5 期
挑战:挑战:无尺度网络极易被恶意攻破。无尺度网络极易被恶意攻破。
23/4/24 41
无尺度网络与病毒传播
挑战:挑战:无尺度网络易于病毒的快速传播。无尺度网络易于病毒的快速传播。
23/4/24 42
复杂网络的特性• 复杂网络是研究系统结构和行为的关键,它由节点和边来分别表示复杂系统中的功能元素以及各元素间的相互关系。• 特点:节点数目庞大,节点间的关系复杂。• 研究对象:通信网,电力网,交通网,人际关系网,神经网络,疾病传播网
23/4/24 43
复杂网络的特性复杂网络的研究主要集中在:1 〉寻找能够表征复杂网络的结构和行为,如尺度分布、路径长度等,并提出合理的测量;2 〉创建能够有利于人们理解这些特性的网络模型3 〉根据对所定义的网络特性的测量结果,预测网络的动态行为(病毒 / 蠕虫传播行为)。
23/4/24 44
复杂网络的特性三个主要特性:1 〉特征路径长度,用 l 定义 =
)1(
,
NN
dji
ji
N 表示网络中的节点数, i/j 为网络中的节点, di,j 为节点i,j 的最短路径长度。( Characteristic path length )
在朋友(熟人)网络中,特征路径长度就是联系两个人的朋友个数。 在数学家的合作论文中,合作者之间存在 Erdös 值( Erdös Number),统计结果表明,任何数学家,他同Erdös 关联起来的平均值即 Erdös 值为 3
23/4/24 45
复杂网络的特性2> 度值分布:节点的度值是指与该节点相连接的边数。用 Pk 表示为随机选择一个节点其度值为 k的概率。
23/4/24 46
复杂网络的特性3〉聚合系数( Clustering coefficient):
假设某个节点有 k 条边,则这 k 条边连接的节点( k个)之间最多可能存在的边数为 k(k-1)/2 ,用实际存在的边数除以最多可能存在的边数得到的分数值,定义为这个节点的聚合系数。所有节点的聚合系数的均值定义为网络的聚合系数。很明显,聚合系数是网络的局部特征。在朋友(熟人)网络中,聚合系数反映了相邻两个人之间朋友圈子的重合度。
2i
ii k
C i
iCN
C 1
ki 为节点 i 的边数, i 为节点间实际存在的连接数
23/4/24 47
复杂网络的特性
Small world: 网络具有较短的特征路径,和较高的聚集系数。
23/4/24 48
缓冲区溢出• 缓冲区溢出攻击的基本原理是向缓冲区中写入超长的、预设的内容,导致缓冲区溢出,覆盖其它正常的程序或数据,然后让计算机转去运行这行预设的程序,达到执行非法操作、实现攻击的目的。• 存在条件:不对缓冲区、数组及指针进行边界检查 ,如 strcpy(), strcat(), sprintf(),
gets() 等
23/4/24 49
静态缓冲区溢出机理程序段数据段堆栈
内存低端
内存高端
……
局部变量(Ebp for debug)
返回地址Argc 的值Argv 的地址
stack低端
stack 高端
Stack 的使用
23/4/24 50
For example• void foo(const char*input)• { char buf[10];• strcpy(buf,input);• printf("my name is foo\r\n");}• void bar(void)• { printf("You have been hacked\n");}• int main(int argc, char* argv[])• {• char buf[33]={"AAAABBBBCCCCDDDD• EEEEFFFFGGGGHHHH"}; • unsigned long bar_add;• bar_add=(unsigned long)bar;• memcpy(&buf[12],&bar_add,4); • foo(buf);• return 0;• }
执行 foo ,也就执行了 Bar
23/4/24 51
堆( Heap )溢出• +-------------------------------------------------------------------+ • | HEAP总体管理结构区 | 双指针区 | 用户分配内存区 | • +-------------------------------------------------------------------+ 第一次分配后: +-----------------------------------------------+ | buf1 | 8 byte |4 byte|4 byte| +-----------------------------------------------+ | 用户内存 | 管理结构 | 两个指针 | 第二次分配后: +---------------------------------------------------------------------------------+ | buf1 | 8 byte | buf2 | 8 byte |4 byte|4 byte| +---------------------------------------------------------------------------------+ | 用户内存 | 管理结构 | 用户内存 | 管理结构 | 两个指针 |
heap 高端
23/4/24 52
蠕虫传播的障碍• 目标环境的多样性任何蠕虫都依赖于特定的程序 / 漏洞 / 配置• 受害系统的崩溃• 过量传播导致网络阻塞• 检测感染标志 ( 避免被自身覆盖 )• 被其他蠕虫清除
23/4/24 53
未来的蠕虫• 多平台蠕虫• 多探测蠕虫(多漏洞)• Zero-day 探测蠕虫• 快速传播蠕虫 : Warhol(将来每一个都会成为 1
5 分钟 ) worm/flash worm• 多态蠕虫• 变形蠕虫( hide)• 破坏性蠕虫
23/4/24 54
未来的蠕虫• 超级蠕虫:多平台 /多漏洞 /多态 /变形
/破坏 /P2P• 简单蠕虫:一个数据包(如 sql slammer,采用 UDP,376B)
超级蠕虫 ? 简单蠕虫
23/4/24 55
防御蠕虫• Ethical 蠕虫• 防病毒软件—及时更新• 补丁• 阻断任意的网络连接 -Firewall• 建立事故响应机制• 不玩蠕虫
23/4/24 56
防御蠕虫 --Firewall 天网个人防火墙,瑞星防火墙,江民黑客防火墙诺顿防火墙 , ZoneAlarm, AtGuard 防火墙 ,Sygate Personal Firewall
23/4/24 57
防御蠕虫— AntiVirus 江民杀毒 ( KV2005 版, KV2006 标准版) 瑞星杀毒 (瑞星 2005 17.46.41 版,瑞星 2005 网络版) 金山杀毒 (毒霸 64 位杀毒版,毒霸 6 安全组合版,毒霸
2005 标准版等) 卡巴斯基 ( Kaspersky KAV4.5 中文服务器版等) 诺顿杀毒 (symantec antivirus v9.01 简体中文企业版客户端等 )
趋势杀毒 熊猫杀毒
23/4/24 58
防御蠕虫—补丁检测• Microsoft Baseline Security
Analyzer,MBSA • 测试没有打的补丁
23/4/24 59
MBSA
• http ://download.microsoft.com/download/9/0/7/90769f0c-c025-48bf-a9c7-60072d0cb717/MBSASetup-EN.msi
23/4/24 60
MBSA
23/4/24 61
红色或黄色的叉号:表示该项目未能通过测试; 雪花图标:表示该项目还可以进行优化,也可能是程序跳过了其中的某项测试;感叹号:表示尚有更详细的信息;绿色的对钩:这当然是最理想的,表示该项目已通过测试。
23/4/24 62
漏洞溢出的技术• 关闭不需要的特权( administrator )程序 • 及时给程序漏洞打补丁 • 编写正确的代码 • 缓冲区不可执行 • 数组边界检查 • 使栈向高地址方向增长 • 程序指针完整性检查 (ret)
23/4/24 63
从网络流量特征检测蠕虫• 集中式检测:签名 / 地址异常 /端口异常
/DNS异常 /ARP异常 /协议异常• 分布式检测: payload汇聚异常
23/4/24 64
• Question?
23/4/24 65
参考书• 许治坤等。网络渗透技术 ,电子工业出版社