网安概论(一)

 

chapter1:信息安全概论 

1、信息安全的特征

 

• 机密性:确保信息不被非授权者获得与使用  例如:信息泄露,例如密码、文件等

• 完整性:信息是真实可信的,其发布者不被冒充,来源不被伪造,内容不被篡改  例如:身份伪造、文件篡改

• 可用性:保证信息可被授权人在需要时立即获得并正常使用  例如:DDOS、勒索软件等

2、信息系统安全的概念和基本属性

  1. 信息安全:国际标准化组织(ISO)对计算机系统安全的定义:为数据处理系统建立和采用的技术和管理的安全保护,保护计算机硬件、软件和数据不因偶然和恶意的原因遭到破坏、更改和泄露。 
  2. 网络安全(network security):计算机网络环境下的信息安全
  3. 网络空间安全( Cybersecurity or Cyberspace Security):包括物理空间、网络空间和社会空间的安全

3、P2DR安全模型

c2c4269e0fb34f2c9a9260d4246ff580.png

 

安全=风险分析+执行策略+系统实施+漏洞检测+实时响应

Policy:由于安全策略是安全管理的核心,所以要想实施动态网络安全循环过程,必须首先制定安全策略,所有的防护、检测、响应都是依据安全策略实施的,安全策略为安全管理提供管理方向和支持手段

Protection:保护通常是通过采用一些传统的静态安全技术及方法来实现的,主要有防火墙、加密、认证等方法。通过防火墙监视限制进出网络的数据包,可以防范外对内及内对外的非法访问,提高了网络的防护能力,当然需要根据安全策略制定合理的防火墙策略;也可以利用SecureID这种一次性口令的方法来增加系统的安全性等等

Detection(检测) :在网络安全循环过程中,检测是非常重要的一个环节,检测是动态响应的依据,它也是强制落实安全策略的有力工具,通过不断地检测和监控网络和系统,来发现新的威胁和弱点,通过循环反馈来及时作出有效的响应。

Response(响应) :紧急响应在安全系统中占有最重要的地位,是解决安全潜在性最有效的办法。从某种意义上讲,安全问题就是要解决紧急响应和异常处理问题。要解决好紧急响应问题,就要制订好紧急响应的方案,做好紧急响应方案中的一切准备工作。

4、PDRR模型

Protect(防护):网络安全策略PDRR模型的最重要的部分就是防护(P )。防护是预先阻止攻击可以发生的条件,让攻击者无法顺利地入侵。 防护可以减少大多数的入侵事件。

Detect(检测) :PDRR模型的第二个环节就是检测(D)。上面提到防护系统除掉入侵事件发生的条件,可以阻止大多数的入侵事件的发生,但是它不能阻止所有的入侵。特别是那些利用新的系统缺陷、新的攻击手段的入侵。因此安全策略的第二个安全屏障就是检测,即如果入侵发生就检测出来,这个工具是入侵检测系统(IDS)。

React(响应):PDRR模型中的第三个环节就是响应(R)。响应就是已知一个攻击(入侵)事件发生之后,进行处理。在一个大规模的网络中,响应这个工作都是有一个特殊部门负责,那就是计算机响应小组。世界上第一个计算机响应小组CERT,位于美国于1989年建立,是世界上最著名的计算机响应小组。从CERT建立之后,世界各国以及各机构也纷纷建立自己的计算机响应小组。我国第一个计算机紧急响应小组CCERT,于1999年建立,主要服务于中国教育和科研网。

Restore(恢复) ; 恢复是PDRR模型中的最后一个环节。恢复是事件发生后,把系统恢复到原来的状态,或者比原来更安全的状态。恢复也可以分为两个方面:系统恢复和信息恢复。系统恢复指的是修补该事件所利用的系统缺陷,不让黑客再次利用这样的缺陷入侵。一般系统恢复包括系统升级、软件升级和打补丁等。系统恢复的另一个重要工作是除去后门。一般来说,黑客在第一次入侵的时候都是利用系统的缺陷。在第一次入侵成功之后,黑客就在系统打开一些后门,如安装一个特洛伊木马。

 

Chapter 2、软件安全与恶意代码

一、软件安全简介 

1、目的:尽可能消除软件漏洞,确保软件在恶意攻击下仍然能正常运行

