澳门新浦京娱乐场网站-www.146.net-新浦京娱乐场官网
做最好的网站

能够感染Linux路由器,SQL注入攻击的种类和防范手

Web服务器现在已经成为了病毒、木马的重灾区。不但企业的门户网站被篡改、资料被窃取,而且还成为了病毒与木马的传播者。有些Web管理员采取了一些措施,虽然可以保证门户网站的主页不被篡改,但是却很难避免自己的网站被当作肉鸡,来传播病毒、恶意插件、木马等等。笔者认为,这很大一部分原因是管理员在Web安全防护上太被动。他们只是被动的防御。为了彻底提高Web服务器的安全,笔者认为,Web安全要主动出击。具体的来说,需要做到如下几点。

【51CTO.com 专家特稿】观察近来的一些安全事件及其后果,安全专家们已经得到一个结论,这些威胁主要是通过SQL注入造成的。虽然前面有许多文章讨论了SQL注入,但今天所讨论的内容也许可帮助你检查自己的服务器,并采取相应防范措施。

一、在代码编写时就要进行漏洞测试

Doctor Web的网络安全研究专家们在Linux路由器上发现了一些危险的新型木马病毒,并对这些木马进行了分析和检测。其中的一个木马名为Linux.PNScan.1,它可以感染ARM,MIPS以及PowerPC架构的设备。这个木马以及带有这个木马的应用程序可以入侵网络设备,网络犯罪分子可以用它来攻击PHPMyAdmin的管理员控制面板,这个面板是管理人员用来管理关系数据库的。攻击者还可以使用这个木马来对身份验证证书进行暴力破解,从而通过SSH协议以未经授权的身份获取存储在各种设备以及服务器中的数据。

SQL注入攻击的种类

现在的企业网站做的越来越复杂、功能越来越强。不过这些都不是凭空而来的,是通过代码堆积起来的。如果这个代码只供企业内部使用,那么不会带来多大的安全隐患。但是如果放在互联网上使用的话,则这些为实现特定功能的代码就有可能成为攻击者的目标。笔者举一个简单的例子。在网页中可以嵌入SQL代码。而攻击者就可以利用这些SQL代码来发动攻击,来获取管理员的密码等等破坏性的动作。有时候访问某些网站还需要有某些特定的控件。用户在安装这些控件时,其实就有可能在安装一个木马(这可能访问者与被访问者都没有意识到)。

澳门新浦京娱乐场网站 1

知彼知己,方可取胜。首先要清楚SQL注入攻击有哪些种类。

为此在为网站某个特定功能编写代码时,就要主动出击。从编码的设计到编写、到测试,都需要认识到是否存在着安全的漏洞。笔者在日常过程中,在这方面对于员工提出了很高的要求。各个员工必须对自己所开发的功能负责。至少现在已知的病毒、木马不能够在你所开发的插件中有机可乘。通过这层层把关,就可以提高代码编写的安全性。

澳门新浦京娱乐场网站,这种木马病毒的传播方式则让它显得更加的独特,Doctor Web的安全分析专家推测,病毒的制造者会将原始的Linux.PNScan.1安装在一个被入侵的路由器上。他们会利用ShellShock漏洞来运行一个相应的设置脚本,然后,恶意软件就加载完成了,这个属于Linux.BackDoor.Tsunami家族的木马也就成功地安装在了这个设备上,然后它便会通过Linux.PNScan.1进行传播和扩散。这个恶意程序只有一个目标,就是通过暴力破解来获取路由器的访问密码。如果入侵成功,这个木马会在路由器中加载一个恶意脚本,这个脚本会根据路由器的系统架构(ARM,MIPS,或者PowerPC)来下载相应的后门程序。如果网络犯罪分子成功地通过利用Shellshock漏洞来入侵了一台x86架构的Intel计算机,那么这个脚本还会下载一个相对应的后门程序。

1.没有正确过滤转义字符

