본문 바로가기

정보보호

칼리리눅스의 워드프레스 취약점 점검 도구 (wpscan) 사용기


정보보안 관련 인증심사를 진행할 때 가장 어려운 점은 바로 심사 대상 기관의 정보자산에 대한 정보의 부족이다.  내가 참여한 인증심사는 평균적으로 4일에서 5일간 진행되는데 관리적 보안 측면 뿐만 아니라 기술적 보안 측면에 큰 비중을 두고 진행된다. 이는 우리나라의 특이한 문화...즉 서류에 대한 불신에 기인한다고 생각된다. 하다못해 입사서류에 첨부되는 이력서와 자기소개서 마저도 허풍과 과장이 난무하여 진실과는 거리가 먼 경우가 태반일 정도로 거짓이 난무하는 나라가 바로 우리나라 아닌가...


개인적인 것을 떠나 공적인 측면에서는 더욱 심한 거짓이 난무한다. 정보보호관리체계의 경우 정책과 지침을 얼마나 잘 이행하고 있는지를 "증적"이라 부르는 이행 문서로 점검한다. 그리고 이 이행증적은 신뢰가 생명이다. 하지만 이 이행증적이 갖추어져 있다고 실제로 정확하게 이행하고 있다고 신뢰하는 것은 적어도 대한민국에서 아직은 어불성설이다.

 

대부분의 심사 대상기관은 위험관리지침 등에 따라 실제로 매년 최소 1회 이상 취약점 점검을 이행하고 있고 발견된 취약점은 단기, 중기, 장기로 분류하여 조치하고 있다고 취약점 조치 결과 보고서를 작성하여 CISO의 승인을 받고 있다. 하지만 심사 시 샘플링을 통해 서버를 점검해 보면 매우 기본적인 사항 조차 제대로 지켜지지 않고 있는 경우를 종종 보게 된다. 예를 들면 중요 관리자 계정의 비밀번호를 변경하지 않는다. 심지어 4~5년 전 도입된 서버인데 root 계정이나 Administrator 계정, 심지어 Oracle DBMS의 관리자 계정 비밀번호를 한번도 변경하지 않은 것이 발견되기도 한다. 게다가 비밀번호의 일방향 암호알고리즘을 Unix의 Default 즉 Crypt() 함수를 사용하는 심하게~취약한 알고리즘 그대로 두고 있는 경우도 태반이다. 1년 전 본격적으로 관련 심사에 참여하기 시작하면서 깜짝 놀랐던 것 중 하나였다. 즉 이행증적을 절대 신뢰해서는 안된다는...슬픈 현실을 접한 것이다.


그리고 오늘의 주제인 공개서버에 대한 취약점 점검도, 하고는 있으나 너무 형식적인 경우가 많다.


얼마 전 모 대기업...그것도 IT 사업을 수행하는 기업의 심사에 참여할 기회가 있었다. 전년도 심사 때 해당 기업의 대표 홈페이지가 인증범위에 빠져있었고 올해 처음 인증범위에 포함되었다. 단순 홍보용 홈페이지 였지만 점검 과정에서 이용자들이 상시 채용으로 인지할 수 있는 개인정보 수집과 첨부파일을 수집하는 페이지가 발견 되었다. 하지만 홈페이지에 전송구간 암호화(SSL 등)가 적용되지 않은 듯 보였고 담당자의 확인 결과 암호화를 하고 있다는 답변을 들었다. 하지만 이용자 측면에서 볼 수 있는 웹페이지와 소스상에는 암호화 관련 부분이라 보이는 코드가 없었다.


그래서 와이어샤크와 같은 패킷캡처 도구를 이용해 개인정보를 전송하는 시점의 패킷을 캡쳐하여 확인할 수 밖에 없었고 확인 결과 웹서버에 직접 SSL인증서를 적용하지는 않았지만 다른 방법을 통해 개인정보를 전송하는 시점에 TLS1.2를 이용해 암호화여 전송하고 있음을 확인할 수 있었다. 그런데 그 과정에서 뜻밖의 사실을 알게 되었다. 바로 공개용 홈페이지, 그것도 상시채용을 위한 개인정보 수집페이지에 워드프레스(WordPress)를 사용한다는 것이다.



패킷 암호화를 확인하는 중 위 화면과 같이 URL이 보이는 HTTP헤더부분에서 wp-content 라는 경로 문자열을 보고 워드프레스를 사용하고 있다는 사실을 알게 되었다. 아마도 이 웹사이트를 공격하기로 작정한 해커가 등장한다면 비와 비슷한 방법으로 워드프레스를 사용하고 있다는 사실을 확인할 것이다.


