
보안 개발 학습을 위한 취약한 파이썬 애플리케이션
Vulpy는 Python/Flask/SQLite로 개발된 웹 애플리케이션으로, 두 가지 면모를 가지고 있습니다.
GOOD: 안전한 개발 모범 사례를 염두에 두고 코딩하려고 합니다.
BAD: (아마도) 당신처럼 코딩하려고 합니다. :p
다음 과정을 위한 실습실로 개발되었습니다:
Securetia의 보안 개발 과정 (https://www.securetia.com/cursos.html) EducaciónIT의 보안 개발 과정 (https://www.educacionit.com/curso-de-desarrollo-seguro)
하지만 원하는 대로 사용할 수 있습니다 (MIT 라이선스)
"GOOD" 버전(아직 완성되지 않음)은 OWASP ASVS를 준수할 것입니다:
https://www.owasp.org/index.php/Category:OWASP_Application_Security_Verification_Standard_Project
이를 통해 최고의 보안 관행을 따르는 Python 코드 개발 방법을 배울 수 있습니다.
::
git clone https://github.com/fportantier/vulpy
cd vulpy
pip3 install --user -r requirements.txt
"BAD" 버전에 존재하는 일부 취약점:
참고: "GOOD" 버전(아직 완성되지 않음)은 취약점이 없어야 하지만, 저는 인간이기 때문에...
"BAD"와 "GOOD" 버전 모두 데이터베이스 초기화가 필요합니다.
이는 각 디렉토리(bad 및 good) 안에 있는 "db_init.py" 스크립트로 수행됩니다.
각 버전에는 사용자 및 게시물을 위한 자체 SQLite 파일이 있습니다.
스크립트 실행 예시:
::
cd bad ./db_init.py
데이터베이스 초기화 후 세 명의 사용자가 생성됩니다:
::
Username Password
admin SuperSecret elliot 123123123 tim 12345678
어떤 사용자로든 로그인할 수 있습니다. 이 애플리케이션에는 권한 시스템이 없으므로 세 명 모두 동일한 권한을 가집니다.