본문 바로가기
보안프로젝트

[보안프로젝트] 도커 환경을 이용한 테스트 환경 서비스 구축 그리고 로그, 이미지 관리 방법

by L3m0n S0ju 2021. 8. 9.

도커(Docker) 환경을 이용한 테스트 환경 서비스 구축

 


1.1     도커 개념

도커(Docker) 리눅스 응용 프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화하는 오픈 소스 프로젝트이다.

 

도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다. 여기에는 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치되는 무엇이든 아우른다.  이는 실행 중인 환경에 관계없이 언제나 동일하게 실행될 것을 보증한다.

 

도커는 리눅스에서 운영 체제 수준 가상화의 추상화 및 자동화 계층을 추가적으로 제공한다도커는 cgroups와 커널 이름 공간과 같은 리눅스 커널,  aufs와 같은 유니언 가능 파일 시스템의 리소스 격리 기능을 사용하며, 이를 통해 독립적인 "컨테이너"가 하나의 리눅스 인스턴스 안에서 실행할 수 있게 함으로써 가상 머신을 시작하여 유지 보수해야 하는 부담을 없애준다.

 

도커 컨테이너 환경은 기존의 가상환경과의 중요한 차이점이 있다. 기존의 가상환경은 Hypervisor 기술을 이용하여 설치된 여러 개의 운영체제에 각각의 시스템 자원을 부여하고 운영체제는 자신에게 주어진 자원만 사용할 수 있다. 따라서 전체 RAM 중에서 일정 용량의 RAM을 부여하면 부여된 자원으로만 시스템을 운영할 수 있다. 하지만 도커 컨테이너 환경은 하나의 엔진 위에서 운영체제들이 실행되는데 운영체제는 엔진의 시스템 자원을 공유하기 때문에 기존의 가상환경보다 용량도 절약되고 관리가 용이하다. 

 

 

 


1.2     bWAPP 개요

 

필자가 선택한 테스트 환경 서비스는 bWAPP이라는 웹 애플리케이션이다. bWAPP 공식 사이트에의하면 bWAPP 웹 애플리케이션은 의도적으로 취약하게 만들어진 웹 애플리케이션이다. bWAPP은 보안 전문가, 개발자 및 학생이 웹 취약점을 발견하고 공부하는데 도움이 된다. bWAPP은 침투 테스트 및 윤리적 해킹 프로젝트를 수행하는 데 도움을 준다. bWAPP에는 100개 이상의 웹 취약점이 있다.

 

 

 

 


1.3     테스트 환경 서비스 구축 과정

 

프로그램명 버전
VMware Workstation VMware Workstation 15 Player (Non-commercial use only)
Kali Linux 2020.4
bWAPP raesene/bwapp

 소프트웨어 환경

 

 

 

과정  1- 1

테스트 환경 서비스 구축에 앞서 도커를 설치하겠다. 과정 11 같이 칼리 리눅스 터미널에서 sudo apt-get update 명령어를 통해 저장소를 업데이트 한다.

 

 

 

 

 

과정 1-2

 

저장소 업데이트가 완료되면 과정 1-2와 같이 sudo apt install docker.io 명령어로 도커를 설치한다.

 

 

 

 

 

 

 

과정 1-3

도커 설치가 완료되면 과정 1-3과 같이 sudo service docker start 명령어로 설치한 도커를 실행한다.

 

 

 

 

과정 1-4

다음으로 bWAPP 서비스를 구축하겠다. 과정 1-4와 같이 sudo docker search bwapp 명령어로 bwapp docker.hub에 검색한다. 화면에 출력되는 리스트는 STARS가 높을수록 상위에 존재한다. 쉽게 말하면 인기가 많은 서비스 이름이 상위에 위치한다. 필자는 가장 위에 있는 raesene/bwapp을 설치하겠다.

 

 

 

 

과정 1-5

 과정 1-5 같이 pull 명령어로 raesebe/bwapp 설치한다.

 

 

 

 

 

과정 1-6

설치가 완료된 서비스를 과정 1-6 같이 run 명령어로 82포트를 사용해서 실행한다.

 

 

 

 

과정 1-7

다음으로 Firefox 브라우저를 키고 localhost:82로 접속하면 과정 1-7과 같이 오류가 뜬다. 위 오류는 bWAPP의 데이터베이스가 아직 생성되지 않았기 때문이다.

 

 

 

 

과정 1-8

