软件安全复习

参考的书是彭国军的软件安全

第一章 软件安全概述

信息的概述:信息是消除随机不定性的东西(香农提出)
信息的主要特点:①价值;②流动性,信源-信道-信宿
信息的属性:真实性,完整性,保密性,可用性,不可抵赖性,可控制性,可审查性
信息安全的定义:对信息的保密性,完整性和可用性的保持;信息为什么会存在安全问题:信息是有价值的,信息是流动的;
信息安全的实质:保护信息系统或信息网络中的信息资源免受各种类型的威胁,干扰和破坏,以维护信息的价值,促进业务的连续性
信息安全的威胁方式(目前的几种攻击模式):①信息中断(可用性);②信息截取(保密性);③信息修改(完整性);④信息伪造(真实性)。

P2DR2:信息安全是在特定的应用环境下,依据特定的安全策略,对信息及其系统实施保护(Protection)、检测(Detection)、响应(Reaction)和恢复(Restoration)的科学

软件安全定义:使软件在受到攻击的情形下依然能够继续正确运行的工程化软件思想;软件存在安全问题的原因:存在漏洞和缺陷
软件安全包括哪些方面:①软件自身安全;②恶意软件攻击与检测;③软件逆向分析与防护

软件安全面临的具体威胁:①软件缺陷与漏洞(正常软件);②恶意软件;③非法破解,知识产权被侵害(正常软件)

软件缺陷:指计算机软件或程序中存在的某种破坏正常运行能力的问题,错误或隐藏的功能缺陷;
软件漏洞:在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者在未授权的情况下访问或破坏系统
两者的区别:软件缺陷影响某个功能模块,软件漏洞对整个系统的安全性可能都有影响
软件缺陷可以转换成后门吗?攻击者利用缺陷植入后门代码
软件漏洞的作用:①拒绝服务;②非法获得控制权;③提权提升

恶意软件:设计目的是为了实施特定恶意功能的一类软件程序
恶意软件的威胁:①破坏或修改已有软件的功能;②窃取目标系统中的重要数据;③监视目标系统中的用户行为;④控制目标系统等;⑤加密数据进行勒索

软件破解(逆向工程):对软件自身程序进行逆向分析,发现软件的注册机制,对软件的各类限制实施破解,从而使得非法使用者可以正常使用软件

软件安全防护手段:安全设计、保障运行环境、加强软件自身行为认证、恶意软件检测与查杀、黑客攻击防护、系统还原、虚拟隔离等

沙箱和虚拟机在软件安全领域的具体应用
沙箱:在沙箱之中的软件行为及其产生的系统修改是被隔离起来的,通常运行一些疑似危险样本,从而隔离安全威胁
虚拟机:为了隔离安全风险,用户可以通过在不同的虚拟机进行相关活动,从而将危险行为隔离在不同的系统范围之内,保障敏感行为操作的安全性

第二章 软件漏洞缺陷与机理

软件漏洞的四要素:①受影响的软件版本;②POC(验证漏洞存在的代码,Proof Of Concept);③漏洞触发的条件;④攻击能力

漏洞的分类方法:

按漏洞威胁:获取访问权限漏洞,软件提升漏洞,拒绝服务漏洞,恶意软件植入漏洞,数据丢失或泄露漏洞

按漏洞成因:输入验证错误等

按漏洞严重性程度,分为A类(高),B类(中),C类(低)

软件漏洞利用对系统的威胁
①非法获得访问权限;
②权限提升;
③拒绝服务;
④恶意软件植入:主动植入,利用系统正常功能或漏洞将恶意代码植入到目标中,不需要用户的任何干预;被动植入,将恶意代码植入到目标时需要借助用户的操作
⑤数据丢失或泄露:对文件的访问权限设置错误导致受限文件被非法读取,如Password读取;②没有充分验证用户的输入,如Web应用的文件浏览;③系统漏洞导致服务器信息泄露,如DNS的域传送漏洞

