티스토리 뷰

반응형

이번 세션에서는 준비된 도커이미지를 다운받고, 해당 이미지의 /root 경로에 있는 파일을 확인하여 제시한 암호문을 복호화하는 것이다.

 

우선 도커 이미지부터 다운받고 bash shell로 해당 도커에 접속해보자

docker exec -it [docker image id] /bin/bash 

 

이제 /root에 접속해보면, 현재 사용된 계정은 권한 때문에 접근이 불가능하다는 메시지를 받게 된다. 

 

그럼 이번에는 passwd 파일을 확인하여 관리자 그룹으로 변경해보면 어쩔까 싶어, /etc/passwd 파일을 확인해 보았다.

역시 현재 사용되고 있는 webgoat 계정의 UID/GID는 root와 다른 값이였다. 이제 이 /etc/passwd를 로컬로 다운로드 받아 수정 후 관리자 UID/GID로 변경을 해보자

docker cp [docker image id]:/etc/passwd ./passwd
vi ./passwd
docker cp ./passwd [docker image id]:/etc/passwd

 

 

그리고 다시 도커에 Bash shell로 접속하여 /root에 접속해 보니 이번에는 정상적으로 해당 디렉토리에 접근 및 저장된 파일을 확인할 수 있었다. 저장된 파일명은 default_secret 이였고, 해당 파일에 저장된 암호키는 'ThisIsMySecretPassw0rdF0rY0u' 이라는 것을 확인할 수 있었다.

 

 

그럼 이제 퀴즈에서 이야기 하고 있는 암호문을 해당 암호키 파일을 이용하여 풀어보면 이번 퀴즈의 답을 확인할 수 있다.

 

 

 

아키텍쳐나 시큐어코딩 영역보다는 모의해킹 영역에서 다루는 내용이다보니 정말 오랜만에 리눅스 명령어나 passwd 파일 등을 만져보았다. 15년 전에 배웠던 내용이 아직 기억에 남아있었다는 것이 더 신기했던 세션이였던 것 같다.

 

가끔 웹서비스가 도커를 통해 구동될 때, Credential 등을 도커 내 환경변수나 파일 등에 저장하여 이용하는 경우를 확인할 수 있다. 일반적으로 Password, Credential 과 같은 중요값은 환경변수나 파일에 저장하지 않고 별도의 Secret Maangement 등에 저장하여 이용하도록 가이드를 하고 있다. 왜 그렇게 해야 하는지에 대한 이유가 이번 세션을 통해 확인할 수 있었다. CI/CD 상에서 도커에 자동으로 환경변수 등에 설정하도록 하고, 해당 도커 인스턴스에는 일반 유저가 접근하지 못하도록 ACL을 적용한다 하더라도, 여전히 같은 리스크가 남아 있을 수 있으므로, 안전한 Secret Management 등을 통해 중요 값이 저장 및 이용되어야 할 것 이다.

반응형
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday