DVWA는 웹 애플리케이션 보안의 취약점을 학습하고 테스트할 수 있도록 설계된 오픈 소스 프로젝트입니다. 아래는 Ubuntu 환경에서 DVWA를 설치하고 구성하는 방법을 정리한 가이드입니다. 이 가이드는 컴퓨터공학이나 정보보안을 전공하는 학생들이 실습을 통해 보안 지식을 깊이 있게 이해하도록 돕기 위해 작성되었습니다.
1. LAMP 스택 설치
DVWA는 PHP 기반 웹 애플리케이션이므로 LAMP(Linux, Apache, MySQL, PHP) 스택이 필요합니다. Linux 환경에서 웹 서버(Apache), 데이터베이스 서버(MySQL), PHP 및 관련 모듈을 설치하는 과정을 단계적으로 진행합니다.
- 패키지 목록 업데이트:
- sudo apt update
- LAMP 구성 요소 설치:
- Apache: 웹 서버로 클라이언트 요청을 처리합니다.
- MySQL: 데이터 저장 및 관리에 사용됩니다.
- PHP: DVWA의 서버 측 스크립트를 실행합니다.
- sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql
- 설치 확인: 각 구성 요소가 제대로 설치되었는지 확인하려면 아래 명령어를 실행하세요.
- apache2 -v php -v mysql --version
2. MySQL 설정 및 데이터베이스 생성
MySQL은 DVWA가 데이터를 저장하고 읽는 데 사용하는 데이터베이스입니다. 설치 후 데이터베이스와 사용자를 설정합니다.
- MySQL 보안 설정:이 명령은 root 계정 비밀번호 설정 및 기본 보안 구성을 적용합니다.
- sudo mysql_secure_installation
- MySQL에 로그인:로그인 후 비밀번호를 입력합니다.
- mysql -u root -p
- DVWA용 데이터베이스 생성: MySQL 콘솔에서 다음 명령어를 실행하세요.
- CREATE DATABASE dvwa;
- 데이터베이스 사용자 확인: DVWA가 제대로 작동하려면 사용자 계정이 데이터베이스에 접근할 수 있어야 합니다. 기본적으로 root 계정을 사용하지만, 별도의 사용자 계정을 생성할 수도 있습니다.
3. DVWA 다운로드 및 구성
DVWA 애플리케이션 파일을 다운로드하고 필요한 설정을 적용합니다.
- DVWA 다운로드: DVWA 프로젝트는 GitHub에서 호스팅되므로 아래 명령어를 사용해 다운로드하세요.
- cd /var/www/html sudo git clone https://github.com/ethicalhack3r/DVWA.git
- 설정 파일 구성: 다운로드한 DVWA 디렉터리로 이동 후 설정 파일을 복사하고 수정합니다.
- cd DVWA sudo cp config/config.inc.php.dist config/config.inc.php sudo nano config/config.inc.php
- MySQL 정보 입력: MySQL root 계정 정보를 설정 파일에 입력합니다.
- $_DVWA[ 'db_user' ] = 'root'; $_DVWA[ 'db_password' ] = 'your_mysql_root_password'; $_DVWA[ 'db_database' ] = 'dvwa';
4. Apache 권한 설정
DVWA가 Apache에서 올바르게 작동하려면 웹 서버가 DVWA 파일에 접근할 수 있어야 합니다. 이를 위해 디렉터리 소유권 및 권한을 설정합니다.
- 소유권 변경:
- sudo chown -R www-data:www-data /var/www/html/DVWA
- 권한 설정:
- sudo chmod -R 755 /var/www/html/DVWA
- Apache 서버 재시작: 설정 적용을 위해 Apache를 재시작합니다.
- sudo systemctl restart apache2
5. 웹 브라우저에서 DVWA 설정
웹 브라우저를 사용해 DVWA 설정 페이지에 접속합니다.
- 브라우저 주소창에 아래 URL 입력:
- http://your-server-ip/DVWA/setup.php
- DVWA 초기화: 설정 페이지에서 지시에 따라 데이터베이스를 초기화하고 애플리케이션을 구성합니다.
- 기본 계정으로 로그인:
- 사용자명: admin
- 비밀번호: password
- 테스트: DVWA 대시보드가 정상적으로 표시되는지 확인합니다.
6. 보안 수준 변경
DVWA는 다양한 보안 수준을 제공하며, 기본적으로 "Low"로 설정되어 있습니다. 이 설정은 다양한 취약점에 접근하기 쉽게 합니다.
- 보안 수준 확인 및 변경:
- $_DVWA[ 'default_security_level' ] = 'low';
- 다양한 보안 수준 테스트: "Low", "Medium", "High", "Impossible" 수준을 변경하며 다양한 환경에서 취약점을 실험할 수 있습니다.
- 설정 적용:
- sudo systemctl restart apache2
7. 사용 시 주의사항
DVWA는 학습 및 연구 목적으로 의도적으로 취약점이 포함된 애플리케이션입니다. 안전한 환경에서 사용하는 것이 중요합니다.
- 네트워크 격리: DVWA는 외부 네트워크에 절대로 노출되지 않도록 설정하세요.
- 실습 후 제거: 학습이 끝나면 DVWA를 서버에서 삭제하거나 비활성화하여 보안을 유지하세요.
- 로그 관리: 실습 과정에서 발생한 모든 로그를 검토하여 보안 침해 가능성을 분석하세요.
위 가이드를 따라 DVWA를 설치하고 웹 애플리케이션 보안의 기본 개념을 실습할 수 있습니다. 이 과정을 통해 취약점 식별 및 수정 능력을 키울 수 있기를 바랍니다. 추가적으로, 각 취약점의 원인과 해결 방안을 분석하며 실질적인 보안 전문가로 성장하세요!