[JSP] 14. 사용자 정보 및 기타 중요 정보 노출
취약점
웹사이트에서 중요 정보에 대한 데이터 암호화를 적용하여도 정보가 노출될 수 있다.
2가지 유형으로 살펴보면
첫 째, 웹사이트 운영상의 단순한 실수로 발생할수있다.
예를 들어, 관리되지 않고 방치되는 게시판 또는 삭제되지 않은 구 버전 웹사이트, 백업 파일 관리 미흡, 관리자의 실수로 업로드된 엑셀 파일 또는 게시물, 비공개 게시물이 설정 실수로 인해 전원에게 공개되는 경우 등을 들 수 있다.
둘 째, 웹사이트 설정 오류나 보안 취약점으로 발생할 수 있다.
예를 들어 암호화가 미흡하거나 파일 업로드 취약점이나 파일 다운로드 취약점을 통해 서버 측의 리소스가 직접 유출되는 경우, 디렉터리 인덱싱에 의해 파일 목록이 유출되는 경우, 파라미터 변조 취약점 등에 의해서 발생하는 경우, SQL Injection으로 인한 유출 등을 들 수 있다.
따라서, 운영 담당자의 상시 웹사이트 점검 노력과 보안 취약점의 제거 대책이 종합적으로 적용되어야 한다.
보안조치
-
공지사항에 올린 게시물에 개인정보가 포함되어 있지 않은가?
-
게시판에 업로드한 첨부 파일에 개인정보가 포함되어 있지 않은가?
-
웹사이트 리뉴얼 후 구버전 웹사이트가 계속 접속 가능한 상태로 방치되어 있지 않은가?
-
웹사이트에 관리되지 않는 불필요한 포트가 허용되어 있지 않은가? (예: 80 포트와 8080 포트를 동시 허용된 상태로 8080 포트에 웹방화벽이나 SSL 적용이 이루어지지 않는 경우)
-
공개/비공게 게시판 또는 서비스에 대한 접근 Role 설정이 적절하게 관리되고 있는가?
-
웹 방화벽이나 SSL 적용이 누락된 페이지가 존재하지 않는가?
또한 사회 공학적 유형의 정보 유출이 발생하지 않도록 다음과 같은 정책의 적용해야 한다.
-
주민등록번호, 비밀번호와 같은 민감한 정보 입력 시 화면상에 ‘*’로 처리한다.
-
관리자 페이지 등을 통해 사이트 운영자가 회원들의 개인정보에 무단으로 접근하여 열람하지 못하도록 대책을 강구한다.
-
민감한 정보에 대한 접근은 로그를 기록하고 규정에 따라 보관하도록 한다.
"JSP 보안 개발가이드" 에서
마무리
웹사이트의 보안 조치는 기술적인 측면뿐 아니라 민감정보 와일드카드 처리나 개인정보 보관에 관련한 정책 등 관리적 측면에서도 수행되어야 한다.