首页 百科知识 网络隐身系统

网络隐身系统

时间:2023-10-05 百科知识 版权反馈
【摘要】:网络隐身系统是在保证计算机正常通信的同时安全地隐身于网络的防护软件, 它与以往的安全防护软件相比, 不再是被动和滞后地应对威胁。系统能主动防范未知安全隐患, 真正隐身于网络, 为我们遨游网络保驾护航。因此网络隐身系统及其策略有着很大的发展前景。而在网络隐身系统中, 需要建立动态地址池为地址的跳变提供地址信息, 并且实时跳变真实主机的IP地址。

西安电子科技大学 张子兼 朱利军 高小青

指导老师: 张卫东

摘 要

网络隐身系统是在保证计算机正常通信的同时安全地隐身于网络的防护软件, 它与以往的安全防护软件相比, 不再是被动和滞后地应对威胁。 提出的主动安全防护模型, 能够真正地做到化被动防御为主动防御, 通过主动隐身和干扰混淆降低被攻击的概率。

该系统充分挖掘网络协议各个字段的内在关系, 由此提出了四层网络隐形模型, 主要包括: 接入行为控制层采用LKM方式使用Netfilter框架实现实时数据包监控和接入行为控制, 为实现系统有效隐身提供决策和执行依据; 动态多址层能有效改变协议分组的物理地址、 逻辑地址、 端口地址, 与其他层协同模拟网络流量; 流量混淆层能根据不同的隐身策略采用网络静默或虚假回应模式, 产生多种网络协议流量, 增加网络复杂度, 迷惑或欺骗攻击者而不影响正常的网络通信; 最后, 协议栈指纹混淆层修改分组字段信息, 干扰攻击者的信息获取。 系统能主动防范未知安全隐患, 真正隐身于网络, 为我们遨游网络保驾护航。

关键词: 四层网络隐形模型; 接入行为控制; 动态多址流量混淆; 协议栈指纹混淆

1 前言

自人类步入信息化时代以来, 计算机技术与计算机网络以难以想象的速度发展着。 在提供网络便利的同时, 信息的安全传输就显得尤为重要, 但与此同时, 层出不穷的网络安全问题却时刻困扰着我们。针对目前已有的防护措施, 防火墙、 杀毒软件、 流量监控、 入侵检测等都存在着一些共同的或独特的缺陷, 防火墙并不能灵活地进行主动防御, 并且依赖于管理员大量添加的过滤规则; 杀毒软件并不能查杀变幻多端的新型病毒, 且只能在病毒感染之后才能进行补救工作; 流量监控或入侵检测系统则会收集大量的没有使用价值的数据, 增加了工作人员分析数据的负担, 同时也只能在异常行为发生以后才进行报警或阻断。

当网络隐身系统开启之后, 在正常享受互联网为我们带来的便利的同时, 还能够安全隐身于网络,让入侵者“看不见”, 无法确定攻击目标, 而合法的用户又能与我们正常地进行通信。 而对于未知的安全漏洞, 由于攻击者无法探测、 无法利用, 也就难以被发现利用。 而对于恶意病毒因为隐身而找不到传播的宿主, 也失去了效用。 极大地增加了攻击者渗透或病毒侵染的难度。 这样既能做到先知先觉, 提前预判恶意网络行为,又能防患于未然, 防范未知安全漏洞, 做到百毒不侵, 提前杜绝恶意访问。因此网络隐身系统及其策略有着很大的发展前景。

图1 网络隐身模型结构

2 系统原理与实现

系统模拟TCP/IP四层模型结构, 在不影响原有通信的基础上构造出了我们自己的网络隐身模型结构, 其结构如图1所示。

