국내에서 자주 발생하는 웹 취약점 4가지를 정리하였다.
*웹취약점의 범위와 용어는 KISA의 표준 문서를 기반으로 자신의 회사에 맞게 정의하기 때문에 대표적인 SQLI, XSS와 같은 취약점 이외에도 추가적으로 정의하는 취약점이 존재할 수 있다.
1. 관리자 페이지 노출 취약점(Administration page exposure)
정의
관리자만 접근이 가능해야 하는 관리자 페이지가 일반 사용자에게 노출되어 발생하는 취약점
관리자페이지의 URL이 추측가능한 형태(/admin, /manager 등)로 구성되어 있을 때 주로 발생하며, 공격자는 관리자 로그인 페이지로 이동하여 무차별 대입공격 또는 딕셔너리 공격을 통해 관리자 권한 획득을 시도한다. 해당 관리자 권한을 통해 중요한 데이터를 조작 및 유출할 위협이 존재한다.
사례분석
1. Cisco ASA VPN 관리자 페이지 노출
관리자 페이지가 노출되어, 공격자들이 스캐닝과 브루트포스 공격으로 민감한 정보에 접근하여 시스템의 민감한 정보를 획득
2. 서버 이전과정에서 관리자 페이지 노출
A기관은 B기관과 합병하면서 도메인을 기존의 ‘*.co.kr’에서 ‘*.com’으로 변경하는 과정에서 구서버의 관리자페이지가 외부망에서 접근 가능하도록 방치하였음 또한 해당 관리자페이지는 개발자의 실수로 비밀번호 설정이 해지되어 이용자의 개인정보가 관리자페이지를 통해 대량으로 노출됨
3. 추측하기 쉬운 주소로 인한 관리자 페이지 노출
A교육지원센터의 관리자페이지 접속 주소가 ~admin으로 추측하기 쉬운 주소로 설정되어 있고, 관리자 계정으로 로그인 또는 별도의 인증 없이도 접속이 가능하여 학부모의 개인정보 (이름, 아이디, 이메일, 휴대전화 번호 등)이 관리자페이지를 통해 대량 노출됨
실습
해당 키워드로 구글 검색 시 다양한 종류의 관리자 페이지가 노출됨
inurl:admin intitle:login
공격자는 해당 로그인 페이지에 무차별 대입 공격등을 수행하여 관리자 권한을 얻기 위한 시도를 할 것으로 보임
점검방법
URL에 추측가능한 관리자 페이지 경로(/admin, /manager, /master, /system 등)와 추측하기 쉬운 포트(7001, 8080, 8443, 8888 등)을 입력하여 접근이 가능한지 확인한다.
대응방안
1. (웹방화벽, 웹서버등) 허용된 IP만 관리자 페이지에 접근할 수 있도록 설정한다.
2. 부득이하게 관리자페이지를 외부에 노출해야 하는 경우 관리자 페이지로 로그인 시 2FA(OTP, SMS, 인증서등)을 적용한다.
3. 관리자 페이지의 URL을 추측가능한 형태로 구성하지 않도록 한다.
4. 관리자 페이지의 하위 페이지에 접근하여 민감한 정보가 노출되지 않도록 페이지마다 세션을 검증한다.
2. 디렉터리 나열 취약점(directory listing)
정의
웹상에 디렉터리 인덱스가 노출되어 발생하는 취약점
웹서버의 디렉터리 인덱싱이 활성화되면, 디렉터리 및 파일 목록이 인터넷상에 노출된다. 공격자는 이를 악용하여 디렉터리 및 파일 내에 존재하는 민감한 파일을 열람 및 다운로드할 위협이 존재한다.
사례분석
1. 디렉터리 리스팅 활성화로 인한 회원정보 노출
A협회 홈페이지에서 디렉터리 리스팅을 차단하지 않아 홈페이지 접속 시, 메인화면 대신 디렉터리 인덱스 화면이 출력되어 웹 서버 내 회원정보가 노출되었다.
2. Equifax 데이터 유출(PrivacyEnd)
공격자는 시스템 디렉터리 인덱싱을 통해 보안 패치가 적용되지 않은 취약점 부분을 발견하였고, 이를 통해 수억 명의 개인정보를 탈취하였다.
점검방법
URL을 통해 디렉터리 및 파일 목록이 노출되는 경로를 확인
디렉터리 끝에 %3f.jsp 문자열을 붙여 디렉터리 인덱싱이 되는지 확인한다.
대응방안
1. 웹서버 환경설정에서 디렉터리 인덱싱 비활성화 한다.
3. 시스템 관리 취약점(위치공개 취약점)
정의
시스템을 관리하면서 발생하는 취약한 부분을 모두 포함한 취약점
예를 들어 설치 또는 개발 중에 생성되는 백업파일, 로그파일, 압축파일등이 웹상에 노출되어 발생하는 위치 공개 취약점이 하나의 예이다. 공격자는 백업파일, 로그파일, 압축파일등을 통해 시스템의 취약점을 파악하거나 소스코드 파일에 접근할 위협이 존재한다.
점검방법
1. 디렉터리 인덱스 내에 있는 백업파일, 로그파일, 압축파일등이 있는지 확인한다.
2. 추측 가능한 .bak .temp .tmp으로 접속이 가능한지 확인한다.
대응방안
1. 웹서버의 디폴트 페이지와 의미 없는 백업파일, 로그파일등을 삭제한다.
4. 불필요한 Method 취약점(Insecure HTTP Method)
말 그대로 사용자에게 불필요한 Method까지 허용하여 발생하는 취약점
일반적으로 허용되는 GET, POST 메서드 이외의 PUT, DELETE, COPY, MOVE, TRACE 등의 불필요한 메서드를 허용하였을 때 공격자가 이를 이용하여 임의의 파일을 삭제 및 업로드하는 위협이 존재한다.
점검방법
curl과 같은 명령어나 BurpSuite와 같은 도구를 통해 불필요한 메서드가 허용되어 있는지 확인한다.
대응방안
1. 웹서버에서 불필요한 메소드 비활성화
참고자료
- 웹 애플리케이션 취약점 조치방법(KISTI, 2016)
- 주요정보통신기반시설_기술적_취약점_분석_평가_방법_상세가이드
- 홈페이지 개인정보 노출방지 안내서
- 웹취약점 가이드(KISA, 2013)
- https://www.igloo.co.kr/security-information/%EB%B6%88%ED%95%84%EC%9A%94%ED%95%9C-%EC%9B%B9-method-%EC%A7%84%EB%8B%A8-%EC%8B%9C-%EB%B0%9C%EC%83%9D%ED%95%98%EB%8A%94-%EB%AC%B8%EC%A0%9C%EC%A0%90-%EB%B0%8F-%EB%8C%80%EC%9D%91%EB%B0%A9%EC%95%88/
- https://itcase.tistory.com/entry/28-%EC%B9%A8%ED%95%B4%EB%8C%80%EC%9D%91CERT-5-%EC%9B%B9-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%8B%A4%EC%8A%B51