软件漏洞的产生原因:技术因素:①输入验证错误,包括缓冲区溢出,SQL注入、XSS等;②访问验证错误,身份鉴别,操作授权以及会话管理薄弱或缺失;③竞争条件,多进程并发访问破坏事件间的依赖关系引发状态的不一致;④意外情况处置错误;⑤逻辑设计错误,比如整数溢出等

非技术因素:缺乏软件开发规范,软件进度控制(为了进度降低软件质量),缺乏安全测试等等

软件漏洞被利用的方式:本地攻击(攻击者系统本地的合法用户或获得本地权限的非法用户,经常修改开机启动项等)
远程主动攻击,通过网络连接目标,利用工具扫描目标,发现漏洞利用漏洞
远程被动攻击(挂马,结合浏览器的相关漏洞来触发第三方恶意程序下载执行)

典型的软件漏洞
        ①缓冲区溢出
        缓冲区:存储数量实现确定的,有限数据的存储区域,当程序试图将比缓冲区容量大的数据存储进缓冲区时,会发生缓冲区溢出,多余的数据会覆盖到相邻的内存地址中
        缓冲区溢出的原因:计算机程序体系没有严格区分用户数据和程序控制指令,部分编程语言具有直接访问内存的能力,向数据区写入大量数据可以实现非数据区域的覆盖
        ②注入漏洞:SQL注入,操作系统命令注入,Web脚本语言注入,SOAP注入(SOAP协议采用XML格式封装数据,容易遭到代码注入攻击)
       ③跨站漏洞:攻击者将恶意代码嵌入WEB页面,当用户浏览Web页面时,其中的脚本会被执行,达到攻击用户的特殊目的。是一种被动式的攻击方式
        ④权限类漏洞

第三章 计算机引导和磁盘管理

磁盘的寻址方式

        

MBR分区格式
主引导扇区:位于硬盘得到0柱面0磁头1扇区(硬盘的第一个扇区)包括MBR引导程序(主引导记录,位于主引导扇区的前446个字节)、硬盘分区表DPT,随后的64字节
DPT各字段的意义:
计算主分区(定位1CA是本扇区的大小,定位1C6是扇区偏移,扇区偏移+本扇区大小-1=本扇区结束位置)和主扩展分区(定位1DA是本扇区大小)的大小

计算机系统引导过程
BIOS:存储在ROM芯片中为计算机提供最底层,最直接得到硬件设置和控制
传统BIOS引导:开机,BIOS初始化,POST自检(监测系统中的关键设备是否存在和能否正常工作),MBR(读取主引导扇区,其功能是通过主分区表定位活动分区,装载活动分区的引导程序,并移交控制权),DBR(读取DBR扇区对应操作系统需要的引导程序),bootmgr(决定启动哪个操作系统),读取BCD(读取操作系统存储信息的数据库),启动对应系统
UEFI BIOS引导:开机,BIOS初始化,启动管理器(EFI分区bootxxx.efi,负责启动操作系统),读取BCD,启动对应的系统

恶意软件在植入系统之后,如何再次获得控制权
在计算机系统引导阶段获得控制权,如BIOS木马
在操作系统启动阶段获得控制权
在应用程序执行阶段获得控制权

80X86的工作模式
实模式:80x86处理器在复位和加电时是以实模式启动,只使用低20位寻址(寻址空间1M),不能对内存进行分页管理,不支持优先级所有的指令都相当于工作在特权级。
保护模式:80x86的常态工作模式,支持32位寻址,支持内存分页机制,支持优先级机制
保护模式下兼容8086程序而设置的,虚拟8086模式以任务的形式在保护模式上执行,支持内存分页和任务切换

Windows内存结构和管理
为了确保系统的稳定性,将处理器存取模式划分成用户模式(Ring 3)内核模式(Ring 0)
用户应用程序一般运行在用户模式,操作系统内核代码运行在内核模式
用户区是每个进程真正独立的可用内存空间,进程中的绝大多部分数据都保存在这一区域,每个进程的用户区的虚拟内存空间相互独立
内核区中的所有数据是所用进程共享的,是操作系统代码的驻地。所有代码和数据被操作系统保护,用户模式无法直接访问和操作 

