RailsGoat は、Ruby on Rails で構築された意図的に脆弱性を含む Web アプリケーションです。OWASP Top 10 の実際のセキュリティ脆弱性を実演し、開発者やセキュリティ専門家のための実践的なトレーニングプラットフォームとして機能します。
RailsGoat は、Web アプリケーションのセキュリティを教えるために設計された、意図的に安全でない Rails アプリケーションです。その脆弱性を探索し悪用することで、以下を学ぶことができます。
現在のバージョン: Rails 8.0(Ruby 3.4.1 使用)
RailsGoat は、SQL インジェクション、クロスサイトスクリプティング(XSS)、認証の問題、安全でない直接オブジェクト参照など、OWASP Top 10 の実際のセキュリティ脆弱性を実演します。
詳細な説明とチュートリアル付きの完全な脆弱性リストについては、RailsGoat Wiki をご覧ください。
Ruby は初めてですか? GoRails でお使いのオペレーティングシステム向けのセットアップガイドに従ってください。
リポジトリをクローンします:
git clone https://github.com/OWASP/railsgoat.git
cd railsgoat
依存関係をインストールします:
gem install bundler
bundle install
データベースをセットアップします:
rails db:setup
サーバーを起動します:
rails server
ブラウザを開きます:
http://localhost:3000 にアクセスして、探索を始めましょう!
main ブランチは Rails 8 で動作します。古いバージョンの場合は、ブランチを切り替えてください:
git checkout rails_3_2 # Rails 3.2
git checkout rails_4_2 # Rails 4.2
git checkout rails_5 # Rails 5.x
脆弱性テストスイートを実行して、どのようなセキュリティ欠陥が存在するかを確認します:
rails training
失敗する各テストは脆弱性を示します。テスト出力には、以下の点を説明する Wiki チュートリアルへのリンクが含まれます:
特定の脆弱性テストを実行するには:
rails training SPEC=spec/vulnerabilities/sql_injection_spec.rb
各脆弱性の詳細なチュートリアルについては、RailsGoat Wiki をご覧ください。以下が含まれます:
高度で現代的な Rails のセキュリティ概念を扱う追加ドキュメント:
要件: Docker と Docker Compose 1.6.0 以降
Mac Apple Silicon(ARM64)の場合: Rosetta がインストールされている必要があります
docker-compose build
docker-compose run web rails db:setup
docker-compose up
アプリケーションは http://localhost:3000 で利用できます
トラブルシューティング: コンテナが "A server is already running" というエラーで終了した場合は、作業ディレクトリから tmp/pids/server.pid を削除して、もう一度試してください。
一部の SQL インジェクション脆弱性には MySQL が必要です。MySQL で実行するには:
# Create and migrate the database
RAILS_ENV=mysql rails db:create
RAILS_ENV=mysql rails db:migrate
# Start the server
RAILS_ENV=mysql rails server
RailsGoat は、メールを傍受するために MailCatcher を使用します:
gem install mailcatcher
mailcatcher
http://localhost:1080 でメールを表示できます
RAILSGOAT_MAINTAINER 環境変数を設定して、脆弱性がまだ存在することを確認します:
RAILSGOAT_MAINTAINER="yes" bundle exec rspec
メンテナーモードでは、脆弱性が正しく実装されている場合にテストが成功します(トレーニングモードの逆です)。
コントリビューションを歓迎します! 詳細については、コントリビューションガイドライン をご覧ください。
ヘルプが必要ですか?
RailsGoat は、Rails アプリケーションのセキュリティ脆弱性を実演し、安全なコーディング方法を教えるために作成されました。フレームワークの進化に合わせて、Rails バージョン 3、4、5、6、そして現在の 8 まで継続的に更新され、その関連性を維持しています。
OWASP Top Ten 2013 への変換は 2013 年 11 月に完了しました。
警告: このアプリケーションには深刻なセキュリティ脆弱性が含まれています。公開サーバーやネットワークにデプロイしないでください。隔離されたトレーニング環境でのみ使用してください。