브라우저 주소 창에 과정 1-8처럼 localhost:82/install.php로 검색한다. 그러면 다운로드 페이지가 나오는데 “here”을 클릭해서 데이터베이스를 생성한다.

 

 

 

 

 

 

과정 1-9

데이터베이스 생성이 끝나면 localhost:82로 다시 접속하면 로그인 창이 출력된다. 아이디와 비밀번호는 로그인 창에 적혀있는 대로 bee/bug이다. 이로써 테스트 환경 서비스 구축은 끝났다.

 

 

 

 

 


도커 환경에서의 로그, 이미지 관리


2.1     로그 관리

과정 2-1

 

과정 2-1과 같이 sudo docker ps –a 명령어로 2장에서 실행한 bwapp 서비스를 열람한다. 그리고 내가 만든 서버의 NAMES를 복사한 뒤 명령어 sudo docker exec –i –t (NAMES) /bin/bash (NAMES)에 붙여 넣은 후 터미널에 명령어를 입력한다. 그러면 bwapp 서버에 접속할 수 있다.

 

 

 

 

 

과정 2-2

bWAPP 서버의 log디렉토리 위치는 /var/log에 있다. 과정 2-2와 같이 cd 명령어로 이동하면 여러 가지 log파일을 볼 수 있다. 이 중에서 가장 중요한 웹 로그를 보기 위해 cd apache2 명령어로 apache2 디렉토리로 이동하겠다.

 

 

 

 

과정 2-3

apache2 디렉토리로 이동 후 ls –al 명령어로 파일 리스트를 출력하면  과정 2-3과 같이 세 가지 파일이 존재한다. 이 중에서 access.log가 웹 로그라는 것을 알 수 있는데 그 이유는 bWAPP 웹페이지에 접속해서 새로고침을 여러번 누르면 access.log의 파일 크기가 커지는 것을 관찰할 수 있기 때문이다.

 

 

 

 

과정 2-4

과정 2-4와 같이 cat 명령어로 access.log 파일을 열람하면 웹 로그들이 쌓여있는 것을 볼 수 있다.

 

 

 

 

 

과정 2-5

만약 웹 로그가 아닌 시스템 로그를 열람하고 싶다면 exit명령어로 bwapp 컨테이너 bash 쉘에서 호스트 터미널로 나온 후 과정 2-5와 같이 sudo docker logs (컨테이너 이름) 을 입력하면 시스템 로그를 볼 수 있다.

 

 

 

 

 

 


2.2     이미지 관리

과정 2-6

과정 2-6과 같이 sudo docker images 명령어로 설치된 이미지들을 열람한다. 필자는 2-5와 같이 pull 명령어를 사용하여 지금까지 6개의 이미지를 설치했기 때문에 6개의 이미지가 있다.

 

 

 

 

 

과정 2-7

다음으로 sudo docker ps –a 명령어로 지금까지 실행한 컨테이너들을 열람하겠다. 과정 2-7을 보면 필자는 8개의 컨테이너가 있는데 이미지 보다 2개가 더 많은 이유는 한 개의 이미지를 이용하여 여러 개의 컨테이너를 만들 수 있기 때문이다.

 

 

 

 

 

 

과정 2-8
과정 2-9

만약 사용하지 않는 컨테이너를 제거하고 싶다면 과정 2-8과 같이 sudo docker rm (CONTAINER ID) 명령어로 제거할 수 있다. 반대로 종료된 컨테이너를 다시 시작하고 싶다면 과정 2-9와 같이 sudo docker start (CONTAINER ID) 명령어로 시작할 수 있다.

 

 

 

 

 

 

 

과정 2-10

마지막으로 이미 실행 중인 웹 서비스 컨테이너에 접속하겠다. 필자는 과정 2-9 wordpress mysql 컨테이너를 실행했다. wordpress mysql 컨테이너를 실행한 뒤 동작되므로 mysql 컨테이너부터 실행하도록 한다.

 

 

 

 

 

과정 2-11

과정 2-11과 같이 exec 명령어로 wordpress 컨테이너의 bash 쉘을 획득한다.

 

 

 

 

 

과정 2-12

과정 2-12와 같이 쉘에서 id, whoami 명령어를 입력하면 root권한을 획득했음을 알 수 있다. 이로써 실행 중인 wordpress 웹 서버를 맘대로 조작할 수 있다.

 

 

 


참고 문헌

3.1  단행본

도서명 저자 출판사
     

 

3.2     참조 홈페이지

참조 홈페이지
https://ko.wikipedia.org/wiki/도커_(소프트웨어)/
http://www.itsecgames.com/

 

댓글