防护漏洞(共4篇)
防护漏洞 篇1
随着数据网络带宽的不断扩展, 百兆甚至千兆到桌面已经成为可能。带宽的提升也为在数据网络上传输话音提供了有力的前提条件。无论对于新兴的小型办公企业利用新建的数据网络的充裕带宽来承载语音, 还是对于行业用户利用IP中继进行总部和分支节点间的互联可以省去租用长途电路中继的高昂费用。Vo IP技术都将会有广阔的应用。
但是, 在实施项目或者在使用过程中, 用户和设备供应厂家更多的会将精力放在如何改善话音质量和同现有数据网络的融合上面, 很少考虑到Vo IP所存在的安全隐患。其实, 在Vo IP的情况下, 话音也是和数据应用一样, 也成为了一个个的“Packet”, 同样也将承受各种病毒和黑客攻击的困扰。
究竟有那几种因素会影响到Vo IP呢?首先是产品本身的问题。目前Vo IP技术最常用的话音建立和控制信令是H.323和SIP协议。尽管它们之间有若干区别, 但总体上都是一套开放的协议体系。设备厂家都会有独立的组件来承载包括IP终端登陆注册、关守和信令接续。这些产品有的采用Windows NT的操作系统, 也有的是基于Linux或VxWorks。越是开放的操作系统, 也就越容易受到病毒和恶意攻击的影响。尤其是某些设备需要提供基于Web的管理界面的时候, 都会有机会采用Microsoft IIS或Apache来提供服务, 而这些应用都是在产品出厂的时候已经安装在设备当中, 无法保证是最新版本或是承诺已经弥补了某些安全漏洞。
其次是基于开放端口的DoS (拒绝服务) 攻击。从网络攻击的方法和产生的破坏效果来看, DoS算是一种既简单又有效的攻击方式。攻击者向服务器发送相当多数量的带有虚假地址的服务请求, 但因为所包含的回复地址是虚假的, 服务器将等不到回传的消息, 直至所有的资源被耗尽。Vo IP技术已经有很多知名的端口, 像1719、1720、5060等。还有一些端口是产品本身需要用于远端管理或是私有信息传递的用途, 总之是要比普通的某个简单的数据应用多。只要是攻击者的PC和这些应用端口在同一网段, 就可以通过简单的扫描工具, 如X-Way之类的共享软件来获得更详细的信息。最近报道的一个安全漏洞是由NISCC (UK National Infrastructure Security Coordi-nation Center) 提出, 测试结果表明:“市场上很多采用H.323协议的Vo IP系统在H.245建立过程中都存在漏洞, 容易在1720端口上受到DoS的攻击, 导致从而系统的不稳定甚至瘫痪”。
再次就是服务窃取。通常在IP话机首次登陆到系统时, 会要求提示输入各人的分机号码和密码;很多采用了Vo IP的企业为了方便员工远程/移动办公, 都会在分配一个桌面电话的同时, 再分配一个虚拟的IP电话, 并授予密码和拨号权限。这样, 即使员工出差或是在家办公情况下, 都可以利用VPN方式接入到公司的局域网中, 然后运行电脑中的IP软件电话接听或拨打市话, 如同在公司里办公一样。当密码流失之后, 任何人都可以用自己的软电话登陆成为别人的分机号码;如果获得的权限是可以自由拨打国内甚至国际长途号码, 将会给企业带来巨大的损失且很难追查。
最后是媒体流的侦听问题。当企业用户使用了数字话机之后, 由于都是厂家私有的协议, 很难通过简单的手段来侦听。但Vo IP环境下, 这个问题又被提了出来。一个典型的Vo IP呼叫需要信令和媒体流两个建立的步骤, RTP/RTCP是在基于包的网络上传输等时话音信息的协议。由于协议本身是开放的, 即使是一小段的媒体流都可以被重放出来而不需要前后信息的关联。如果有人在数据网络上通过Sniffer的方式记录所有信息并通过软件加以重放, 会引起员工对话音通信的信任危机。
Vo IP技术跟随着整个网络市场的发展而发展, 不同厂家和产品的同时存在导致一时无法提出一个统一的技术标准;Vo IP的基础还是IP网络, 开放的体系构架不可避免受到了来自网络的负面影响。最大限度地保障Vo IP的安全主要的方法有以下几种:
(1) 将用于话音和数据传输的网络进行隔离
这里所说的隔离并不是指物理上的隔离, 而是建议将所有的IP话机放到一个独立的VLAN当中, 同时限制无关的PC终端进入该网段。通过很多评测者的反馈信息表明, 划分VLAN是目前保护IP话音系统最为简单有效的方法, 可以隔离病毒和简单的攻击。同时, 配合数据网络的Qo S设定, 还将有助于提高话音质量。
(2) 将Vo IP作为一种应用程序来看待
这也意味着我们需要采用一些适用于保护重要的应用服务器之类的手段, 来保护Vo IP设备中一些重要的端口和应用, 例如采用北电网络Aleton交换防火墙就可以有效地抵御Do S的攻击。同样的办法也适用于Vo IP系统, 当两个IP终端进行通话时, 一旦信令通过中心点的信令服务进程建立之后, 媒体流只存在于两个终端之间;只有当IP终端上发起的呼叫需要透过网关进入PSTN公网时, 才会占用媒体网关内的DSP处理器资源。所以, 我们需要对信令和媒体流两类对外的地址和端口进行保护。同时, 尽可能少的保留所需要的端口, 例如基于Web方式的管理地址, 并且尽可能多的关闭不需要的服务进程。需要提醒的是H.323/SIP在穿越NAT和防火墙的时候会遇到障碍, 这是由于协议本身的原因造成的, 但通过启用“应用层网关” (Application Layer Ga-teway简称ALG) 之后, 就可以解决这个问题;随着呼叫量的增长, 可以采用外置媒体流代理服务器 (RTP Media Portal) 的办法来支持更大规模的Vo IP系统。
(3) 选择合适的产品和解决方案
目前不同厂家的产品体系构架不尽相同, 操作平台也各有偏爱。我们无法断言哪种操作系统最为安全可靠, 但厂家需要有相应的技术保障来让用户相信各自的产品有能力抵御日益繁多的病毒侵袭。同时, 很多厂家的产品也采用了管理网段和用户的IP话音网段在物理上隔离的机制, 尽可能少的将端口暴露在外网上。北电网络推出的Succession 1000/1000M就采用了这些设计思路, 将管理网段和用户网段彻底在物理上隔离, 并采用VxWorks操作系统, 尽可能多的屏蔽外界对系统的影响。此外, Vo IP的安全问题和数据网络的安全本质上是紧密相关的, 需要厂家提供的不仅仅是一套设备, 更多的是如何帮助用户在现有的网络上提高安全和可靠性的思路和一些技巧。
(4) 话音数据流的加密
目前H.323协议簇中有一成员-H.235 (又称为H.Secure) 是负责身份验证、数据完整性和媒体流加密的。更实际的情况是厂家会选用各自私有的协议来保证Vo IP的安全性。但即使没有H.235或其他的手段, 想要偷听一个IP电话呼叫仍要比偷听一个普通电话要困难的多, 因为你需要编解码器算法和相应的软件。即使你获得了软件并且成功连接到公司的IP话音网段, 仍然有可能一无所获。因为目前很多企业内部的数据网络都采用以太网交换机的10/100M端口到桌面而不是HUB, 因而无法通过Sniffer的方式窃取信息。
(5) 合理制定员工拨号权限
很多厂家已经将传统交换机的丰富功能移植到了Vo IP系统, 这些功能将有效地抑制窃取登陆密码进行盗打的现象。给IP电话设定能否拨打长途或特定号码的权限, 或者是通过授权码的方式要求拨打长途号码前必须输入正确的若干位密码等方式, 可以简单的解决上述问题。
IP网络所存在的安全问题一直以来受到大家的关注。而作为数据网络上的一种新兴的应用, Vo IP所面临的一些安全隐患, 实际是IP网络上存在的若干问题的延续。只有很好地解决了网络的安全问题, 同时配合产品本身的一些安全认证机制, 基于Vo IP的应用才能够在企业中持久稳定的发挥作用, 并成为解决企业话音通信需求的有效方法。
参考文献
[1]WELCHD, LATHROP S.Wireless security threat taxonomy[A]//Proceedings of the2003IEEE Work-shop on Information Assurance, Jun18-20, 2003, West Point, NY, USA.Los Alamitos, CA, USA:IEEE Computer Society, 2007:76-83.
[2]YANH, RRCCIATO F, LU S, et al.Securing a wireless world[J].Proceedings of the IEEE, 2006, 94 (2) :442-454.
[3]王辉, 胡平.网络安全[J].小型微型计算机系统, 2007, 24 (10) :1861-1864.
防护漏洞 篇2
一般情况下我们使用指针时,错误用法集中在三个方面:
由指针指向的一块动态内存,在利用完后,没有释放内存,导致内存泄露 野指针(悬浮指针)的使用,在指针指向的内存空间使用完释放后,指针指向的内存空间已经归还给了操作系统,此时的指针成为野指针,在没有对野指针做处理的情况下,有可能对该指针再次利用导致指针引用错误而程序崩溃。 Null Pointer空指针的引用,对于空指针的错误引用往往是由于在引用之前没有对空指针做判断,就直接使用空指针,还有可能把空指针作为一个对象来使用,间接使用对象中的属性或是方法,而引起程序崩溃,空指针的错误使用常见于系统、服务、软件漏洞方面。
对于第一和第二种情况,我们可以通过一些代码审计工具在发布之前就能确定导致内存泄露或是野指针存在的地方。比如常见的工具有fority,valgrind等及时发现指针错误引用导致的问题。
对于第三种情况,空指针(Null Pointer)引用导致的错误,依靠代码审计工具很难发现其中的错误,因为空指针的引用一般不会发生在出现空指针然后直接使用空指针情况。往往是由于代码逻辑比较复杂空指针引用的位置会比较远,不容易发现;并且在正常情况下不会触发,只有在特定输入条件下才会引发空指针引用。对于排查此类错误也就更加困难。
本文不会重点讨论内存泄露和野指针的内容,而是通过一些现有的漏洞和实例来分析一下Null Pointer 空指针。从NULL Pointer概念、本质结合静态逆向及内核动态调试技术来了解在win7 32位和win8 32位下系统对Null Pointer处理情况有什么不同;Win8 32位针对Null Pointer添加了哪些防护机制。
防护漏洞 篇3
【关键词】信息网络;安全漏洞;防护措施
1 电力信息网络安全漏洞和防护重要性分析
电力产业是我国经济发展的支柱性产业,在工业化社会电力产业的发展对于经济发展的作用就好比“血液对人体”一样。伴随着信息技术的发展,我国电力企业已经建立了相对比较完善的信息网络系统,通过网络建设和网络化构建电力系统,进一步提高了电力产业整体运行效率,提升电力产业整体的服务水平。
在电力信息网络运行过程中,一般情况下电力系统信息网络和电力运行的是通过实时的控制网路隔离是新的,而且信息网络本身都有网络防毒和防火墙作为保障电力信息网络的基本手段。但是由于电力信息网络是一个比较复杂的系统,由于受到主客观因素的影响,仍然有多种因素可能导致电力系统出现故障,出现大面积断电和停电。2003年美国加州大停电,就对当地经济造成了数亿美元的损失,大面积断电和停电不但会造成经济重大损失,而且对人们的工作和生活造成严重影响。因此综合分析电力信息网络安全隐患和存在的漏洞,并采取对应的策略和防护措施具有现实的需求和必要性。
2 电力信息网络安全漏洞和可能产生的危害
2.1 网络病毒
网络病毒是最常见的安全隐患。网络病毒具有隐蔽性、可复制、传播速度快等特点。网络病毒往往具有种类特征,随着信息技术的发展,网络病毒也呈现出不断深化的迹象。针对电力信息系统网络病毒的特征一般是由于缺乏必要的管理措施,或者是由于使用移动硬盘存储设备而导致电力信息网络系统感染病毒。
网络病毒对电力信息系统的破坏是十分严重的,一旦感染网络病毒,轻者可能对电力信息系统的运行产生阻碍作用,导致数据丢失、信息无法及时共享,重者则有可能导致电力信息系统的瘫痪,严重影响整个电力系统整体功能的发挥。不但如此,网络病毒还可能对电力设备造成破坏,带来难以估量的损失。
2.2 网络黑客
网络黑客是利用网路技术和一定隐秘的程序来攻击电力信息系统,网络黑客相比于网络病毒,其破坏力更大。网络黑客是电力信息系统在运行中可能存在的重大安全隐患,也是需要重点防范的对象。网络黑客会轻而易举的获取想要的数据,并导致电力信息系统数据的丢失和系统崩溃。网络黑客对电力信息系统破坏的方式主要有:①直接穿越局域网和电力应用系统对电力系统中的所有的基层实施系统进行控制,最普遍的是数字控制系统(DCS)。②黑客也可以通过网络之间的联系,通过其中某个实时系统来对另外的实施系统进行控制和破坏。③是从电力信息网络的外部进行攻击,通过Internet对电力系统信息网络进行破坏。
2.3 内部操作恶意操作
电力信息系统安全漏洞还表现在内部人员恶意操作。恶意操作是蓄意的破坏,信息系统在运行过程中需要人的监督和控制,一旦人的因素存在主管恶意,那么网络信息系统就会出现问题。电力信息系统安全管理在制度上规范可能比较健全,但是对于人的控制往往属于防范,一旦出现人为因素,将对电力信息系统造成更大灾难。
2.4 人员内部操作不当
电力信息系统及子系统的运行、管理与控制是一个复杂工程。需要专业人才和高技术人才才能完成。在电力信息系统运行过程中,存在的一个安全隐患还表现在人员内部操作不当,这种操作可能并不是故意而为,大多情况是专门的人员并不具备完全的知识和技能,或者由于一时的疏忽所致。操作风险也是造成电力信息系统出现安全隐患的重要方面。
3 电力信息系统安全防范措施分析
针对以上对电力系统可能存在的安全隐患和危害,笔者认为应该从以下几个方面加强电力信息系统安全防范。
3.1提高对安全性的认识
首先,电力企业要加强对电力系统信息网络安全的认识,建立完善的信息网络安全防护体系,采取分层、分区管理,其中又可以将区域管理分成生产管理区、实时控制区、非控制生产区和管理信息区,并将区域之间的网络物理隔离设备进行隔离。其次,要加强人员素质管理,通过网络安全培训和技能训练,提高网络管理人员的素质和能力。最后,加强对信息网络体系的密码、技术、数据管理,提高信息网络的安全系数。
3.2充分利用各种信息网络安全技术
(1)采取漏洞缺陷检查技术,对电力系统信息网络安全体系中的重要网络设备进行检查,并对其进行风险评估,让所有的设备在最佳的状况下运行。
(2)采取针对性的安全技术
①防火墙技术:防火墙作为网络与网络安全域之间的唯一出入口,可以按照电力企业所制定的政策,对网络中出入的信息进行严格的检查、控制,对于危险信息进行防御、攻击。电力企业可以根据事先制定的安全策略和自身的安全需求,在防火墙配置中设置相应的访问规则,让其自动地对网络信息数据进行检查,对于非授权的链接给予强力的防护。
②防病毒系统:电力企业可以采用最新的防病毒产品对网络PC机、Internet 网关和服务器进行保护。防病毒系统都带有管理功能,可以对文件进行更新、控制企业的反病毒安全机制,并对网络系统性能进行优化,对病毒进行预防和处理,提高网络的安全性。
3.3采取科学的软件配置
①数据加密技术:“加密”是指一种可以对网络传输数据的访问权进行限制的技术,还可以对原始数据进行加密使之成为密文的技术。“加密”功能是防止恶意客户对机密数据文件进行查看、破坏,防止数据泄露。
②指纹认证技术:加强对用户身份管理,电力企业在安装硬件防火墙的基础上,采取更先进的身份认定技术如指纹认证技术。提高电力系统信息网络的安全性。此外虚拟网络技术也是防范的一个重要措施。
结论
网络安全是电力信息系统未来需要重点关注的方向,应通过加强网络安全管理,充分利用网络技术等手段,构建电力信息系统安全防范体系,以切实提高电力信息系统运行效率和质量。
参考文献
[1]陈丽.论电力系统信息网络安全[J].科技与信息,2012,5(5):1074-1076.
[2]张勇.浅析电力系统信息网络安全防护及措施[J].广东科技,2012,5(9):32.
防护漏洞 篇4
关键词:注射,技术,测试
1 Oracle 简单介绍
Oracle作为一款比较早期出现的RDBMS数据库, 市场占有率比较大, 经常用在一些大型数据库上。它本身除了很好地支持各种SQL语句外, 还提供了各种丰富的包, 存储过程, 甚至支持java和创建library等特性, 如此强大的功能为Hacking提供了很好的便利。
Oracle自身有很多默认的帐户, 并且有很多的存储过程, 这些存储过程是由系统建立的, 很多默认都是对public开放的, 在过去的几年里公布了很多oracle的漏洞, 包括溢出和SQL注射在内的许多漏洞。在这里面, SQL注射漏洞显得格外严重, 因为在Oracle里 , 在不加其 他关键字AUTHIDCURRENT_USER的情况下, 创建的存储过程在运行时是以创建者身份运行的, 而public对这些存储过程都有权限调用, 所以一旦自带存储过程存在注射的话, 很容易让普通用户提升到Oracle系统权限。Oracle本身内置了很多的帐户, 其中一些帐户都有默认的密码并且具有CONNECT的权限, 这样如果oralce的端口没有受到防火墙的保护又可以被人远程连接的话, 就可以被人利用默认帐户远程登陆进系统然后利用系统里的存储过程的SQL注射漏洞, 系统就会沦陷, 当然, 登陆进oracle还需要sid, 不过这也并不困难, oracle的tnslintener默认没有设置密码, 完全可以用tnscmd.pl用services命令查出系统的sid, 这也是非常经典的入侵oracle的方式。
2 Oracle Web Hacking 技术背景
oracle丰富的系统表。oracle几乎所有的信息都存储系统表里, 当前数据库运行的状态, 当前用户的信息, 当前数据库的信息, 用户所能访问的数据库和表的信息......系统表就是整个数据库的核心部分, 通过恰当地查询需要的系统表, 几乎可以获得所有的信息。如sys.v_$option就包含了当前数据库的一些信息, 如是否支持java等, all_tables里就包含了所有的表信息, all_tab_colmuns包含所有的列信息等等, 为我们获得信息提供了非常大的便利, 后面将有关于如何利用系统表获取敏感信息的描述。
在oracle的各种漏洞里, 需要特别说下存储过程的注射, 存储过程和函数一样是接受用户的输入然后送到数据库服务器解析执行, 如果是采取的组装成SQL字符串的形式执行的话, 就很容易将数据和命令混淆, 导致SQL注射。但是根据注射发生的点不同, 一样地注射漏洞的性质也不同。Oracle使用的是PL/SQL, 漏洞发生在select等DML语句的, 因为不支持多语句的执行, 所以如果想运行自己的语句如GRANT DBA TO LOVEHSELL这些DDL语句的话, 就必须创建自己的函数或存储过程, 如果没有这相关的权限还可以利用cursor注射, 用dbms_sql包来饶过限制。大多数的注射正是上面这些有限制的注射, 必须依靠自己创建的一些其他包或者cursor来实现提升权限的目的, 但是还是有些非常少见但是注射环境非常宽松的漏洞, 就是用户的输入被放在begin和end之间的匿名pl/sql块的注射, 这种环境下的注射可以直接注射进多语句, 几乎没有任何限制。
3 Oracle Web Hacking 基本思路
如何确定目标, 主要是如何判断数据库属于oracle, 根据数据库的特性很容易判断出来, oracle支持--类型注释, 但是不支持;分隔执行多语句, oracle有很多系统表, 譬如all_tables, 通过对这些表的访问也可以判断出是否属于oracle, 另在oracle里的一些函数也可以用来判断, 譬如utl_http.request这些, 语言上的小细节也可以用来区分系统, 譬如在oracle里||是连接符号, 但是在其他数据库里就不是, 所以and chr (123) ||chr (123) =chr (123) ||chr (123) 这样的, 如果可以顺利执行, 那么就基本应该是oracle了, 另外, 一些脚本在出现数据库查询错误时, 对错误信息没有处理, 也会泄露真实的后台数据库, 这个可以很明显地看出来。
然后需要确定的是注射点的类型, 一般的情况下, 我们进入的参数不是数字类型就基本是字符类型, 对于数字类型的基本不用考虑什么, 很容易添加--注释字符就可以让语句正确闭合了, 如果是字符类型的就要考虑如何让整个语句正确, 通常是添加'以及--这些注射字符来构造自己的注射环境。在一些复杂的情况下, 如同一个参数在多个sql语句和逻辑里出现, 就要自己小心构造出符合环境的注射语句了。
在确定目标数据库为Oracle并且可以注射的时候, 就可以开始尝试构造语句了。一般首先要进行的是判断当前的权限, 在Oracle数据库里权限比较高的是DBA权限, 拥有Oracle数据库的所有权限, 另外如果当前用户的权限授予不对的话, 也可以实现跨库查询的效果, 可以通过对dba_tables这样的dba的表进行尝试访问来测试是否是dba。在一般的注射中, 分为select类型注射, insert类型注射以及update类型等。update和insert类型的注射可以根据上下文来更改数据库中的数据, 如利用update注射将表中某个重要字段更改成我们想要的值, 即使这些数据库无关紧要也没关系, 我们可以利用select子语句来将我们需要的数据查询出来然后在另外某个地方将这个数据读出来, 只要遵循数据库的语法, 实现自己的目的就可以了。在这里主要说下select类型的注射, 如果我们能控制select语句的一部分的话, 就可能实现这种类型注射, 如果查询的结果可以返回到页面中的时候, 还可以尝试使用union查询出结果, 直接将内容显示在页面当中, 这是最方便的一种。事实上后面可以看到, 无论是什么注射, 在oracle的web环境下, 都可以直接执行系统命令返回shell。
Oracle中获得敏感数据, 首先就是oracle有系统表, 任何有权限获得数据都可以从这里获得, 关键的系统表有all_tables, all_objects等, 都是有权限能访问的, 包括别人赋予你权限的, 所以如果你的权限是dba的话, 这能看到系统中所有的表, 注射中一个技巧就是如果你需要从后台登陆但是不知道密码就可以在这里使用了, 譬如猜测列名含不含有password等方法。
4 关于防护
首先就是尽量有好的编程习惯, 避免使用字符串连接的方式来执行Sql语句, 如果一定要采用字符串连接方式来执行Sql, 那也对进入的参数必须做好过滤, 是数字类型的话就强制为数字, 是字符串类型的就要做好过滤, 从数据库等其他途径过来的数据也必须做好验证, 在web app上杜绝Sql注射漏洞。另外在Oracle方面就是要做好对1521端口的防火墙过滤, 避免被人直接登陆, 对一些不需要的包和存储过程可以考虑删除, 对一些Sql注射漏洞也要及时做好补丁, 避免数据库的沦陷。
参考文献
[1]David A.Solomon[美].计算机网络管理[M].北京:清华大学出版社, 1999.
[2]Douglas E.Comer[美].TCP/IP网络互连技术[M].北京:清华大学出版社, 1998.
【防护漏洞】推荐阅读:
JEECMS漏洞(文件上传)漏洞预警09-09
帝国CMS 留言本多字节漏洞漏洞预警10-10
MetInfov5.1.3 任意文件上传漏洞漏洞预警10-24
注入漏洞10-21
漏洞管理05-23
漏洞补丁11-11
溢出漏洞12-15
漏洞问题12-16