当前位置:首页 > 数码 > 防止资源走漏-数据库衔接和网络衔接的危险性-Java中未正确封锁文件 (防止资源走漏的措施)

防止资源走漏-数据库衔接和网络衔接的危险性-Java中未正确封锁文件 (防止资源走漏的措施)

admin5个月前 (05-01)数码10

资源走漏是指在程序中未正确封锁文件、数据库衔接或网络衔接等关键资源,造成资源无法被监禁和回收,最终或许形成系统性能降低、内存溢出等重大结果。上方将讨论经常出现的资源走漏状况,并提供一些处置打算,以防止资源走漏的出现。

一、文件资源走漏在Java中操作文件时,假设未正确封锁文件流,就会造成文件句柄不时被占用,形成资源走漏。以下是几种经常出现的文件资源走漏状况及处置打算:

1、经常使用FileInputStream或FileOutputStream时未调用close()方法封锁文件流。

处置打算:经常使用try-with-resources语句块,确保文件流在经常使用终了后智能封锁,示例如下:

try(FileInputStreamfis=newFileInputStream("file.txt")){//经常使用文件流启动读写操作}catch(IOExceptione){//处置意外}

2、经常使用BufferedReader或BufferedWriter时未调用close()方法封锁缓冲流。

处置打算:雷同经常使用try-with-resources语句块,示例如下:

try(BufferedReaderreader=newBufferedReader(newFileReader("file.txt"))){//经常使用缓冲流启动读写操作}catch(IOExceptione){//处置意外}

二、数据库衔接资源走漏在Java中衔接数据库时,假设未正确封锁数据库衔接,将造成数据库衔接池资源耗尽,运行程序无法失掉新的衔接,从而造成系统性能降低。以下是几种经常出现的数据库衔接资源走漏状况及处置打算:

1、在代码中未显式调用Connection的close()方法封锁数据库衔接。

处置打算:经常使用try-with-resources语句块,示例如下:

try(Connectionconn=DriverManager.getConnection(url,username,pass);Statementstmt=conn.createStatement();ResultSetrs=stmt.executeQuery(sql)){//口头数据库操作}catch(SQLExceptione){//处置意外}

2、衔接池经常使用终了后未调用Connection的close()方法出借衔接。

处置打算:经常使用衔接池提供的特定方法出借衔接,例如经常使用CommonsDBCP中的BasicDataSource时,可以调用connection.close()方法将衔接出借给衔接池。

三、网络衔接资源走漏在Java中启动网络通讯时,假设未正确封锁网络衔接,将造成系统的网络资源被占用,最终或许造成系统解体。以下是几种经常出现的网络衔接资源走漏状况及处置打算:

1、未显式调用Socket的close()方法封锁网络衔接。

处置打算:经常使用try-with-resources语句块,示例如下:

try(Socketsocket=newSocket("host",port)){//启动网络通讯操作}catch(IOExceptione){//处置意外}

2、未显式调用ServerSocket的close()方法封锁主机端衔接。

处置打算:雷同经常使用try-with-resources语句块,示例如下:

try(ServerSocketserverSocket=newServerSocket(port)){while(true){Socketsocket=serverSocket.accept();//处置客户端恳求}}catch(IOExceptione){//处置意外}
Java

资源走漏是Java程序中经常出现的疑问,特意是关于文件、数据库衔接和网络衔接等关键资源。为了防止资源走漏,应该养成良好的编码习气,一直确保在经常使用终了后显式地封锁相应的资源。可以应用try-with-resources语句块来智能封锁资源,以提高代码的可读性和牢靠性。此外,经常使用衔接池和网络框架等工具也可以有效预防资源走漏疑问的出现。在开发环节中,增强对资源治理的看法,并启动适当的测试和监测,可以及时发现和处置潜在的资源走漏疑问,确保运行程序的稳固性和性能。


网络安全的关键技术有哪些?

一.虚拟网技术虚拟网技术主要基于近年发展的局域网交换技术(ATM和以太网交换)。 交换技术将传统的基于广播的局域网技术发展为面向连接的技术。 因此,网管系统有能力限制局域网通讯的范围而无需通过开销很大的路由器。 由以上运行机制带来的网络安全的好处是显而易见的:信息只到达应该到达的地点。 因此、防止了大部分基于网络监听的入侵手段。 通过虚拟网设置的访问控制,使在虚拟网外的网络节点不能直接访问虚拟网内节点。 但是,虚拟网技术也带来了新的安全问题:执行虚拟网交换的设备越来越复杂,从而成为被攻击的对象。 基于网络广播原理的入侵监控技术在高速交换网络内需要特殊的设置。 基于MAC的VLAN不能防止MAC欺骗攻击。 以太网从本质上基于广播机制,但应用了交换器和VLAN技术后,实际上转变为点到点通讯,除非设置了监听口,信息交换也不会存在监听和插入(改变)问题。 但是,采用基于MAC的VLAN划分将面临假冒MAC地址的攻击。 因此,VLAN的划分最好基于交换机端口。 但这要求整个网络桌面使用交换端口或每个交换端口所在的网段机器均属于相同的VLAN。 网络层通讯可以跨越路由器,因此攻击可以从远方发起。 IP协议族各厂家实现的不完善,因此,在网络层发现的安全漏洞相对更多,如IP sweep, teardrop, sync-flood, IP spoofing攻击等。 二.防火墙枝术网络防火墙技术是一种用来加强网络之间访问控制,防止外部网络用户以非法手段通过外部网络进入内部网络,访问内部网络资源,保护内部网络操作环境的特殊网络互联设备.它对两个或多个网络之间传输的数据包如链接方式按照一定的安全策略来实施检查,以决定网络之间的通信是否被允许,并监视网络运行状态.防火墙产品主要有堡垒主机,包过滤路由器,应用层网关(代理服务器)以及电路层网关,屏蔽主机防火墙,双宿主机等类型.虽然防火墙是保护网络免遭黑客袭击的有效手段,但也有明显不足:无法防范通过防火墙以外的其它途径的攻击,不能防止来自内部变节者和不经心的用户们带来的威胁,也不能完全防止传送已感染病毒的软件或文件,以及无法防范数据驱动型的攻击.自从1986年美国Digital公司在Internet上安装了全球第一个商用防火墙系统,提出了防火墙概念后,防火墙技术得到了飞速的发展.国内外已有数十家公司推出了功能各不相同的防火墙产品系列.防火墙处于5层网络安全体系中的最底层,属于网络层安全技术范畴.在这一层上,企业对安全系统提出的问题是:所有的IP是否都能访问到企业的内部网络系统如果答案是是,则说明企业内部网还没有在网络层采取相应的防范措施.作为内部网络与外部公共网络之间的第一道屏障,防火墙是最先受到人们重视的网络安全产品之一.虽然从理论上看,防火墙处于网络安全的最底层,负责网络间的安全认证与传输,但随着网络安全技术的整体发展和网络应用的不断变化,现代防火墙技术已经逐步走向网络层之外的其他安全层次,不仅要完成传统防火墙的过滤任务,同时还能为各种网络应用提供相应的安全服务.另外还有多种防火墙产品正朝着数据安全与用户认证,防止病毒与黑客侵入等方向发展.1、使用Firewall的益处保护脆弱的服务通过过滤不安全的服务,Firewall可以极大地提高网络安全和减少子网中主机的风险。 例如,Firewall可以禁止NIS、NFS服务通过,Firewall同时可以拒绝源路由和ICMP重定向封包。 控制对系统的访问Firewall可以提供对系统的访问控制。 如允许从外部访问某些主机,同时禁止访问另外的主机。 例如,Firewall允许外部访问特定的Mail Server和Web Server。 集中的安全管理Firewall对企业内部网实现集中的安全管理,在Firewall定义的安全规则可以运用于整个内部网络系统,而无须在内部网每台机器上分别设立安全策略。 如在Firewall可以定义不同的认证方法,而不需在每台机器上分别安装特定的认证软件。 外部用户也只需要经过—次认证即可访问内部网。 增强的保密性使用Firewall可以阻止攻击者获取攻击网络系统的有用信息,如Finger和DNS。 记录和统计网络利用数据以及非法使用数据Firewall可以记录和统计通过Firewall的网络通讯,提供关于网络使用的统计数据,并且,Firewall可以提供统计数据,来判断可能的攻击和探测。 策略执行Firewall提供了制定和执行网络安全策略的手段。 未设置Firewall时,网络安全取决于每台主机的用户。 2、 设置Firewall的要素网络策略影响Firewall系统设计、安装和使用的网络策略可分为两级,高级的网络策略定义允许和禁止的服务以及如何使用服务,低级的网络策略描述Firewall如何限制和过滤在高级策略中定义的服务。 服务访问策略服务访问策略集中在Internet访问服务以及外部网络访问(如拨入策略、SLIP/PPP连接等)。 服务访问策略必须是可行的和合理的。 可行的策略必须在阻止己知的网络风险和提供用户服务之间获得平衡。 典型的服务访问策略是:允许通过增强认证的用户在必要的情况下从Internet访问某些内部主机和服务;允许内部用户访问指定的Internet主机和服务。 Firewall设计策略Firewall设计策略基于特定的firewall,定义完成服务访问策略的规则。 通常有两种基本的设计策略:允许任何服务除非被明确禁止;禁止任何服务除非被明确允许。 通常采用第二种类型的设计策略。 3、 Firewall的基本分类包过滤型包过滤型产品是防火墙的初级产品,其技术依据是网络中的分包传输技术.网络上的数据都是以包为单位进行传输的,数据被分割成为一定大小的数据包,每一个数据包中都会包含一些特定信息,如数据的源地址,目标地址,TCP/UDP源端口和目标端口等.防火墙通过读取数据包中的地址信息来判断这些包是否来自可信任的安全站点 ,一旦发现来自危险站点的数据包,防火墙便会将这些数据拒之门外.系统管理员也可以根据实际情况灵活制订判断规则.包过滤技术的优点是简单实用,实现成本较低,在应用环境比较简单的情况下,能够以较小的代价在一定程度上保证系统的安全.但包过滤技术的缺陷也是明显的.包过滤技术是一种完全基于网络层的安全技术,只能根据数据包的来源,目标和端口等网络信息进行判断,无法识别基于应用层的恶意侵入,如恶意的Java小程序以及电子邮件中附带的病毒.有经验的黑客很容易伪造IP地址,骗过包过滤型防火墙.网络地址转换(NAT)是一种用于把IP地址转换成临时的,外部的,注册的IP地址标准.它允许具有私有IP地址的内部网络访问因特网.它还意味着用户不许要为其网络中每一台机器取得注册的IP地址.在内部网络通过安全网卡访问外部网络时,将产生一个映射记录.系统将外出的源地址和源端口映射为一个伪装的地址和端口,让这个伪装的地址和端口通过非安全网卡与外部网络连接,这样对外就隐藏了真实的内部网络地址.在外部网络通过非安全网卡访问内部网络时,它并不知道内部网络的连接情况,而只是通过一个开放的IP地址和端口来请求访问防火墙根据预先定义好的映射规则来判断这个访问是否安全.当符合规则时,防火墙认为访问是安全的,可以接受访问请求,也可以将连接请求映射到不同的内部计算机中.当不符合规则时,防火墙认为该访问是不安全的,不能被接受,防火墙将屏蔽外部的连接请求.网络地址转换的过程对于用户来说是透明的,不需要用户进行设置,用户只要进行常规操作即可.代理型代理型防火墙也可以被称为代理服务器,它的安全性要高于包过滤型产品,并已经开始向应用层发展.代理服务器位于客户机与服务器之间,完全阻挡了二者间的数据交流.从客户机来看,代理服务器相当于一台真正的服务器;而从服务器来看,代理服务器又是一台真正的客户机.当客户机需要使用服务器上的数据时,首先将数据请求发给代理服务器,代理服务器再根据这一请求向服务器索取数据,然后再由代理服务器将数据传输给客户机.由于外部系统与内部服务器之间没有直接的数据通道,外部的恶意侵害也就很难伤害到企业内部网络系统.代理型防火墙的优点是安全性较高,可以针对应用层进行侦测和扫描,对付基于应用层的侵入和病毒都十分有效.其缺点是对系统的整体性能有较大的影响,而且代理服务器必须针对客户机可能产生的所有应用类型逐一进行设置,大大增加了系统管理的复杂性。 监测型监测型防火墙是新一代的产品,这一技术实际已经超越了最初的防火墙定义.监测型防火墙能够对各层的数据进行主动的,实时的监测,在对这些数据加以分析的基础上,监测型防火墙能够有效地判断出各层中的非法侵入.同时,这种检测型防火墙产品一般还带有分布式探测器,这些探测器安置在各种应用服务器和其他网络的节点之中,不仅能够检测来自网络外部的攻击,同时对来自内部的恶意破坏也有极强的防范作用.据权威机构统计,在针对网络系统的攻击中,有相当比例的攻击来自网络内部.因此,监测型防火墙不仅超越了传统防火墙的定义,而且在安全性上也超越了前两代产品虽然监测型防火墙安全性上已超越了包过滤型和代理服务器型防火墙,但由于监测型防火墙技术的实现成本较高,也不易管理,所以在实用中的防火墙产品仍然以第二代代理型产品为主,但在某些方面也已经开始使用监测型防火墙.基于对系统成本与安全技术成本的综合考虑,用户可以选择性地使用某些监测型技术.这样既能够保证网络系统的安全性需求,同时也能有效地控制安全系统的总拥有成本.实际上,作为当前防火墙产品的主流趋势,大多数代理服务器(也称应用网关)也集成了包过滤技术,这两种技术的混合应用显然比单独使用具有更大的优势.由于这种产品是基于应用的,应用网关能提供对协议的过滤.例如,它可以过滤掉FTP连接中的PUT命令,而且通过代理应用,应用网关能够有效地避免内部网络的信息外泄.正是由于应用网关的这些特点,使得应用过程中的矛盾主要集中在对多种网络应用协议的有效支持和对网络整体性能的影响上。 4、 建设Firewall的原则分析安全和服务需求以下问题有助于分析安全和服务需求:√ 计划使用哪些Internet服务(如http,ftp,gopher),从何处使用Internet服务(本地网,拨号,远程办公室)。 √ 增加的需要,如加密或拔号接入支持。 √ 提供以上服务和访问的风险。 √ 提供网络安全控制的同时,对系统应用服务牺牲的代价。 策略的灵活性Internet相关的网络安全策略总的来说,应该保持一定的灵活性,主要有以下原因:√ Internet自身发展非常快,机构可能需要不断使用Internet提供的新服务开展业务。 新的协议和服务大量涌现带来新的安全问题,安全策略必须能反应和处理这些问题。 √ 机构面临的风险并非是静态的,机构职能转变、网络设置改变都有可能改变风险。 远程用户认证策略√ 远程用户不能通过放置于Firewall后的未经认证的Modem访问系统。 √ PPP/SLIP连接必须通过Firewall认证。 √ 对远程用户进行认证方法培训。 拨入/拨出策略√ 拨入/拨出能力必须在设计Firewall时进行考虑和集成。 √ 外部拨入用户必须通过Firewall的认证。 Information Server策略√ 公共信息服务器的安全必须集成到Firewall中。 √ 必须对公共信息服务器进行严格的安全控制,否则将成为系统安全的缺口。 √ 为Information server定义折中的安全策略允许提供公共服务。 √ 对公共信息服务和商业信息(如email)讲行安全策略区分。 Firewall系统的基本特征√ Firewall必须支持.“禁止任何服务除非被明确允许”的设计策略。 √ Firewall必须支持实际的安全政策,而非改变安全策略适应Firewall。 √ Firewall必须是灵活的,以适应新的服务和机构智能改变带来的安全策略的改变。 √ Firewall必须支持增强的认证机制。 √ Firewall应该使用过滤技术以允许或拒绝对特定主机的访问。 √ IP过滤描述语言应该灵活,界面友好,并支持源IP和目的IP,协议类型,源和目的TCP/UDP口,以及到达和离开界面。 √ Firewall应该为FTP、TELNET提供代理服务,以提供增强和集中的认证管理机制。 如果提供其它的服务(如NNTP,http等)也必须通过代理服务器。 √ Firewall应该支持集中的SMTP处理,减少内部网和远程系统的直接连接。 √ Firewall应该支持对公共Information server的访问,支持对公共Information server的保护,并且将Information server同内部网隔离。 √ Firewall可支持对拨号接入的集中管理和过滤。 √ Firewall应支持对交通、可疑活动的日志记录。 √ 如果Firewall需要通用的操作系统,必须保证使用的操作系统安装了所有己知的安全漏洞Patch。 √ Firewall的设计应该是可理解和管理的。 √ Firewall依赖的操作系统应及时地升级以弥补安全漏洞。 5、选择防火墙的要点(1) 安全性:即是否通过了严格的入侵测试。 (2) 抗攻击能力:对典型攻击的防御能力(3) 性能:是否能够提供足够的网络吞吐能力(4) 自我完备能力:自身的安全性,Fail-close(5) 可管理能力:是否支持SNMP网管(6) VPN支持(7) 认证和加密特性(8) 服务的类型和原理(9)网络地址转换能力三.病毒防护技术病毒历来是信息系统安全的主要问题之一。 由于网络的广泛互联,病毒的传播途径和速度大大加快。 我们将病毒的途径分为:(1 ) 通过FTP,电子邮件传播。 (2) 通过软盘、光盘、磁带传播。 (3) 通过Web游览传播,主要是恶意的Java控件网站。 (4) 通过群件系统传播。 病毒防护的主要技术如下:(1) 阻止病毒的传播。 在防火墙、代理服务器、SMTP服务器、网络服务器、群件服务器上安装病毒过滤软件。 在桌面PC安装病毒监控软件。 (2) 检查和清除病毒。 使用防病毒软件检查和清除病毒。 (3) 病毒数据库的升级。 病毒数据库应不断更新,并下发到桌面系统。 (4) 在防火墙、代理服务器及PC上安装Java及ActiveX控制扫描软件,禁止未经许可的控件下载和安装。 四.入侵检测技术利用防火墙技术,经过仔细的配置,通常能够在内外网之间提供安全的网络保护,降低了网络安全风险。 但是,仅仅使用防火墙、网络安全还远远不够:(1) 入侵者可寻找防火墙背后可能敞开的后门。 (2) 入侵者可能就在防火墙内。 (3) 由于性能的限制,防火焰通常不能提供实时的入侵检测能力。 入侵检测系统是近年出现的新型网络安全技术,目的是提供实时的入侵检测及采取相应的防护手段,如记录证据用于跟踪和恢复、断开网络连接等。 实时入侵检测能力之所以重要首先它能够对付来自内部网络的攻击,其次它能够缩短hacker入侵的时间。 入侵检测系统可分为两类:√ 基于主机√ 基于网络基于主机的入侵检测系统用于保护关键应用的服务器,实时监视可疑的连接、系统日志检查,非法访问的闯入等,并且提供对典型应用的监视如Web服务器应用。 基于网络的入侵检测系统用于实时监控网络关键路径的信息,其基本模型如右图示:上述模型由四个部分组成:(1) Passive protocol Analyzer网络数据包的协议分析器、将结果送给模式匹配部分并根据需要保存。 (2) Pattern-Matching Signature Analysis根据协议分析器的结果匹配入侵特征,结果传送给Countermeasure部分。 (3) countermeasure执行规定的动作。 (4) Storage保存分析结果及相关数据。 基于主机的安全监控系统具备如下特点:(1) 精确,可以精确地判断入侵事件。 (2) 高级,可以判断应用层的入侵事件。 (3) 对入侵时间立即进行反应。 (4) 针对不同操作系统特点。 (5) 占用主机宝贵资源。 基于网络的安全监控系统具备如下特点:(1) 能够监视经过本网段的任何活动。 (2) 实时网络监视。 (3) 监视粒度更细致。 (4) 精确度较差。 (5) 防入侵欺骗的能力较差。 (6) 交换网络环境难于配置。 基于主机及网络的入侵监控系统通常均可配置为分布式模式:(1) 在需要监视的服务器上安装监视模块(agent),分别向管理服务器报告及上传证据,提供跨平台的入侵监视解决方案。 (2) 在需要监视的网络路径上,放置监视模块(sensor),分别向管理服务器报告及上传证据,提供跨网络的入侵监视解决方案。 选择入侵监视系统的要点是:(1) 协议分析及检测能力。 (2) 解码效率(速度)。 (3) 自身安全的完备性。 (4) 精确度及完整度,防欺骗能力。 (5) 模式更新速度。 五.安全扫描技术网络安全技术中,另一类重要技术为安全扫描技术。 安全扫描技术与防火墙、安全监控系统互相配合能够提供很高安全性的网络。 安全扫描工具源于Hacker在入侵网络系统时采用的工具。 商品化的安全扫描工具为网络安全漏洞的发现提供了强大的支持。 安全扫描工具通常也分为基于服务器和基于网络的扫描器。 基于服务器的扫描器主要扫描服务器相关的安全漏洞,如password文件,目录和文件权限,共享文件系统,敏感服务,软件,系统漏洞等,并给出相应的解决办法建议。 通常与相应的服务器操作系统紧密相关。 基于网络的安全扫描主要扫描设定网络内的服务器、路由器、网桥、变换机、访问服务器、防火墙等设备的安全漏洞,并可设定模拟攻击,以测试系统的防御能力。 通常该类扫描器限制使用范围(IP地址或路由器跳数)。 网络安全扫描的主要性能应该考虑以下方面:(1) 速度。 在网络内进行安全扫描非常耗时。 (2) 网络拓扑。 通过GUI的图形界面,可迭择一步或某些区域的设备。 (3) 能够发现的漏洞数量。 (4) 是否支持可定制的攻击方法。 通常提供强大的工具构造特定的攻击方法。 因为网络内服务器及其它设备对相同协议的实现存在差别,所以预制的扫描方法肯定不能满足客户的需求。 (5) 报告,扫描器应该能够给出清楚的安全漏洞报告。 (6) 更新周期。 提供该项产品的厂商应尽快给出新发现的安生漏洞扫描特性升级,并给出相应的改进建议。 安全扫描器不能实时监视网络上的入侵,但是能够测试和评价系统的安全性,并及时发现安全漏洞。 六. 认证和数宇签名技术认证技术主要解决网络通讯过程中通讯双方的身份认可,数字签名作为身份认证技术中的一种具体技术,同时数字签名还可用于通信过程中的不可抵赖要求的实现。 认证技术将应用到企业网络中的以下方面:(1) 路由器认证,路由器和交换机之间的认证。 (2) 操作系统认证。 操作系统对用户的认证。 (3) 网管系统对网管设备之间的认证。 (4) VPN网关设备之间的认证。 (5) 拨号访问服务器与客户间的认证。 (6) 应用服务器(如Web Server)与客户的认证。 (7) 电子邮件通讯双方的认证。 数字签名技术主要用于:(1) 基于PKI认证体系的认证过程。 (2) 基于PKI的电子邮件及交易(通过Web进行的交易)的不可抵赖记录。 认证过程通常涉及到加密和密钥交换。 通常,加密可使用对称加密、不对称加密及两种加密方法的混合。 UserName/Password认证该种认证方式是最常用的一种认证方式,用于操作系统登录、telnet、rlogin等,但由于此种认证方式过程不加密,即password容易被监听和解密。 使用摘要算法的认证Radius(拨号认证协议)、路由协议(OSPF)、SNMP Security Protocol等均使用共享的Security Key,加上摘要算法(MD5)进行认证,由于摘要算法是一个不可逆的过程,因此,在认证过程中,由摘要信息不能计算出共享的security key,敏感信息不在网络上传输。 市场上主要采用的摘要算法有MD5和SHA-1。 基于PKI的认证使用公开密钥体系进行认证和加密。 该种方法安全程度较高,综合采用了摘要算法、不对称加密、对称加密、数字签名等技术,很好地将安全性和高效率结合起来。 后面描述了基于PKI认证的基本原理。 这种认证方法目前应用在电子邮件、应用服务器访问、客户认证、防火墙验证等领域。 该种认证方法安全程度很高,但是涉及到比较繁重的证书管理任务。

9计算机网络道德问题:黑客有哪些常见的攻击手段?如何防范黑客?

目前造成网络不安全的主要因素是系统、协议及数据库等的设计上存在缺陷。 由于当今的计算机网络操作系统在本身结构设计和代码设计时偏重考虑系统使用时的方便性,导致了系统在远程访问、权限控制和口令管理等许多方面存在安全漏洞。 网络互连一般采用TCP/IP协议,它是一个工业标准的协议簇,但该协议簇在制订之初,对安全问题考虑不多,协议中有很多的安全漏洞。 同样,数据库管理系统(DBMS)也存在数据的安全性、权限管理及远程访问等方面问题,在DBMS或应用程序中可以预先安置从事情报收集、受控激发、定时发作等破坏程序。 由此可见,针对系统、网络协议及数据库等,无论是其自身的设计缺陷,还是由于人为的因素产生的各种安全漏洞,都可能被一些另有图谋的黑客所利用并发起攻击。 因此若要保证网络安全、可靠,则必须熟知黑客网络攻击的一般过程。 只有这样方可在黒客攻击前做好必要的防备,从而确保网络运行的安全和可靠。 一、黑客攻击网络的一般过程 1、信息的收集 信息的收集并不对目标产生危害,只是为进一步的入侵提供有用信息。 黑客可能会利用下列的公开协议或工具,收集驻留在网络系统中的各个主机系统的相关信息: (1)TraceRoute程序 能够用该程序获得到达目标主机所要经过的网络数和路由器数。 (2)SNMP协议 用来查阅网络系统路由器的路由表,从而了解目标主机所在网络的拓扑结构及其内部细节。 (3)DNS服务器 该服务器提供了系统中可以访问的主机IP地址表和它们所对应的主机名。 (4)Whois协议 该协议的服务信息能提供所有有关的DNS域和相关的管理参数。 (5)Ping实用程序 可以用来确定一个指定的主机的位置或网线是否连通。 2、系统安全弱点的探测 在收集到一些准备要攻击目标的信息后,黑客们会探测目标网络上的每台主机,来寻求系统内部的安全漏洞,主要探测的方式如下: (1)自编程序 对某些系统,互联网上已发布了其安全漏洞所在,但用户由于不懂或一时疏忽未打上网上发布的该系统的“补丁”程序,那么黒客就可以自己编写一段程序进入到该系统进行破坏。 (2)慢速扫描 由于一般扫描侦测器的实现是通过监视某个时间段里一台特定主机发起的连接的数目来决定是否在被扫描,这样黑客可以通过使用扫描速度慢一些的扫描软件进行扫描。 (3)体系结构探测 黑客利用一些特殊的数据包传送给目标主机,使其作出相对应的响应。 由于每种操作系统的响应时间和方式都是不一样的,黒客利用这种特征把得到的结果与准备好的数据库中的资料相对照,从中便可轻而易举地判断出目标主机操作系统所用的版本及其他相关信息。 (4)利用公开的工具软件 像审计网络用的安全分析工具SATAN、Internet的电子安全扫描程序IIS等一些工具对整个网络或子网进行扫描,寻找安全方面的漏洞。 3、建立模拟环境,进行模拟攻击 根据前面两小点所得的信息,建立一个类似攻击对象的模拟环境,然后对此模拟目标进行一系列的攻击。 在此期间,通过检查被攻击方的日志,观察检测工具对攻击的反应,可以进一步了解在攻击过程中留下的“痕迹”及被攻击方的状态,以此来制定一个较为周密的攻击策略。 4、具体实施网络攻击 入侵者根据前几步所获得的信息,同时结合自身的水平及经验总结出相应的攻击方法,在进行模拟攻击的实践后,将等待时机,以备实施真正的网络攻击。 二、协议欺骗攻击及其防范措施 1、源IP地址欺骗攻击 许多应用程序认为若数据包可以使其自身沿着路由到达目的地,并且应答包也可回到源地,那么源IP地址一定是有效的,而这正是使源IP地址欺骗攻击成为可能的一个重要前提。 假设同一网段内有两台主机A和B,另一网段内有主机X。 B 授予A某些特权。 X 为获得与A相同的特权,所做欺骗攻击如下:首先,X冒充A,向主机 B发送一个带有随机序列号的SYN包。 主机B响应,回送一个应答包给A,该应答号等于原序列号加1。 然而,此时主机A已被主机X利用拒绝服务攻击 “淹没”了,导致主机A服务失效。 结果,主机A将B发来的包丢弃。 为了完成三次握手,X还需要向B回送一个应答包,其应答号等于B向A发送数据包的序列号加1。 此时主机X 并不能检测到主机B的数据包(因为不在同一网段),只有利用TCP顺序号估算法来预测应答包的顺序号并将其发送给目标机B。 如果猜测正确,B则认为收到的ACK是来自内部主机A。 此时,X即获得了主机A在主机B上所享有的特权,并开始对这些服务实施攻击。 要防止源IP地址欺骗行为,可以采取以下措施来尽可能地保护系统免受这类攻击: (1)抛弃基于地址的信任策略 阻止这类攻击的一种十分容易的办法就是放弃以地址为基础的验证。 不允许r类远程调用命令的使用;删除 文件;清空/etc/ 文件。 这将迫使所有用户使用其它远程通信手段,如telnet、ssh、skey等等。 (2)使用加密方法 在包发送到 网络上之前,我们可以对它进行加密。 虽然加密过程要求适当改变目前的网络环境,但它将保证数据的完整性、真实性和保密性。 (3)进行包过滤 可以配置路由器使其能够拒绝网络外部与本网内具有相同IP地址的连接请求。 而且,当包的IP地址不在本网内时,路由器不应该把本网主机的包发送出去。 有一点要注意,路由器虽然可以封锁试图到达内部网络的特定类型的包。 但它们也是通过分析测试源地址来实现操作的。 因此,它们仅能对声称是来自于内部网络的外来包进行过滤,若你的网络存在外部可信任主机,那么路由器将无法防止别人冒充这些主机进行IP欺骗。 2、源路由欺骗攻击 在通常情况下,信息包从起点到终点所走的路是由位于此两点间的路由器决定的,数据包本身只知道去往何处,而不知道该如何去。 源路由可使信息包的发送者将此数据包要经过的路径写在数据包里,使数据包循着一个对方不可预料的路径到达目的主机。 下面仍以上述源IP欺骗中的例子给出这种攻击的形式: 主机A享有主机B的某些特权,主机X想冒充主机A从主机B(假设IP为)获得某些服务。 首先,攻击者修改距离X最近的路由器,使得到达此路由器且包含目的的数据包以主机X所在的网络为目的地;然后,攻击者X利用IP欺骗向主机B发送源路由(指定最近的路由器)数据包。 当B回送数据包时,就传送到被更改过的路由器。 这就使一个入侵者可以假冒一个主机的名义通过一个特殊的路径来获得某些被保护数据。 为了防范源路由欺骗攻击,一般采用下面两种措施: · 对付这种攻击最好的办法是配置好路由器,使它抛弃那些由外部网进来的却声称是内部主机的报文。 · 在路由器上关闭源路由。 用命令no ip source-route。 三、拒绝服务攻击及预防措施 在拒绝服务攻击中,攻击者加载过多的服务将对方资源全部使用,使得没有多余资源供其他用户无法使用。 SYN Flood攻击是典型的拒绝服务攻击。 SYN Flood常常是源IP地址欺骗攻击的前奏,又称半开式连接攻击,每当我们进行一次标准的TCP连接就会有一个三次握手的过程,而SYN Flood在它的实现过程中只有三次握手的前两个步骤,当服务方收到请求方的SYN并回送SYN-ACK确认报文后,请求方由于采用源地址欺骗等手段,致使服务方得不到ACK回应,这样,服务方会在一定时间内处于等待接收请求方ACK报文的状态,一台服务器可用的TCP连接是有限的,如果恶意攻击方快速连续的发送此类连接请求,则服务器的系统可用资源、网络可用带宽急剧下降,将无法向其它用户提供正常的网络服务。 为了防止拒绝服务攻击,我们可以采取以下的预防措施: (1) 建议在该网段的路由器上做些配置的调整,这些调整包括限制Syn半开数据包的流量和个数。 (2)要防止SYN数据段攻击,我们应对系统设定相应的内核参数,使得系统强制对超时的Syn请求连接数据包复位,同时通过缩短超时常数和加长等候队列使得系统能迅速处理无效的Syn请求数据包。 (3)建议在路由器的前端做必要的TCP拦截,使得只有完成TCP三次握手过程的数据包才可进入该网段,这样可以有效地保护本网段内的服务器不受此类攻击。 (4)对于信息淹没攻击,我们应关掉可能产生无限序列的服务来防止这种攻击。 比如我们可以在服务器端拒绝所有的ICMP包,或者在该网段路由器上对ICMP包进行带宽方面的限制,控制其在一定的范围内。 总之,要彻底杜绝拒绝服务攻击,最好的办法是惟有追根溯源去找到正在进行攻击的机器和攻击者。 要追踪攻击者可不是一件容易的事情,一旦其停止了攻击行为,很难将其发现。 惟一可行的方法是在其进行攻击的时候,根据路由器的信息和攻击数据包的特征,采用逐级回溯的方法来查找其攻击源头。 这时需要各级部门的协同配合方可有效果。 四、其他网络攻击行为的防范措施 协议攻击和拒绝服务攻击是黑客惯于使用的攻击方法,但随着网络技术的飞速发展,攻击行为千变万化,新技术层出不穷。 下面将阐述一下网络嗅探及缓冲区溢出的攻击原理及防范措施。 1、针对网络嗅探的防范措施 网络嗅探就是使网络接口接收不属于本主机的数据。 计算机网络通常建立在共享信道上,以太网就是这样一个共享信道的网络,其数据报头包含目的主机的硬件地址,只有硬件地址匹配的机器才会接收该数据包。 一个能接收所有数据包的机器被称为杂错节点。 通常账户和口令等信息都以明文的形式在以太网上传输,一旦被黑客在杂错节点上嗅探到,用户就可能会遭到损害。 对于网络嗅探攻击,我们可以采取以下措施进行防范: (1)网络分段 一个网络段包括一组共享低层设备和线路的机器,如交换机,动态集线器和网桥等设备,可以对数据流进行限制,从而达到防止嗅探的目的。 (2)加密 一方面可以对数据流中的部分重要信息进行加密,另一方面也可只对应用层加密,然而后者将使大部分与网络和操作系统有关的敏感信息失去保护。 选择何种加密方式这就取决于信息的安全级别及网络的安全程度。 (3)一次性口令技术 口令并不在网络上传输而是在两端进行字符串匹配,客户端利用从服务器上得到的Challenge和自身的口令计算出一个新字符串并将之返回给服务器。 在服务器上利用比较算法进行匹配,如果匹配,连接就允许建立,所有的Challenge和字符串都只使用一次。 (4)禁用杂错节点 安装不支持杂错的网卡,通常可以防止IBM兼容机进行嗅探。 2、缓冲区溢出攻击及其防范措施 缓冲区溢出攻击是属于系统攻击的手段,通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。 当然,随便往缓冲区中填东西并不能达到攻击的目的。 最常见的手段是通过制造缓冲区溢出使程序运行一个用户shell,再通过shell执行其它命令。 如果该程序具有root权限的话,攻击者就可以对系统进行任意操作了。 缓冲区溢出对网络系统带来了巨大的危害,要有效地防止这种攻击,应该做到以下几点: (1)程序指针完整性检查 在程序指针被引用之前检测它是否改变。 即便一个攻击者成功地改变了程序的指针,由于系统事先检测到了指针的改变,因此这个指针将不会被使用。 (2)堆栈的保护 这是一种提供程序指针完整性检查的编译器技术,通过检查函数活动记录中的返回地址来实现。 在堆栈中函数返回地址后面加了一些附加的字节,而在函数返回时,首先检查这个附加的字节是否被改动过。 如果发生过缓冲区溢出的攻击,那么这种攻击很容易在函数返回前被检测到。 但是,如果攻击者预见到这些附加字节的存在,并且能在溢出过程中同样地制造他们,那么他就能成功地跳过堆栈保护的检测。 (3)数组边界检查 所有的对数组的读写操作都应当被检查以确保对数组的操作在正确的范围内进行。 最直接的方法是检查所有的数组操作,通常可以采用一些优化技术来减少检查次数。 目前主要有这几种检查方法:Compaq C编译器、Jones & Kelly C数组边界检查、Purify存储器存取检查等。 未来的竞争是信息竞争,而网络信息是竞争的重要组成部分。 其实质是人与人的对抗,它具体体现在安全策略与攻击策略的交锋上。 为了不断增强信息系统的安全防御能力,必须充分理解系统内核及网络协议的实现,真正做到洞察对方网络系统的“细枝末节”,同时应该熟知针对各种攻击手段的预防措施,只有这样才能尽最大可能保证网络的安全。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Java

“防止资源走漏-数据库衔接和网络衔接的危险性-Java中未正确封锁文件 (防止资源走漏的措施)” 的相关文章

在-Java-年依然盛行的-2023-25-个要素 (在javascript中)

在-Java-年依然盛行的-2023-25-个要素 (在javascript中)

译者|刘汪洋 审校|重楼 学习的环节中,我看法到在90年代末OOP正值鼎盛期间,Java作为能够真正成功这些概念的言语显得尤为突出(虽然我此前学过C++,但相比Java影响较小)。我特...

Java中不倡导经常使用foreach的六大场景 (java中不等于怎么写)

Java中不倡导经常使用foreach的六大场景 (java中不等于怎么写)

在中,foreach是一个罕用的循环结构,它可以极大地简化遍历数组或汇合(例如List或Set)的代码。它通常被以为是一种愈加繁复和易读的迭代形式。但是,或许有一些状况下不倡导经常使用foreac...

Java-以及如何成功它-为何它本应更繁难-异步编程 (java一个子类可以有多个父类吗)

Java-以及如何成功它-为何它本应更繁难-异步编程 (java一个子类可以有多个父类吗)

在过去的好多年里,多线程和异步不时作为技术里的初级局部,在技术序列中,一个言语分为入门局部、进阶局部和初级局部,所以,异步是作为其中的初级技术局部存在的。 关于异步和多线程这局部吧,经常存在...

在不再使用时调用finalize-resources自动关闭资源-避免对长期对象使用软引用和弱引用-识别和避免Java内存泄漏的最佳实践-使用try-注意lambda表达式的引用捕获-with (不再使用时间银行)

在不再使用时调用finalize-resources自动关闭资源-避免对长期对象使用软引用和弱引用-识别和避免Java内存泄漏的最佳实践-使用try-注意lambda表达式的引用捕获-with (不再使用时间银行)

简介 在 Java 中,内存泄漏是指程序中存在一些不再使用的对象或数据结构仍然保持对内存的引用,从而导致这些对象无法被废品回收器回收,最终导致内存占用不断增加,进而影响程序的性能和稳定性。...

Java连接池配置不当引起的连接泄漏和数据库连接数超限问题排查 (java连接sqlserver数据库代码)

Java连接池配置不当引起的连接泄漏和数据库连接数超限问题排查 (java连接sqlserver数据库代码)

连接池配置的重要性 连接池是一种用于管理数据库连接的技术,它可以提高系统性能和稳定性。合理配置连接池可以带来以下好处: 提高性能 节省资源 避免连接泄漏...

a-a-Java-启动图像识别和图像处置-经常使用-href=-全面指南 (aajaas智能锁说明书)

a-a-Java-启动图像识别和图像处置-经常使用-href=-全面指南 (aajaas智能锁说明书)

图像识别和图像处置是计算机视觉畛域的关键运行之一。在中成功图像识别和处置可以经常使用各种库和框架来成功,上方将引见一些罕用的方法和工具。 1、Java图像处置库的选用 Java提供了丰...

空指针审核-Java-不堪忍耐之痛 (空指针异常常用解决办法)

空指针审核-Java-不堪忍耐之痛 (空指针异常常用解决办法)

前言 NPE疑问 NPE疑问就是咱们在开发中经常碰到的NullPointerException.假定咱们有两个类,他们的UML类图如下图所示: 如今须要访问用户地址消息的省份,繁...

轻量级-Java-表白式引擎-aviator-不容错过的优秀选用 (轻量级javaee企业应用实战pdf下载)

轻量级-Java-表白式引擎-aviator-不容错过的优秀选用 (轻量级javaee企业应用实战pdf下载)

aviator原本是一个轻量级、高性能的基于JVM的表白式引擎。不过从5.0.0版本开局,aviator更新成为了aviatorScript,成为一个高性能、轻量级寄宿于JVM(包含平台)之上的脚...