polyfill.io Supply Chain Attack에 대해서 알아봅시다.
Background
내 블로그를 들어갔는데 갑자기 이상한 인증창이 발생하였습니다. 
polyfill.io를 구글 검색을 하자 연관검색어에 Supply Chain Attack(공급망공격)이 있었고, 깜짝 놀라 해당 관련된 도메인을 전부 제거했습니다.
swcache.js 파일에 캐시 생성과정에서 Allowed Domain으로 명시되어있었습니다.
해당 코드는 제가 만든건 아니였고, jekyll 블로그를 만드는 과정에서 다운로드 받은 파일로 추정됩니다.
What is polyfill.io?
Polyfill은 오래된 브라우저에서도 최신 JavaScript 기능이 동작하도록 해주는 라이브러리입니다.
24년에 github 저장소가 새로운 운영자에게 넘어갔고, 새로운 운영자는 js에 악성코드를 추가했습니다.
redsift에 따르면, 악성 JS를 실행할 수 있는 것을 확인할 수 있습니다.
악성 코드는 HTTP 헤더를 기반으로 동적으로 페이로드를 생성하는 정교한 방식입니다. 특정 모바일 기기에서만 활성화되며, 관리자 접근을 회피하고 실행을 지연시켜 탐지를 피합니다. 이 악성 스크립트를 삽입한 웹사이트는 방문자를 의도치 않게 악성 사이트로 리디렉션하여, 가짜 Google Analytics 링크와 같은 의심스러운 페이지로 연결되는 추가적인 위험에 노출시킬 수 있습니다.
Referrence
- https://redsift.com/blog/understanding-the-polyfill-io-domain-attack
- https://blog.qualys.com/vulnerabilities-threat-research/2024/06/28/polyfill-io-supply-chain-attack
Conclusion
외부에서 JS를 허용하는 행위는 특히 조심해야 하고, 허용해야 한다면 SRI를 적용하여 무결성이 깨지면 동작하지 않도록 해야겠습니다.
