주요정보통신기반기설 기술적 취약점 분석 평가 방법 상세가이드/WEB 진단

15. 크로스사이트 리퀘스트 변조(CSRF) WEB [CF] - 주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세 가이드(2021)

재민스 2021. 11. 9. 10:14

가. 취약점 개요

    내용 : 사용자의 신뢰(인증) 정보의 변조 여부 점검

    목적 : 사용자 입력 값에 대한 적절한 필터링 및 인증에 대한 유효성을 검증하여 신뢰(인증) 정보 내의 요청(Request)에 대한 변조 방지

    보안 위협

    -      사용자의 신뢰(인증) 정보 내에서 사용자의 요청(Request)을 변조함으로써 해당 사용자의 권한으로 악의적인 공격을 수행할 수 있음

    참고

    ※ CSRF(Cross Site Request Forgery): 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹 사이트에 요청하게 하는 공격 유형

    ※ OWASP - CSRF 관련 참고사항 https://owasp.org/www-community/attacks/csrf

    ※ 소스코드 및 취약점 점검 필요

 

나. 점검방법

    대상 : 웹 애플리케이션 소스코드, 웹 방화벽

    판단기준

    -      양호 : 사용자 입력 값에 대한 검증 및 필터링이 이루어지는 경우

    -      취약 : 사용자 입력 값에 대한 필터링이 이루어지지 않으며, HTML 코드(또는 스크립트)를 입력하여 실행되는 경우

    점검방법

    Step 1) XSS 취약점이 존재하는지 확인

    Step 2) 등록 및 변경 등의 데이터 수정 기능의 페이지가 있는지 조사함

    Step 3) 데이터 수정 페이지에서 전송되는 요청(Request) 정보를 분석하여 임의의 명령을 수행하는 스크립트 삽입 해당 게시글을 사용자가 열람하였을 경우 스크립트가 실행되는지 확인

      

다. 조치방법

     사용자 입력 값에 대해 검증 로직 및 필터링 추가 적용

    -      웹 사이트에 사용자 입력 값이 저장되는 페이지는 요청이 일회성이 될 수 있도록 설계

    -      사용 중인 프레임워크에 기본적으로 제공되는 CSRF 보호 기능 사용

    -      사용자가 정상적인 프로세스를 통해 요청하였는지 HTTP 헤더의 Referer 검증 로직 구현

    -      정상적인 요청(Request)과 비정상적인 요청(Request)를 구분할 수 있도록 Hidden Form을 사용하여 임의의 암호화된 토큰(세션 ID, Timestamp, nonce )을 추가하고 이 토큰을 검증하도록 설계

    -      HTML이나 자바스크립트에 해당되는 태그 사용을 사전에 제한하고, 서버 단에서 사용자 입력 값에 대한 필터링 구현

    -      HTML Editor 사용으로 인한 상기사항 조치 불가 시, 서버 사이드/서블릿/DAO(Data Access Object) 영역에서 조치하도록 설계

    -      XSS 조치 방안 참조

 

라. 조치시 영향

    일반적으로 영향 없음