OWASP Security Shepherd 
OWASP Security Shepherd 项目 是一个 Web 和移动应用程序安全培训平台。Security Shepherd 旨在培养和提升不同技能水平人群的安全意识。该项目的目标是让 AppSec 新手或有经验的工程师能够将其渗透测试技能磨练到安全专家水平。

我在哪里可以下载 Security Shepherd?
虚拟机或手动安装
你可以从 GitHub 下载 Security Shepherd 虚拟机或手动安装包。
Docker(Ubuntu Linux 主机)
初始设置
# 安装前提条件
sudo apt install git maven docker docker-compose openjdk-17-jdk
# 克隆 GitHub 仓库
git clone https://github.com/OWASP/SecurityShepherd.git
# 切换到仓库的本地副本目录
cd SecurityShepherd
# 将当前用户添加到 docker 组(不必每次都使用 sudo 运行 docker)
sudo gpasswd -a $USER docker
# 运行 Maven 生成 WAR 文件和 HTTPS 证书。
mvn -Pdocker clean install -DskipTests
# 构建 Docker 镜像、Docker 网络并启动环境
docker-compose up
打开互联网浏览器,在地址栏中输入:
使用以下凭据登录(登录后系统将要求您更新密码):
注意:可在根目录的 dotenv 文件(.env)中配置环境变量。
完整指南
Docker环境搭建
如何设置 Security Shepherd?
我们在 Wiki 页面 上提供了完全自动化以及逐步的操作指南,帮助您启动并运行 Security Shepherd。
Security Shepherd 有什么用途?
Security Shepherd 可用作:
- 所有应用程序安全的教学工具
- Web 应用程序渗透测试培训平台
- 移动应用程序渗透测试培训
- 练习 AppSec 技术的安全沙盒
- 展示真实安全风险示例的平台
为什么选择 Security Shepherd?
互联网上以及 OWASP 项目清单中已有很多刻意存在漏洞的应用程序。为什么你应该选择 Security Shepherd?以下是一些原因:
- 广泛的主题覆盖
Shepherd 包含超过六十个关卡,涵盖 Web 和移动应用程序安全的整个范围,且全部集成于同一个项目之下。
- 平缓的学习曲线
Shepherd 非常适合完全零基础的用户,其关卡难度会以舒适的节奏递增。
- 通俗易懂的讲解
每当 Shepherd 首次介绍一个新的安全概念时,都会使用通俗语言进行解释,以便任何人(甚至初学者)都能理解。
- 真实世界的示例
Shepherd 中的安全风险都是真实的漏洞,只是其利用影响被弱化以保护应用程序、用户和环境。这里没有模拟的安全风险,无需使用预期的、特定的攻击向量才能通过某个关卡。在 Shepherd 上使用的攻击向量与其在真实世界中的行为一致。
- 可扩展性
Shepherd 可供单个用户在本地使用,也可以轻松作为服务器为大量用户提供服务。
- 高度可定制
Shepherd 允许管理员设置哪些关卡对其用户可用,以及以何种方式呈现(开放、CTF 和锦标赛布局)。
- 完美适用于课堂
Shepherd 为其玩家提供用户专属的解决方案密钥,以防止学生共享密钥,而非仅仅要求他们完成通过某个关卡所需的步骤。
- 排行榜
Security Shepherd 拥有一个可配置的排行榜,以鼓励竞争性学习环境。最先、第二和第三个完成关卡的用户会在其排行榜条目上获得奖牌和额外积分,以保持排行榜的趣味性。
- 用户管理
Security Shepherd 管理员可以使用管理用户控制功能创建用户、创建管理员、暂停/恢复用户、添加积分或扣除积分。管理员还可以将其学生划分到特定的班级组中。管理员可以查看班级的进度,以识别遇到困难的参与者。如果管理员希望提供私密体验,甚至可以关闭公开注册并手动创建用户。
- 稳健的服务
Shepherd 已用于运行在线 CTF,例如 OWASP 全球 CTF 和 2015 年 OWASP 拉丁美洲巡回 CTF,两者同时活跃用户均超过 200 人,除计划维护时段外,运行期间无任何停机。
- 可配置的反馈
管理员可以启用反馈流程,用户必须先完成该流程,关卡才会被标记为已完成。这既可用于根据提交的反馈促进项目改进,也可供系统管理员收集来自学生的“理解报告”。
- 细粒度的日志记录
Security Shepherd 报告的日志非常详细且具有描述性,但不会导致屏幕信息过载。如果用户行为不当,您会立即知晓。