一、软件安全现状及基本概念
- 出现软件故障现象的原因是软件存在漏洞。
- “任何软件,不论它看起来是多么安全,其中都隐藏漏洞”。
- 软件安全的目的是尽可能消除软件漏洞,确保软件在恶意攻击下仍然正常运行。
二、软件安全威胁和来源
软件安全三大威胁:
- 软件缺陷及漏洞
- 恶意软件
- 软件破解
2.1 软件缺陷及漏洞
1)软件缺陷,又称为bug,指计算机软件或程序中存在的某种破坏正常运行能力的问题、错误或隐藏的功能缺陷。会导致产品在某种程度上不能满足用户需要。
2)软件漏洞:指在硬件、软件、协议的具体实现或者系统的安全策略存在缺陷,从而可以使得攻击者能够在未授权的情况下访问或者破坏计算机系统。
软件漏洞的危害:
- 软件正常功能被破坏
- 系统被恶意控制、信息泄露、提权
软件漏洞危害的级别:
- 危急:漏洞传播影响很大,如无需用户激活的网络蠕虫传播的漏洞
- 高危:漏洞的利用会危及用户数据的机密性、完整性、有效性
- 中危:开发利用该漏洞比较困难
- 低危:漏洞的利用非常困难,或影响不大
2.2 恶意软件:恶意软件是指那些设计目的是为了实施特定恶意功能的一类软件程序,例如:病毒、木马、后门、僵尸、简单软件等。
恶意软件的危害:
- 修改或破坏已有的软件功能:恶意软件运行后,可以对同一运行环境中的其他软件进行干扰和破坏。
- 窃取系统中的数据:灰鸽子、上兴、Flame
- 监视用户行为:屏幕监视、视频监视、语音监视
- 目标被控制:shell
2.3 软件破解:即通过对软件自身程序进行逆向分析,剖析软件的注册机制,对软件的各类限制实施破解,从而使得非法使用者可以正常使用软件。
三、计算机病毒
1)定义:是编制者在计算机程序中插入的破坏计算机功能或者数据的代码,能影响计算机使用,能自我复制的一组计算机指令或者程序代码。
2)特征:
- 传染性:病毒具有把自身复制到其它程序的能力
- 非授权性:病毒的执行无需用户授权
- 隐蔽性:用户不容易察觉病毒的存在与执行
- 潜伏性:病毒存在于系统中,并等待时机发作
- 破坏性:干扰系统的执行、管理、数据
- 不可预见性
- 触发性:根据条件触发破坏行动
3)病毒感染的途径:
- 生产、销售的计算机系统和软件中带有病毒
- 通过互联网(访问Web、下载Email和文件等)传入的
- 非法拷贝中毒
- 维修部门交叉感染
- 敌对分子以病毒为媒体或武器进行宣传和破坏
4)病毒的分类
① 引导型病毒:如小球病毒、大麻病毒
- 引导型病毒特点:
■ 引导部分占据磁盘引导区
■ 只有在计算机启动过程中,磁盘被引导时, “引导型”病毒才被激活
■ 具有磁盘引导扇区内容“复原”功能
■ 修改内存容量,病毒驻留内存
■ 修改磁盘访问中断,在进行磁盘写操作时进行传播
- 引导型病毒传播方式:正常操作系统启动过程、感染引导型病毒的操作系统启动。
② 文件型病毒
文件型病毒的主要特点是:
- 系统执行病毒所寄生的文件时,其病毒才被激活
- 有可能直接攻击目标对象,主要是EXE、COM等可执行文件
- 修改系统内存分配,病毒驻留内存
- 修改系统中断,等待时机进行病毒的发作或再次传播
③ 宏病毒
- 定义:宏病毒是使用宏语言编写的程序,可以在一些数据处理系统中运行(主要是微软的Office程序),存在于Word、Excel、PPT等数据文件中,利用宏语言的功能将自己复制并且繁殖到其他数据文档里。
- 宏病毒的产生:宏病毒与传统的病毒有很大不同,它不感染.EXE和.COM等可执行文件,而是将病毒代码以“宏”的形式潜伏在Office文件中,主要感染Word和Excel等文件,当采用Office软件打开这些染毒文件时,这些代码就会被执行并产生破坏作用。
- 宏病毒的表现:
■ 自身的传播无破坏性
■ 干扰打印和显示
■ 删除文件
- 宏病毒的特点:
■ 容易制造
■ 交叉硬件平台
■ 传播速度快
■ 隐蔽性好
■ 破坏性强
④ 脚本病毒
- VBS病毒:脚本病毒种类比较多,最常见的就是VBS病毒。VBS病毒是用VBScript编写而成,该脚本语言功能非常强大,它们利用Windows系统的开放性特点,通过调用一些现成的Windows对象、组件, 可以直接对文件系统、注册表等进行控制。
- 原理:VBS脚本病毒是直接通过自我复制来感染文件的,病毒中的绝大部分代码都可以直接附加在其他同类程序的中间。
- 特点:编写简单,破坏力大,感染力强,传播范围大,欺骗性强。
- 传播方式:Email,局域网共享,感染htm、asp、jsp、php等网页文件。
- 如何获得控制权:修改注册表项,映射文件执行方式,欺骗用户让用户自己执行。
- VBS脚本病毒的运行条件:
■ 绝大多数VBS病毒运行时都要用到一个对象:FileSystemObject
■ VBScript代码是通过Windows Script Host来解释执行的
■ VBS脚本病毒的运行需要其关联程序Wscript.exe的支持
■ 通过网页传播的病毒需要ActiveX的支持
■ 通过Email传播的病毒需要OutlookExpress的自动发送邮件功能支持
- VBS脚本病毒的防范:
■ 禁用文件系统对象FileSystemObject
■ 卸载Windows Script Host
■ 删除VBS、VBE、JS、JSE文件后缀名与应用程序的映射
■ 自定义安全级别
■ 禁止OutlookExpress的自动收发邮件功能
⑤ PE病毒
- 首先判断是否是PE文件(Portable Executable,可移植可执行文件)
- 接下来添加节
四、木马
1)定义:木马(Trojan)也称木马病毒,是通过特定的程序(木马程序)来控制另一台计算机。
2)木马的结构:完整的木马一般由木马配置程序、控制端程序(客户端)和木马程序(服务端程序,即受控端)等三部分组成。
- 控制端:用来对被控制主机进行操控、发送指令,并显示指令执行的返回结果
- 服务端:用来响应控制端发出的指令、执行实际的任务
3)木马的植入方式:
- 伪装欺骗植入:更改后缀名,图标伪装成合法程序
- 捆绑植入:恶意程序与正常程序捆绑(EXE捆绑、文档嵌入等)
- 其他:社会工程,用户习惯
4)木马连接方式:获取连接信息(服务端通知客户端 / 客户端主动扫描)--> 建立通信连接(TCP)
① 正向连接:控制端主动连接受控端
- 优点:
■ 攻击者无需外部IP地址
■ 木马样本不会泄露攻击者IP地址
- 缺点:
■ 可能会被防火墙阻挡
■ 被攻击者必须具备外部IP地址
■ 定位被攻击者相对困难(目标IP经常变化、不知道目标IP何时上线)
② 反向连接1:
- 优点:
■ 通过防火墙相对容易
■ 攻击目标随时上线随时控制
■ 可以控制局域网内的目标
- 缺点:
■ 样本会暴露控制端信息
■ 攻击者通常应该具备外部IP的服务器
③ 反向连接2:
- 受控端和控制端都和第三方通信(肉鸡、Web服务器)
- 优点:
■ 绕过防火墙
■ 自动连接上线
■ 不易被发现(代理)
五、后门
1)定义:后门是一个允许攻击者绕过系统中常规安全控制机制的程序,后门的重点在于为攻击者提供进入目标计算机的通道。
2)后门VS木马
- 如果一个程序仅仅提供远程访问,那么它只是一个后门
- 如果攻击者将这些后门伪装成其他正常程序,那么其就变成木马(欺骗性)
3)植入后门
- 自己植入(物理接触或入侵后)
- 通过病毒、蠕虫和恶意移动代码
- 欺骗受害者自己安装(Email,远程共享,BT下载)
4)攻击方法
- 获取用户口令
- 更改配置(rhosts)
- 替换程序
- 开设新的服务,定时开启服务
5)隐藏
- 代码:坏扇区,Boot
- 通信:TCP,UDP,ICMP
六、Rootkit
1)基本概念:Rootkit实现隐藏,只是采取一定的措施,使系统“ 看不到”相应的对象。
- 系统API(Application Programming Interface,应用程序编程接口)查询相应对象,返回信息
- 而Rootkit拦截系统API的执行过程或返回结果
2)Rootkit的演化:
- 第一代Rootkit简单地替换或修改受害者系统上关键的系统文件。
- 第二代的Rootkit大体上基于挂钩技术——通过对已加载的应用程序和一些诸如系统调用表的操作系统部件打内存补丁而改变执行路径。
- 第三代Rootkit技术称为直接内核对象操作,其动态修改内核的数据结构,可逃过安全软件的检测。
七、APT
1)基本概念:高级持续性威胁(Advanced Persistent Threat,APT)是指组织(特别是政府)使用先进的攻击手段对特定目标进行长期持续性网络攻击的攻击方式,因此无法通过阻止一次攻击就让问题消失。
2)APT的特点:
- 高级——有全方位的情报搜集技术和计算机入侵技术
- 持久性——目的性和针对性强,长期持续利益的信息
- 有组织,有充足的资金
*八、软件安全措施
1)软件安全模型
2)SDL:安全培训——需求——设计——实现——验证——发布——响应
3)代码分析工具:IDA、OD、FindBugs