网络安全中,入侵和渗透的区别

本人带着自己的疑惑,查阅了相关百科、博客、论坛等资料,对于漏洞、入侵、渗透测试、破解等术语间的关系,进行了整合与归纳。
有的概念之间没有明确的区分界限,本文按一般理解进行了区分,笔者水平有限,理解偏差或表达错误之处,还请各位圈内前辈批评指正!
0x01 漏洞:漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷、弱点及不合理之处,从而可以使攻击者能够在未授权的情况下访问或破坏系统。
特点:1)长期性:随着时间的推移,旧的漏洞会不断消失,新的漏洞会不断出现。漏洞问题也会长期存在。
2)具体性:脱离具体的时间和具体的系统环境来讨论漏洞问题是毫无意义的。
3)时效性:对漏洞问题的研究必须要跟踪当前最新的计算机系统及其安全问题的最新发展动态。
4)严重性:漏洞按严重程度分为“紧急”、“重要”、“警告”、“注意”四种。

危害:1)信息系统通过木马、病毒或蠕虫被攻击或控制,成为肉鸡
2)数据丢失或被篡改、窃取
3)隐私泄露,造成财产损失

潜在因素:1)软件编写中的bug
2)系统配置不当
3)口令失窃
4)未加密通讯数据
5)协议设计的缺陷
6)系统本身漏洞导致被攻击

分类:1)系统漏洞
2)应用软件漏洞
3)数据库漏洞
4)网站漏洞
5)协议漏洞
6)安全策略漏洞
7)硬件漏洞

发现:1)漏洞挖掘(发现漏洞的方法):
① fuzz测试(黑盒测试):通过构造可能导致程序出现问题的方式构造输入数据进行自动测试。
② 源码审计(白盒测试):现在有了一系列的工具都能协助发现程序中的安全BUG,最简单的就是你手上最新版本的C语言编译器。
③ IDA反汇编审计(灰盒测试):俗称逆向分析,这和上面的源码审计非常类似,唯一不同的是很多时候你能获得软件,但你无法拿到源码来审计,但IDA是一个非常强大的反汇编平台,能让你基于汇编码(其实也是源码的等价物)进行安全审计。
④ 动态调试:就是记录程序在不同条件下执行的全部和安全问题相关的操作(如文件操作),然后分析这些操作序列是否存在问题。
⑤ 补丁比较:厂商的软件出了问题通常都会在补丁中解决,通过对比补丁前后文件的源码(或反汇编码)就能了解到漏洞的具体细节。

2)漏洞扫描(发现漏洞的工具):
漏洞扫描是指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用的漏洞的一种安全检测(渗透攻击)行为,是渗透测试的主要手段。
漏洞扫描产品的方式可分为:
① 针对网络的扫描器:通过网络来扫描远程计算机中的漏洞。
② 针对主机的扫描器:在目标系统上安装了一个代理(Agent)或者是服务(Services),以便能够访问所有的文件与进程,这也使得基于主机的扫描器能够扫描到更多的漏洞。
③ 针对数据库的扫描器:可以检测出数据库的DBMS漏洞、缺省配置、权限提升漏洞、缓冲区溢出、补丁未升级等自身漏洞。
④ 针对WEB应用的扫描器
⑤ 针对中间件的扫描器

3)渗透测试(利用工具,运用方法,模拟攻击):
渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。
① 测试方法类型:
a. 黑箱测试
黑箱测试又被称为所谓的“Zero-Knowledge Testing”,渗透者完全处于对系统一无所知的状态,通常这类型测试,最初的信息获取来自于DNS、Web、Email及各种公开对外的服务器。
b. 白盒测试
白盒测试与黑箱测试恰恰相反,测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码片断,也能够与单位的其它员工(销售、程序员、管理者……)进行面对面的沟通。这类测试的目的是模拟企业内部雇员的越权操作。


推荐阅读