정보 누출
IT위키
더 많은 작업
정보 누출(Information Leakage)은 웹 사이트의 화면·오류 메시지·소스 주석·응답 헤더 등에 개인정보나 계정·금융 정보 같은 중요정보, 또는 시스템 내부 정보가 필요 이상으로 드러나 공격자가 2차 공격에 쓸 수 있게 되는 웹 취약점이다.
정보 누출은 그 자체로 시스템을 장악하는 공격이 아니라, 다음 공격을 준비하는 데 쓰일 정보를 넘겨주는 약점이다. 예를 들어 오류가 났을 때 화면에 SQL 문과 테이블 이름, 데이터베이스 종류와 버전, 웹 서버·프레임워크 버전, 파일의 실제 경로, 스택 트레이스가 그대로 찍히면 공격자는 그 정보로 SQL 인젝션 문장을 맞추거나 해당 버전의 알려진 취약점을 찾는다. 개발할 때 남긴 HTML 주석에 테스트 계정이나 내부 주소가 적혀 있는 경우도 같다.
웹 취약점 점검 항목에서는 정보 누출이라는 이름으로 다룬다. 「소프트웨어 개발보안 가이드」의 '오류 메시지 정보노출'(시큐어 코딩의 에러처리 유형)도 같은 계열이다.
| 구분 | 예 |
|---|---|
| 중요정보 | 개인정보(주민등록번호, 연락처), 계정정보(아이디, 비밀번호), 금융정보(카드번호, 계좌번호)가 마스킹 없이 화면·응답·URL 에 노출 |
| 오류 정보 | 에러 페이지의 SQL 오류 메시지, 스택 트레이스, 서버 내부 파일 경로 |
| 시스템 정보 | 응답 헤더·배너의 웹 서버, 애플리케이션 서버, DB 종류와 버전 |
| 개발 흔적 | HTML·자바스크립트 주석에 남은 개발 과정의 코멘트, 테스트 계정, 내부 IP |
- 일부러 없는 페이지나 잘못된 파라미터를 요청해 에러 페이지에 내부 정보가 나오는지 본다
- 오류가 나면 공통 에러 페이지로 보내고, 상세한 오류 내용은 서버 로그에만 남긴다
- 화면과 응답에 나가는 개인정보·금융정보는 마스킹하고, 중요정보를 URL 파라미터로 넘기지 않는다
- 배포 전에 소스의 주석과 테스트 코드를 지운다
- 응답 헤더와 배너에 서버 버전을 드러내지 않는다. 아파치는
ServerTokens Prod,ServerSignature Off로 줄인다 → 웹 서버 보안
| 취약점 | 무엇이 문제인가 | 결과 |
|---|---|---|
| 정보 누출 | 중요정보·에러·버전·주석이 필요 이상으로 노출 | 2차 공격에 쓸 정보 제공 |
| 디렉터리 인덱싱 → 디렉토리 리스팅 | 기본 문서가 없는 디렉터리에서 파일 목록이 그대로 보임 | 백업·소스 파일 노출 |
| 운영체제 명령 실행 → 명령어 삽입 | 입력값이 시스템 명령에 그대로 붙어 실행됨 | 서버에서 임의 명령 실행 |
| XPath 인젝션 | 입력값이 XPath 질의에 그대로 붙음 | XML 데이터 조회 조작, 인증 우회 |
- "에러 발생 시 애플리케이션·DB·웹 서버 구성 정보, 개발 과정의 코멘트가 노출되어 2차 공격 정보가 된다" 는 설명은 정보 누출이다. 디렉터리 인덱싱은 '파일 목록', 명령 실행·XPath 인젝션은 '입력값 삽입' 이 핵심이다.