二、对Web服务器进行持续的监控

Linux.PNScan.1一旦运行,它就会开始接收操作参数,并根据这些数据来决定攻击的类型以及需要扫描的IP地址范围。在攻击的过程中,该木马会利用远程代码执行漏洞来运行一个相对应的SH脚本。也就是说,该木马会对Linksys路由器进行攻击,路由器中的恶意程序还会利用HNAP(家庭网络管理协议)中的漏洞以及CVE-2013-2678漏洞。恶意软件还会使用一个特殊字典,并对登录系统时所使用的用户名和密码组合进行破解。除此之外,Linux.PNScan.1还可以用同样的方法来利用ShellShock漏洞(CVE-2014-6271)以及Fritz!Box路由器系统中的远程命令漏洞。

在用户的输入没有为转义字符过滤时,就会发生这种形式的注入式攻击,它会被传递给一个SQL语句。这样就会导致应用程序的终端用户对数据库上的语句实施操纵。比方说,下面的这行代码就会演示这种漏洞:

冰冻三尺、非一日之寒。这就好像人生病一样,都有一个过程。病毒、木马等等在攻击Web服务器时,也需要一个过程。或者说,在攻击取得成功之前,他们会有一些试探性的动作。如对于一个采取了一定安全措施的Web服务器,从攻击开始到取得成果,至少要有半天的时间。如果Web管理员对服务器进行了全天候的监控。在发现有异常行为时,及早的采取措施,将病毒与木马阻挡在门户之外。这种主动出击的方式,就可以大大的提高Web服务器的安全性。

经过Dr.Web的安全研究人员鉴定,Linux.PNScan.1用于感染设备而加载的恶意应用程序的类型属于Linux.BackDoor.Tsunami.133和Linux.BackDoor.Tsunami.144。当这些恶意程序渗透进了被入侵的路由器之后,它们会将自己添加进设备的自动运行列表并在注册表种进行注册。完成之后,它们就可以通过IRC来控制列表中的服务器地址,以及与服务器建立连接。这些后门程序的功能非常的多,它们可以发动各种分布式拒绝服务(DDoS)攻击(包括ACK Flood攻击,SYN Flood攻击,以及UDP Flood攻击),还可以执行入侵者所发送的相关命令。比如说,通过执行攻击者所发出的命令,恶意程序会下载Tool.Linux.BrutePma.1。攻击者可以使用这个恶意工具来攻击PHPMyAdmin(用于管理关系数据库)的管理控制面板。恶意软件启动之后,这个脚本会接收需要扫描的IP地址范围以及两个导入的文件,其中一个文件是带有登录名和密码组合的字典文件,另一个文件则带有PMA管理控制面板的路径信息。

statement := "SELECT * FROM users WHERE name = '"   userName   "';"

笔者现在维护的Web服务器有好几十个。现在专门有一个小组,来全天候的监控服务器的访问。平均每分钟都可以监测到一些试探性的攻击行为。其中99% 以上的攻击行为,由于服务器已经采取了对应的安全措施,都无功而返。不过每天仍然会遇到一些攻击行为。这些攻击行为可能是针对新的漏洞,或者采取了新的攻击方式。在服务器上原先没有采取对应的安全措施。如果没有及时的发现这种行为,那么他们就很有可能最终实现他们的非法目的。相反,现在及早的发现了他们的攻击手段,那么我们就可以在他们采取进一步行动之前,就在服务器上关掉这扇门,补上这个漏洞。

还有一个名为Linux.BackDoor.Tsunami.150的木马,它可以根据网络犯罪分子所提供的命令来发动分布式拒绝服务(DDoS)攻击,当然了,它也可以执行其他的恶意行为。这个后门程序可以利用SSH协议来对远程节点的访问密码进行暴力破解。如果攻击成功了,Linux.BackDoor.Tsunami.150会根据攻击的类型来执行相应的脚本,并根据情况来下载Linux.BackDoor.Tsunami.133或者Linux.BackDoor.Tsunami.144,它还可以执行相应的脚本来收集设备操作系统的相关信息。实际上,Linux.BackDoor.Tsunami家族的后门程序可以帮助攻击者,在任何一个被入侵的设备上加载任意一种木马病毒。