FAT32文件和数据恢复
FAT32文件系统结构
引导扇区+FAT表+数据存储区(以簇为单位,每簇包含多个扇区,以簇号进行标示)
簇:文件系统将磁盘空间以一定数目的扇区为单位进行划分,这样的单位成为簇。簇是进行文件空间分配的最小单位
簇链的构造方法:在文件占用簇的对应簇号的FAT项,填写下一个簇的簇号,如果是最后一个簇,就输入结束标识(FFFFFF0F)
文件存储的过程:①按照文件大小定位足够的空闲簇;②创建文件目录项;③在FAT中构造簇链表;④在对应分配的簇中写入数据

第三章 PE文件格式

MZ-DOS以0x40开头

DOS stub定位PE文件开始位置,也可用于PE文件合法性的检测
PE Header由三部分组成
字串Signature“PE\0\0”,可以检测文件是否是有效PE文件
映像文件头
可选文件头
节表,紧挨着PE Header的一个结构数组,包括节名等
,可执行文件的核心部分;比较常见的有代码节,数据节,引入函数节,资源节,引出函数节,重定位节等等


为什么需要重定位:PE文件中部分数据是以VA地址的存储的,当PE文件无法加载到与其ImageBase时,这些地址需要修正。 

 缓冲区溢出

        缓冲区是内存空间用来存储程序运行时的一片大小有限并且连续的内存空间
        产生缓冲区溢出漏洞的原理:程序在处理用户数据的时候,未能对其大小进行恰当的限制,或在拷贝时没对这些数据限制边界,导致实际操作的数据大小超过了内存中目标缓冲区的大小


根据进程使用的内存区域的预定功能划分缓冲区:①代码区,存储被装入执行的二进制机器代码;②静态数据区,存储全局静态变量;③动态数据区,分为堆区和栈区,栈区存储函数之间的调用关系和函数内部的变量,堆区是程序运行时系统动态申请的内存空间。

栈帧的构建过程:①参数入栈;②压入旧PC的值,程序跳转③压入上一层栈帧;④调整栈帧状态,给新栈帧分配空间


栈溢出的利用:①修改邻接变量,②修改函数的返回地址,覆盖修改程序返回地址,使其指向shellcode地址,更改程序流程,从而转到shellcode执行;
③SEH结构覆盖,SEH是程序在出错后系统关闭程序之前,让程序去执行一个预先设定好的回调函数,因此攻击者能够用这种方式进行漏洞利用攻击,将SEH中异常处理函数的地址更改为shellcode的起始地址


堆和栈的区别:①堆动态分配,无法预知大小,栈相对静态事先可预知;②堆采用特定的函数释放如free,需要专门的函数申请,由系统自动回收。栈申请和释放自动完成;③对的变化范围大,从低地址往高地址生长;栈是从高地址往低地址生长


堆溢出:寻找内存写的机会,把任意数据写入任意地址,包括栈中函数返回地址,栈帧中的SEH,函数调用地址
本质:用精心构造的数据去溢出下一个堆块的块首,改写块首中的前向指针flink和后向指针blink(链表任意节点处插入一个新的节点)
防御手段:一致性检查 当前堆块->blink->flink=当前堆块;


格式化串漏洞溢出原理:printf函数正常执行时,会根据格式化串中的格式化控制符在栈上取相应的参数,按照其需要的格式进行输出。即使函数调用没有给出输出数据列表,系统仍然会按照格式化串中指明的方式输出栈中的数据;格式化串的利用方式修改字符填充长度实现改变指定位置写入的值


SQL注入

SQL注入的防范规则
参数化查询
过滤与转换,在数据库查询之前对用户输入的引号进行匹配
服务器与数据库安全设置


跨站脚本攻击