2、三大威胁:软件缺陷与漏洞、恶意软件、软件非法破解

恶意软件:恶意软件是指那些设计目的是为了实施特定恶意功能的一类软件

  • 危害:1、修改或者破坏已有的软件功能 2、目标系统中的重要数据被窃取3、目标系统中的用户行为被监视4、目标被控制

软件漏洞:指在硬件、软件、协议的具体实现或者系统的安全策略存在缺陷,从而可以使得攻击者能够在未授权的情况下访问或者破坏系统。

  • 软件漏洞危害级别:危急、高危、中危、低危
  • 软件漏洞的危害:
    1. 系统被恶意控制、信息泄露、提权
    2. 软件正常功能被破坏

 软件缺陷:指计算机软件或者程序中存在的某种破坏正常运行能力的问题、错误或者隐藏的功能缺陷。

软件非法破解:即通过对软件自身程序进行逆向分析,剖析软件的注册机制,对软件的各类限制实施破解,从而使得非法使用者可以正常使用软件,软件破解是对软件版权和安全的一个重大挑战。

二、典型软件漏洞

1、缓冲区溢出

缓冲区溢出是指当计算机向缓冲区填充数据时超出了缓冲区本身的容量,溢出的数据覆盖在合法数据上。

 

       危害有以下两点:

       1、程序崩溃,导致拒绝服务

       2、跳转并且执行一段恶意代码

       原因:造成缓冲区溢出的主要原因是程序中没有仔细检查用户输入。

缓冲区攻击:最常见的手段是通过制造缓冲区溢出使程序运行一个用户shell,再通过shell执行其它命令。如果该程序属于root且有suid权限的话,攻击者就获得了一个有root权限的shell,可以对系统进行任意操作了。缓冲区攻击的最终目的是希望系统能执行溢出区间这块可读写内存中已经被蓄意设定好的恶意代码。

示例一:修改返回地址

#include <stdio.h>

//foo.c
void foo(void)
{
    int a, *p;
    p = (int *)((char *)&a + 12); 
    //让p指向main函数调用foo时入栈的返回地址,等效于p = (int*)(&a + 3);
    *p += 12;                     
    //修改该地址的值,使其指向一条指令的起始地址
}
int main(void)
{
    foo();
    printf("First printf call\n");
    printf("Second printf call\n");
    return 0;
}

2、整数溢出

两个整数进行运算时,若其结果大于最大值(上溢)或者小于最小值(下溢)
就是溢出。
 

危害 :

1、整数回绕之后,会导致索引越界,取到不确定的数据。(有符号数溢出,无符号数回绕)

2、或者判断失效,形成死循环。

3、回绕之后,导致分配超大内存。

示例:

#include <stdio.h> int main(void) {
short i = 32767;
unsigned short j = 65535;
unsigned short k = 0; 
// 上溢例子
printf("%hd %hd %hd\n", i, i+1, i+2); 
// 上溢例子
printf("%hu %hu %hu\n", j, j+1, j+2);
 // 下溢例子
printf("%hu %hu %hu\n", k, k-1, k-2); return 0;
}

3、竞态条件

当两个线程竞争同一资源时,如果对资源的访问顺序敏感,就称存在 竞态条件
计算的正确性取决于多个线程的交替执行时序时,就会发生竞态条件。 
  • 与进程的异步性有关
  • 竞争资源的代码还是临界区

示例:

1、先检测后执行,行依赖于检测的结果,而检测结果依赖于多个线程的执行时序,而多个线程的执行时序通常情况下是不固定不可判断的,从而导致执行结果出现各种问题。

 f9779af452314ddca0c67451a4d2e178.png

对于main线程,如果文件a不存在,则创建文件a,但是在判断文件a不存在之后,Task线程创建了文件a,这时候先前的判断结果已经失效,(main线程的执行依赖了一个错误的判断结果)此时文件a已经存在了,但是main线程还是会继续创建文件a,导致Task线程创建的文件a被覆盖、文件中的内容丢失等等问题

解决办法:多线程环境中对文件操作要加锁。

2、脏牛漏洞 

Linux内核的内存子系统在处理copy-on-write(COW)时出现竞争条件,导致私有只读存储器映射被破坏,可利用此漏 洞非法获得读写权限,进而提升权限。

 三、恶意软件分类和原理

