
OWASP Top 10을 따르는 취약한 Rails 버전
RailsGoat는 Ruby on Rails로 구축된 의도적으로 취약하게 만든 웹 애플리케이션입니다. OWASP Top 10의 실제 보안 취약점을 시연하며, 개발자와 보안 전문가를 위한 실습형 교육 플랫폼 역할을 합니다.
RailsGoat는 웹 애플리케이션 보안을 교육하기 위해 설계된 의도적으로 불안전한 Rails 애플리케이션입니다. 취약점을 탐색하고 악용함으로써 다음을 배울 수 있습니다:
현재 버전: Ruby 3.4.1 기반 Rails 8.0
RailsGoat는 SQL 삽입, 사이트 간 스크립팅(XSS), 인증 문제, 안전하지 않은 직접 객체 참조 등을 포함한 OWASP Top 10의 실제 보안 취약점을 시연합니다.
자세한 설명과 튜토리얼이 포함된 전체 취약점 목록은 RailsGoat 위키를 방문하세요.
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
각 실패하는 테스트는 취약점을 나타냅니다. 테스트 출력에는 다음을 설명하는 위키 튜토리얼 링크가 포함됩니다:
특정 취약점 테스트를 실행하려면:
rails training SPEC=spec/vulnerabilities/sql_injection_spec.rb
각 취약점에 대한 자세한 튜토리얼은 RailsGoat 위키를 방문하세요. 다음을 포함합니다:
고급 및 현대적인 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월에 완료되었습니다.
경고: 이 애플리케이션에는 심각한 보안 취약점이 포함되어 있습니다. 공용 서버나 네트워크에 절대 배포하지 마세요. 격리된 교육 환경에서만 사용하세요.