bWAPP(Buggy Web Application)는 웹 애플리케이션 보안 학습과 실습을 목적으로 설계된 무료 오픈 소스 프로젝트입니다. 이 가이드는 Ubuntu 환경에서 bWAPP를 설치하고 구성하는 방법을 전공자 수준에서 자세히 설명합니다. 보안 테스트와 학습 목적의 환경을 구축하려는 학생이나 연구자들에게 유용한 가이드입니다.
1. LAMP 스택 설치
bWAPP는 PHP 기반 웹 애플리케이션이기 때문에, LAMP(Linux, Apache, MySQL, PHP) 스택이 필요합니다. 아래 단계에 따라 LAMP 스택을 설치합니다.
- 패키지 목록 업데이트:
- sudo apt update
- Apache, MySQL, PHP 및 추가 모듈 설치:
- sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql unzip
- 설치 확인: 각 구성 요소가 정상적으로 설치되었는지 확인합니다.설치 확인 과정에서 버전 정보를 확인하며 모든 소프트웨어가 최신 버전인지 점검하세요.
- apache2 -v php -v mysql --version
2. MySQL 설정 및 데이터베이스 생성
MySQL 데이터베이스는 bWAPP의 데이터를 저장하고 관리하는 데 사용됩니다. 아래 절차에 따라 데이터베이스를 설정하세요.
- MySQL 보안 설정:이 명령을 실행하여 root 비밀번호 설정 및 기본 보안 구성을 완료합니다. 여기서 원하지 않는 익명 사용자를 제거하거나 기본 데이터베이스 권한을 강화할 수 있습니다.
- sudo mysql_secure_installation
- MySQL에 로그인:로그인 후 비밀번호를 입력합니다.
- mysql -u root -p
- bWAPP용 데이터베이스와 사용자 생성: MySQL 콘솔에서 다음 명령어를 실행합니다.데이터베이스를 생성한 후 사용자를 추가로 생성하여 데이터베이스 보안을 강화합니다. 이 과정에서 사용자 이름과 비밀번호를 안전하게 보관하세요.
- CREATE DATABASE bwapp; CREATE USER 'bwapp_user'@'localhost' IDENTIFIED BY 'secure_password'; GRANT ALL PRIVILEGES ON bwapp.* TO 'bwapp_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
3. bWAPP 다운로드 및 구성
bWAPP의 설치 파일을 다운로드하고 설정을 완료하는 단계입니다.
- bWAPP 다운로드: GitHub에서 bWAPP 파일을 다운로드합니다. /var/www/html 디렉터리로 이동하여 아래 명령어를 실행하세요.다운로드 시 연결 상태를 확인하고 필요한 경우 프록시 설정을 적용하세요.
- cd /var/www/html wget https://github.com/beebox-project/bWAPP/archive/refs/heads/master.zip -O bwapp.zip
- 압축 해제 및 디렉터리 이동:압축을 해제한 후 디렉터리 이름을 명확히 변경하여 관리하기 쉽게 합니다.
- sudo unzip bwapp.zip sudo mv bWAPP-master bwapp
- 설정 파일 편집: bWAPP 디렉터리 내 설정 파일에 MySQL 정보를 입력합니다.아래 항목을 수정합니다:파일을 저장하고 편집기를 종료합니다. 설정이 완료되었는지 확인하기 위해 파일 경로와 데이터베이스 이름을 다시 검토하세요.
- $db_server = "localhost"; $db_username = "bwapp_user"; $db_password = "secure_password"; $db_name = "bwapp";
- sudo nano /var/www/html/bwapp/config/settings.php
- 소유권 및 권한 설정:디렉터리의 권한을 Apache가 읽고 쓸 수 있도록 설정합니다. 권한 설정이 잘못되면 실행 시 오류가 발생할 수 있으니 주의하세요.
- sudo chown -R www-data:www-data /var/www/html/bwapp sudo chmod -R 755 /var/www/html/bwapp
- Apache 서버 재시작:Apache를 재시작한 후 서버가 정상적으로 작동하는지 확인합니다.
- sudo systemctl restart apache2
4. bWAPP 설치 마무리
- 브라우저에서 설치 페이지 열기: 브라우저를 열고 아래 주소로 접속합니다:서버의 IP 주소를 정확히 입력하고, 설치 페이지가 로드되지 않을 경우 Apache 설정을 점검하세요.
- http://your-server-ip/bwapp/install.php
- 데이터베이스 초기화: 설치 페이지에서 "Install" 버튼을 클릭하여 데이터베이스를 설정합니다. 성공 메시지가 표시되면 설정이 완료된 것입니다.
- 기본 계정으로 로그인:
- 사용자명: bee
- 비밀번호: bug
5. bWAPP 사용 시 주의사항
bWAPP는 학습 목적으로 의도적으로 취약점이 포함된 애플리케이션입니다. 사용 시 아래 사항을 꼭 준수하세요:
- 테스트 환경에서만 사용: bWAPP는 외부 네트워크에 노출되지 않도록 반드시 격리된 환경에서 실행하세요. 오픈 네트워크에 연결되면 악의적인 공격에 노출될 수 있습니다.
- 네트워크 격리: VirtualBox, VMware 또는 Docker를 사용하여 독립적인 테스트 환경을 만드세요. 격리된 환경은 실험의 안전성을 높여줍니다.
- 실습 후 정리: 실습이 끝난 후 bWAPP를 비활성화하거나 삭제하여 보안을 유지하세요. 서버를 종료하거나 관련 파일을 삭제하면 의도치 않은 취약점 노출을 예방할 수 있습니다.
- 추가 학습 권장: bWAPP는 기본적인 웹 애플리케이션 취약점을 학습하는 데 효과적입니다. 이를 활용해 SQL 인젝션, XSS 등의 취약점에 대한 실습을 진행하고, 관련된 보안 패턴과 방어 기법을 학습하세요.
이 가이드를 통해 bWAPP 설치를 완료하고 다양한 웹 애플리케이션 취약점을 학습할 수 있습니다. 실습을 통해 취약점 식별, 분석 및 해결 능력을 키우는 데 도움이 될 것입니다. 이러한 경험은 보안 전문가로 성장하는 데 중요한 기반이 됩니다.