这种代码的设计目的是将一个特定的用户从其用户表中取出,但是,如果用户名被一个恶意的用户用一种特定的方式伪造,这个语句所执行的操作可能就不仅仅是代码的作者所期望的那样了。例如,将用户名变量(即username)设置为:

笔者在这里也建议,企业用户在选择互联网Web服务器提供商的时候,除了考虑性能等因素之外,还要评估服务提供商能否提供全天候的监控机制。在Web安全上主动出击,及时发现攻击者的攻击行为。在他们采取进一步攻击措施之前,就他们消除在萌芽状态。

除此之外,Doctor Web的安全研究人员还检测到了Linux.PNScan.1的一个变种木马,这个木马被Dr.Web以Linux.PNScan.1添加进了公司的病毒数据库中。不同于它的前身,这种木马不会尝试利用路由系统中的漏洞,而是使用标准密码来对远程设备进行非法访问。这种木马会生成一个IP地址列表,然后通过SSH协议,并使用下列键值对组合来与这些目标IP地址进行连接:root:root;admin:admin;或者ubnt:ubnt。如果连接建立成功,该木马会在目标设备的”/tmp/.xs”文件夹中植入并运行一系列的文件(根据路由器的型号,木马会根据路由器的系统架构(ARM,MIPS,MIPSEL以及x86)来选择相应的文件集合)。Linux.PNSCAN.2会周期性地扫描列表中的设备,以确保这些设备仍然处于被感染的状态。如果某一设备中的病毒被清除了,该木马会在次对这个设备进行感染。

a' or 't'='t,此时原始语句发生了变化:

三、设置蜜罐,将攻击者引向错误的方向

Doctor Web的安全分析专家在网络犯罪分子所使用的服务器上,检测到了很多其他的恶意程序,其中有一个名为Trojan.Mbot的木马引起了研究人员的注意。这个木马专门以WordPress网站,Joomal平台,以及类似于osCommerce等网上商铺管理系统的网站为攻击目标。另一个由研究人员检测到的木马病毒名为Perl.Ircbot.13。这个木马的功能是寻找存在于WordPress网站,Joomla,e107以及WHMCS平台中的漏洞,该木马还可以在使用了在线商店管理系统的网站中查找漏洞,例如Zen Cart和osCommerce等著名网站。受到攻击的网站将作为一个代理服务器,网络犯罪分子可以使用这些网站来传播木马和恶意软件。Doctor Web的安全研究专家还检测到了一个名为Tool.Linux.BruteSmtp.1的恶意程序,这个恶意软件可以暴力破解SMTP服务器。除此之外,Doctor Web的安全分析人员还检测到了一个能够大规模发送垃圾邮件的应用程序。这个应用程序名为Perl.Spambot.2,这个应用程序能够通过发送合法的VISA邮件信息,来传播网络钓鱼信息。

SELECT * FROM users WHERE name = 'a' OR 't'='t';

在军队中,有时候会给军人一些“伪装”,让敌人分不清真伪。其实在跟病毒、木马打交道时,本身就是一场无硝烟的战争。为此对于Web服务器采取一些伪装,也能够将攻击者引向错误的方向。等到供给者发现自己的目标错误时,管理员已经锁定了攻击者,从而可以及早的采取相应的措施。笔者有时候将这种主动出击的行为叫做蜜罐效应。简单的说,就是设置两个服务器。其中一个是真正的服务器,另外一个是蜜罐。现在需要做的是,如何将真正的服务器伪装起来,而将蜜罐推向公众。让攻击者认为蜜罐服务器才是真正的服务器。要做到这一点的话,可能需要从如下几个方面出发。