该模型结构负责两方面的数据处理, 其一需要负责处理真实主机的数据流, 其二需要负责处理虚假主机的数据流。 因此为了不影响正常通信, 网络隐身系统构造出了四层隐身协议模型, 该模型包括四层, 其中接入行为控制主要是在内核层通过对数据包的端口特征做出行为倾向预判,并动态添加预判规则, 实时监控阻断攻击行为; 动态多址转换主要完成单机网络化功能, 扩展地址域,增加网络复杂度; 流量混淆主要为了加深隐身效果, 伪造真实主机的流量, 把真实主机的通信隐匿于复杂的网络通信中; 混淆协议栈指纹层主要截获出入真实主机的数据包, 修改操作系统协议栈指纹特征和应用层软件信息。

2.1 接入行为控制模块

接入行为控制主要是在系统内核完成, 它将正常的网络行为与异常的网络行为分别建立起一个状态链, 对网络行为是否合法进行提前判断。

网络行为判断需要区分服务器和个人计算机两个模块, 在个人计算机上, 因为其不为外界提供服务, 故不会接受从外界发来的主动SYN请求, 这样看来凡是接收到SYN的源IP地址都是可疑的, 除此之外, 如果本机和某个远程主机未曾建立连接, 对方却发来RST包或ACK+PUSH+URG包等情况也很有可能是扫描行为的先兆; 而服务器由于需要向外提供服务, 因此端口与地址不但不能更改并且还必须告知客户, 故需要对受到的数据包的状态链进行判断。 以下从个人系统和服务器角度具体阐述接入行为控制准则。

在个人系统中出现以下可疑行为, 即可初次判断该主机是可疑:

(1) 出现端口误撞症状(请求的数据包请求了主机未开放的端口), 则扔掉数据包, 并将该源地址信息添加可疑地址列表。

(2) 个人系统不会接收SYN数据包, 凡是接收到SYN的地址被列为可疑对象。

(3) 添加延时记录几个数据包的源IP地址和端口信息, 若出现同一IP地址出现不同端口的数据包者可以扔掉该数据包, 在协议栈响应后回复的数据包直接不向外发送。

(4) 对于ACK数据包采取基于连接机制, 记录前后建立连接的IP地址信息, 若接收到ACK数据包, 但在此之前并未建连接则该主机属于异常。

(5) 出现TCP标识位异常即标识为NULL, 或FIN与除了ACK的其他标识的任何搭配的数据包,则该主机可能在扫描, 可将其加入黑名单。

(6) 对于UDP的扫描数据包不回复ICMP的port状态数据包(由于UDP是看ICMP回复, 来判断端口状态的, 若端口关闭, 则回复port unreachable; 若开放, 则没反应, 也可混淆攻击者)。

在服务器中出现以下行为则视为可疑对象:

(1) 出现端口误撞, 即请求了服务器没有提供服务的端口, 视为可疑。

(2) 出现高频率的请求行为, 比如多个SYN请求, 视为可疑。

(3) 短时间一个源地址请求多个端口, 视为可疑。

(4) 接收到数据包TCP标识位异常出现NULL, 或FIN与除了ACK的搭配的标识信息视为可疑。

(5) 接收到未建立连接的源地址的ACK数据包视源地址为可疑对象。

在众多规则中我们采用少数确定原则来判断, 即只要在建立的规则中符合一条即可判断出该主机可能正在被扫描或探测, 即可把该IP地址加入黑名单, 禁止该地址的任何一切访问与请求。 还可以根据满足规则的数目来动态为其设置权限。 符合规则越少的, 权限越高; 若符合四条以上, 则直接拉入黑名单,根据每个地址的权限来判断该IP地址是否可疑,从而判断是否完全截断该IP地址对真实系统的通信。

2.2 动态多址模块

计算机之间的通信是以地址来区分彼此的, 这里的地址不是单一的IP地址。 其包括MAC地址、 IP地址和端口号。 而在网络隐身系统中, 需要建立动态地址池为地址的跳变提供地址信息, 并且实时跳变真实主机的IP地址。

动态多址在网络隐身系统中占有很重要的地位, 动态变化的地址信息、 虚假主机的地址信息和网络拓扑重新映射的地址都来自于动态多址的处理, 其处理流程如图2所示。

