본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

정보 누출(Information Leakage)은 웹 사이트의 화면·오류 메시지·소스 주석·응답 헤더 등에 개인정보나 계정·금융 정보 같은 중요정보, 또는 시스템 내부 정보가 필요 이상으로 드러나 공격자가 2차 공격에 쓸 수 있게 되는 웹 취약점이다.

정보 누출은 그 자체로 시스템을 장악하는 공격이 아니라, 다음 공격을 준비하는 데 쓰일 정보를 넘겨주는 약점이다. 예를 들어 오류가 났을 때 화면에 SQL 문과 테이블 이름, 데이터베이스 종류와 버전, 웹 서버·프레임워크 버전, 파일의 실제 경로, 스택 트레이스가 그대로 찍히면 공격자는 그 정보로 SQL 인젝션 문장을 맞추거나 해당 버전의 알려진 취약점을 찾는다. 개발할 때 남긴 HTML 주석에 테스트 계정이나 내부 주소가 적혀 있는 경우도 같다.

웹 취약점 점검 항목에서는 정보 누출이라는 이름으로 다룬다. 「소프트웨어 개발보안 가이드」의 '오류 메시지 정보노출'(시큐어 코딩의 에러처리 유형)도 같은 계열이다.

누출되는 정보

편집 원본 편집
구분 예
중요정보 개인정보(주민등록번호, 연락처), 계정정보(아이디, 비밀번호), 금융정보(카드번호, 계좌번호)가 마스킹 없이 화면·응답·URL 에 노출
오류 정보 에러 페이지의 SQL 오류 메시지, 스택 트레이스, 서버 내부 파일 경로
시스템 정보 응답 헤더·배너의 웹 서버, 애플리케이션 서버, DB 종류와 버전
개발 흔적 HTML·자바스크립트 주석에 남은 개발 과정의 코멘트, 테스트 계정, 내부 IP
  • 일부러 없는 페이지나 잘못된 파라미터를 요청해 에러 페이지에 내부 정보가 나오는지 본다
  • 오류가 나면 공통 에러 페이지로 보내고, 상세한 오류 내용은 서버 로그에만 남긴다
  • 화면과 응답에 나가는 개인정보·금융정보는 마스킹하고, 중요정보를 URL 파라미터로 넘기지 않는다
  • 배포 전에 소스의 주석과 테스트 코드를 지운다
  • 응답 헤더와 배너에 서버 버전을 드러내지 않는다. 아파치는 ServerTokens Prod, ServerSignature Off 로 줄인다 → 웹 서버 보안

비슷한 웹 취약점과 구분

편집 원본 편집
취약점 무엇이 문제인가 결과
정보 누출 중요정보·에러·버전·주석이 필요 이상으로 노출 2차 공격에 쓸 정보 제공
디렉터리 인덱싱 → 디렉토리 리스팅 기본 문서가 없는 디렉터리에서 파일 목록이 그대로 보임 백업·소스 파일 노출
운영체제 명령 실행 → 명령어 삽입 입력값이 시스템 명령에 그대로 붙어 실행됨 서버에서 임의 명령 실행
XPath 인젝션 입력값이 XPath 질의에 그대로 붙음 XML 데이터 조회 조작, 인증 우회
  • "에러 발생 시 애플리케이션·DB·웹 서버 구성 정보, 개발 과정의 코멘트가 노출되어 2차 공격 정보가 된다" 는 설명은 정보 누출이다. 디렉터리 인덱싱은 '파일 목록', 명령 실행·XPath 인젝션은 '입력값 삽입' 이 핵심이다.