软件安全期末总结

写在前面

所用教材:彭国军等人编著的第一版

博客地址:https://blog.csdn.net/zss192

说明:博客为根据老师所画重点有针对性的总结,供个人复习使用,仅供参考

第一章 软件安全概述

1.软件安全包括三个方面:(P5)

  • 软件自身安全(软件缺陷与漏洞)、恶意软件攻击与检测、软件逆向分析(软件破解)与防护

2.软件缺陷或漏洞被触发后典型的威胁有:(P6)

  • 软件正常功能被破坏、系统被恶意控制

3.恶意软件对软件及信息系统的威胁有:(P6)

  • 已有软件的功能被修改或破坏
  • 目标系统中的重要数据被窃取
  • 目标系统中的用户行为被监视
  • 目标系统被控制

4.微软的SDL开发模式(P9)

第二章 软件安全基础

1.磁盘的三个基本参数(CHS参数) (P13计算)

  • 磁头数:有多少个盘片,最大为255(0-255)
  • 柱面数:一个盘片有多少圈,最大为1023(0-1023)
  • 扇区数:一圈有多少个扇区,最大为63(1-63)(每个扇区一般为512B)
  • 最大容量 = (255x1023x63x512)/1048576=8024MB(1MB=220B=1048576B)

最大容量=磁头数x柱面数x扇区数x每个扇区的大小
硬件厂商一般用1M=1000000计算容量,注意单位换算

2.BIOS Int13H(P13)

BIOS Int13H调用是BIOS提供的磁盘基本输入输出中断调用,它可以完成磁盘的复位、读写、检验、定位、诊断、格式化等功能,使用CHS寻址方式,最大能识别8GB左右的硬盘。

3.主引导扇区的组成(P15)

主引导扇区就是硬盘的第一个扇区(0面0磁道1扇区),它由以下三部分组成

  • 主引导记录(MBR):占用前446字节,存放着系统主引导程序
    • MBR有时也指整个主引导扇区,有时指前446字节的主引导记录
  • 硬盘主分区表(DPT):占用64字节,记录磁盘的基本分区信息。分为四个分区项,每项16字节,分别记录每个主分区的信息(因此最多可以有4个主分区)
  • 引导扇区标记:占用两个字节,合法引导区固定等于0xAA55,是判断引导区是否合法的标志

系统中看到的盘都是主分区或者逻辑分区

助记:正常情况只需要划分主分区,但要想划分4个以上分区就要划分扩展分区,这时会有3个主分区1个扩展分区,但扩展分区不能直接用,我们可以再在其基础上划分成两个逻辑分区,这两个分区就是我们平常看到的盘,至此,当前共有3+2=5个分区可用。如果扩展分区并不全都划分成逻辑分区,那么剩余的磁盘空间还是扩展分区,只不过这部分空间不能使用。

新硬盘建立分区过程:建立主分区→建立扩展分区→建立逻辑分区→激活主分区→格式化所有分区

5.当前系统流行的引导形式是什么与BIOS引导有什么区别P15)

传统模式:BIOS引导,硬盘分区类型必须是MBR

当前模式:UEFI引导,硬盘分区类型必须是GPT

区别如下:

(1)效率方面:大部分BIOS代码使用汇编语言开发,开发效率低;在UEFI中,绝大部分代码采用C语言编写,效率较高。
(2)性能方面:BOIS需要通过中断来完成,开销大,性能低;UEFI舍弃了中断方式,仅仅保留了时钟中断。外部设备的操作采用“事件+异步操作”完成,性能大大提高。
(3)扩展性方面:BIOS代码采用静态链接,不提供动态加载设备驱动的方案,功能扩展性差,升级缓慢;UEFI系统的可扩展性体现在两个方面:一是驱动的模块化设计;二是软硬件升级的兼容性,使得系统升级过程更加简单、平滑。
(4)安全方面:BIOS运行过程中对可执行代码没有安全方面的考虑;当系统的安全启动功能被打开后,UEFI在执行应用程序和驱动前会先检测程序和驱动的证书,仅当证书被信任时才会执行这个应用程序或驱动。

