—
企业内联网和管理界面是最流行的攻击目标, 因为它们有特殊的访问权限. 虽然它会有一些额外的安全措施,可是现实里并非如此。
2007年,在线招聘站点Monster.com遭受了一起定制木马(Tailor-made Trojans)攻击,这是第一只专门从企业内联网偷窃信息的定制木马。定制木马是非常罕见的,迄今为止,发生率比较低, 但是它也确实是可能发生的,这也是一个客户端主机
安全何等重要的例子. 然而,企业内联网和管理应用程序面对的最大威胁还是XSS和CSRF.
XSS 如果你的应用重现了恶意用户从外网的输入,那么你的应用会受到XSS的危害。用户名,评论,垃圾邮件等是容易被XSS攻击的常见的例子。
在管理界面或是内网只要一个地方没有被消毒(sanitized)就会导致整个应用遭受危害。可能的漏洞包括窃取有特权管理员的cookie,iframe注入(Monster.com就是被这样攻击的)窃取管理员密码或者是通过浏览器的
安全漏洞安装一款恶意软件来接管管理员的计算机。
参看Injection章节,有XSS的对策,以及推荐了一款在内网和管理员界面使用的SafeErb的插件。
CSRF 跨站点 Reference 伪造 (CSRF) 是一个强大的攻击方法,它允许攻击者能做内网用户和管理员能做的一切事情。正如你已经看到上面几部分里CSRF如何工作的,这里也有一些例子,说明攻击者能在内网和管理界面做些什么。
一个现实世界的例子是一个通过CSRF重新配置路由的例子。这个攻击者发送了一封包含CSRF的恶意的电子邮件给墨西哥的用户。电子邮件声称有一个电子贺卡等着他们,但是它也包含了一个可以造成一个HTTP- GET请求去重新设置用户路由的图像标记(p_w_picpath tag)(这在墨西哥比较流行)。这个请求改变了DNS设置以便到墨西哥银行的请求可以映射到攻击者的站点。每个访问银行网站的人通过这个路由都能看到攻击者的伪造站点,并且他的证书被盗。
另一个例子是通过
GSRF改变Google Adsense的email地址和密码。如果受害者是登陆到Google Adsense,一个Google竞投广告的管理界面,攻击者可能会改变他的
安全证书。
另一种流行的攻击是你的web应用上的垃圾, 在你的blog或者论坛传播恶意XSS. 当然,攻击者必须知道URL结构,但是大多数的
Rails URLS是相对简单,或者,如果它是一个开源应用的管理界面,是很容易被他们找出的。攻击者甚至可以做1000个仅包括恶意img tags的幸运的猜测去尝试每一个可能的组合。
对于在管理界面和内网应用的CSRF对策,请参考CSRF章节里的对策。
5.1. 额外的预防措施
一般的管理界面是这样工作的: 它的位置是[url]www.example.com/admin[/url], 可只有在用户模式被设置了admin tag的才能访问。重现用户的输入,然后删除,增加,修改想要的任何数据。这里有一些想法:
-
考虑最坏的情况是非常重要的: 如果某人真的掌握了我的cookie或是用户证书。你能控制角色为管理界面去限制攻击者的可能性。或者除了哪些用于公共部分的应用,为管理界面提供一个专门的登陆证书如何,或者对于每次重要的action提供一个密码 ?
-
是否这个管理员真的必须能从世界各地访问这个接口? 考虑一下根据ip地址段来限制登陆。检测request.remote_ip 了解用户的IP地址. 这并不是防弹的,而只是制造一个障碍。但请记住,有可能有人在使用代理。
-
把管理界面放到一个专门的子域,例如,使其用户管理成为一个单独的应用程序。这使得攻击者不可能从通常的[url]www.application.com[/url]窃取cookie。这是因为在你的浏览器里存在同一个原生标准: 在[url]www.application.com[/url]的注入脚本(XSS)不能读取的cookie,反之亦然。