攻击者将恶意代码嵌入到Web页面里,当用户浏览该页面时,嵌入其中的脚本就会被执行,从而达到攻击用户获取用户信息的特殊目的;这是一种被动攻击方式。
攻击方式:反射型(调用一个定制的错误页面,错误页面中存储恶意代码)、存储型(攻击者提交的恶意代码存储在应用程序中)、DOM型(攻击者修改了文档对象DOM)
防御手段:Session标记


跨站请求伪造CSRF

概念:攻击者利用目标站点对用户的信任,诱使或强迫用户传输一些未授权的命令到该站点,从而达到攻击的目的。
防范方式:随机token


第四章 Windows安全机制与漏洞防护技术

数据执行保护DEP代码和数据分离,禁用stack/heap中的代码执行、

栈溢出检查GS:发生函数调用时,会向栈中压入一个随机数(ESP和种子的亦或值),函数返回时与预期的值作做对比。

地址空间分布随机化ASLR:栈和堆的基址是加载时随机确定的

SafeSEH:保护防止堆栈中的SEH函数指针被覆盖

EMET:微软提出的一套用来缓解漏洞攻击,提高应用软件安全性的增强型体验工具

第五章 软件漏洞的利用与发现

Exploit:本质是利用漏洞实现ShellCode的植入和触发的过程;Exploit=payload+Shellcode

payload用于部署基本的数据(用于漏洞的触发,携带shellcode)

漏洞利用:黑客针对已有的漏洞,根据漏洞的类型和特点而采取相应的技术方案,或者进行尝试性或实质性的攻击

漏洞利用成功的条件:①用户没有打补丁或更新安全设备;②管理员没有打补丁或更新安全工具;③有漏洞软件的碎片化或多样性

漏洞利用思具体技术:①修改内存变量,比如身份验证函数的返回值可以直接通过认证机制

修改代码逻辑,代码任意跳转,比如更改程序分支的判断逻辑

修改函数的返回地址,比如堆栈溢出实现对ShellCode的自动调用

修改函数指针,比如动态链接库中的函数调用,改写这些函数指针后能够劫持进程

修改异常处理函数指针(SEH),将异常处理函数的入口地址修改为Shellcode的起始地址;

修改P.E.B中线程同步函数的入口地址,修改同步函数指针的任意一个,在进程退出时同步函数被调用,会跳转调用Shellcode

漏洞利用过程:①定位漏洞点,比如堆溢出,栈溢出等结构范围;③编写ShellCode;③构造溢出,并覆盖代码指针使得ShellCode能获得执行权

Whts ShellCode?攻击者植入目标进程中的代码片段

ShellCode设计条件:①必须是一段机器码;②具备代码重定位和API自搜索功能,不严重依赖于系统与进程;③为增加通用性并减少对缓冲区大小的依赖,必要时对ShellCode进行编码和压缩

ShellCode的设计流程:①编写ShellCode高级语言;②反汇编ShellCode(调试);③从汇编级分析程序执行流程;④生成完整的ShellCode;⑤优化ShellCode

Win32本地完整的ShellCode

 包括三个完整的API调用过程:①LoadLibrary();②system();③exit(0)

  平台相关的API入口地址:①system()和exit();②LoadLibrary()和GetProcAddress()获取其他API函数入口地址;③GetProcAddress()和LoadLibrary()的地址可以在漏洞程序的Import Address Table中找到;④GetProcAddress()和LoadLibrary()的地址对于一个特定版本的Win32平台式固定的,从kernel32.dll中获取

地址重定位技术:call函数;pop eax;sub eax,offset

API函数地址自搜索:先定位kernel32基地址,然后寻找LoadLibrary()和GetProcAddress()两个函数的基地址,接下来利用这两个API来获得任意API函数的地址。

ShellCode典型功能:①正向连接和反向连接,正向连接后在目标主机运行后打开一个监听端口,等待攻击者连接;反向连接采用目标主机反向连接攻击主机的方式;②下载并执行程序,Shellcode执行后自动到某个URL去下载指定的文件

ROP:拼接内存中的返回指令,可实现控制程序执行流程到内存中的任何指令序列

软件漏洞挖掘技术:①基于源代码的静态分析:词法分析、图形化方法、静态切片、抽象解释

