[Web Application-모의해킹] 정보 누출 : 대응 방안 #5-1

2024. 5. 1. 14:47Project/Web Application-모의해킹

 

대응 방안 (feat.주요통신기반시설)

 

1) 점검 방법

 

  정보 누출 취약점을 점검하는 방법은 다음과 같다.

 

  • 웹 사이트에 중요정보가 평문으로 노출되고 있는지 확인
  • 웹페이지에 마스킹된 중요정보가 웹페이지 소스에 평문으로 노출되고 있는지 확인
  • 에러 메시지 또는 에러 페이지에서 과도한 정보가 노출되는지 확인
  • 인코딩 된 중요정보는 디코딩 가능한지 확인
  • 임의의 계정으로 로그인을 시도하여 반환되는 에러 메시지를 통해 특정 ID의 가입 여부를 식별할 수 있는지 확인

 

2) 보안설정방법

 

  정보 누출 취약점에 대한 대응 방안은 다음과 같다.

 

  1. 사용자가 주민등록번호 뒷자리, 비밀번호 입력 시 별표 표시하는 등 마스킹 처리를 하여 주변 사람들에게 노출되지 않도록 함
  2. 개인정보의 조회, 출력 시 아래와 같은 원칙으로 일부 정보에 마스킹을 적용하여 표시
  3. 웹페이지를 운영 서버에 이관 시 주석은 모두 제거하여 이관
  4. 중요정보(개인정보, 계정정보, 금융정보 등)를 HTML 소스에 포함하지 않도록 함
  5. 로그인 실패 시 반환되는 에러 메시지는 특정 ID의 가입 여부를 식별할 수 없게 구현
  6. 일반적으로 웹에서 발생하는 에러 메시지는 400, 500번대의 에러 코드를 반환하는데 이러한 에러 코드에 대해 별도의 에러 페이지로 Redirect 하거나 적절한 에러처리 루틴을 설정하여 처리되도록 함(전체적인 통합 에러 페이지를 작성한 후 모든 에러 코드에 대해 통합 에러 페이지로 Redirect 되도록 설정)

 

 

3) 대표적인 대응 방안

 

  • 웹 서버 설정 파일 변경
  • 에러코드 별 에러처리 루틴 설정

 

 

웹 서버 설정 파일 변경

 

  정보 누출 취약점 중 웹 서버에 의도적으로 에러를 유발하여 에러 페이지를 출력하는 케이스가 존재한다. 이때 따로 설정을 하지 않았으면 출력되는 에러 페이지에는 웹 서버 버전이 노출되는 경우가 상당수다. 웹 서버 버전이라던가 사용하고 있는 프로그램의 버전 정보는 되도록이면 노출되지 않은 것이 보안적으로 좋다. 공격자는 노출된 프로그램의 버전 정보를 확보하고 이를 활용해 해당 버전에서 발견된 취약점을 검색하여 공격을 진행할 수 있다. 이러한 이유로 프로그램의 정보는 노출시키지 않도록 주의해야 한다.

 

  웹 서버마다 설정 파일이 다르므로 Apache를 기준으로 설정하는 방법을 소개한다.

 

 

1) ServerTokens, ServerSignature

 

ServerTokens 옵션 값 설명

 

  ServerTokens는 웹 서버 정보 노출 정도를 설정하는 옵션이다. 기본값은 OS이며 이는 웹 서버의 이름과 버전, 운영체제까지 알려준다. 웹 서버 버전은 노출을 최대한 방지해야 하기 때문에 옵션 값 중 Prod를 OS대신 입력해 준다. Prod는 웹 서버의 이름만 알려준다. 그리고 ServerTokens 옵션을 설정했으면 다음으로 설정해줘야 하는 옵션이 ServerSignature다. 해당 옵션은 기본값이 On이며 이는 브라우저 상에서 서버 정보를 노출한다는 의미이다. 옵션 값을 On에서 Off로 변경해 줘야 브라우저 상에 노출시키지 않는다.

 

ServerTokens, ServerSignature 설정 화면

 

 

에러코드 별 에러처리 루틴 설정

 

  웹 서버 버전 노출을 설정 파일에서 변경하여 노출되지 않도록 했더라도 노출되는 경우가 존재하여 이중으로 보안 작업을 하는 것이 좋다. 이를 도와주는 방법으로 에러 페이지가 출력되는 대신 에러 코드별 에러처리를 커스텀해주는 작업이다. 해당 작업도 웹 서버 설정 파일에서 진행되므로 Apache를 기준으로 설정하는 방법을 소개한다.

 

*에러처리 루틴 예시 코드

ErrorDocument [에러코드] [처리방법]

 

  에러처리 코드는 웹 서버 설정 파일에 입력해야 한다. Apache는 httpd.conf 또는 apache2.conf에서 설정할 수 있으며 위에 명시된 예시 코드에 따라 설정하면 된다. [에러코드]에 따라 처리하는 방법을 다르게 할 수 있으며 처리 방법 또한 다양하다. 해당하는 에러 코드 페이지가 출력될 때 설정한 텍스트만 출력되게 하거나, 설정한 페이지로 리디렉트 하는 등의 방법이 존재한다.