近年来,企业数据泄露已成常态。2月20日,部分B站网友反映可以使用B站账号和密码登录快视频,事情发生后,有个别网友臆断快视频平台对B站数据库存在脱库行为,360涉嫌盗取用户信息等。
有人用心做站,有人‘用心’攻击”,这是互联网中最常态的问题,那网站为什么容易遭受攻击呢?
本文归纳了OWASP组织提出的前十大网络漏洞,包括对每个问题的描述、真实案例以及如何修复网站漏洞。
一、注入漏洞(Injection)
问题:当用户提供的数据被作为指令的一部分发送到转换器(将文本指令转换成可执行的机器指令)的时候,黑客会欺骗转换器。攻击者可以利用注入漏洞创 建、读取、更新或者删除应用软件上的任意数据。在最坏的情况下,攻击者可以利用这些漏洞完全控制应用软件和底层系统,甚至绕过系统底层的防火墙。
真实案例:俄罗斯黑客在2006年1月份攻破了美国罗得岛政府网站,窃取了大量信用卡资料。黑客们声称SQL注入攻击窃取了5.3万个信用卡账号, 而主机服务供应商则声称只被窃取了4113个信用卡账号。
如何保护用户:尽可能不要使用转换器。OWASP组织说:“如果你必须使用转换器,那么,避免遭受注入攻击的最好方法是使用安全的API,比如参数 化指令和对象关系映射库。”
二、不安全的认证和会话管理(Broken Authentication and Session Management)
问题:如果应用软件不能自始至终地保护认证证书和会话标识,用户的管理员账户就会被攻破。应注意隐私侵犯和认证系统的基础原理并进行有效监控。
OWASP说:“主要验证机制中经常出现各种漏洞,但是攻击往往是通过注销、密码管理、限时登录、自动记忆、秘密问题和账户更新等辅助验证功能展开的。”
真实案例:微软公司曾经消除过Hotmail中的一个漏洞,恶意Java脚本程序员曾经在2002年利用这个漏洞窃取了许多用户密码。这个漏洞是一家联网产品转售商发现的,包含木马程序的电子邮件可以利用这个漏洞更换Hotmail用户的操作界面,迫使用户不断重新输入他们的密码,并在用户不知情的情况下将它们发送给黑客。
如何保护用户:通信与认证证书存储应确保安全性。传输私人文件的SSL协议应该是应用软件认证系统中的唯一选择,认证证书应以加密的形式进行保存。
另一个方法是:除去认证或者会话管理中使用的自定义cookie。
三、跨站脚本(Cross-Site Scripting)(XSS)
问题:XSS漏洞是最普遍和最致命的网络应用软件安全漏洞,当一款应用软件将用户数据发送到不带认证或者不对内容进行编码的网络浏览器时容易发生。黑客可以利用浏览器中的恶意脚本获得用户的数据,破坏网站,插入有害内容,以及展开钓鱼式攻击和恶意攻击。
真实案例:恶意攻击者去年针对Paypal发起了攻击,他们将Paypal用户重新引导到另一个恶意网站并警告用户,他们的账户已经失窃。用户们被引导到另一个钓鱼式网站上,然后输入自己的Paypal登录信息、社会保险号和信用卡资料。Paypal公司称,它在2006年6月修复了那个漏洞。
如何保护用户:利用一个白名单来验证接到的所有数据,来自白名单之外的数据一律拦截。另外,还可以对所有接收到的数据进行编码。OWASP说:“验证机制可以检测攻击,编码则可以防止其他恶意攻击者在浏览器上运行的内容中插入其他脚本。”
四、访问限制缺失(Broken Access Control)
问题:有些网页的访问应该是受限于一小部分特权用户,比如管理员。然而这些网页通常并不具备真正的保护系统,黑客们可以通过猜测的方式找出这些地址。 Williams说,如果某个网站地址对应的ID号是123456,那么黑客会猜想123457对应的地址是什么呢?
针对这种漏洞的攻击被称作强迫浏览,通过猜测的方式去猜周围的链接并找出未经保护的网页。
真实案例:Macworld Conference大会网站上有一个漏洞,用户可以免费获得价值1700美元的高级访问权限和史蒂夫·乔布斯的演讲内容。这个漏洞是在客户端而非服务器上评定用户的访问权限的,这样人们就可以通过浏览器中的Java脚本获得免费权限。
如何保护用户:不要以为用户们不知道隐藏的地址。所有的网站地址和业务功能都应受到一个有效访问控制机制的保护,这个机制可以检验用户的身份和权限。
五、不正确的安全设置(Security Misconfiguration)
问题:虽然加密本身也是大部分网络应用软件中的一个重要组成部分,但是许多网络开发员没有对存储中的敏感数据进行加密。即便是现有的加密技术,其设计也是粗制滥造的。
OWASP说:“这些漏洞可能会导致用户敏感数据外泄以及破坏系统的一致性。”.
真实案例:TJX数据失窃案中,被窃取的信用卡和提款卡账号达到了4570万个。加拿大政府调查后认为,TJX未能升级其数据加密系统。
如何保护用户:不要开发你自己的加密算法。最好只使用已经经过审批的公开算法,比如AES、RSA公钥加密以及SHA-256或者更好的SHA-256。
另外,千万不要在不安全渠道上传送私人资料。
OWASP说,现在将信用卡账号保存起来是比较常见的做法,但是明年就是《信用卡行业数据安全标准》发布的最后期限,以后将不再将信用卡账号保存起来。
六、敏感信息泄露(Sensitive Data Exposure)
问题:这种漏洞出现的原因是因为在需要对包含敏感信息的通信进行保护时没有将网络流通的数据进行加密。攻击者们可以获得包括证书和敏感信息的传送在内的各种不受保护的会话内容。因此,PCI标准要求对网络上传输的信用卡信息进行加密。
真实案例:这次又是一个关于TJX的例子。华尔街日报的报道称,调查员们认为,黑客利用了一种类似于望远镜的天线和笔记本电脑来窃取通过无线方式传输的用户数据。
有报道称:“众多零售商的无线网络安全性还比不上许多人自己的局域网。TJX使用的是WEP加密系统而不是安全性更好的WPA加密系统。
如何保护用户:在所有经过认证的连接上利用SSL,或者在敏感信息传输过程中使用SSL。SSL或者类似的加密协议应该加载在客户端、与在线系统有关的合作伙伴、员工和管理员账户上。利用传输层安全或者协议级加密系统来保护基础结构各部分之间的通信,比如网络服务器与数据库系统之间的通信。
七、不充足的攻击检测与预防(Insufficient Attack Protection)
问题:大多数应用和API缺乏基本的能力,来检测、预防和响应人工和自动化攻击。攻击防护远不仅限于基本的输入验证,它还包含自动检测、记录、响应甚至阻止利用行为。应用程序所有者还需能快速部署补丁以防止攻击。
真实案例:2013年,美国一家豪车软件公司系统被黑客入侵,超过85万用户的个人及财产信息受到影响,其中包括世界500强的高管、政治名流以及球星影星等,只是因为数字服务系统在安全性方面有瑕疵。
如何保护用户:配备高标准的网络安全软硬件配置、制定完善的网络安全管理制度和强化网络安全应急工作。
八、跨站指令伪造(Cross-Site Request Forgery)(SCRF)
问题:这种攻击简单但破坏性强,它可以控制受害人的浏览器然后发送恶意指令到网络应用软件上。这种网站是很容易被攻击的,部分原因是因为它们是根据会话cookie或者“自动记忆”功能来授权指令的。各银行就是潜在的被攻击目标。
Williams说:“网络上99%的应用软件都是易被跨站指令伪造漏洞感染的。现实中是否发生过某人因此被攻击而损失钱财的事呢?也许连各银行都不知道。对于银行来说,整个攻击看起来就像是用户登录到系统中进行了一次合法的交易。”
真实案例:一位名叫Samy的黑客在2005年末利用一个蠕虫在MySpace网站上获得了100万个“好友”资料,在成千上万个MySpace网页上自动出现了“Samy是我的英雄”的文字。攻击本身也许是无害的,但是据说这个案例证明了将跨站脚本与伪造跨站指令结合在一起所具备的威力。另一个案例发生在一年前,Google网站上出现了一个漏洞,外部网站可以利用那个漏洞改变用户的语言偏好设置。
如何保护用户:不要依赖浏览器自动提交的凭证或者标识。OWASP说:“解决这个问题的唯一方法是使用一种浏览器不会记住的自定义标识。”
九、使用已知不安全组件(Using Components with Known Vulnerabilities)
问题:各种应用软件产生并显示给用户看的错误信息对于黑客们来说也是有用的,那些信息可能将用户的隐私信息、软件的配置或者其他内部资料泄露出去。
OWASP说:“各种网络应用软件经常通过详细或者调试出错信息将内部状态信息泄露出去。通常,这些信息可能会导致用户系统受到更有力的攻击。”
真实案例:信息泄露是通过错误处理不当发生的,ChoicePoint在2005年的崩溃就是这种类型的典型案例。攻击者假扮是ChoicePoint的合法用户在公司人员信息数据库中寻找某个人的资料,随后窃取了16.3万个消费者的记录资料。ChoicePoint后来对包含敏感数据的信息产品的销售进行了限制。
如何保护用户:利用测试工具查看应用软件出现的错误信息。OWASP说:“未通过这种方法进行测试的应用软件几乎肯定会出现意外错误信息。”
另一个方法是:禁止或者限制在错误处理中使用详细信息,不向用户显示调试信息。
十、未受保护的API(Underprotected APIs)
问题:现代的应用常常涉及富客户端应用程序和API,比如浏览器和移动App中的JavaScript,连接到其他某种API(SOAP/XML、REST/JSON、RPC、GWT等)。这些APT通常未受保护且存在多种漏洞。
真实案例:2015年1月,Moonpig因安全漏洞泄露了约300万名客户的信用卡信息,随后该网站关闭了移动app。研究发现该漏洞出现在MoonPig移动app可与其服务器通讯的部分,即API。API发送的信息并不是受单个用户名及密码保护的信息,而是受到同一凭证保护的信息,不管登录的用户是谁。因此,攻击者可访问网站任何一名用户的详细资料、查看之前的订单并对任何用户下订单。
如何保护用户:企业及其开发人员必须采取一些措施来加强和确保API在企业环境的安全性。总是对敏感数据进行加密,避免纯文本的传输。开发人员应该使用SSL证书,保证web api端点项目和web服务接口间敏感数据的传输安全,防止黑客嗅到这些数据。
小结:
要想尽量避免网站被攻击,必须居安思危,加上一些必要的防护网站攻击手段和措施,最大限度减少损失。
完全杜绝网站被攻击目前是不可能的,通过适当的措施可以抵御90%的黑客攻击,采用专业的团队技术对网站进行防护。,增强抵御网站攻击的能力,也就加大了攻击者的攻击成本,绝大多数攻击者将无法继续下去而放弃,也就相当于成功的抵御了黑客攻击。
(原标题:网站易被攻击原因及保护措施)