澳门新浦京娱乐场网站 2

如果这种代码被用于一个认证过程,那么这个例子就能够强迫选择一个合法的用户名,因为赋值't'='t永远是正确的。

一是有真有假,难以区分。如果要瞒过攻击者的眼睛,那么蜜罐服务器就不能够做的太假。笔者在做蜜罐服务器的时候,80%以上的内容都是跟真的服务器相同的。只有一些比较机密的信息没有防治在蜜罐服务器上。而且蜜罐服务器所采取的安全措施跟真的服务器事完全相同的。这不但可以提高蜜罐服务器的真实性,而且也可以用来评估真实服务器的安全性。一举两得。

据了解,目前已经有1439种设备感染了上述的恶意程序;我们还确定了其中受感染设备的地理位置分布情况,绝大多数的设备感染发生在日本,还有大量的攻击发生在德国,美国以及台湾等地区。攻击事件分布区域的详细信息可以在下面这张图片中看到:

在一些SQL服务器上,如在SQL Server中,任何一个SQL命令都可以通过这种方法被注入,包括执行多个语句。下面语句中的username的值将会导致删除“users”表,又可以从“data”表中选择所有的数据(实际上就是透露了每一个用户的信息)。

二是需要有意无意的将攻击者引向蜜罐服务器。攻击者在判断一个Web服务器是否值得攻击时,会进行评估。如评估这个网站的流量是否比较高。如果网站的流量不高,那么即使被攻破了,也没有多大的实用价值。攻击者如果没有有利可图的话,不会花这么大的精力在这个网站服务器上面。如果要将攻击者引向这个蜜罐服务器的话,那么就需要提高这个蜜罐服务器的访问量。其实要做到这一点也非常的容易。现在有很多用来交互流量的团队。只要花一点比较小的投资就可以做到这一点。

澳门新浦京娱乐场网站 3

a';DROP TABLE users; SELECT * FROM data WHERE name LIKE '%

三是可以故意开一些后门让攻击者来钻。作为Web服务器的管理者,不仅关心自己的服务器是否安全,还要知道自己的服务器有没有被人家盯上。或者说,有没有被攻击的价值。此时管理者就需要知道,自己的服务器一天被攻击了多少次。如果攻击的频率比较高,管理者就高兴、又忧虑。高兴的是自己的服务器价值还蛮大的,被这么多人惦记着。忧虑的是自己的服务器成为了众人攻击的目标。就应该抽取更多的力量来关注服务器的安全。

这些恶意程序的签名信息已经被添加进了Dr.Web公司的Linux病毒数据库之中了。

这就将最终的SQL语句变成下面这个样子:

四、专人对Web服务器的安全性进行测试

SELECT * FROM users WHERE name = 'a';DROP TABLE users; SELECT * 
FROM DATA WHERE name LIKE '%';

俗话说,靠人不如靠自己。在Web服务器的攻防战上,这一个原则也适用。笔者建议,如果企业对于Web服务的安全比较高,如网站服务器上有电子商务交易平台,此时最好设置一个专业的团队。他们充当攻击者的角色,对服务器进行安全性的测试。这个专业团队主要执行如下几个任务。

其它的SQL执行不会将执行同样查询中的多个命令作为一项安全措施。这会防止攻击者注入完全独立的查询,不过却不会阻止攻击者修改查询。

一是测试Web管理团队对攻击行为的反应速度。如可以采用一些现在比较流行的攻击手段,对自己的Web服务器发动攻击。当然这个时间是随机的。预先 Web管理团队并不知道。现在要评估的是,Web管理团队在多少时间之内能够发现这种攻击的行为。这也是考验管理团队全天候跟踪的能力。一般来说,这个时间越短越好。应该将这个时间控制在可控的范围之内。即使攻击最后没有成功,Web管理团队也应该及早的发现攻击的行为。毕竟有没有发现、与最终有没有取得成功,是两个不同的概念。

