백승호 이글루시큐리티 사이버위협분석팀 차장

[아이티데일리] 이번 회는 보안설정이 잘못되어 피해가 발생하는 관리자페이지 노출, 위치공개 취약점에 대해 살펴본다.

관리자 페이지 노출 취약점은 URL 강제 접속, SQL 인젝션 등 다양한 공격으로 노출될 수 있다. 관리자 페이지가 노출되면, 공격자는 관리자만 열람/게시할 수 있는 콘텐츠를 조작하여 홈페이지를 변조할 수 있으며, 회원정보 등을 열람할 수 있게 된다.

관리자 페이지는 특정 사용자의 IP에서만 접근 가능하도록 하여야 하며, 80포트가 아닌 별도의 포트를 생성하여 사용하는 것이 안전하다. 관리자 컴퓨터가 아닌 일반 사용자 컴퓨터의 브라우저상에서 해당 페이지를 직접 호출하여 접속 가능 여부를 확인한다.

일반적인 WAS의 디폴트 관리자 페이지는 표와 같다.

▲ <그림1> WAS 디폴트 관리자 페이지

관리자 페이지는 접근 권한을 가진 IP에서만 접근 가능하도록 권한을 설정하여야 한다.

또한 소스코드 상에서 접속자의 IP를 체크하여 허용된 IP에서만 접근되도록 제한 설정을 할 수 있는데, 이때는 관리자 페이지의 메인 페이지뿐만 아니라 관리자 권한이 필요한 모든 페이지에 권한 체크 모듈을 추가해야 한다.

위치 공개는 개발 시 사용한 테스트 파일, 애플리케이션(아파치, IIS, 톰캣 등) 설치 시 기본적으로 설치되는 관리자 페이지, 샘플 페이지 및 매뉴얼 페이지 등을 삭제하지 않아 발생하는 취약점이다.

공격자는 이러한 취약점이 존재할 경우, 백업 파일 등을 통하여 웹 서버의 소스 파일 다운로드가 가능하여 소스코드 상에 기록되어 있는 데이터베이스 접속 정보, 웹 서버 정보 등을 분석하고 이를 이용하여 웹 서버 침투, 자료유출 등 2차 공격에 악용할 수 있다.

아래 <그림2>는 백업 파일의 존재로 인해 소스 코드 및 SQL 쿼리문이 노출되는 예이며, <그림3>은 개발 시 편의를 위해 만들어 놓은 데이터페이스 쿼리문을 저장해 놓은 파일을 통해 데이터베이스의 테이블 구조가 노출되는 예이다.

▲ <그림2> 백업 파일

▲ <그림3> 데이터페이스 쿼리문 저장 파일

이렇게 불필요하게 존재하는 디폴트 페이지를 이용하여 시스템 정보가 노출될 수 있고 관리자 페이지를 이용하여 관리자 권한이 노출될 수도 있으며, 상용 데이터의 디폴트 업로드 페이지 등을 이용하여 웹 쉘 업로드 등 2차적인 피해가 발생할 수 있다.

초기 서비스 설치 시 디폴트로 설치되는 콘텐츠 및 서비스들을 삭제하거나 비활성화 시켜야 한다.

디폴트 패스워드는 반드시 변경하여야 하며, 관리자 페이지 등의 경로는 변경 또는 접근제한 설정을 하여야 한다. 디폴트 디렉터리(/htdocs, /cgi-bin 등), 디폴트 페이지(manual, sample 등), 샘플 페이지 등은 일반사용자가 접근할 수 없도록 삭제 또는 변경하거나 적절한 권한(디렉터리 또는 파일 접근 권한) 설정을 하여야 한다.

웹로직, 제우스, 톰캣 등 원격 관리 콘솔 기능을 제공하는 제품을 사용할 경우, 관리 콘솔을 디폴트로 설치되어 있는지 확인하고 사용하지 않는 관리 콘솔을 중지하거나 삭제한다.

또한 홈페이지 디렉터리와 다른 곳에서 백업 본을 생성하고 소스 수정 후 소스만 업로드 하도록 하여 웹브라우저를 통해 보여지는 디렉터리에는 html, asp, php, cgi, jsp 등만 업로드 하도록 하며, 텍스트로 기록된 파일들은 업로드 하지 않도록 하여야 한다.

메서드는 웹 애플리케이션에서 기본적으로 제공하는 클라이언트와 통신하기 위한 도구이며, GET, POST, PUT, MOVE, DELETE등 여러 가지 메서드가 있다.

메서드는 다양한 기능을 수행하는데, 공격자는 웹 서버에 허용되어 있는 메서드를 이용하여 파일 업로드, 웹 서버 파일삭제 등 웹 서버를 인증 없이 조작할 수 있다.

때문에 서비스를 위해 꼭 필요한 메서드인 GET, POST, OPTIONS를 제외하고는 모두 비활성화 시키는 것이 안전하다.

HEAD 메서드의 경우는 디폴트로 사용하고 있는 경우가 있으나 HEAD 메서드와 제이보스의 취약점이 결합하여 파일이 업로드 되는 사례가 발표된바 있다.(참고: 위험한 HTTP 메서드를 이용한 웹 응용 침투시험, SANS KOREA, 2012. 11) 때문에 디폴트로 설정되어 있더라도 꼭 필요하지 않은 메서드는 비활성화 시키는 것이 안전하다.

웹 서비스 메서드의 활성화 여부를 확인하기 위해서는 윈도우의 명령 창(cmd.exe)을 실행 후 명령 창에 입력하거나 웹 프록시 툴의 Repeater 기능을 이용하여 아래 내용을 입력하여 메서드 활성화 여부를 확인한다.

- telnet 도메인 명 80[enter]
- OPTIONS / HTTP/1.1 또는 OPTIONS * HTTP/1.1[enter][enter]

위와 같이 입력하면 허용된 메서드들이 아래 그림과 같이 나타남을 확인할 수 있다.

▲ <그림4> 메서드 확인 결과

각 기본 메서드의 기능은 표와 같다. 기본 메서드 이외에 확장 메서드로 PATCH, PROFIND, PROPPATCH, MKCOL 등을 사용하는 경우도 있다.

▲ <그림5> 메서드 기능 표

불필요한 메서드가 활성화 되어 있는 경우 PUT 메서드를 통하여서는 파일 업로드가 가능하다. 이를 통해 웹 쉘 등의 업로드 가능하며, index.html 파일로 업로드 할 경우 메인페이지가 업로드 한 파일 내용으로 변조된다.

또한 MOVE, DELETE 등의 메서드를 이용하여 홈페이지의 소스 파일을 삭제하거나 이동시켜 홈페이지 조작이 가능하다.

때문에 POST, GET, OPTIONS 이외에 애플리케이션에서 사용되지 않는 HTTP 메서드들(PUT, DELETE 등)은 모두 비활성화 시키는 것이 안전하다.

 

저작권자 © 아이티데일리 무단전재 및 재배포 금지