攻击 Google 的 Jarlsberg,学习安全漏洞知识

  • Abel Avram
  • 侯伯薇

2010 年 5 月 8 日

话题:Java.NETRuby安全Google架构语言 & 开发

很多人都想知道黑客是如何攻击并进入到系统的,为了帮助他们,Google 创建了一个特殊的名为Jarlsberg 的实验室,其中的应用程序满是安全漏洞,开发者可以利用它以实践的方式学习到潜在的漏洞是什么样的,恶意用户是如何利用这些漏洞的,以及如何做才能免受攻击。

这个实验室是围绕安全漏洞的不同类型来组织的,对于每个漏洞,都有找寻和攻击漏洞的任务可供完成。 该实验室使用了下列三种主要的技术:

  • 黑盒:用户看不到应用程序的源代码,因此他们需要猜测服务器工作的方式,从而设法利用安全漏洞。
  • 白盒:以开源应用的形式提供了源代码(Python)。 用户可以阅读代码,从而找到弱点所在。
  • 灰盒:实验室会给出一些应用程序是如何编写的提示,但不会让用户看到完整的源代码。

Jarlsberg 特意使用了大量特性,以扩大应用程序的攻击面。

  • 代码片段中的 HTML: 用户可以在代码片段中包含特定的 HTML 代码。
  • 文件上载: 用户可以向服务器上载文件,例如,在他们的代码片断中包含图片。
  • Web 形式的管理: 系统管理员可以使用 web 界面来管理系统。
  • 新建账号: 用户可以创建属于自己的账号。
  • 模板语言: Jarlsberg 模板语言(JTL)是种新语言,它使得开发者可以更容易地编写网页,作为直接与数据库连接的模板。 你可以在jarlsberg/jtl.py找到 JTL 的相关文档。
  • AJAX: Jarlsberg 使用 AJAX 来实现在主页和代码片断页中的刷新。 如果不需要特别关注 AJAX 内容,你可以忽略 Jarlsberg 中的 AJAX 部分。

在 Jarlsberg 中,你可以找到、利用并最终修复以下安全漏洞:

  • 跨站点脚本攻击(XSS)
  • 跨站点伪造请求攻击(XSRF)
  • 跨站点包含脚本攻击(CSSI)
  • 客户端状态操控攻击
  • 路径模式发掘攻击
  • 拒绝服务攻击(DoS)
  • 执行代码攻击
  • 配置漏洞
  • AJAX 漏洞攻击

你可以在本地运行该实验室,以在整个学习过程中完全掌控该实验室;或者也可以在 Google 的云中作为沙盒实例运行。 该实验室大部分是基于Creative Commons Attribution 3.0协议发布的,但也有一部分是基于Creative Commons Attribution-No Derivative Works 3.0协议发布的,这使得对于大学培训学生或者公司培训员工,让他们理解并保护他们系统免受安全漏洞影响都是很理想的。

查看原文:Learning About Security Vulnerabilities by Hacking Google’s Jarlsberg

Java.NETRuby安全Google架构语言 & 开发