CSRF 공격 방지

CSRF 공격이 작동하는 방식

CSRF(교차 사이트 요청 위조)는 iFrame을 통해 악의적인 요청을 전송하는 데 유효한 사용자의 브라우저가 사용되는 웹 사이트 취약성 사항입니다. 브라우저가 도메인에 쿠키를 보내기 때문에 사용자가 현재 애플리케이션에 로그인되어 있는 경우 사용자의 데이터가 손상될 수 있습니다.

예를 들어 브라우저에서 관리 콘솔에 로그인한 시나리오를 생각해 보십시오. 링크가 포함된 이메일 메시지를 받게 됩니다. 링크를 클릭하면 브라우저에서 새 탭이 열립니다. 연 페이지에는 인증된 AEM 양식 세션의 쿠키를 사용하여 양식 서버에 악의적인 요청을 하는 숨겨진 iFrame이 포함되어 있습니다. 사용자 관리는 유효한 쿠키를 수신하므로 요청을 전달합니다.

참조: 요청이 오고 있는 소스 페이지의 주소입니다. 예를 들어 site1.com의 웹 페이지에는 site2.com에 대한 링크가 포함되어 있습니다. 링크를 클릭하면 site2.com에 요청이 게시됩니다. 소스가 site1.com인 페이지에서 요청이 수행되므로 이 요청의 레퍼러는 site1.com입니다.

화이트리스트 등록 URI: URI는 요청 중인 양식 서버의 리소스를 식별합니다(예: /adminui 또는 /contentspace). 일부 리소스는 외부 사이트의 응용 프로그램 입력 요청을 허용할 수 있습니다. 이러한 리소스는 허용 목록에추가된 URI로 간주됩니다. 양식 서버는 URI에서 레퍼러 허용 목록에추가된 검사를 수행하지 않습니다.

Null 참조: 새 브라우저 창이나 탭을 연 다음 주소를 입력하고 Enter 키를 누르면 참조가 null입니다. 이 요청은 완전히 새로운 것으로 상위 웹 페이지에서 시작된 것은 아닙니다.따라서 요청에 대한 레퍼러가 없습니다. 양식 서버는 다음에서 null 참조를 받을 수 있습니다.

  • acrobat의 SOAP 또는 REST 끝점에서 수행된 요청
  • aem 양식 SOAP 또는 REST 끝점에서 HTTP 요청을 하는 모든 데스크탑 클라이언트
  • 새 브라우저 창이 열리고 AEM 양식 웹 응용 프로그램 로그인 페이지에 대한 URL이 입력될 때

SOAP 및 REST 끝점에 null 참조를 허용합니다. 또한 /adminui 및 /contentspace와 같은 모든 URI 로그인 페이지와 해당 매핑된 리소스에 대해 null 참조를 허용합니다. 예를 들어 /contentSpace에 대해 매핑된 서블릿은 /contentspace/faces/jsp/login.jsp이며, 이는 null 참조 예외여야 합니다. 이 예외는 웹 응용 프로그램에 대해 GET 필터링을 활성화한 경우에만 필요합니다. 응용 프로그램에서 null 참조를 허용할지 여부를 지정할 수 있습니다. AEM 양식의 강화 및 보안에서 "크로스 사이트 요청 위조 공격으로부터 보호"를 참조하십시오.

허용된 참조 예외: 허용된 참조 예외: 허용된 참조 예외는 요청이 차단된 허용된 참조 목록의 하위 목록입니다. 허용된 참조 예외는 웹 응용 프로그램에 특히 적용됩니다. 허용된 참조 중 하위 세트가 특정 웹 응용 프로그램을 호출할 수 없도록 허용될 경우, 허용된 참조 예외를 통해 참조를 차단 목록에 추가하다 표시할 수 있습니다. 허용되는 참조 예외는 응용 프로그램의 web.xml 파일에 지정됩니다. (도움말 및 Tutorials 페이지에서 AEM 양식에 대한 보안 강화 및 강화의 "교차 사이트 요청 위조 공격으로부터 보호"를 참조하십시오.)

허용되는 참조를 사용하는 방법

AEM 양식은 CSRF 공격을 방지하는 데 도움이 되는 레퍼러 필터링을 제공합니다. 레퍼러 필터링의 작동 방식은 다음과 같습니다.

  1. 양식 서버는 호출에 사용되는 HTTP 메서드를 확인합니다.

    • POST인 경우 양식 서버가 참조 헤더 확인을 수행합니다.
    • GET인 경우 CSRF_CHECK_GETS가 true로 설정되어 있지 않으면 양식 서버는 참조 검사를 무시하며 이 경우 참조 헤더 검사를 수행합니다. CSRF_CHECK_GETS는 응용 프로그램의 web.xml 파일에 지정됩니다. (보안 강화 및 안내의 "교차 사이트 요청 위조 공격으로부터 보호"를 참조하십시오.)
  2. 양식 서버는 요청된 URI가 허용 목록에추가된 다음 파일인지 확인합니다.

    • URI가 허용 목록에추가된 있는 경우 서버가 요청을 전달합니다.
    • 요청한 URI가 허용 목록에추가된 없으면 서버는 요청의 레퍼러를 검색합니다.
  3. 요청에 참조가 있을 경우 서버는 허용된 참조인지 여부를 확인합니다. 허용되는 경우 서버는 참조 예외를 확인합니다.

    • 예외인 경우 요청이 차단됩니다.
    • 예외가 아닌 경우 요청이 전달됩니다.
  4. 요청에 참조가 없으면 서버는 null 참조가 허용되는지 여부를 확인합니다.

    • null 참조가 허용되면 요청이 전달됩니다.
    • null 참조가 허용되지 않으면 서버는 요청된 URI가 Null 레퍼러의 예외인지 확인하고 그에 따라 요청을 처리합니다.

허용되는 참조 구성

구성 관리자를 실행하면 기본 호스트 및 IP 주소 또는 양식 서버가 허용된 참조 목록에 추가됩니다. 관리 콘솔에서 이 목록을 편집할 수 있습니다.

  1. 관리 콘솔에서 설정 > 사용자 관리 > 구성 > 허용된 참조 URL 구성을 클릭합니다.허용된 참조 목록이 페이지 하단에 표시됩니다.

  2. 허용된 참조를 추가하려면:

    • 허용된 참조 상자에 호스트 이름 또는 IP 주소를 입력합니다. 한 번에 둘 이상의 허용되는 참조를 추가하려면 새 줄에 각 호스트 이름 또는 IP 주소를 입력합니다.
    • HTTP 포트 및 HTTPS 포트 상자에서 HTTP, HTTPS 또는 둘 다에 대해 허용할 포트를 지정합니다. 이러한 상자를 비워 두면 기본 포트(HTTP의 경우 포트 80, HTTPS의 경우 포트 443)가 사용됩니다. 상자에 0(영)을 입력하면 해당 서버의 모든 포트가 활성화됩니다. 특정 포트 번호를 입력하여 해당 포트만 활성화할 수도 있습니다.
    • 추가를 클릭합니다.
  3. 허용된 참조 목록에서 항목을 제거하려면 목록에서 항목을 선택하고 삭제를 클릭합니다.

    허용된 참조 목록이 비어 있으면 CSRF 기능이 작동을 중단하고 시스템이 안전하지 않게 됩니다.

  4. 허용된 참조 목록을 변경한 후 AEM 양식 서버를 다시 시작합니다.

이 페이지에서는