[취약점] 정보 누출
2024. 3. 23. 02:11ㆍ정보 보안/취약점
정의
웹 서비스 시 불필요한 정보가 노출되는 취약점이며 예를 들면 웹 사이트에 중요정보(개인정보, 계정정보, 금융정보 등)가 노출되거나 에러 발생 시 과도한 정보(애플리케이션 정보, DB 정보, 웹 서버 구성 정보, 개발 과정에서의 주석 혹은 코멘트 등)가 노출되는 것을 의미한다.
공격 시나리오
불필요한 정보가 노출될 시 공격자들에 의해 2차 공격의 정보로 활용될 수 있다.
대응 방안
- 웹 사이트에 노출되는 중요정보는 마스킹 적용
- 발생 가능한 에러에 대해 최소한의 정보 또는 사전에 준비된 메시지만 출력
판단 기준
주요정보통신기반시설
- 양호 : 웹 사이트에 중요정보가 노출되지 않고, 에러 발생 시 과도한 정보가 노출되지 않는 경우
- 취약 : 웹 사이트에 중요정보가 노출되거나, 에러 발생 시 과도한 정보가 노출되는 경우
점검 예시
주요정보통신기반시설
- 웹 사이트에 중요정보(비밀번호, 계좌번호 등)가 평문으로 노출되고 있는지 확인
- 웹 페이지에 마스킹된 중요정보가 웹 페이지 소스에 평문으로 노출되고 있는지 확인(예를 들어 input 태그의 type 속성 값을 password로 적용하여 마스킹했으나 소스에는 평문으로 보이는 경우)
- 에러 발생 시 에러 메시지 또는 에러 페이지에 과도한 정보가 노출되는지 확인
- 인코딩 된 중요정보는 디코딩으로 알아볼 수 있는지 확인
- 임의의 계정으로 로그인을 시도하여 반환되는 에러 메시지를 통해 특정 ID의 가입 여부를 식별할 수 있는지 확인
전자금융기반시설
- 개발자 도구 및 웹 프록시 툴을 이용하여 서버로부터 중요정보의 전달 여부 점검
- 에러 발생 시 절대 경로 주소나 웹 서버 버전 정보 등이 발생 여부 점검
구체적 보안 설정 방법
1. 사용자가 중요정보 입력 시 별표로 표시하는 등의 마스킹 처리를 하여 주변 사람들에게 노출되지 않도록 해야 한다.
2. 개인정보 조회 및 출력 시 아래와 같은 원칙으로 일부 정보에 마스킹을 적용하여 유추하기 쉽지 않도록 한다.
- 성명 중 이름의 가운데 글자 마스킹 처리. Ex) 홍*동
- 생년월일 Ex) ****년 *월 *일
- 전화번호 Ex) 010-****-1234
- 주소 Ex) 서울시 강남구 ***동
- Ip 주소의 일부
3. 웹 페이지를 운영 서버에 이관 시 주석은 모두 제거한 후 이관한다.
4. 중요정보는 HTML 소스에 포함하지 않도록 한다.
5. 로그인 실패 시 반환되는 에러 메시지는 특정 ID의 가입 여부를 식별할 수 없도록 구현한다.
6. 일반적으로 웹에서 발생하는 에러 메시지는 400, 500번대의 에러 코드를 반환하며 이러한 에러 코드에 대해 별도의 에러 페이지로 리디렉트 하거나 적절한 에러처리 루틴을 설정하여 처리하도록 구현한다.(전체적인 통합 에러 페이지를 작성한 후 모든 에러 코드에 대해 통합 에러 페이지로 리디렉트 되도록 설정하는 것을 권장)
Ex).Apache
httpd.conf 파일
ErrorDocument 500 "Error Message"
ErrorDocument 404 "/your web root/error.html"
ErrorDocument 404 "/your web root/error.html"
ErrorDocument 402 http://test.com/error.html
위와 같이 특정 에러 코드에 대해 에러 메시지를 출력하도록 설정할 수 있고 특정 웹 페이지로 리디렉트 시키는 것도 설정 가능하다.
'정보 보안 > 취약점' 카테고리의 다른 글
[취약점] 크로스사이트 스크립팅(XSS) (0) | 2024.03.23 |
---|---|
[취약점] 악성 콘텐츠 (0) | 2024.03.23 |
[취약점] 디렉터리 인덱싱 (0) | 2024.03.22 |
[취약점] SQL 인젝션 (0) | 2024.03.22 |
[취약점] 운영체제 명령 실행 (2) | 2024.03.22 |