(1) 物理地址的动态变化。

发送目的MAC地址为广播的ARP询问包, 若询问的主机存活, 则回复操作码为2且携带IP地址对应的MAC地址。 利用Libpcap嗅探抓取IP地址为真实主机IP地址的ARP操作码为2数据包, 从而判断出该回复的主机是活动的, 从而将IP状态标识置为“已被占用”。 流程图如图3所示。

图2 动态多址处理流程

图3 ARP探测流程

该模块启动后首先初始化一个网段的IP地址, 检查该网段中所有IP地址的使用状态, 标识出哪些IP地址正在被使用, 哪些IP地址是空闲的。 这样做的目的是不影响那些正在使用的该地址的主机通信。

接下来创建一个线程, 负责监听ARP请求。 接受所有的ARP请求, 通过IP地址管理平台检查该ARP请求的IP地址是不是伪装主机的IP地址, 如果是, 就发送一个ARP应答(应答包包含IP地址和对应虚假出来的硬件地址), 否则不回复ARP。 一般硬件地址前三个字节是生产商, 后三个字节是生产商随时分配的, 为了到达非常逼真的效果, 我们前三字节是选择经常出现的生产商的标识, 后三个字节是随机分配的。

最后还需要维护IP地址的状态, 即创建一个线程监听回复ARP的IP地址, 若目的IP地址不是本机地址并且源IP地址不是我们虚假的IP地址, 那么可以判断出该IP地址已被占用。 另外定时更新IP状态, 即一段时间没有收到该IP地址的ARP回复, 就把该IP地址的状态置为 “空闲”。

(2) IP地址的动态变化。

IP地址的动态变化主要包括两个方面: 真实主机IP地址的动态变化和虚拟主机IP地址的动态变化。

真实主机IP地址的动态变化是指在建立地址池后随机选出一定数目的可用IP地址作为真实主机通信时可能用到的IP地址, 由于地址池在初始化时是顺序填入每个IP地址的, 因此在选取时只需产生一个0~255的随机数, 作为IP地址的最后一位, 提取出IP地址, 再提取该IP地址的状态信息, 并判断其是否可用。 若可用, 则将其加入变化IP列表, 若不可用, 则重新产生随机数并且进行选择, 直到选出用户要求个数的IP地址为止。

虚假主机的IP地址动态变化是指在虚假主机之间和外部网络与真实主机之间的通信需要动态选出可用的IP地址作为通信的地址。 在真实主机网段内IP选择方法与真实主机的IP地址选择相似。

虚假网络需要实时处理网络数据包并对扫描需要实时根据真实系统予以响应。 其具体操作流程如图4所示。

2.3 流量混淆模块

攻击者判断目标主机是否活动的方法无外乎两种: 其一是主动探测, 即Ping查看是否连通和扫描工具扫描能够扫到该主机; 其二是被动探测, 即利用嗅探软件抓取数据包, 从数据包的地址信息中可以查看出哪些IP地址是活动的, 哪些IP地址是没有网络流量的。

流量混淆即在网络中模拟真实计算机的通信, 利用垃圾流量填充网络通信, 增加网络复杂度, 该系统主要模拟填充TCP、 UDP及应用层的HTTP的通信数据。 在通信对象网络上, 若入侵者通过嗅探将发现网络中有许多通信连接。 而真实通信也处于其中, 正好隐身于其中。

图4 虚假网络处理流程

(1) 分支双协议栈。

在数据到达本机时系统底层驱动先判断其地址是否是该主机的MAC地址, 若是, 则将数据交由内核处理, 内核处理结束再交由协议栈一层一层拆解数据包的报头, 最后交由应用层程序处理, 如图5是分支双协议栈数据流处理过程。

图5 分支双协议栈数据流处理流程

为了能够实现虚假主机的网络行为, 因此也需要协议栈来处理虚假主机的数据包。 本系统在数据进入协议栈之前就获取信息并作出响应, 即在数据到达网卡驱动时就将其截获并交予模拟协议栈拆包获取数据包信息并对应回复其信息。