1、计算机病毒

是编制者在计算机程序中插入的破坏计算机功能或者数据的代码,能影响计算机使用,能自我复制的一组计算机指令或者程序

计算机病毒的特征

  • 传染性:病毒具有把自身复制到其他程序的能力
  • 非授权性:病毒程序的执行对用户是未知的,即病毒的执行具有某种主动性
  • 隐蔽性:用户不容易察觉病毒程序的存在与执行
  • 潜伏性:病毒存在于系统中,并等待时机发作
  • 破坏性:干扰系统的执行、管理、数据
  • 不可预见性
  • 可触发性:根据条件触发破坏行动

 常见计算机病毒

 

1.1、引导型病毒:如小球病毒、大麻病毒

d8e877a238f94ad0a82199af411b0603.png

特点:

1、引导部分占据磁盘引导区。
2、只有在计算机启动过程中,磁盘被引导时, “引导型”病毒才被
激活。
3、 具有磁盘引导扇区内容“复原”功能。
4、修改内存容量,病毒驻留内存。
5、修改磁盘访问中断,在进行磁盘写操作的时候进行传播。

1.2 文件型病毒

特点:

1、系统执行病毒所寄生的文件时,其病毒才被激活

2、有可能直接攻击目标对象,主要是EXE、COM等可执行文件

3、修改系统内存分配,病毒驻留内存

4、修改系统中断,等待时机进行病毒的发作或再次传播

1.3 宏病毒

 

宏病毒是使用宏语言编写的程序,可以在一些数据处理系统中运行(主要是微软的办公软件系统,字处理、电子数据表和其他Office程序中),存在于字处理文档、数据表格、数据库、演示文档等数据文件中,利用宏语言的功能将自己复制并且繁殖到其他数据文档里
  • 宏病毒不感染.exe和.com等可执行文件,而是将病毒代码以“宏”的形式潜伏在office文件中,主要感染word和excel等文件,当采用office软件打开这些染毒文件时,这些代码就会被执行并产生破坏作用。
  • 宏病毒的表现:自身的传播无破坏性、干扰打印和显示、删除文件;
  • 宏病毒的特点:容易制造、交叉硬件平台、传播速度极快、具有很好的隐蔽性、破坏性强

1.4 脚本病毒 

比较常见的是VBS病毒:用VB script编写而成,该脚本语言功能强大,利用Windows系统的开放性特点,通过调用一些现成的Windows对象、组件,可以直接对文件系统、注册表进行控制

  • 原理:直接通过自我复制来感染文件,病毒中的绝大部分海马都可以直接附加在其他同类程序的中间。
  • 特点:编写简单,破坏力大,感染性强,传播范围大,病毒源码容易被获取,变种多,欺骗性强,实现病毒生产机非常容易。
  • 传播方式:Email,局域网共享,感染htm、asp、jsp、php等网页文件
  • 如何防范:1、禁用文件系统对象FileSystemObject。2、删除VBS、VBE、JS、JSE文件后缀名与应用程序的映射。3、自定义浏览器安全级别。4、禁止OutlookExpress的自动收发邮件功能

1.5 PE病毒

如典型的熊猫烧香

PE文件病毒的原理:PE文件病毒感染病毒时,将自身代码复制到目标文件中

PE文件病毒在目标文件前运行,那么,它是怎么做到的呢?

答:PE病毒感染其他文件的常见方法是:

1、首先判定文件是否为PE文件

2、在文件中添加一个新节,然后把病毒代码和执行后返回宿主程序的代码写入到新添加的节中;同时修改PE文件头的入口地址,使它指向新添加的病毒代码入口;
这样做后,当程序运行时,首先运行病毒代码,运行完后再转去运行宿主代码。cb207215ef9e4f36abc20f2481716658.png

2、木马

与病毒区别

木马和病毒最大的区别就是病毒以感染为目的,而木马则更注重目的性

从技术层面来讲,病毒主要以底层语言编写为主,而木马则主要以高级语言编写为主

从传播速度来讲,木马的传播性最慢,而病毒的传播性最为强大