②动态分析:植入、部分求值、动态切片、污点传播

③Fuzzing测试,一种基于错误注入的黑盒随机测试技术

④二进制逆向分析;⑤基于补丁比对的逆向分析

Shellcode不允许出现特定的字符,应当怎么处理:XOR编码、解码

第七章 构建安全的软件

第八章 恶意代码

恶意代码的定义:为达到恶意目的而专门设计的程序或代码,指一切旨在破坏计算机或者网络系统性能的恶意程序

恶意代码的植入方式:软件漏洞或邮件等

恶意代码的存储形态:内存代码,可执行程序和动态链接库


计算机病毒:一组能够自我传播、需要用户干预来触发执行的破坏性程序或代码

计算机病毒的特点:自我传播,需要用户干预


网络蠕虫:一组能够自我传播不需要用户干预即可触发执行的破坏性程序或代码

网络蠕虫的特点:自我传播,不需要用户干预


特洛伊木马:通过欺骗或诱骗的方式安装,并在用户的计算机中隐藏以实现控制用户计算机的目的

木马的分类:①远程控制类木马(双向交互);②信息获取类木马(被控制端传送信息到控制端);③对本地或远程主机系统进行数据破坏(单向无交互性)

木马的特性:①欺骗性;②隐蔽性;③非授权性;④交互性


Rookit:持久可靠地存在于计算机上无法被检测的一组程序或代码


流氓软件:具备一定的实用价值但具备电脑病毒和黑客软件的部分特征额度软件


僵尸程序:实现可以控制恶意控制功能的程序代码,僵尸程序控制服务器,通过被植入僵尸程序的电脑进行组织和统一调度,便可形成僵尸网络;攻击者一对多,使用bot程序感染多个主机

僵尸网络的发展阶段:传播、加入和控制

僵尸网络的控制机制:①基于IRC协议的命令和控制机制;②基于HTTP协议的命令与控制机制;③基于P2P协议的命令与控制机制


Exploit:针对某一特定漏洞或一组漏洞而精心编写的漏洞利用程序

分类:①主机系统漏洞Exploit;②文档型漏洞Exploit;③网页挂马型Exploit


计算机病毒、木马、网络蠕虫的对比

感染性病毒蠕虫木马
存在形式寄生代码独立个体
传播方法代码寄生自我复制
传播依赖因素计算机用户计算机用户(漏洞利用类蠕虫依靠系统或程序漏洞)
再次执行宿主执行系统自启动
传播目标本地或文件系统网络中其他主机
防范反病毒软件、安全意识修补补丁

后门:黑客入侵了计算机后喂了今后方便地进入该计算机而安装的一类软件

后门与木马的联系与区别:木马大后门小;木马攻击,后门不攻击;木马有恶意行为,后门无恶意行为;木马是被控端自己触发,后门是攻击者攻击完植入

联系:恶意代码,隐藏自己

第九章 恶意代码机理分析

计算机病毒

概念;

特点:①传播性,病毒具有把自我复制到其他程序、中间存储介质或主机的能力;②非授权性,病毒隐藏在正常的程序或系统中,先于正常程序执行;③隐蔽性;④潜伏性;⑤破坏性;⑥不可预见性;⑦可触发性

计算机病毒的结构

基本模块触发模块,用来控制病毒的传播与发作
传播模块,负责病毒的感染与传播
表现模块(破坏模块)
扩展模块①运行环境探测模块(对运行时的具体环境进行探测)
②自我保护模块(降低自己被检测和发现的风险)
③自我卸载模块
④自我升级模块

计算机病毒的磁盘存储结构

        引导型病毒的磁盘存储结构,病毒体积较小时,引导型病毒可存储在磁盘的引导扇区

        文件型病毒的磁盘存储结构,病毒专门感染系统中的可执行文件

