[웹 취약점 진단/모의해킹/해킹] 크로스사이트 리퀘스트 변조(CSRF)

목차

     

     

    CF - 크로스사이트 리퀘스트 변조(CSRF)

     

    ■ 점검내용

     

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

     

    ■ 점검목적

     

    사용자 입력 값에 대한 적절한 필터링 및 인증에 대한 유효성을 검증하여 신뢰(인증) 정보 내의 요청(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 조치 방안 참조

     

     

    조치 시 영향 : 일반적인 경우 영향 없음

     

    댓글

    Designed by JB FACTORY