该项技术的实现主要依赖于来Libpcap和Libnet。 在Linux下Libpcap和Libnet都是开源的, 其中Libpcap主要用来嗅探, 即在数据包到达网卡驱动层时复制一份数据交予用户层处理, 而不影响正常的通信过程。

(2) 伪造通信地址。

伪造的通信地址按伪造对象来分包括虚假IP地址、 MAC地址和端口号, 虚假的IP地址均为本网段无人使用的IP地址。

首先从地址池中获取相关地址信息, 其次从中随机筛选出一定数目的可用的地址族作为虚假主机的地址, 接着通过收集真实主机的网络行为的端口信息和协议类型信息, 从而模拟真实主机的网络行为,在地址选好后需要利用Libnet来构造各种各样的网络数据包, 并发送到网络上。

网络通信的双方主要包括虚假主机与虚假主机之间的通信, 虚假主机与外部网络的通信, 虚假主机与真实主机之间的通信。

针对地址的动态变化策略:

1) 通信源MAC地址: 构建虚假IP时伪造的对应前三个字为真实生产商的MAC地址。

2) 通信目的MAC地址: 虚假主机IP时伪造的对应虚假目的IP地址的MAC地址。

3) 通信源IP地址: 虚假主机的地址, 即真实主机网段未被使用的IP地址。

4) 通信目的IP地址: 本机网段未被使用的IP地址, 外部网络常见站点的IP地址, 真实主机的IP地址。

5) 源端口地址: 源端口地址可以随机生成(端口>1024的可被使用)。

6) 目的端口地址: 根据虚假数据包类型的协议信息来确定端口号。

(3) IP微路由技术。

该技术实现ARP地址解析功能, 但在ARP请求伪装IP地址时, 微路由在伪装地址池中找到与伪装IP地址对应的主机硬件地址, 给予回应, 当攻击主机扫描不存在虚假主机P1时, 微路由在伪装池中查找, 把P1的硬件地址(虚假P2的硬件地址)回应攻击主机, 攻击主机就可以利用P2的硬件地址与P2通信了, 而P1起到了路由的作用, 过程如图6所示。

图6 微路由实现过程

(4) 伪造主动数据流量。

伪造数据流量的重点是构造各种类型的数据包, 并且需要达到与真实主机的网络行为大体相似。 因此获取真实主机的数据包类型尤为重要, 我们提前嗅探收集相关主机的网络数据, 获取特征数据样例。 当伪造网络数据时利用这些样例数据作为种子, 利用Libnet构造数据包并发送出去。 数据包类型信息包含带有TCP协议负载的连接控制的数据包, 带载荷的UDP数据包、 带有应用层载荷的TCP数据包, 等等。

(5) 伪造被动数据流量。

伪造被动数据流量是指为了增加虚拟主机真实性, 面向针对虚拟主机的扫描作出回应的行为。 为达到此目的, 为保证真实主机通信的原网络协议栈以及为支持虚拟主机而架设的虚拟协议栈, 用真实协议栈响应真实数据流, 用虚拟协议栈响应虚拟主机接收到的探测数据包。 由于扫描服从少数判断原则, 即只需要查到一部分数据包回复, 即可判断该主机可达, 因此可以建立多个线程来响应某些探测包。 探测回复的数据包主要是ARP协议回复、 ICMP回复、 SYN扫描的回复以及ACK扫描的回复。

ARP回复即创建一个线程实时监听是否有主机询问虚假主机IP对应的MAC地址, 若探测到ARP询问则回复该IP对应的MAC地址。 此功能主要利用Libpcap和Libnet实现。

