점점 더 많은 조직에서 개발 프로세스에서 민첩성을 제공하기 때문에 타사 구성 요소 및/또는 스크립트를 사용하여 대중에게 공개되는 애플리케이션을 구축하고 있습니다. 또한, Cloudflare에서는 해당 애플리케이션의 사용자에 대한 공격이 증가하는 것을 확인했습니다.
그 이면을 살펴보면, 이는 시간이 지남에 따라 일부 웹 애플리케이션 코드가 서버 측이 아닌 사용자의 브라우저에 로드되기 때문입니다. 이러한 변화로 인해 사용자는 이러한 타사 구성 요소에 노출되었으며 이를 사용하는 조직에서는 보안 조치를 직접 제어할 수 없습니다. 타사 스크립트, 애플리케이션 소유자, 사 용자 간의 이러한 관계는 사용자의 장치에 대한 공급망 공격을 시작하는 데 악용되고 있습니다.
이 글에서는 이러한 새로운 취약점을 살펴보고 조직에서 사용자를 보호하기 위해 이를 해결하는 방법을 알아보겠습니다.
2018년을 전후로 애플리케이션의 클라이언트 측을 표적으로 삼는 유명한 공격이 여러 차례 발생하여 조직에 상당한 피해를 입혔습니다. 가장 주목할 만한 사례 중 하나는 British Airways 고객을 대상으로 한 공격이었습니다. 공격자가 결제 카드 정보뿐만 아니라 고객 50만 명의 이름과 주소까지 유출한 사례입니다. 공격자는 JavaScript를 사용하여 손상시키고 정보를 훔쳤습니다.
고객 결제를 처리하는 조직에는 결제 카드 계정 데이터를 보호하고 안전하게 보호하기 위해 마련된 결제 카드 산업 데이터 보안 표준(PCI DSS) 준수 요건이 적용됩니다.
British Airways의 경우와 마찬가지로 이러한 공격은 웹 사이트 소유자 모르게 수행되는 경우가 많습니다. 이 문제를 해결하기 위해, 최신 버전의 PCI DSS 규제 준수는 결제 카드 소지자가 카드 정보를 도난당하지 않도록 보호하기 위한 클라이 언트 측 공격의 새로운 위협을 능동적으로 보호해야 한다고 규정합니다. PCI 데이터 보안 표준(DSS) 4.0에서는 이전 버전의 PCI에 비해 카드 결제를 수락하는 모든 판매자가 충족해야 하는 새로운 요건이 많이 도입되었지만, 오늘은 클라이언트 측 보안과 관련된 두 가지 새로운 요건에 초점을 맞추겠습니다.
이 새로운 두 가지 요건 6.4.3과 11.6.1은 다음과 같이 요약할 수 있습니다.
요건 6.4.3에서는 판매자가 결제 페이지에서 사용되는 스크립트(예: JavaScript)를 추적하고 적절하게 목록을 작성하도록 요구하는 것은 물론, 스크립트가 필요한 이유와 코드가 의도한 대로 작동하는지 여부에 대한 타당한 이유까지 제공해야 한다고 요구합니다.
요건 6.4.3을 충족하려면 콘텐츠 보안 정책(CSP) 헤더를 배포할 수 있습니다. CSP는 능동적 보안 모델의 한 형태로, 선택한 JavaScript가 결제 페이지에서 실행되고 명시적으로 허용되지 않는 JavaScript를 기본적으로 거부하도록 정의할 수 있습니다. 지속해서 실행되는 페이지 모니터는 CSP 헤더를 생성하는 데 도움이 되고, 이러한 스크립트 콘텐츠에 악의적인 위협이 있는지 지속해서 검사할 수 있습니다.
요건 11.6.1은 앞서 언급한 결제 페이지에서 사용되는 스크립트(예: JavaScript) 및 CSP 헤더처럼 이러한 스크립트를 보호하는 데 사용되는 HTTP 헤더의 변경 사항을 웹 사이트 소유자에게 알리는 것과 관련이 있습니다. 이 CSP 헤더가 배포되는 방식에 따라 리버스 프록시 또는 CDN 공급자 변경 사항을 감지하고 그에 따라 웹사이트 소유자에게 알릴 수 있습니다. 이들 솔루션을 조합하면 요건 11.6.1을 충족하는 데 도움이 됩니다.
이들 두 요건을 모두 해결함으로써 웹 사이트 소유자는 위협 행위자가 사용자의 결제 카드 계정 데이터를 도용되지 않도록 보호하여 사용자의 신뢰를 유지하고 위험을 줄일 수 있습니다.
클라이언트 측 공격 벡터는 타사 JavaScript 종속성 또는 공급망 공격 만이 아닙니다. 일부 타사 종속성은 자체 종속성을 불러올 수도 있고, 이를 제4자 종속성이라고 부르는 경우도 있으며, 이는 손상될 수도 있습니다.
업계에서는 지난 몇 년 동안 공급망 공격으로부터 최대한 보호하기 위한 조치를 취했으며, 5년 전보다 공급망 위험에 대한 일반적인 인식이 높아졌습니다. 그러나 주목을 덜 받는 다른 클라이언트 측 위험이 있으므로 공격면이 더 넓어집니다.
한 가지 위험은 사용자의 환경, 사용되는 브라우저, 브라우저가 실행되는 운영 체제에 기인합니다. 사용자가 웹 사이트를 방문하면 브라우저 확장 프로그램이나 다른 소프트웨어가 웹 사이트에 직접 JavaScript를 삽입하여 웹 페이지를 변경시킬 수 있습니다. 이렇게 삽입된 JavaScript가 모두 악성은 아니지만, 광고 삽입부터 중요한 정보를 훔치는 것까지 그 효과는 다양합니다.
또 하나의 예는 Cross-site scripting (XSS)으로, 악의적인 행위자가 피해자가 웹 사이트를 로드할 때 실행될 합법적인 웹 사이트에 코드를 삽입하는 경우입니다. 클라이언트 측 보호 관점에서 볼 때, 이러한 성공적인 삽입은 1차 당사자 또는 기본적으로 신뢰하는 것으로 가정되는 웹 사이트 자체에서 직접 제공하는 JavaScript처럼 보일 수 있습니다.
이 목록은 포괄적인 목록이 아닙니다. 포괄적 수준의 보호를 제공하려면 클라이언트 측 보안 솔루션은 소스와 관계없이 모든 스크립트를 동일하게 모니터링할 수 있어야 하며 웹 사이트 소유자가 정보에 입각한 결정을 내리도록 도울 수 있어야 합니다.
카드 결제를 허용하는 판매자의 경우에는 2025년 3월 31일까지 PCI DSS v4.0에 대한 클라이언트 측 환경을 보호하기 위한 접근 방식을 구현해야 합니다. Cloudflare의 클라이언트측 보안 솔루션인 Page Shield는 이러한 새로운 요건과 미래의 요건을 충족하는 데 도움이 될 수 있습니다.
결제 페이지 보호 외에도 Cloudflare의 Page Shield는 전체 웹 사이트를 지속해서 모니터링하여 각 스크립트를 자체적으로 구축 및 학습한 머신 러닝 모델과 비교하여 Magecart 공격을 전문적으로 분류함으로써 사용자가 웹 사이트와 상호 작용하는 방식과 위치와 관계없이 사용자를 보호합니다.
이 글은 오늘날의 기술 의사 결정자에 영향을 주는 최신 동향 및 주제에 대한 시리즈 중 일부입니다.
PCI DSS 4.0 규제 준수를 유지하기 위한 전략적 접근 방식 백서에서 모든 PCI 요건을 전략적으로 해결하는 방법에 대해 자세히 알아보세요.
이 글을 읽고 나면 다음을 이해할 수 있습니다.
클라이언트 측 환경을 대상으로 하는 주요 공격 벡터
2가지의 새로운 PCI 규제 준수 요건
클라이언트 측 환경을 보호하고 고객을 보호하는 방법
시작하기
리소스