6.文件系统(P16)

  • Windows系统:FAT12、FAT16、FAT32(单个文件最大4G)、NTFS、WINFS等
  • Linux系统:Ext2、Ext3、Ext4、Minix、NTFS等

7.80X86处理器支持三种工作模式(P20)

  • 实模式:复位或加电以实模式启动
    • 32位地址线只用了低20位
    • 不能分页,指令寻址的地址就是实际物理地址
    • 不支持优先级,所有指令工作在特权级别(优先级0)
  • 保护模式:80X86的一般工作模式
    • 32位地址都用来寻址
    • 支持内存分页
    • 支持虚拟内存
    • 支持优先级机制,操作系统运行在内核模式Ring0(最高优先级),应用程序运行在用户模式Ring3
  • 虚拟8086模式:在保护模式下兼容8086而设置的

DOS运行在实模式下,Windows运行在保护模式下

8.(P23)

14.病毒如何判断一个文件是不是PE文件(P37)

看文件的前两个字节是不是4D5A(MZ),若不是则说明不是PE文件

若是,在DOS程序头中的偏移3CH处的四个字节找到PE字串的偏移位置,查看该偏移位置的四个字节是不是50 45 00 00(PE…),若不是则不是PE文件,若是则认为它是一个PE文件

15.导出表结构(P43)

导出表:表明自己可以提供哪些函数供别的程序调用,类似于餐厅的菜单

上图为书上的原图仅供参考,要搞懂函数入栈出栈的具体流程,具体看综合题

7.常见漏洞挖掘技术的分类(P108)