SYN回复是指当监听到有SYN请求时回复对方ACK或者RST数据包, 若是伪造开放端口, 则回复ACK, 这可看作是TCP协议建立连接三次握手的第二步, 告诉扫描者虚拟主机正在等待连接的建立;若是伪造关闭端口, 则回复一个RST数据包。 若是虚假主机之间的通信则可利用这一机制继续连接操作和后续通信。 而判断是扫描还是虚假主机之间连接的方法是查找SYN的源IP地址, 若IP地址不是正在用来虚假通信的, 则可以判断出该源IP地址的主机正在进行扫描, 可以通知真实主机屏蔽该IP地址的请求。 而虚假的主机按照正常协议流程回复ACK数据包。

2.4 协议栈指纹混淆模块

动态协议栈包括两个关键点, 其一是对于主机接收到的数据进行分支利用双协议栈模型处理; 其二动态修改协议栈指纹特征混淆恶意者的判断。 动态协议栈模型既能高效地处理属于真实主机的数据包与虚假主机的数据包, 对其采取分支处理, 从而不影响真实主机的正常通信。 由于黑客可能利用协议栈特征来判断目标的各种信息, 修改协议栈特征并使其动态变化尤为重要。

(1) 动态协议栈指纹。

动态协议栈指纹是指动态变更因不同操作系统或软件版本带来的差别特征, 从而影响入侵者的判断。 协议栈指纹探测主要分为操作系统协议栈特征指纹探测和应用程序特征指纹探测。

1) 操作系统类型混淆。

基于网络协议栈的探测又称基于操作系统指纹的探测。 根据探测方式的不同分为两大类, 一类是主动探测, 即通过发送特定或特殊构造的数据报给攻击目标, 进而分析攻击目标返回的数据报网络特征,得到攻击目标操作系统的信息, 比较典型的主动探测工具有Nmap、 XProbev、 Ring等。 另一类是被动探测, 即被动嗅探, 通过“嗅探”并分析攻击目标进行正常网络会话数据报的网络特征值, 进而得出攻击目标的操作系统信息。

2) 操作系统混淆策略。

为得知扫描器如何根据收发特定数据包来判断数据包, 使用Nmap扫描器进行了针对Windows和Linux系统扫描实验, 仔细观察对比针对两者的扫描返回结果, 加上对Nmap扫描器源码与协议栈特征库的解读确定了一些对操作系统类型的探测方法, 由此得出针对这些方法的应对措施:

a. 针对SYN扫描探测, 一般Windows系统对非明确规定开启或关闭的端口采取不予回应的策略,而Linux系统则是“有求必应”, 把所有端口默认为关闭状态, 即对SYN包均回复RST, 为混淆扫描器判断以及尽量少地泄露信息, 我们可以在Linux内核层对非明确指定开启或者关闭的端口上所回复的RST包进行过滤。

b. Windows系统常常对3389远程桌面等一些高危险端口默认设置为关闭状态, 即回复RST包, 故在Linux系统上也将计就计, 对这些端口的SYN探测回复的RST不予拦截, 但对其中的IP包头ID字段与Flag字段进行修改伪造, 再重新进行校验和计算, 混淆操作系统信息。

c. 扫描中还发现一般的Windows系统经常有139、445、912等数个默认开放的端口, 为混淆操作系统判断, 我们把针对这些端口的SYN扫描所回复的RST分组强制进行TCP Flag改编, 使其变成表示着端口开放的SYN ACK包, 同时对IP头的ID字段、 TCP头的sequence number字段、 window字段进行模仿Windows系统协议栈行为的修改, 再重新计算IP头与TCP头校验和, 发送伪造数据包。

d. 针对ICMP数据包的探测, 我们将回复包的IP头的flags字段修改为Windows系统网络协议栈常用的0x02这一数值, ICMP头的回复数据包中, code字段也设置为了Windows系统协议栈用的0x00这一数值。

e. 针对UDP数据包探测, Windows系统的常见做法是对所有的UDP数据包采取静默处理, 不回复ICMP Destination Unreachable信息, 但是Linux系统网络协议栈则常常回复这一信息, 故侦测到UDP数据包发送到非开放的UDP端口, 并触发了协议栈回复ICMP Destination Unreachable信息, 则把此ICMP数据包过滤掉。

