Polyfill 은 구형 브라우저를 지원하는 오픈 소스 라이브러리로, Polyfill.js 는 전 세계 10만 개 이상의 사이트에서 사용 중인 오픈 소스 자바스크립트 코드이다. 최근 이 Polyfill.js 를 사용하는 도메인이 악성코드 공격에 노출된 것이 확인되었다. 이번 글에서는 Polyfill.io 도메인을 대상으로 한 공급망 악성코드 공격에 대해 다루고자 한다.
데이터 탈취를 유도하는 Polyfill 공급망 악성코드 공격
보안 기업 Sansec 의 조사에 따르면, Polyfill 공급망 공격의 시작은 올해 2월, Funnull이라는 중국 회사가 Polyfill.io의 도메인을 인수한 후, 해당 도메인의 자바스크립트 라이브러리(Polyfill.js)를 수정하여 모바일 사용자가 악성 사이트에 리다이렉션 되도록 도메인에 악성코드를 주입한 것에서 시작했다.
이들은 사용자들을 스포츠 도박, 성인 사이트 등의 유해 사이트로 유도하여 사용자의 개인 정보와 데이터를 탈취하려 했는데, 이 때 사용된 도메인 중에는 유명 결제 서비스 도메인도 포함되어 있어 대량의 데이터 탈취가 우려되고 있다. 특히 가짜 구글 애널리틱스 도메인(www[.]googie-anaiytics[.]com)도 공격에 사용하여 모바일 사용자가 스포츠 베팅 사이트로 리디렉션되도록 하기도 했다. 이렇게 글로벌 사이트를 공격에 악용한 것이 더욱 광범위한 공급망 공격을 초래하는 원인이 되었다.
피해가 커지자 6월 25일, 구글은 polyfill.io를 사용하는 전자상거래 사이트의 구글 광고를 차단하기 시작했다. 해당 공격은 HTTP 헤더를 기반으로 동적으로 생성된 코드가 특정 모바일 기기에서 특정 시간에만 활성화되며, 관리자 사용자나 웹 분석 서비스가 감지되면 실행을 지연시키도록 설계되어 있어 역공학(리버스 엔지니어링, reverse engineering) 기법조차 방해하는 특징이 있다.
CTI 검색엔진으로 외부 노출된 Polyfill 연관 IP 주소 탐색
이번 Polyfill 공격 기법은 역추적이 어려운 만큼, Polyfill의 코드 제작자조차도 최신 브라우저에서 더 이상 Polyfill은 필요하지 않으므로 Polyfill을 사용하지 말라고 권장하고 있다.
Polyfill.js가 사용된 코드를 즉각 변경하기 어렵거나, Polyfill을 사용하고 있는 도메인을 파악하기 어렵다면, CTI 위협헌팅 검색엔진을 통해 외부에 노출된 Polyfill 연관 IP 주소와 도메인을 찾는 것이 대응책이 될 수 있다.
CTI 검색엔진 Criminal IP의 Asset Search에서 Polyfill을 기술 스택으로 사용하고 있는 연관 IP 주소들을 간단히 찾을 수 있다.
Search Query: tech_stack:Polyfill
![tech_stack:Polyfill 검색으로 발견한 10만개가량의 Polyfill 연관 IP 주소](https://i0.wp.com/blog.criminalip.io/wp-content/uploads/2024/07/Polyfill-%EA%B3%B5%EA%B8%89%EB%A7%9D1.jpg?resize=600%2C395&ssl=1)
tech_stack:Polyfill 검색으로 발견한 10만개가량의 Polyfill 연관 IP 주소
Polyfill을 기술 스택으로 사용중인 IP 주소는 총 98,076개로, 그 가운데 미국이 36,175개로 가장 많으며, 이어서 일본 10,378개, 중국 9,378개 순으로 탐지되었다.
![Polyfill 기술 스택을 사용중인 IP 주소의 국가 통계](https://i0.wp.com/blog.criminalip.io/wp-content/uploads/2024/07/Polyfill-%EA%B3%B5%EA%B8%89%EB%A7%9D2.jpg?resize=600%2C388&ssl=1)
Polyfill 기술 스택을 사용중인 IP 주소의 국가 통계
또한, 검색된 결과 가운데 하나의 IP 주소를 선택해보면 IP 주소 리포트 내에서도 Polyfill을 사용중인 포트와 배너 정보를 확인할 수 있다. 즉 직접 관리하고 있는 IP 주소를 검색하면 Polyfill이 적용되어 있는지를 알 수 있다.
![IP 주소 리포트에서도 확인할 수 있는 Polyfill 기술스택](https://i0.wp.com/blog.criminalip.io/wp-content/uploads/2024/07/Polyfill-%EA%B3%B5%EA%B8%89%EB%A7%9D3.jpg?resize=600%2C783&ssl=1)
IP 주소 리포트에서도 확인할 수 있는 Polyfill 기술스택
Polyfill 제작자는 즉시 Polyfill 도메인을 삭제하고, 대안으로 Fastly와 Cloudflare를 제안하고 있다. 따라서 공급망 공격을 예방하는 가장 좋은 방법은 Polyfill 제작자의 권장처럼 문제가 되는 도메인을 삭제하는 것이지만, 그 전에 IP 주소와 도메인의 악용 여부를 파악하기 위해서 CTI 검색엔진을 활용할 수 있다. 또한, 오픈 소스 라이브러리가 악성코드의 타겟이 될 수 있다는 사례이므로 사용중인 오픈 소스 스크립트가 악의적으로 수정되지는 않았는지 지속적으로 모니터링하는 것이 중요하다.
공급망 공격에 대한 예방 및 대응방안과 관련하여 개발자 및 소프트웨어 기업을 위한 2024 소프트웨어 공급망 보안 가이드라인을 참고할 수 있다.
이 리포트는 사이버 위협 인텔리전스 검색엔진 Criminal IP의 데이터를 바탕으로 작성되었습니다. 지금 바로 Criminal IP 무료 계정을 생성하면 리포트에 인용된 검색 결과를 직접 확인하거나, 더 방대한 위협 인텔리전스를 자유롭게 검색할 수 있습니다.
데이터 출처: Criminal IP(https://www.criminalip.io/ko)