2.Incorrect type handling

二是要测试服务器的漏洞是否有补上。毕竟大部分的攻击行为,都是针对服务器现有的漏洞所产生的。现在这个专业团队要做的就是,这些已发现的漏洞是否都已经打上了安全补丁或者采取了对应的安全措施。有时候我们都没有发现的漏洞是无能为力,但是对于这些已经存在的漏洞不能够放过。否则的话,也太便宜那些攻击者了。

如果一个用户提供的字段并非一个强类型,或者没有实施类型强制,就会发生这种形式的攻击。当在一个SQL语句中使用一个数字字段时,如果程序员没有检查用户输入的合法性(是否为数字型)就会发生这种攻击。例如:

...

statement := "SELECT * FROM data WHERE id = "   a_variable   ";"

从这个语句可以看出,作者希望a_variable是一个与“id”字段有关的数字。不过,如果终端用户选择一个字符串,就绕过了对转义字符的需要。例如,将a_variable设置为:1;DROP TABLE users,它会将“users”表从数据库中删除,SQL语句变成:SELECT * FROM DATA WHERE id = 1;DROP TABLE users;

3.数据库服务器中的漏洞

有时,数据库服务器软件中也存在着漏洞,如MYSQL服务器中mysql_real_escape_string()函数漏洞。这种漏洞允许一个攻击者根据错误的统一字符编码执行一次成功的SQL注入式攻击。

4.盲目SQL注入式攻击

当一个Web应用程序易于遭受攻击而其结果对攻击者却不见时,就会发生所谓的盲目SQL注入式攻击。有漏洞的网页可能并不会显示数据,而是根据注入到合法语句中的逻辑语句的结果显示不同的内容。这种攻击相当耗时,因为必须为每一个获得的字节而精心构造一个新的语句。但是一旦漏洞的位置和目标信息的位置被确立以后,一种称为Absinthe的工具就可以使这种攻击自动化。

5.条件响应

注意,有一种SQL注入迫使数据库在一个普通的应用程序屏幕上计算一个逻辑语句的值:

SELECT booktitle FROM booklist WHERE bookId = 'OOk14cd' AND 1=1

这会导致一个标准的面面,而语句

SELECT booktitle FROM booklist WHERE bookId = 'OOk14cd' AND 1=2在页面易于受到SQL注入式攻击时,它有可能给出一个不同的结果。如此这般的一次注入将会证明盲目的SQL注入是可能的,它会使攻击者根据另外一个表中的某字段内容设计可以评判真伪的语句。

6.条件性差错

如果WHERE语句为真,这种类型的盲目SQL注入会迫使数据库评判一个引起错误的语句,从而导致一个SQL错误。例如:

能够感染Linux路由器,SQL注入攻击的种类和防范手段。SELECT 1/0 FROM users WHERE username='Ralph'。显然,如果用户Ralph存在的话,被零除将导致错误。

7.时间延误

时间延误是一种盲目的SQL注入,根据所注入的逻辑,它可以导致SQL引擎执行一个长队列或者是一个时间延误语句。攻击者可以衡量页面加载的时间,从而决定所注入的语句是否为真。

以上仅是对SQL攻击的粗略分类。但从技术上讲,如今的SQL注入攻击者们在如何找出有漏洞的网站方面更加聪明,也更加全面了。出现了一些新型的SQL攻击手段。黑客们可以使用各种工具来加速漏洞的利用过程。我们不妨看看the Asprox Trojan这种木马,它主要通过一个发布邮件的僵尸网络来传播,其整个工作过程可以这样描述:首先,通过受到控制的主机发送的垃圾邮件将此木马安装到电脑上,然后,受到此木马感染的电脑会下载一段二进制代码,在其启动时,它会使用搜索引擎搜索用微软的ASP技术建立表单的、有漏洞的网站。搜索的结果就成为SQL注入攻击的靶子清单。接着,这个木马会向这些站点发动SQL注入式攻击,使有些网站受到控制、破坏。访问这些受到控制和破坏的网站的用户将会受到欺骗,从另外一个站点下载一段恶意的JavaScript代码。最后,这段代码将用户指引到第三个站点,这里有更多的恶意软件,如窃取口令的木马。