워드프레스는 세계적으로 많이 사용되는 공개용 블로그 저작 도구다. 워드프레스는 유현한 구조와 다양한 플러그인들이 개발되어있어 기업용 홈페이지 제작에도 종종 사용되기도 한다. 하지만 그만큼 취약점이 많아 수시로 릴리즈 되는 취약점 패치를 신속하게 해주지 않으면 해커들의 밥~이 되기 쉬운 공개소프트웨어다. 해당 기업은 대기업의 IT계열사 임에도 워드프레스를 대표홈페이지에 사용하고 있었고 홈페이지의 개발과 관리를 IT조직이 아닌 정보보안팀과의 접점이 별로 없는 별도의 조직(예를 들면 마케팅부문)에서 수행하고 있어 정보보안팀에서는 이러한 상황을 제대로 인지하지 못하고 있었다. 따라서 워드프레스에 대한 별도의 취약점 점검이 실시되지 않고 있었다.


그래서 칼리리눅스를 이용해 외부에서 간단하게 취약점을 찾아보기로 했다. 


칼리리눅스에는 wpscan 이라는 워드프레스 취약점 점검도구를 제공한다. 칼리리눅스를 실행하고 로그인 한 뒤 다음과 같은 메뉴에서 찾아볼 수 있다.



웹애플리케이션분석 그룹에 wpscan 이라는 프로그램이 보인다. 하지만 GUI 기반의 도구는 아니다. wpscan을 실행해보면 다음과 같이 주루룩~~help 가 출력된다. 칼리리눅스의 대부분의 도구를 실행하면 비슷하다.



wpscan이 어떤 도구인지 보여주고.... 옵션들에 대한 설명이 두세페이지 더 출력된다. 그리고 마지막에는 사용예제 명령어라인도 보여준다. 사용법이 크게 어렵거나 하지는 않다.



wpscan을 통해 해당 웹서버를 스캔한 결과 많은 취약점이 존재하는 버전의 워드프레스를 사용하고 있는 것으로 의심되었다. 확인된 버전은 4.5.3으로서 2016년 6월 버전이다.



버전도 문제지만 워드프레스를 설치할 때 생성되는 readme.html  파일이 삭제되지 않고 있는 것이 큰 문제다. 그리고  readme.html에 표시된 버전은 설치 당시의 버전일 가능성이 높으며 담당자가 수시로 워드프레스를 업데이트하고 있다면 실제로는 업데이트 되어 있을 수도 있다.  하지만 readme.html 파일을 삭제하지 않는 것은 또 다른 문제를 야기할 수 있다. 이 URL에 접속해 보면 그 이유를 알 수 있다.



이 readme.html 파일에는 초기 워드프레스를 설치할 수 있는 install 페이지 링크를 제공한다. 그리고 이미 설치가 완료된 이후에는 설치 및 업데이트 링크를 클릭할 경우 다음과 같은 메시지를 보여주면서 워드프레스 관리자 페이지로 접속할 수 있는 링크를 제공한다.



때문에 워드프레스 설치 후 readme.html페이지는 삭제하는 것이 가장 좋고 남겨두고자 한다면 관련 URL 링크를 변경해주는 것이 좋다. 이 곳의 경우 위 화면의 로그인 버튼을 클릭하면 실제 관리자 페이지 로그인 창으로 연결되어 인터넷을 통해 관리자 페이지에 접속이 가능한 상태였다. 


이 홈페이지는 상시채용 관련 개인정보를 수집하므로 개인정보처리시스템에 해당되고 개인정보취급자가 개인정보처리시스템에 인터넷을 통해 접속할 경우 VPN 등 안전한 접속 수단 또는 안전한 인증을 의무적으로 해야 한다. (여기서 안전한 인증이라 함은 ID/PWD 인증 후 추가적인 인증(OTP, 인증서 등)을 의미한다.)


하지만 이 포스트를 작성하는 시점에서는 관리자 페이지 URL을 변경 조치하여 외부에 노출이 되지 않도록 하였고 관련 URL 링크를 클릭할 경우 에러페이지로 연결되도록 수정한 것으로 확인 되었다.


이런 상황을 볼 때 정보보안팀은 조직내의 자산을 식별할 때 공개소프트웨어를 사용하는지 여부와 사용 현황에 대해 별도로 관리하고 취약점점검을 수행하는 것이 바람직하다고 하겠다.


이 심사의 경우 어쩌다 보니...취약점을 찾아주는 역할도 하게 되었다.