从影响面来讲,木马好比是一颗定点打击的导弹,而病毒则就是生化武器这就是两者的区别。

  • 组成:服务端,控制端:如果你的电脑上安装了服务端, 那么黑客就可以使用控制器进入你的电脑;其中服务端用来响应控制端发出的指令,以及执行实际的任务(如文件浏览、上传、下载、执行命令、屏幕监控、摄像头/录音开启及监控。控制端方便用来对被控制主机进行操控、发送指令,并显示指令执行的返回结果。 通常是图形化控制界面
  • 植入方式:1、伪装欺骗植入: 更改后缀名、图标伪装成合法程序。2、捆绑植入。3、社会工程、用户习惯。
  • 木马连接方式:

正向连接:控制端主动连接服务端 

0052bda1346948399cdfc60b0ea46927.png

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

缺点:可能被防火墙阻挡;被攻击者必须具备外部IP地址(?);定位被攻击者相对困难

 

反向连接1:服务端连接控制端c3158cbb46244c4cb9a1e794435eac5c.png

优点:通过防火墙相对容易;攻击目标随时上线随时控制 ;可以控制局域网内的目标

缺点:样本会暴露控制服务器信息;攻击者通常应当具备外部IP的服务器

反向连接2:控制端和服务端都和第三方通信a0ccf41ef1104a26bc80b34ea7be22d3.png

 3、后门

3.1 vs特洛伊木马

后门是一个允许攻击者绕过系统中常规安全控制机制的程序,他按照攻击者自己的意图提供通道。其重点在于为攻击者(如木马病毒)提供进入目标计算机的通道。

如果一个程序仅仅提供远程访问,那么它只是一个后门。

3.2 植入方式:自己植入(物理接触或入侵之后) ; 通过病毒、蠕虫和恶意移动代码 ;欺骗受害者自己安装

 4、Rootkit

Rootkit实现隐藏,只是采取一定的措施,使系统“ 看不到”相应的对象。
 一般情况下系统API查询相应的对象,并返回信息 ,而Rootkit拦截系统API的执行过程或返回结果 ,并将返回结果中指定的对象清除,让返回的数据始终 “遗漏”Rootkit自身进程的信息,一般的进程工具自然就“看”不到Rootkit了

5、勒索病毒

跟前面的不同,勒索病毒不是为了炫技,而是为了索财。当电脑受到勒索病毒入侵之后,电脑当中的文作会被加密,导致无法打开。   必须通过支付一定的比特币才能解密。

四、程序加壳脱壳技术

1、加壳

什么是软件加壳:

加壳,是一种通过一系列数学运算,将可执行程序文件或动态链接库
文件的编码进行改变(目前还有一些加壳软件可以压缩、加密驱动程序)
,以达到缩小文件体积或加密程序编码的目的。加壳一般是指保护程序资
源的方法。
为什么要对软件加壳:
主要目的:1、缩减程序的大小。2、阻碍对程序的探测和分析
加壳过程: 389967a0b4694ef4a15db6f12b7e9870.png

 

将一个可执行文件转换创建一个新的可执行文件,被转
换的可执行文件在这个新的可执行文件中作为数据存储,
另外新的可执行文件还包括一个供操作系统调用的脱壳存
根(stub)。

2、压缩壳原理

压缩壳的原理就是压缩PE文件中节的数据。然后产生新的PE,这个
新的PE就成为了一个带壳的PE。而我们运行带壳PE的时候,这时候
壳中的解压缩代码开始执行,从而把我们以前压缩数据的节重新映射
到内存。

 

7c8ac0d04ebf40dfb2ab6df168af5ee4.png

3、常用脱壳方法

自动脱壳方法:

  • 自动静态脱壳程序:
    自动静态脱壳程序解压缩或者解密一个可执行文件。这是一种最
    快并且也是最好的脱壳方法。因为这种方法可以在没有运行可执行文
    件的条件下,将可执行文件恢复为原始状态。 自动静态脱壳程序仅仅
    针对某个壳,并且对那些用来阻碍分析的壳无效
  • 自动动态脱壳程序:
    自动的动态脱壳程序运行可执行文件,并让脱壳存根脱出原始的可
    执行文件。一旦原始的可执行文件被脱壳,它将被写入硬盘,然后脱
    壳程序重构原始的导入表。

手动脱壳方法:关键点在于找到程序OEP(Original Entry Point)

  •         手动查找OEP:单步跟踪法

五、软件安全模型

2968671fce9145ae9a467c9f86e2dc24.png

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值