f. 针对FIN+PUSH+URG探测, 对一个未建立连接的端口发送TCP Flag位设为FIN+PUSH+URG的数据包, Windows系统的常见做法是不予进行回复, 而Linux系统的网络协议栈则常常回复一个包含了许多系统协议栈信息的RST包, 故当侦测到发向未建立连接的TCP端口的FIN+PUSH+URG包我们可以将其直接过滤。

g. TTL探测: 即数据包的“存活时间”, 表示一个数据包在丢弃之前可以通过的多少个跳跃节点,不同操作系统类型的缺省TTL是有差异的, 如Windows 9X/NT/2000是128, Linux 2.2.6X Intel是64,Netware 4.11 Intel是128, AIX 4.3.X IBM是60, Solaris 8 Intel是64。 可以把所有回复数据包的TTL字段全部设为windows协议栈常用的128这一数字, 对扫描器起到一定的迷惑作用。

本系统基于Linux 2.6内核中的Netfilter框架对数据包进行实时修改实现协议栈数据特征混淆, 让扫描器难以判断操作系统网络协议栈指纹信息, 也让看到扫描结果的攻击者难以根据扫描收集到的信息判断目标主机的操作系统究竟为何。

3) 应用程序特征指纹探测。

工作在应用层的软件, 由于软件工作平台、 软件版本、 代码编写人员的习惯不同而在发送数据分组时会采用不同的策略。 以Web服务器为例, 工作在Linux系统上的Apache服务器与工作在Microsoft-Windows系统上的IIS系列服务器, 在处理不同类型的请求时, 会在数据包头或HTTP载荷部分采用具有自己特征的处理方式, 这种特征通常被称为HTTP fingerprinting(HTTP指纹)[http:∥net-square.com/httprint/httprint_paper.html]。 利用这些特征我们可以轻易判断出服务器系统使用的是何种HTTP服务器, 甚至进一步推断出操作系统, 一些针对Web服务器的HTTP指纹探测方法如下所述:

a. 包头明文声明探测, 对于无任何防范措施的Web服务器来说, HTTP包头的Server字段明文给出了对该HTTP数据分组进行处理的服务器类型, 例如:

IIS7服务器数据分组头部:

HTTP/1.1404 Not Found

Content-Type:text/html

Server:Microsoft-IIS/7.0

Date:Tue,07 Aug 2012 00:02:19 GMT

Content-Length:1163

Apache/2.2.22服务器(运行于Linux系统)数据分组头部:

HTTP/1.1200 OK

Date:Mon,06 Aug 2012 08:18:44 GMT

Server:Apache/2.2.22(Unix)mod_ssl/2.2.22 OpenSSL/1.0.1b DAV/2

Content-Length:563

Keep-Alive:timeout=5,max=100

Connection:Keep-Alive

Content-Type:text/html;charset=ISO-8859-1

在“Server:”后面紧跟着的字符串将处理本数据分组的服务器暴露出来。

b. 对特定协议的处理行为。

在对正常请求HEAD/HTTP/1.1的回复数据分组中, Apache服务器与IIS服务器又在数据分组头部体现出了不同的特征, 如(1)中例子所示, IIS7服务器的数据分组头部Server字段首先出现, 然后才出现Date字段, 而Apache服务器正好相反, 这也是一个判别服务器软件类型的特征。

对类似于DELETE选项(无权限选项)的处理, Apache的回复是 “HTTP/1.1405 Method Not Al-lowed”, 而IIS服务器的回复则通常为“HTTP/1.1403 Forbidden”, 这一点上存在着差别。

对不正确协议类型请求的处理, 如本应处理HTTP协议的Web服务器, 我们向其发送其他类型协议的请求, 如编造的“JUNK”协议, 则Apache服务器的通常回复为 “HTTP/1.1200 OK”, 但IIS却回复“HTTP/1.1400 Bad Request”, 也可作为判别的依据。

4) 应用程序特征指纹混淆。