以前,我们经常警告或建议Web应用程序的程序员们对其代码进行测试并打补丁,虽然SQL注入漏洞被发现和利用的机率并不太高。但近来攻击者们越来越多地发现并恶意地利用这些漏洞。因此,在部署其软件之前,开发人员应当更加主动地测试其代码,并在新的漏洞出现后立即对代码打补丁。

防御和检查SQL注入的手段

1.使用参数化的过滤性语句

要防御SQL注入,用户的输入就绝对不能直接被嵌入到SQL语句中。恰恰相反,用户的输入必须进行过滤,或者使用参数化的语句。参数化的语句使用参数而不是将用户输入嵌入到语句中。在多数情况中,SQL语句就得以修正。然后,用户输入就被限于一个参数。下面是一个使用Java和JDBC API例子:

PreparedStatement prep = conn.prepareStatement("SELECT * FROM USERS WHERE
PASSWORD=?");

prep.setString(1, pwd);

总体上讲,有两种方法可以保证应用程序不易受到SQL注入的攻击,一是使用代码复查,二是强迫使用参数化语句的。强迫使用参数化的语句意味着嵌入用户输入的SQL语句在运行时将被拒绝。不过,目前支持这种特性的并不多。如H2 数据库引擎就支持。

2.还要避免使用解释程序,因为这正是黑客们借以执行非法命令的手段。

3.防范SQL注入,还要避免出现一些详细的错误消息,因为黑客们可以利用这些消息。要使用一种标准的输入确认机制来验证所有的输入数据的长度、类型、语句、企业规则等。

4.使用专业的漏洞扫描工具。但防御SQL注入攻击也是不够的。攻击者们目前正在自动搜索攻击目标并实施攻击。其技术甚至可以轻易地被应用于其它的Web架构中的漏洞。企业应当投资于一些专业的漏洞扫描工具,如大名鼎鼎的Acunetix的Web漏洞扫描程序等。一个完善的漏洞扫描程序不同于网络扫描程序,它专门查找网站上的SQL注入式漏洞。最新的漏洞扫描程序可以查找最新发现的漏洞。

5.最后一点,企业要在Web应用程序开发过程的所有阶段实施代码的安全检查。首先,要在部署Web应用之前实施安全测试,这种措施的意义比以前更大、更深远。企业还应当在部署之后用漏洞扫描工具和站点监视工具对网站进行测试。

Web安全拉警报已经响起,安全形式异常严峻,企业绝对不应当草率从事。安全重于泰山!

【51CTO.COM 独家特稿,转载请注明出处及作者!】

【相关文章】

  • SQL注入攻击成为新威胁将挑战操作系统安全
  • 防范SQL注入攻击的新办法

【责任编辑:于捷 TEL:(010)68476606】

  • 澳门新浦京娱乐场网站 4) 给力)

    (0票)

  • 澳门新浦京娱乐场网站 5) 动心)

    (0票)

  • 澳门新浦京娱乐场网站 6) 废话)

    (0票)

  • 澳门新浦京娱乐场网站 7) 专业)

    (0票)

  • 澳门新浦京娱乐场网站 8) 标题党)

    (0票)

  • 澳门新浦京娱乐场网站 9) 路过)

    (0票)

原文:SQL注入攻击的种类和防范手段 返回网络安全首页

本文由澳门新浦京娱乐场网站发布于服务器,转载请注明出处:能够感染Linux路由器,SQL注入攻击的种类和防范手