1.35k likes | 1.65k Views
恶意代码与安全漏洞. 培训机构名称 讲师名字. 课程内容. 知识域:恶意代码. 知识子域:恶意代码基本概念原理 了解恶意代码的历史和发展趋势 理解常见恶意代码病毒、蠕虫、木马传播方式和危害的特点 了解常见恶意代码变形、 Rootkit 等技术的原理. 恶意代码的历史与发展趋势. 恶意代码( Unwanted Code,Malicious Software,Malware,Malicous code )是指没有作用却会带来危险的代码。 通常把未经授权便干扰或破坏计算机系统 / 网络功能的程序或代码(一组指令)称之为恶意程序。
E N D
恶意代码与安全漏洞 培训机构名称 讲师名字
知识域:恶意代码 • 知识子域:恶意代码基本概念原理 • 了解恶意代码的历史和发展趋势 • 理解常见恶意代码病毒、蠕虫、木马传播方式和危害的特点 • 了解常见恶意代码变形、Rootkit等技术的原理
恶意代码的历史与发展趋势 • 恶意代码(Unwanted Code,Malicious Software,Malware,Malicous code)是指没有作用却会带来危险的代码。 • 通常把未经授权便干扰或破坏计算机系统/网络功能的程序或代码(一组指令)称之为恶意程序。 一组指令可能包括:二进制文件、脚本语言或宏语言等。
恶意代码发展史 • 1949:冯·诺依曼在《复杂自动机组织论》提出概念 • 1960:生命游戏(约翰·康维) 磁芯大战(道格拉斯.麦耀莱、维特.维索斯基 、罗伯.莫里斯 ) • 1973:真正的恶意代码在实验室产生 • 1981年-1982年:在APPLE-II的计算机游戏中发现Elk cloner
恶意代码发展史 • 1986年—第一个PC病毒:Brain virus • 1988年—Morris Internet worm—6000多台 • 1990年—第一个多态病毒 • 1991年—virus construction set-病毒生产机 • 1994年—Good Times(joys) • 1995年—首次发现macro virus • 1996年—netcat的UNIX版发布(nc) • 1998年—第一个Java virus(StrangeBrew) 罗特.莫里斯
恶意代码发展史 • 1998年—netcat的Windows版发布(nc) • 1998年—back orifice(BO)/CIH • 1999年—melissa/worm(macrovirus by email) • 1999年—back orifice(BO) for WIN2k • 1999年—DOS/DDOS-Denial of Service TFT/ trin00 • 1999年—knark内核级rootkit(linux) • 2000年—love Bug(VBScript) • 2001年—Code Red –worm(overflow for IIS) • 2001年—Nimda-worm(IIS/ web browser/
恶意代码发展史 • outlook/file share etc.) • 2002年—setiri后门 • 2002年—SQL slammer(sqlserver) • 2003年—hydan的steganography工具 • 2003年—MSBlaster/ Nachi • 2004年—MyDoom/ Sasser • …… • 2006年—熊猫烧香 • …… • 2010年—Stuxnet(工业蠕虫)
恶意代码的发展趋势 • 种类越来越模糊不清 • 传播采用多种模式或者利用多个漏洞 • 多平台、多应用软件 • 服务端和客户端都遭受攻击,利用客户端软件传播的恶意代码越来越多 • 目的性、功利性更为突出 • 攻击者越来越小心、恶意代码隐蔽性越来越强 • 新的应用衍生出新的恶意代码,针对手机、新型网络应用的恶意代码越来越多
蠕虫的危害 • 严重威胁网络安全 —蠕虫爆发占用大量网络资源,导致网络瘫痪 —形成危害严重的僵尸网络,被作者用来发动任何攻击 • 危害个人信息安全 —泄露个人隐私
木马的传播方式 • 漏洞传播 系统漏洞;浏览器漏洞(网页木马);其他应用软件漏洞(PDF、DOCetc) • 伪装传播 捆绑;伪装成图片、文本等;合法软件 • 社会工程 电子邮件、论坛、SNS聊天软件
木马的危害 • 监视用户的操作 —包括:用户主机的进程、服务、桌面,键盘操作、摄像头等等 • 窃取用户隐私 —包括:浏览的网页,聊天记录,输入的银行帐户密码,游戏帐户密码,窃取用户敏感文件 • 让用户主机执行任意指令 —使用户主机沦为傀儡主机,接受并执行控制主机的指令 • 你能做到的木马都有可能做到
恶意代码实现关键技术 • 恶意代码生存技术 • 恶意代码隐蔽技术 • 恶意代码攻击技术及植入手段
恶意代码关键技术 • 一个好的恶意代码,首先必须具有强大的生存能力和良好好隐蔽性,不能轻松被杀毒软件、安全工具或者用户察觉。然后,必须具有良好的攻击性,即能将自己植入到目标系统。 • 关键技术: • 恶意代码生存技术 • 恶意代码隐蔽技术 • 恶意代码攻击技术及植入手段
恶意代码生存技术 • 生存技术主要包括4方面: • 反跟踪技术 • 加密技术 • 模糊变换技术 • 自动生产技术 • 反跟踪技术可以减少被发现的可能性,加密技术是恶意代码自身保护的重要机制。
恶意代码生存技术-反跟踪技术 • 恶意代码采用反跟踪技术可以提高自身的伪装能力和防破译能力,增加检测与清除恶意代码的难度。 • 目前常用的反跟踪技术有两类:反动态跟踪技术和反静态分析技术。
反跟踪技术-反动态跟踪技术 • 反动态跟踪技术主要包括4方面内容: • 禁止跟踪中断。 • 封锁键盘输入和屏幕显示,破坏各种跟踪调试工具运行的必需环境; • 检测跟踪法。 • 其它反跟踪技术。
反跟踪技术-反静态分析技术 • 反静态分析技术主要包括两方面内容: • 对程序代码分块加密执行 • 伪指令法(Junk Code)
恶意代码生存技术-加密技术 • 加密技术是恶意代码自我保护的一种手段,加密技术和反跟踪技术的配合使用,使得分析者无法正常调试和阅读恶意代码,不知道恶意代码的工作原理,也无法抽取特征串。 • 从加密的内容上划分,加密手段分为信息加密、数据加密和程序代码加密三种。
恶意代码隐蔽技术 • 利用模糊变换技术,恶意代码每感染一个客体对象时,潜入宿主程序的代码互不相同。 • 目前,模糊变换技术主要分为5种: • 指令替换技术 • 指令压缩技术 • 指令扩展技术 • 伪指令技术 • 重编译技术
恶意代码隐蔽技术-自动生产技术 • 恶意代码自动生产技术是针对人工分析技术的。 • 多态变换引擎可以使程序代码本身发生变化,并保持原有功能。
恶意代码隐蔽技术-隐藏技术 • 隐藏通常包括本地隐藏和通信隐藏 • 其中本地隐藏主要有文件隐藏、进程隐藏、网络连接隐藏、内核模块隐藏、编译器隐藏等 • 通信隐藏主要包括通信内容隐藏和传输通道隐藏。 • RootKit技术 • 恶意代码的隐藏或多或少都与RootKit技术相关因此这里重点介绍一下RootKit技术
恶意代码隐蔽技术-本地隐蔽技术 • 本地隐蔽是指为了防止本地系统管理人员觉察而采取的隐蔽手段。本地系统管理人员通常使用“查看进程列表”,“查看目录”,“查看内核模块”,“查看系统网络连接状态”等管理命令来检测系统是否被植入了恶意代码。 • 文件隐蔽 • 进程隐蔽 • 网络连接隐蔽 • 编译器隐蔽 • 内核模块隐蔽
恶意代码隐蔽技术-网络隐蔽技术 • 使用加密算法对所传输的内容进行加密能够隐蔽通信内容。隐蔽通信内容虽然可以保护通信内容,但无法隐蔽通信状态,因此传输信道的隐蔽也具有重要的意义。对传输信道的隐蔽主要采用隐蔽通道技术。 • 隐蔽通道分为两种类型: • 存储隐蔽通道 • 时间隐蔽通道
恶意代码隐蔽技术-RooTkit技术 Rootkit是指其主要功能为隐藏其他程式进程的软件,可能是一个或一个以上的软件组合;广义而言 ,Rootkit也可视为一项技术。 • Windows平台上最早发现于1999 • (NTRootkit, Hoglund): • 不同于病毒 • 非破坏性的信息收集工具 • 通常运行在核心(更易隐藏) • 通常被黑客手工安装 • 确保能再次进入系统 • 隐蔽地捕获密码,键击等
恶意代码攻击技术及植入手段 • 常见的攻击技术包括: • 进程注入技术 • 三线程技术 • 端口复用技术 • 超级管理技术 • 端口反向连接技术 • 拒绝服务攻击技术
恶意代码攻击技术-进程注入技术 • 进程注入技术就是将这些与服务相关的可执行代码作为载体,恶意代码程序将自身嵌入到这些可执行代码之中,实现自身隐藏和启动的目的。
恶意代码攻击技术-三线程技术 • 三线程技术就是指一个恶意代码进程同时开启了三个线程,其中一个为主线程,负责远程控制的工作。另外两个辅助线程是监视线程和守护线程,监视线程负责检查恶意代码程序是否被删除或被停止自启动。 • 守护线程注入其它可执行文件内,与恶意代码进程同步,一旦进程被停止,它就会重新启动该进程,并向主线程提供必要的数据,这样就能保证恶意代码运行的可持续性。
恶意代码攻击技术-端口复用技术 • 端口复用技术,系指重复利用系统网络打开的端口(如25、80、135和139等常用端口)传送数据,这样既可以欺骗防火墙,又可以少开新端口。 • 端口复用是在保证端口默认服务正常工作的条件下复用,具有很强的欺骗性。
恶意代码攻击技术-超级管理技术 • 为了对抗反恶意代码软件,恶意代码采用超级管理技术对反恶意代码软件系统进行拒绝服务攻击,使反恶意代码软件无法正常运行。
恶意代码攻击技术-端口反向连接技术 • 端口反向连接技术,系指恶意代码攻击的服务端(被控制端)主动连接客户端(控制端)。
知识域:恶意代码 • 知识子域:恶意代码防御技术 • 掌握恶意代码预防的策略、意识、技术和工具 • 了解恶意代码发现和分析技术 • 了解恶意代码清除技术
恶意代码防范技术 • 目前,恶意代码防御技术主要分为两方面: • 基于主机的恶意代码防御技术 • 基于网络的恶意代码防御技术
基于主机恶意代码防御 • 基于主机的恶意代码防范方法主要包括: • 基于特征的扫描技术 • 校验和 • 沙箱技术 • 安全操作系统对恶意代码的防范,等等。
基于主机恶意代码防御-特征扫描 • 基于主机的恶意代码防范方法是目前检测恶意代码最常用的技术,主要源于模式匹配的思想。扫描程序工作之前,必须先建立恶意代码的特征文件,根据特征文件中的特征串,在扫描文件中进行匹配查找。用户通过更新特征文件更新扫描软件,查找最新的恶意代码版本。这种技术广泛地应用于目前的反病毒引擎中。
基于主机恶意代码防御-校验和 • 校验和是一种保护信息资源完整性的控制技术,例如Hash 值和循环冗余码等。只要文件内部有一个比特发生了变化,校验和值就会改变。未被恶意代码感染的系统首先会生成检测数据,然后周期性地使用校验和法检测文件的改变情况。运用校验和法检查恶意代码有3 种方法: • 在恶意代码检测软件中设置校验和法 • 在应用程序中嵌入校验和法 • 将校验和程序常驻内存
基于主机恶意代码防御-沙箱技术 • 沙箱技术指根据系统中每一个可执行程序的访问资源,以及系统赋予的权限建立应用程序的“沙箱”,限制恶意代码的运行。
基于网络的恶意代码防御 • 由于恶意代码具有相当的复杂性和行为不确定性,恶意代码的防范需要多种技术综合应用,包括恶意代码监测与预警、恶意代码传播抑制、恶意代码漏洞自动修复、恶意代码阻断等。基于网络的恶意代码防范方法包括:恶意代码检测防御和恶意代码预警。 • 常见的恶意代码检测防御如蜜罐技术
基于HoneyPot的检测防御 • 早期HoneyPot主要用于防范网络黑客攻击。ReVirt是能够检测网络攻击或网络异常行为的HoneyPot系统。
恶意代码静态分析 • 什么是静态分析 • 静态常规信息分析 • 静态代码分析 • 常用静态分析工具
什么是静态分析 静态分析是在尽量不运行或调试恶意代码的前题下,尽可能多的收集此恶意代码的相关信息,以找出此恶意代码的功能与作用或为动态分析时找出恶意代码的功能做准备。静态分析主要分为两个方向,一个是静态常规信息分析,另一个是静态代码分析。