针对上边所列的几种常见的HTTP数据分组指纹探测方法, 我们可以在Linux内核层对HTTP协议的数据分组埋下钩子, 在数据分组即将离开协议栈的时候更改它的字段特征。

3 系统测试

(1) 接入行为控制测试。

使用Nmap扫描192.168.1.167, 查看前后两次的扫描结果(如图7所示)。

图7 系统开启前后Nmap扫描结果

结论: 经扫描前后对比可以看出, 加载接入控制后扫描的信息被成功过滤拦截。

(2) 动态多址模块测试。

运行该系统开启动态地址模块, 查看跳变效果(如图8所示)。

结论:从图中可以看出本机真实IP地址发生动态跳变。

(3) 单机实现网络伪装。

启动单机网络隐身功能, 在另外一台计算机上用Nmap扫描整个网段, 查看扫描信息(如图9所示)。

图8 跳变效果

图9 单击网络化扫面结果对比

结论: 查看扫描结果可以看出, 该系统成功的模拟出了多台计算机, 单机网络化模拟成功。

(4) 虚拟伪装路由。

开启虚拟伪装路由模块, 在另外一台计算机上利用Nmap扫描路由地址信息, 查看扫描结果(如图10所示)。

结论: 经查看Nmap扫描结果可以断定, 单台计算机成功虚假出了两个路由, 并成功虚假了两个子网, 其网络地址是192.168.12.0和192.168.13.0。

(5) 流量混淆模块测试。

启动流量混淆模块,其他计算机运行wireshark监听数据包并查看源地址和目的地址(如图11所示)。

图10 开启虚假路由功能效果

图11 嗅探虚假主机所在网络的数据流量

结论: 通过wireshark监听的数据包进行分析可以看出, 有多个IP地址正在通信, 由于虚假主机模块伪造了各种类型的数据包, 故相似度很接近真实主机的网络数据流, 由于模拟了真实网络环境的网络行为, 大大增加了入侵者嗅探查取目标信息的难度, 由此图看出测试成功。

(6) 操作系统类型混淆。

利用Nmap扫描探测操作系统(开启-O选项), 查看操作系同类型扫描结果(如图12所示)。

图12 操作系统类型混淆扫描结果

结论: 从扫描信息看出该系统伪装成虚假主机且隐藏了真实主机信息, 而且判断不出此系统类型信息, 此测试成功。

4 结束语

当前防护软件种类繁多, 有些软件防护过于被动, 有些软件不易操作, 有些软件只是专注于事后补救。 因此提前防御、 安全隐身的思想应运而生, 而网络隐身系统能够很好地阻断入侵的第一步, 防止入侵者获取相关信息而找到入侵渗透切入点, 并且能够防范未知安全问题, 抵御变化多端的网络病毒, 提前预判恶意网络行为, 从根源消除安全隐患, 伪装虚假迷惑攻击者。 真正做到隐于无形, 存于无形; 防患于未然, 隐身于网络。

综上所述, 隐身的概念源于人类理论的创新, 也将更好地服务于人, 如果网络隐身系统与当前的防护软件相互协作, 那么系统的安全性将会得到更大幅度的提升, 这是本系统未来努力的方向。

专家点评

作品在保证计算正常通信的同时, 主动伪装自己并对攻击者进行混淆干扰, 从而达到安全置身于网络的目的。 与以往的安全防护软件相比, 不再是被动地滞后地应对威胁, 而是做到提前预判安全隐患,防患未然, 化被动防预为主动伪装。 作品选题有创意, 特色鲜明。

作品采取提前预判机制防患未知安全威胁, 在Linux底层进行栈指纹混淆以干扰扫描软件认知; 利用IP地址跳变策略, 使攻击者的目标难以确定; 结合Libpcap和Libnet伪造网络流量以混淆网络拓扑,增加攻击者确定目标的难度。 并且在此基础上增加虚拟化网络复杂度, 设置有漏洞的虚假目标, 扰乱攻击者的方向, 以多种处理方式实现伪装于网络中。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