지금까지 오픈 소스 polyfill.io 서비스를 사용하는 많은 웹 사이트를 위협하는 주요 소프트웨어 공급망 공격에 대해 들어 보셨을 것입니다. 이 문서에서는 문제에 대한 배경 정보와 사용자를 보호하기 위해 취할 수 있는 업데이트된 조치를 제공합니다. Edgio의 서비스는 이 공격의 영향을 받지 않지만, 당사의 보안 팀은 웹 사이트나 애플리케이션에서 polyfill.io를 사용했을 수 있다고 우려하는 모든 고객을 지원할 준비가 되어 있습니다.
polyfill.io의 배경
최근의 polyfill.io 공급망 공격을 이해하려면 먼저 “polyfil”이라는 용어를 정의해야합니다. Polyfill은 최신 웹 기능을 기본적으로 지원하지 않는 이전 브라우저에 최신 기능을 추가하는 코드를 말합니다. 개발자는 다양한 브라우저, 특히 최신 웹 표준을 채택하는 속도가 느린 브라우저에서 일관된 사용자 환경을 제공할 수 있습니다. polyfill.io 공격의 경우 개발자는 polyfill을 사용하여 이전 브라우저에서 지원하지 않는 JavaScript 기능을 추가했습니다.
Polyfill.io는 최종 사용자의 브라우저를 자동으로 감지하고 최신 웹 기술과의 호환성을 보장하기 위해 필요한 폴리필을 제공하는 널리 사용되는 서비스입니다. cdn.polyfill.io(polyfill.io의 오픈 소스 CDN)의 스크립트를 임베드함으로써 개발자는 수동 관리의 번거로움 없이 polyfill을 원활하게 제공할 수 있으며 브라우저 호환성을 유지하는 프로세스를 단순화할 수 있습니다.
그러나 올해 초 polyfill.io는 상대적으로 알려지지 않은 중국 회사인 Funnull에 인수되었습니다. 인수는 전략적으로 중요한 공급망 공격의 시작을 표시한 것으로 보입니다. 2024년 6월 말, 보안 회사 Sansec은 이 서비스가 수천 개의 웹사이트에 악성 코드를 주입하여 사용자를 사기 사이트로 리디렉션하고 잠재적인 데이터 도난 및 무단 행위에 노출시키는 데 사용되었다고 경고했습니다.
Polyfill.io 공격의 영향을 받는 사람은 누구입니까?
이 공급망 공격의 영향은 광대하며 전 세계 100,000개 이상의 웹 사이트에 영향을 미칩니다. cdn.polyfill.io의 스크립트를 포함하는 모든 웹 사이트는 위험합니다. Funnull에서 도입된 악성 스크립트는 사용자를 사기 사이트로 리디렉션하고 데이터 도난을 허용하며 원격 코드 실행을 허용합니다. 특히 이 공격은 모바일 사용자와 특정 시점에 특정 대상 장치를 손상시켜 보안 도구 및 분석에 의한 탐지를 회피했습니다.
공급망 공격: 알아야 할 사항
공격자가 타사 스크립트를 손상시킨 후 취할 수 있는 사악한 가능성은 많지만 더 일반적인 가능성은 다음과 같습니다.
- 악성 사이트로 리디렉션: 손상된 스크립트를 사용하는 웹 사이트는 무의식적으로 사용자를 가짜 Google Analytics 또는 스포츠 베팅 사이트와 같은 사기 사이트로 리디렉션할 수 있습니다. 이러한 악의적인 리디렉션은 사용자의 신뢰를 손상시키고 피싱 공격으로 이어질 수 있습니다.
- 데이터 도난 및 코드 실행: 수정된 스크립트는 사용자로부터 중요한 데이터를 훔치고 무단 코드 실행을 수행하여 웹 사이트 무결성과 사용자 개인 정보에 심각한 위험을 초래할 수 있습니다. 인증되지 않은 스크립트는 개인 정보, 신용 카드 정보, 로그인 자격 증명 등의 중요한 사용자 데이터를 외부 서버로 유출할 수 있습니다.
- 크로스 사이트 스크립팅(XSS): 악성 스크립트가 사용자 브라우저의 컨텍스트에서 실행되어 세션 하이재킹, 맬웨어 배포 및 앞서 언급한 데이터 유출로 이어질 수 있습니다.
- 사이트 변조: 공격자가 웹 페이지의 모양이나 콘텐츠를 수정하여 브랜드에 손상을 입히고 사용자 신뢰를 잃을 수 있습니다.
- 성능 저하: 악의적이거나 인증되지 않은 스크립트가 심각한 애플리케이션 성능 문제를 일으켜 웹사이트 속도가 느려지고 사용자 환경이 저하될 수 있습니다.
사이트와 사용자를 보호하기 위해 무엇을 할 수 있습니까?
오늘날의 최신 앱에서 이러한 공격과 타사 라이브러리에 대한 의존도가 높다는 점을 고려할 때 개발자와 사이트 관리자는 웹 사이트와 사용자를 보호하기 위해 즉각적인 조치를 취해야 합니다. 최신 지침은 다음과 같습니다.
- Polyfill.io를 사용하여 사이트 식별: 이 공격으로부터 사이트와 사용자를 보호하는 첫 번째 단계는 코드가 polyfill.io를 참조하는지 여부를 확인하는 것입니다.
SAST(Static Application Security Testing) 솔루션이 있는 경우 쿼리를 실행하여 polyfill.io에 대한 참조를 찾을 수 있습니다(구문은 다를 수 있지만 다음 Regex를 사용하면 됩니다).
결과 = Find_Strings().FindByRegex(@\”https?://(cdn.polyfill.io)\”);
또한 오픈 소스 구성 요소와 해당 취약점을 식별하고 관리하는 데 중점을 둔 SCA(Static Code Analysis) 도구가 도움이 될 수 있습니다. SCA 도구는 라이브러리 및 프레임워크와 관련된 알려진 취약점의 데이터베이스를 유지 관리합니다. SCA 도구는 코드베이스를 검사하여 알려진 보안 문제로 모든 종속성(polyfill.io 포함)에 플래그를 지정할 수 있습니다.
SAST 또는 SCA가 없는 경우, 보안 테스트 전용으로 적극적으로 유지 관리되는 GitHub Top 1000 프로젝트인 ZAP의 다음 단계를 따르는 것이 좋습니다.
docker run -t zaproxy/zap-stable zap.sh -cmd -addoninstall pscanrulesBeta -zapit https://www.example.com/
ZAP의 Polyfill.io Script Detection에서 polyfill.io 도메인에서 제공되는 스크립트를 확인하기 위해 사용하는 한 줄 명령입니다(Docker 필요). 보다 강력한 검색을 위해 ZAP 기준 검사를 실행합니다.
- 클라이언트측 보호 구현: 클라이언트측 보호는 스크립트와 타사 API 호출을 실시간으로 모니터링 및 제어하여 악성 코드 로드를 방지하고 악성 호스트와의 무단 상호 작용을 차단함으로써 공급망 공격으로부터 보호합니다.
Edgio의 Client-Side Protection 솔루션은 정의된 타사 스크립트만 클라이언트 브라우저에서 실행되도록 허용함으로써 팀이 긍정적인 보안 모델을 구현할 수 있도록 합니다.
클라이언트 측 보호 정책의 예 허용 목록에서 호출할 수 있는 스크립트 소스를 지정하여 긍정적인 보안 모델을 적용할 수 있습니다.
- Remove Polyfill.io 스크립트: 코드에서 cdn.polyfill.io에 대한 참조를 제거합니다. 폴리필을 위한 신뢰할 수 있는 대체 소스로 대체하거나 최신 브라우저에서는 거의 필요하지 않으므로 폴리필의 사용을 중단합니다.
Edgio의 Edge Functions는 또한 귀하의 사이트가 만든 폴리필 참조를 안전한 URL로 동적으로 다시 작성하는 데 사용할 수 있습니다 (여기 GitHub 리포지토리에서 사용 가능). 이 추가 보안 계층은 간단하고 배포하기 쉬운 “가상 패치”로 생각할 수 있으며, 개발 팀이 손상된 라이브러리에 대한 참조를 제거하고 교체할 수 있는 귀중한 보호 및 구매 시간을 제공합니다.
- 보안 침해 여부 모니터링: 무단 리디렉션 또는 데이터 유출과 같은 보안 침해 징후가 있는지 웹 사이트를 정기적으로 확인합니다. 보안 모니터링 도구를 구현하여 비정상적인 활동을 감지하고 사용하는 라이브러리 및 서비스와 관련된 보안 권고 및 업데이트를 최신 상태로 유지합니다.
- 신뢰할 수 있는 서비스로 전환: 사용 사례에 폴리필이 필요한 경우 입증된 실적을 보유한 조직에서 대체 서비스를 찾아보십시오. 하지만 평생 보증에 대해 고객이 말하는 바를 알고 있으므로 위험을 낮추기 위해 위에 명시된 통제 수단과 모범 사례를 사용하는 것이 중요합니다. 결국, 개발자들은 그들이 생각하는 것을 사용할 것입니다 – polyfill.io는 꽤 인기있는 서비스였습니다 – 그리고 모든 사람들이 안전한 코딩 배경을 가지고 있지는 않습니다.
결론
Polyfill.io 공급망 공격은 타사 소프트웨어 구성 요소에 내재된 취약점을 명확하게 상기시켜 줍니다. Edgio는 강력한 멀티레이어 보안을 통해 웹 애플리케이션을 보호하는 것이 중요하다는 점을 강조합니다. Akamai의 WAAP(Web Application and API Protection) 서비스는 클라이언트측 브라우저에서 실행되는 악성 스크립트를 탐지하고 차단하는 클라이언트측 보호 기능을 포함하고 있으며 공급망 공격 및 기타 진화하는 위협에 대한 지속적인 보호를 보장합니다.
또한 새로운 ASM(Attack Surface Management) 솔루션은 웹 기반 공간 전체에 대한 포괄적인 가시성을 제공하므로 취약점을 사전에 식별하고 완화하여 공격자가 악용하기 전에 잠재적인 악용을 방지할 수 있습니다.
마지막으로 Edgio의 Managed Security Services는 웹 애플리케이션 보안을 구현하거나 완벽하게 관리할 수 있도록 지원합니다. 연중무휴 24시간 보안 운영, 전담 위협 인텔리전스 팀, 지정된 보안 설계자를 통해 웹 자산을 지속적으로 모니터링하고 최신 위협으로부터 보호함으로써 팀이 보안 요구 사항을 처리하는 동시에 혁신에 집중할 수 있습니다.
궁금한 점이 있거나 공급망 공격으로부터 웹사이트를 보호하는 데 도움이 필요한 경우 Edgio의 보안 전문가 에게 문의하십시오.