- Polyfill.js 는 오래된 브라우저 지원을 위한 오픈 소스 라이브러리로, 10만 개 이상의 사이트에서 사용 중
- 올해 2월, 중국 회사가 Polyfill.js의 도메인과 Github 계정을 인수한 후, 해당 도메인을 통해 모바일 기기에 악성코드를 주입하기 시작
- 6월 25일 업데이트: 구글이 이미 polyfill.io를 사용하는 전자상거래 사이트의 구글 광고를 차단 시작함
- 공격 방식: HTTP 헤더를 기반으로 동적으로 생성된 코드가 특정 모바일 기기에서 특정 시간에만 활성화되며, 관리자 사용자나 웹 분석 서비스가 감지되면 실행을 지연함
- 악성코드 예시: 모바일 사용자를 가짜 구글 애널리틱스 도메인(www. googie-anaiytics .com)을 통해 스포츠 베팅 사이트로 리디렉션함.
- 대응 방안: Polyfill.js의 원 저자는 현대 브라우저에서는 더 이상 필요하지 않으므로 더 이상 이 라이브러리를 사용하지 말 것을 권장하며, Fastly와 Cloudflare가 신뢰할 수 있는 대안을 제공함.
- 이 사건은 전형적인 공급망 공격의 사례임.
- 추가 도구: Sansec의 무료 CSP 모니터링 서비스인 Sansec Watch와 eComscan 백엔드 스캐너가 Polyfill.io 탐지를 지원
GN⁺의 의견
- 공급망 공격의 위험성: 오픈 소스 프로젝트가 인수되면서 발생할 수 있는 보안 위험을 잘 보여주는 사례임. 특히, 많은 사이트에서 사용되는 라이브러리일수록 피해가 클 수 있음.
- 대안 라이브러리 사용: Fastly와 Cloudflare 같은 신뢰할 수 있는 대안을 사용하는 것이 중요함. 또한, 최신 브라우저 지원이 충분하다면 Polyfill.js 사용을 중단하는 것도 고려할 만함.
- 보안 모니터링 필요성: CSP 모니터링 서비스와 같은 보안 도구를 사용하여 코드 변경 사항을 실시간으로 감시하는 것이 중요함.
- 관리자 감지 및 지연 실행: 악성코드가 관리자나 분석 서비스를 감지하고 실행을 지연하는 방식은 보안 솔루션을 우회하려는 시도로, 이에 대한 대응 방안이 필요함.
- 교육과 인식 제고: 개발자와 운영자들이 공급망 공격의 위험성을 인식하고, 주기적인 보안 교육과 최신 보안 동향을 파악하는 것이 중요함.