(4)在project->settting与Tools->Options->Directories指定路径

  • 内核态HOOK:内核钩子是全局的且和防护软件一样都处于Ring0级更难被检测
    • IDT(中断描述符表)钩子:IDT指明了每个中断处理进程的地址,通过修改这个表可在发生中断调用时改变正常执行路径
    • SSDT(系统服务调度表)钩子:在系统服务调用过程中,会在内核态查找此表来找到系统服务函数的地址,通过修改此表便可钩挂系统服务函数
    • 驱动程序钩子:每个设备驱动程序中包含一个用于处理IRP(I/O请求包)请求的函数指针表,修改这个表使其指向Rootkit函数,即可完成钩挂
      • 进程隐藏思路(如隐藏my.exe):在用户态下,两个位置可以可用来隐藏进程,一个是psapi.dll中的EnumProcess函数,另一个为ntdll.dll中的原生API函数ZwQuerySystemInformation,钩挂这两个函数既可以用IAT钩子的方法,也可使用内联钩子的方法。

        在核心态下用来隐藏的位置也有两个:修改系统服务表(SSDT)中ZwQuerySystemInformation的表项和直接修改内核中记录进程信息的结构

        5.文件隐藏技术(P227)

        通信隐藏思路(如隐藏端口):SSDT钩挂ZwDeviceIoControlFile:首先调用ZwDeviceIoControlFile,设置Inputbuffer的参数,判断OutputBuffer中每个实体的tae_ConnLocalPort是否是隐藏的端口,若是,则删除此条实体,便实现了端口隐藏。钩挂TCPIP.sys驱动程序:IRP会向诸如netstat.exe等程序返回端口列表,只需对这样的IRP做相应处理即可隐藏端口

        7.注册表隐藏技术(P322)

        软件安全期末总结

        注册表隐藏思路(如隐藏注册表中的U盘):通过索引查询注册表的函数是ZwEnumerateKey,对注册表键的索引就是改变相对的索引。获取注册表键值信息的函数是ZwEnumerateValueKey,与隐藏注册表键的原理一样

        8.Rootkit检测原理及工具(P236)

        • 一般通过检测是否存在某种类型的钩子以此判断是否存在Rootkit
          • 查找SSDT钩子:查找名称为ntoskrnl.exe,查找超过ntoskrnl.exe范围之外的地址
          • 查找内联钩子:给一个SSDT的一个函数地址,查找是否存在jmp,解析CPU要跳转的目的地址,检查这个地址是否超过了ntoskrnl.exe的可接受范围
          • 查找IAT钩子:遍历每个DLL的每个IAT以检查是否存在任何钩子,特别要注意Kernel32.DLL和NTDLL.DLL,因为它们是进入OS的用户空间接口
        • 经典的Rootkit检测工具:IceSword和XueTr

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

        1.特征值检测病毒的思路(P249简答)

        (1)采集已知的病毒样本:即使是同一种病毒,感染不同类型的宿主时,一般也需进行不同样本的采集

        (2)从病毒样本提取特征值:特征值应足够特殊且控制在合适长度。可采用把病毒在计算机屏幕上出现的信息作为特征值或将病毒的标识作为特征值

        (3)将特征值纳入病毒特征数据库:使用扫描引擎实现病毒特征的匹配,打开被检测文件,进行二进制检索,检查是否含有病毒特征数据库中的病毒特征值,以此可判断文件是否染毒、染有何种病毒

        特征值检测方法的优点:检测准确,可识别病毒的特征,误 率低,并且依据检测结果可做解毒处理

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

        1.什么是蜜罐,用途是什么,举例说明(P275)

        蜜罐通常是指没有采取安全防范措施且主动暴露在 络中的计算机,其内部运行着多种多样的行为记录程序和特殊用途的”自我暴露程序”,相当于一个恶意软件样本收集池。

        利用蜜罐可以监控 络攻击行为、收集攻击工具和恶意代码、分析攻击方法、推测攻击意图和动机,甚至还可能根据蜜罐收集到的蛛丝马迹追踪到攻击者

        2.恶意软件样本捕获方法(P275)

        • 蜜罐:见上面知识点
        • 用户上 :个人用户发现恶意软件后主动上 给安全研究人员
        • 云查杀平台上传:通过分布在全球的大量客户端获取可疑程序的最新信息,并主动上传到服务器,但存在个人隐私问题
        • 诱饵邮箱:主动注册大量邮箱,定期收取电子邮件,从其中得到部分流行的恶意软件样本
        • 样本交流:部分反病毒公司之间合作或反病毒人士分享恶意软件样本

        3.恶意软件样本分析(P278)

        • 虚拟机环境准备
        • 系统监控:使用systeminternal即可
          • 包含进程监控(Process Explorer)、文件监控、注册表监控、 络连接分析、系统自启动项分析、内核监控、完整性检测

        第十三章 软件自我保护技术

        1.花指令(P305)

        • 反汇编主要有两种算法

          • 线性扫描算法:依次逐个将每一条指令都反汇编成汇编指令
            • 花指令模式为跳转指令+干扰代码,跳转指令典型的有0FH和0E8H
          • 递归进行算法:模拟CPU的执行过程,根据控制流(代码可能的执行顺序)来反汇编,对每条可能的路径都进行扫描
            • 对付线性扫描算法的方法对它没用,需要引导反汇编工具将特定花指令数据当做控制流程中的指令片段进行反汇编,如通过无效跳转进行错误引导

        2.如何检测调试器是否存在(P312简答)

        (1)查找是否有调试器进程

        (2)查找调试器进程或文件的特征码

        (3)查找特定的调试器服务

        (4)查找调试器窗口

        (5)句柄检测

        (6)检测DBGHELP模块

        (7)SeDebugPrivilege方法

        可能会出的简答汇总

        1.可信计算的基本思想

        2.请你大致写出计算机的启动过程

        3.一般来说,Win32病毒是怎样被运行的

        4.什么是SQL注入,举个例子

        5.进程隐藏技术

        6.特征值检测病毒的思路

        7.如何检测调试器是否存在

        声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

  • 上一篇 2022年10月1日
    下一篇 2022年10月1日

    相关推荐