奇宝库 > 网站为什么容易被攻击

网站为什么容易被攻击

为什么网站容易受到攻击?每个站长都不希望自己的网站被攻击。未雨绸缪,找出发作的原因,减少一些麻烦,才是最重要的。通过分析和研究如何防止网站被攻击,也是非营利组织开放Web应用安全项目(OWASP)试图解决的问题之一。本文总结了OWASP提出的十大网络漏洞,包括每个问题的描述、真实案例以及如何修复网站漏洞。

1.注入漏洞

问题:当用户提供的数据作为指令的一部分(将文本指令转换成可执行的机器指令)发送给转换器时,黑客会欺骗转换器。攻击者可以利用注入漏洞创建、读取、更新或删除应用软件上的任何数据。最坏的情况下,攻击者可以利用这些漏洞完全控制应用软件和底层系统,甚至绕过系统底层的防火墙。

真实案例:2006年1月,俄罗斯黑客攻破了罗德岛政府网站,窃取了大量信用卡信息。黑客声称SQL注入攻击窃取了53,000个信用卡账户,而主机服务提供商声称只有4,113个信用卡账户被盗。

如何保护用户:尽量不要使用转换器。OWASP说,“如果你必须使用转换器,那么避免注入攻击的最好方法就是使用安全的API,比如参数化指令和对象关系映射库。”

2.跨站点脚本(XSS)

问题:XSS漏洞是网络应用软件最常见、最致命的安全漏洞,当应用程序将用户数据发送到web浏览器时,如果没有进行身份验证或对内容进行编码,就很容易发生这种情况。黑客可以利用浏览器中的恶意脚本获取用户的数据,破坏网站,插入有害内容,发动钓鱼攻击和恶意攻击。

真实案例:恶意攻击者去年对Paypal发起了攻击。他们将Paypal用户重定向到另一个恶意网站,并警告他们帐户被盗。用户被定向到另一个钓鱼网站,然后输入他们的Paypal登录信息、社会安全号码和信用卡信息。Paypal表示,它在2006年6月修复了这个漏洞。

如何保护用户:使用白名单来验证所有收到的数据,所有来自白名单之外的数据都将被拦截。此外,所有接收到的数据也可以被编码。OWASP说,“认证机制可以检测攻击,而编码可以防止其他恶意攻击者将其他脚本插入到浏览器上运行的内容中。”

3.恶意文件执行

问题:黑客可以远程执行代码,远程安装rootkits或完全突破一个系统。任何接受来自用户的文件名或文件的网络应用软件都是易受攻击的。漏洞可能是用PHP编写的,PHP是网络开发过程中使用最广泛的脚本语言。

真实案例:一名年轻的程序员在2002年发现了Guess网站的漏洞,攻击者可以从Guess数据库中窃取20万名客户的信息,包括用户名、信用卡号和有效期。在第二年被美国联邦贸易委员会调查后,Guess同意升级其安全系统。

如何保护用户:不要将用户提供的任何文件写入基于服务器的资源,如图像和脚本。设置防火墙规则以阻止外部网站和内部系统之间的任何新连接。

4.不安全的直接对象引用

问题:攻击者可以通过使用直接对象引用来访问超出其权限的其他对象。当网站地址或其他参数包含引用对象(如文件、目录、数据库记录或关键字)时,可能会发生这种攻击。

网站通常使用用户的账号作为首要关键字,这可能会在网络界面中暴露用户的账号。

OWASP说:“数据库关键词的引用通常会被泄露。攻击者可以通过猜测或搜索另一个有效的关键字来攻击这些参数。通常,它们都是连续的。”

真实案例:2000年,澳大利亚的一个税务网站被一个用户黑了。那个用户只是在网址里换了个税号账号,就得到17000家企业的详细信息。黑客通过电子邮件通知了17000家企业,告诉他们他们的数据已经被破解。

如何保护用户:使用索引、间接引用映射或其他间接方法来避免直接对象引用的泄漏。如果无法避免使用直接引用,在使用之前必须授权网站访问者。

5.伪造的跨站指令。

问题:这种攻击很简单,但具有破坏性。它可以控制受害者的浏览器,然后向网络应用软件发送恶意指令。这类网站很容易被攻击,部分原因是它们根据会话cookie或“自动记忆”功能授权指令。银行是潜在的目标。

威廉姆斯说,“网络上99%的应用软件都存在跨站指令伪造漏洞。现实中,有人被攻击损失过钱吗?可能连银行都不知道。对于银行来说,整个攻击看起来就像是用户登录了系统,进行了合法的交易。”

真实案例:一个名叫Samy的黑客在2005年底利用一个蠕虫病毒在MySpace网站上获取了100万条“好友”信息,“Samy是我的英雄”的字样自动出现在数千个MySpace页面上。攻击本身可能是无害的,但据说这个案例证明了跨站脚本与伪造的跨站指令相结合的威力。另一个案例发生在一年前,当时谷歌的网站出现了一个漏洞,外部网站可以利用该漏洞改变用户的语言偏好。

