정의: 단순한 방법(연속된 숫자 할당 etc.)으로 생성되는 세션 ID를 예측하여 세션을 가로챔
예방: 세션 ID를 추측 불가능하도록 난수로 생성
단순 조합보다 상용 웹 서버나 웹 애플리케이션 플랫폼에서 제공하는 세션 ID 사용
로그인 시마다 추측할 수 없는 새로운 세션ID로 발급
정의: 세션의 만료기간을 정하지 않거나 만료기한을 너무 길게 설정하여 공격자가 만료되지 않은 세션을 활용할 수 있게 되는 취약점
예방: 세션 타임아웃 구현, 타임아웃 시간은 분으로 설정한다
세션만료란?
사용자 인증 후 웹 사이트 내에서 이벤트 없이 일정 시간이 경과하면 임의로 세션을 종료시켜 서비스 접근을 제한하는 기능
공개된 장소에서 사용자가 오랜 시간 자리를 비우는 경우 타 사용자에 의한 침해 방지를 위함
정의: 사용자 로그인 시 항상 일정하게 고정된 세션 ID 값을 사용하는 취약점
로그인 시 세션마다 새로운 세션 ID가 발행되지 않으면 세션 ID를 도용한 비인가자의 접근 및 권한 우회 가능
예방: 인증 시 사용자가 매번 새로운 세션 ID를 부여받게끔 해야 함
정의: 웹 애플리케이션에 자동화 공격을 수행하여 많은 수의 프로세스를 실행시킴
데이터 등록 또는 메일 발송 기능 등 웹 애플리케이션에 구현된 기능의 적절성에 대한 검증 로직이 필요
예방: 사용자의 등록이 일회성이 될 수 있도록 이미지를 이용하여 확인 값
을 표시하고 사용자가 값을 등록하여 인증하는 등 일회성 확인 로직을 구현
자동화 공격을 시도하면 짧은 시간에 다량의 패킷이 전송되므로 이를 공격으로
감지하고 방어할 수 있는 IDS/IPS의 시스템 구축
서버에 요청되는 패킷 모니터링 시스템 구축 없이는 적절한 방어가 어렵다
ex) 로그인 시도가 5회 이상이면 로그인이 불가능하도록 계정을 잠근다
정의: 관리자 페이지가 추측 가능한 형태로 구성되어있을 경우 공격자가 관리자 페이지에 쉽게 접근가능하며 무차별 대입 공격을 통해 관리자 권한을 획득할 수 있는 취약점
예방: 관리자페이지 IP 접근 제어
☞ 별도의 네트워크 범위로 IP 레벨의 접근 권한 설정
웹 관리자 메뉴의 접근 제한
웹 관리자 인터페이스는 SSL 기술을 이용하여 HTTP over SSL 같은 Data Transaction 암호화를 반드시 적용한다
사용자 접근 제어
☞ 웹 관리자 메뉴의 접근을 특정 네트워크 대역으로 제한하여 IP Address까지도 인증
요소를 체크하도록 웹 관리자 사용자 인터페이스 개발
관리자 인증 후 접속 가능한 페이지의 경우 해당 페이지 주소를 입력하여 들어가지
못하도록 관리자페이지 각각에 대해 관리자 인증을 위한 세션 관리 필요
정의: 폴더나 파일명의 위치가 쉽게 예측 가능하고 노출되어 공격자가 이를 악용하여 대상에 대한 정보를 획득하고 민감한 데이터에 접근 가능하게 하는 취약점, 웹 서버에서 HTML로 로드되지 않는 불필요한 파일은 삭제해야 한다
예방: 웹 디렉토리를 조사하여 백업 파일을 모두 삭제하고 작업 중 생성된 텍스트나 이미지
파일 제거
백업 파일은 백업 계획을 수립하여 안전한 곳에 정기적으로 백업하고 웹 서버 상엔 운영
에 필요한 최소한의 파일만 생성
웹 서버 설정 후 디폴트 페이지와 디폴트 디렉터리 및 Banner 를 삭제하여 Banner Grab
에 의한 시스템 정보 유출 차단
Apache,IIS,Tomcat 등 웹 서버 설정 시 함께 제공되는 샘플 디렉토리 및 메뉴얼 디렉토
리, 샘플 애플리케이션을 삭제하여 보안 위험 최소화
필터링 대상: .bak, .backup,.org,.old,.sql,.temp,.!,.tmp,.txt,.new,.zip,.log
log4j 운영기 로그 레벨은 ERROR를 권장(불필요한 부하를 감소)
Filter를 이용하여 특정 keyword가 있을 시 찍지 않도록 구현
전체 map을 찍을 필요가 없고 민감 정보가 없을 경우 replaceAll 사용
특정 key 값을 찍을 경우 get을 사용
CRLE_INJECTION_LOGS 공통함수화 예시: Spring F/w를 사용할 경우 Servlet Filter, DidpatcherServlet,Interceptor를 통해 필터링 정책 적용 가능