Windows PE病毒机理分析

        PE病毒根据感染目标类型不同可以分为:①文件感染,代码寄生在PE文件中;②系统感染,将代码或程序寄生在Windows操作系统

        传统文件感染型:

                ①优点,被感染后的程序主体仍然是目标程序,不影响目标程序图标,隐蔽性稍好;②对病毒代码的编写要求高

                关键技术:①重定位,病毒要使用的变量在内存中的内置不确定

重定位方法一:调用call delta  pop ebp  lea [ebp+(offset var1-offset delta)]

重定位方法二:调用call delta  pop ebp  sub ebp offset(delta)  lea [ebp+offset(var1)]

                ②API函数地址自获取方式:①DLL函数的引出函数节;②定位kernel32的基地址,找到GetProcAddress和LoadLibrary的基地址,然后使用这两个函数调用其他API函数

                如何获取kernel32的基地址:①利用程序的返回地址,在其附近搜索kernel32模块基地址。系统执行可执行文件会调用kernel32中的CreateProcess函数,完成应用程序装载后会将返回地址压入堆栈顶端;而这个返回地址就是在Kernel32的地址空间内,根据这个地址往低地址空阿金寻找就能找到kernel32的基地址

                ②根据SEH链寻找

                ③通过PEB相关数据结构寻找

                ④TOP Stack

                从Kernel32中得到API函数的地址:先获取GetProcAddress和LoadLibrary两个函数的地址,然后利用这两个函数得到所需要的API函数地址

                ③目标程序遍历搜索,调用FindFirstFile和FindNextFile函数

                ④文件感染:修改程序的入口点AccessEntryPoint,或在源代码执行过程运行病毒代码EPO技术;病毒执行完毕后要返回控制权,并且要避免重复感染

                传统感染文件的基本步骤

判断目标文件的开始两个字节是否是MZ

判断PE文件标记为PE

判断感染标记
获取数据目录的个数
得到节表起始位置(数据目录的偏移地址+数据目录占用的字节数=节表起始)
得到目前最后节表的末尾偏移(节表起始位置+节的个数*节表占用字节数)
开始写入节表和病毒节
修正文件头信息

                

       捆绑感染型

        将数据存储在病毒体内,执行病毒程序时,通过一定的操作访问这部分数据,从而执行原宿主文件

        优点:对病毒代码的编写要求低;缺点:程序主体是病毒程序,易被发现

        系统型感染

        如何再次获得控制权:设置自启动,修改注册表中的键值

        如何传播:可移动存储介质、网络共享、电子邮件或其他应用

        宏病毒

         感染机理:让宏在两类文件之间相互感染;宏病毒的基本架构①自我保护;②病毒代码复制到某个文件夹下;③从文件夹下导入病毒代码以免引起用户警觉

        脚本病毒

        VBS脚本:微软环境下的轻量级的解释型语言

        VBS的运行机理:VBS通过WSH(Windows脚本宿主)调用COM,因而可以使用Windows操作系统中可以被使用的程序库

VBS脚本病毒如何获取控制权:修改注册表启动项

网络蠕虫

概念

蠕虫传播的阶段:慢启动期、快速传播期、慢结束期、被清理期

蠕虫的分类:①漏洞利用类蠕虫;②口令破解类蠕虫;③邮件传输类蠕虫;④即时通信类蠕虫

功能结构