如何保护用户:不要依赖浏览器自动提交的凭据或徽标。OWASP说,“解决这个问题的唯一方法是使用浏览器不会记住的自定义id。”

6.信息泄露和错误处理不当

问题:各种应用软件生成并显示给用户的错误信息对黑客来说也是有用的,可能会泄露用户的隐私信息、软件配置或其他内部信息。

OWASP说:“各种网络应用程序经常通过详细的或调试错误信息来揭示内部状态信息。通常,这些信息可能会导致对用户系统的更强大的攻击。”

真实案例:信息泄露是由于错误处理不当而发生的,2005年ChoicePoint的崩溃就是这种类型的典型案例。攻击者伪装成ChoicePoint的合法用户,在公司的人事信息数据库中搜索某人的信息,然后窃取了16.3万名消费者的记录。ChoicePoint后来限制销售包含敏感数据的信息产品。

如何保护用户:使用测试工具,如OWASP的WebScarab项目,检查应用软件的错误信息。OWASP说,“没有经过这种方法测试的应用软件几乎肯定会出现意想不到的错误信息。”

另一种方法是禁止或限制在错误处理中使用详细信息,并且不向用户显示调试信息。

7.不安全的身份验证和会话管理

问题:如果应用软件不能自始至终保护好认证证书和会话ID,用户的管理员账号就会被攻破。应注意隐私侵犯和认证系统的基本原理,并进行有效监控。

OWASP表示,“各种漏洞经常出现在主认证机制中,但攻击往往是通过注销、密码管理、限时登录、自动记忆、秘密问题和账户更新等辅助认证功能进行的。”

真实案例:微软曾经消除了Hotmail中的一个漏洞,恶意的Java script程序员在2002年利用这个漏洞窃取了很多用户密码。该漏洞是由一家网络产品经销商发现的。包含木马程序的邮件可以利用该漏洞改变Hotmail用户的操作界面,迫使用户不断重新输入密码,并在用户不知情的情况下发送给黑客。

如何保护用户:通信和认证证书存储应确保安全。在应用软件认证系统中,传输私有文件的SSL协议应该是唯一的选择,认证证书应该以加密的形式存储。

另一种方法是删除身份验证或会话管理中使用的自定义cookie。

8.不安全的加密存储设备

问题:虽然加密本身是大多数网络应用程序的重要组成部分,但许多网络开发人员并不加密存储中的敏感数据。即使是现有的加密技术,其设计也是粗制滥造。

OWASP说:“这些漏洞可能导致用户敏感数据的泄露,破坏系统的一致性。”。

真实案例:TJX数据被盗案中,被盗信用卡和ATM卡账户数量达4570万。加拿大政府调查后认为,TJX未能升级其数据加密系统。

如何保护用户:不要自己开发加密算法。最好只使用认可的公共算法,如AES、RSA公钥加密和SHA-256或更好的SHA-256。

另外,千万不要在不安全的频道上发送私密信息。

OWASP表示,现在保存信用卡账户是一种常见的做法,但明年是《信用卡行业数据安全标准》的最后期限,以后也不会保存信用卡账户。

9.不安全的通信

问题:与第8个漏洞类似,该漏洞的发生是因为当包含敏感信息的通信需要保护时,网络中流通的数据没有加密。攻击者可以获取各种未受保护的会话内容,包括证书和敏感信息的传输。因此,PCI标准要求对网络上传输的信用卡信息进行加密。

真实案例:这次又是一个关于TJX的例子。据《华尔街日报》报道,调查人员认为,黑客使用了一个类似望远镜的天线和笔记本电脑来窃取无线传输的用户数据。

据悉:“很多零售商的无线网络安全性还不如很多人自己的局域网。TJX使用WEP加密系统代替WPA加密系统,安全性更好。

如何保护用户:在所有经过身份验证的连接上使用SSL,或者在敏感信息传输期间使用SSL。与在线系统相关的客户、合作伙伴、员工和管理员的帐户应加载SSL或类似的加密协议。传输层安全或协议级加密系统用于保护基础设施各部分之间的通信,例如网络服务器和数据库系统之间的通信。

10.对网站地址的访问不受限制。

问题:对某些网页的访问应该仅限于少数特权用户,如管理员。然而,这些网页通常没有真正的保护系统,黑客可以通过猜测找到这些地址。威廉姆斯说,如果一个网站地址对应的id号是123456,那么黑客会猜测123457对应的地址是什么?

针对该漏洞的攻击称为强制浏览,通过猜测周围的链接,找出未受保护的网页。

真实案例:Macworld大会的网站存在缺陷,用户可以免费获得价值1700美元的高级访问权限和乔布斯演讲的内容。该漏洞在客户端而不是服务器端评估用户的访问权限,使人们可以通过浏览器中的Java脚本获得免费权限。

如何保护用户:不要以为用户不知道隐藏地址。的所有网站地址和业务功能都应受到有效的访问控制机制的保护,该机制可以检查用户的身份和权限。

简而言之,对于网站管理者来说,在网站开发和运营过程中,多关注上述网站被攻击的原因,可以减少被攻击的次数。

本文来自网络,不代表本站立场,转载请注明出处: