모의해킹 기법과 예방 방법

bacccine·2022년 5월 16일
0

정보보안

목록 보기
2/2

해킹

1. 세션 예측

정의: 단순한 방법(연속된 숫자 할당 etc.)으로 생성되는 세션 ID를 예측하여 세션을 가로챔

예방: 세션 ID를 추측 불가능하도록 난수로 생성
	 단순 조합보다 상용 웹 서버나 웹 애플리케이션 플랫폼에서 제공하는 세션 ID 사용
	 로그인 시마다 추측할 수 없는 새로운 세션ID로 발급

2. 불충분한 세션 만료

정의: 세션의 만료기간을 정하지 않거나 만료기한을 너무 길게 설정하여 공격자가 만료되지 않은 세션을 활용할 수 있게 되는 취약점

예방: 세션 타임아웃 구현, 타임아웃 시간은 분으로 설정한다

세션만료란?
사용자 인증 후 웹 사이트 내에서 이벤트 없이 일정 시간이 경과하면 임의로 세션을 종료시켜 서비스 접근을 제한하는 기능
공개된 장소에서 사용자가 오랜 시간 자리를 비우는 경우 타 사용자에 의한 침해 방지를 위함

3. 세션 고정

정의: 사용자 로그인 시 항상 일정하게 고정된 세션 ID 값을 사용하는 취약점
로그인 시 세션마다 새로운 세션 ID가 발행되지 않으면 세션 ID를 도용한 비인가자의 접근 및 권한 우회 가능

예방: 인증 시 사용자가 매번 새로운 세션 ID를 부여받게끔 해야 함

4. 자동화 공격

정의: 웹 애플리케이션에 자동화 공격을 수행하여 많은 수의 프로세스를 실행시킴
데이터 등록 또는 메일 발송 기능 등 웹 애플리케이션에 구현된 기능의 적절성에 대한 검증 로직이 필요

예방: 사용자의 등록이 일회성이 될 수 있도록 이미지를 이용하여 확인 값
	 을 표시하고 사용자가 값을 등록하여 인증하는 등 일회성 확인 로직을 구현
	자동화 공격을 시도하면 짧은 시간에 다량의 패킷이 전송되므로 이를 공격으로 
    감지하고 방어할 수 있는 IDS/IPS의 시스템 구축
	서버에 요청되는 패킷 모니터링 시스템 구축 없이는 적절한 방어가 어렵다
	ex) 로그인 시도가 5회 이상이면 로그인이 불가능하도록 계정을 잠근다

5. 관리자 페이지 노출

정의: 관리자 페이지가 추측 가능한 형태로 구성되어있을 경우 공격자가 관리자 페이지에 쉽게 접근가능하며 무차별 대입 공격을 통해 관리자 권한을 획득할 수 있는 취약점

예방: 관리자페이지 IP 접근 제어
       ☞ 별도의 네트워크 범위로 IP 레벨의 접근 권한 설정
           웹 관리자 메뉴의 접근 제한
           웹 관리자 인터페이스는 SSL 기술을 이용하여 HTTP over SSL 같은 Data Transaction 암호화를 반드시 적용한다       
       사용자 접근 제어
       ☞ 웹 관리자 메뉴의 접근을 특정 네트워크 대역으로 제한하여 IP Address까지도 인증
           요소를 체크하도록 웹 관리자 사용자 인터페이스 개발
           관리자 인증 후 접속 가능한 페이지의 경우 해당 페이지 주소를 입력하여 들어가지
           못하도록 관리자페이지 각각에 대해 관리자 인증을 위한 세션 관리 필요

6. 위치 공개

정의: 폴더나 파일명의 위치가 쉽게 예측 가능하고 노출되어 공격자가 이를 악용하여 대상에 대한 정보를 획득하고 민감한 데이터에 접근 가능하게 하는 취약점, 웹 서버에서 HTML로 로드되지 않는 불필요한 파일은 삭제해야 한다

예방: 웹 디렉토리를 조사하여 백업 파일을 모두 삭제하고 작업 중 생성된 텍스트나 이미지
       파일 제거
       백업 파일은 백업 계획을 수립하여 안전한 곳에 정기적으로 백업하고 웹 서버 상엔 운영
       에 필요한 최소한의 파일만 생성
       웹 서버 설정 후 디폴트 페이지와 디폴트 디렉터리 및 Banner 를 삭제하여 Banner Grab
       에 의한 시스템 정보 유출 차단
       Apache,IIS,Tomcat 등 웹 서버 설정 시 함께 제공되는 샘플 디렉토리 및 메뉴얼 디렉토
       리, 샘플 애플리케이션을 삭제하여 보안 위험 최소화

필터링 대상: .bak, .backup,.org,.old,.sql,.temp,.!,.tmp,.txt,.new,.zip,.log

7. 기타 - 로그(CRLE_INJECTION_LOGS)

log4j 운영기 로그 레벨은 ERROR를 권장(불필요한 부하를 감소)
Filter를 이용하여 특정 keyword가 있을 시 찍지 않도록 구현
전체 map을 찍을 필요가 없고 민감 정보가 없을 경우 replaceAll 사용
특정 key 값을 찍을 경우 get을 사용

CRLE_INJECTION_LOGS 공통함수화 예시: Spring F/w를 사용할 경우 Servlet Filter, DidpatcherServlet,Interceptor를 통해 필터링 정책 적용 가능

0개의 댓글