基本功能模块信息搜集模块(决定采用什么算法对本地和目标网络进行信息搜集)
扫描探测模块(脆弱性检测)
攻击渗透模块(渗透控制目标系统,获取控制权,实际上进行一次Exploit过程)
自我推进模块(生成蠕虫副本)
扩展功能模块实体隐藏模块
宿主破坏模块
信息通信模块
远程控制模块
自动升级模块

        蠕虫的工作机制

         蠕虫的检测与防治:防火墙阻断,及时打补丁

   特洛伊木马

        木马和僵尸程序的区别:僵尸程序利用网络控制主机是为了进行下一步攻击,木马的目的就是控制特定人群的电脑

        远程控制型木马的结构:木马配置程序(设置木马程序的端口号)、控制端程序(控制服务器)、服务端程序(负责接收控制端指令,根据指令或配置发送数据到控制端)

        木马的功能:①隐藏功能,隐藏通信形式和存在形式等;②自启动功能,利用注册表自启动,或者与其他文件捆绑启动,或利用特定系统文件和其他方式启动;③通信功能;④卸载功能

        木马的植入方式

        木马的连接方式:①直接正向连接

        优点:攻击者无需IP地址,木马样本不会泄露攻击者IP地址

        缺点:可能被防火墙阻挡,服务器端必须有外部IP地址,定位被攻击者比较困难

        

        ②直接反向连接

        优点:通过防火墙容易,攻击目标只要上线就能控制,可以控制局域网内的目标

        缺点:样本容易暴露控制端信息,攻击者也需要具有公网IP

        ③基于第三方主机的反向连接

        优点:可绕过防火墙,自动连接上线,不易被发现

        缺点:肉鸡的稳定性需要保障

        

Rootkit技术

第一代Rootkit技术:简单地替换或修改受害者系统上关键的系统文件

第二代Rootkit技术:基于挂钩技术

第三代Rootkit技术:称为直接内核对象操作,动态修改内核的数据结构,可逃过安全软件的检查

Rootkit常用技术介绍:①用户态HOOK,主要钩挂一些用户态的API函数,掌握IAT钩子勾住的情况;②内核态HOOK;③直接内核对象操作,直接修改内核中的记账信息

IAT是PE文件的一个表结构,程序加载到内存后,IAT的每个表项都存储着程序所引用的其他动态链接库文件中的函数的内存地址,修改这些链接地址到木马代码,木马代码执行完后再跳转执行原API代码

第十章 病毒检测技术与对抗技术

        恶意代码检测对象与策略:检测对象恶意代码特征(检测标准)进行比对分析,定位病毒程序或代码。或检测恶意行为

        检测对象:引导扇区、文件系统中可能带毒的文件、内存空间、主板BIOS等


        特征值检测技术:从病毒样本中提取的一段或多段字符串二进制串


        校验和检测技术:在文件使用/系统启动过程中,检查检测对象的实际校验和预期是否一致,因为可以发现文件/引导扇区是否感染,优势在于能够发现未知病毒


        虚拟机检测技术:多态、变形病毒的出现以及加壳技术;因为每种病毒自身执行都需要对自身进行还原,用软件方法模拟和分析程序的运行;虚拟机首先从文件中确认并读取病毒程序的入口点,然后模拟病毒程序用于解密的程序段,再在解密后的病毒体明文中查找病毒的特征码


        启发式扫描技术:需要动态反汇编引擎,扫描指令,比较病毒和正常程序指令。
        启发式扫描步骤:①定义通用可疑特征;②对上述功能操作将被按照安全和可疑的等级进行排序,授以不同的权值;③鉴别特征,如果程序的权值总和超过一个事先定义好的阈值,则认为“发现病毒”
        能发现病毒,但误报率较高


        主动防御技术:动态监控所运行程序调用各种应用编程接口(API)的动作,自行分析程序动作之间的逻辑关系,自动判断程序行为的合法性;可能会误报


        云查杀技术:利用云端的服务器资源,对可疑病毒文件进行实时收集和处理

第十一章 恶意样本捕获与分析

        恶意软件样本分析方法:①静态分析,不执行任何恶意代码的情况下,围绕文件展开分析

        ②动态分析:在受限环境中运行恶意软件代码,监视获取运行期间的程序状态;比如监视API函数的调用返回值

        恶意软件样本的分析方法:①粗粒度分析,了解恶意软件行为;②细粒度分析,针对性的研究恶意软件的功能实现

        恶意软件分析报告

第十二章 软件知识产权保护技术

        用户合法性验证机制的措施:①序列号验证;②keyfile验证;③网络验证;④光盘验证技术;⑤加密锁验证

        软件知识产权保护方式:①功能限制;②时间限制;③警告窗口

        软件自我保护技术:①静态分析对抗技术;动态分析对抗技术;③软件的自校验技术

  • 25
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值