1.1 SEED Labs 介绍
SEED Labs是一套完整的信息安全实验,涵盖本科信息安全教学中的大部分基本原理,可用于提高学生体验式学习的实验室练习。项目组2002年由杜文亮教授创建,目前开发了30个实验,涵盖了各种计算机安全概念,原理和实践,几百所大学已采用。实验楼翻译制作的SEEDLabs在线实验课永久免费并开源。
SEED Labs网站:http://www.cis.syr.edu/~wedu/seed/
1.2 实验室项目
1. 软件安全实验室
a) 肮脏的COW攻击实验室
利用Linux内核中的恶意COW竞争条件漏洞获得root权限。
b) 缓冲区溢出漏洞实验
使用shellcode启动攻击来利用缓冲区溢出漏洞;采取多种对策进行实验。
c) 返回到libc攻击实验室
使用return-to-libc技术来击败缓冲区溢出攻击的“非可执行堆栈”对策。
d) 环境变量和Set-UID实验室
这是Set-UID实验室的重新设计。
e) Set-UID程序漏洞实验
启动对特权Set-UID根程序的攻击;环境变量的风险;system()的副作用。
f) Race条件漏洞实验
在特权程序中利用竞争条件漏洞;用各种对策进行实验。
g) 格式字符串漏洞实验
利用格式字符串漏洞可以使程序崩溃,窃取敏感信息或修改关键数据。
h) Shellshock漏洞实验室
启动攻击以利用2014年底发现的Shellshock漏洞。
2. 网络安全实验室
a) TCP/IP攻击实验室
发起攻击以利用TCP/IP协议的漏洞,包括会话劫持,SYN洪泛,TCP重置攻击等。
b) Heartbleed攻击实验室
使用心跳攻击从远程服务器窃取秘密。
c) 本地DNS攻击实验室
使用多种方法在局域网环境中对计算机进行DNS欺骗攻击。
d) 远程DNS攻击实验室
使用Kaminsky方法在远程DNS服务器上启动DNS缓存中毒攻击。
e) 数据包嗅探和欺骗实验室
编写程序来嗅探通过本地网络发送的数据包;编写程序来欺骗各种类型的数据包。
f) 防火墙探索实验室
编写一个简单的包过滤防火墙;使用Linux内置的防火墙软件和网络代理防火墙;试验逃避防火墙的方法。
g) 防火墙旁路实验室
实现一个简单的vpn程序(客户端/服务器),并用它绕过防火墙。
h) 虚拟专用网络(VPN)实验室
使用TUN/TAP技术为Linux设计和实现传输层VPN系统。
i) MinixIPSec实验室
在Minix操作系统中实施IPSec协议并使用它来设置虚拟专用网络。
j) Minix防火墙实验室
在Minix操作系统中实现简单的防火墙。
3. Web安全实验室
l 基于Elgg的实验室(SEEDUbuntu12.04VM)
a) 跨站脚本攻击实验室
针对易受攻击的Web应用程序启动跨站脚本攻击。采取多种对策进行实验。
b) 跨站请求伪造攻击实验室
针对易受攻击的Web应用程序发起跨站点请求伪造攻击。采取多种对策进行实验。
c) 网络跟踪实验室
尝试使用网络跟踪技术,了解用户在浏览网页时如何进行检查。
d) SQL注入攻击实验室
在易受攻击的Web应用程序上启动SQL注入攻击。采取多种对策进行实验。这是一个新开发的实验室,与使用Collabtive的实验室不同。本实验不使用Elgg; 相反,它使用我们开发的Web应用程序。
l 基于协作的实验室(SEEDUbuntu12.04和11.04 VM)
Collabtive是一个开源的基于Web的项目管理系统。以下实验可以在 SEEDUbuntu12.04和SEEDUbuntu11.04虚拟机中进行。
a) 跨站脚本攻击实验室
针对易受攻击的Web应用程序启动跨站脚本攻击。采取多种对策进行实验。
b) 跨站请求伪造攻击实验室
针对易受攻击的Web应用程序发起跨站点请求伪造攻击。采取多种对策进行实验。
c) SQL注入实验室
在易受攻击的Web应用程序上启动SQL注入攻击。采取多种对策进行实验。
d) Web浏览器访问控制实验室
探索浏览器的访问控制系统以了解其安全策略。
l 基于PhpBB的实验室(SEEDUbuntu9.11VM)
PhpBB是一个开源的基于Web的留言板系统,允许用户发布消息。我们已经对我们的实验室进行了修改。以下实验可以在我们的 SEEDUbuntu9.11虚拟机中进行。这些基于PhpBB的实验室不再受到支持,因为我们已经切换到新虚拟机中的其他Web应用程序。
a) 跨站脚本攻击实验室
针对易受攻击的Web应用程序启动跨站脚本攻击。采取多种对策进行实验。
b) 跨站请求伪造攻击实验室
针对易受攻击的Web应用程序发起跨站点请求伪造攻击。采取多种对策进行实验。
c) SQL注入实验室
在易受攻击的Web应用程序上启动SQL注入攻击。采取多种对策进行实验。
d) ClickJacking攻击实验室
在易受攻击的网站上发起ClickJacking攻击。采取多种对策进行实验。
4. 系统安全实验室
a) 崩溃攻击实验室
启动攻击以利用Intel CPU中的Meltdown漏洞。
b) 幽灵攻击实验室
启动攻击以利用Intel CPU中的Specter漏洞。
c) Linux能力探索实验室
探索Linux中的POSIX1.e能力系统,以了解如何将特权划分为更小的部分以确保符合最低特权原则。
d) 基于角色的访问控制(RBAC)实验室
为Minix设计和实施一个集成访问控制系统,该系统使用基于能力和基于角色的访问控制机制。学生需要修改Minix内核。
e) 加密文件系统实验室
为Minix设计和实现加密文件系统。学生需要修改Minix内核。
5. 加密实验室
a) MD5碰撞攻击实验室
使用MD5冲突攻击创建两个具有相同MD5散列值的不同程序。
b) RSA公钥加密和签名实验室
编写一个程序来实现RSA算法,并使用它来进行加密,解密,签名生成和验证。
c) 密钥加密实验室
探索秘密密钥加密及其使用OpenSSL的应用程序。
d) 单向哈希函数实验室
探索使用OpenSSL的单向散列函数及其应用程序。
e) 公钥加密和PKI实验室
使用OpenSSL探索公钥密码学,数字签名,证书和PKI。
6. 移动安全实验室
a) Android重新包装实验室
将恶意代码插入现有Android应用程序中,然后重新打包。
b) Android设备制作实验室
开发一个OTA(空中下载)软件包,从根到底安装一个Android设备。