최근 Ledger 프런트 엔드 라이브러리와 관련된 보안 문제가 발견되었습니다. 해커는 해당 라이브러리의 퍼블리싱 권한을 획득하고 ledgerhq/connect-kit 라이브러리에 악성코드를 심은 뒤 새 버전을 출시했습니다. 일반적으로 이는 즉각적인 보안 문제를 야기하지 않습니다. 라이브러리 버전을 업데이트하고 새 버전의 코드를 웹 사이트에 통합한 사용자만 악성 코드의 영향을 받기 때문입니다.
그러나 여기에는 특별한 위험 요소가 있습니다. Ledgerhq/connect-kit 라이브러리의 버전 업데이트 정책으로 인해 ledgerhq/connect-kit-loader 라이브러리에 의존하고 loadConnectKit 기능을 사용하는 모든 웹 사이트는 새로운 1.xx 버전이 나타날 때마다 자동으로 최신 코드를 가져옵니다. 이는 많은 웹사이트가 CDN 주소의 @1 태그를 통해 이러한 라이브러리를 참조하기 때문입니다. 이 접근 방식은 기본적으로 버전 1.xx의 최신 코드를 가져옵니다. 이는 타사 CDN 프런트엔드 리소스 버전 제어에 대한 일반적인 관행입니다.
해커는 이 메커니즘을 악용하여 동적으로 로드된 코드를 통해 사기성 거래를 시작할 수 있습니다. 타사 CDN 소스에 의존하는 이러한 종류의 npm 패키지는 새로운 공급망 공격 채널이 될 것입니다. 더 심각한 점은 공격자가 새 버전을 출시한 후 사용자가 적극적으로 업데이트하지 않은 채 공격을 받을 수 있다는 점이다.
예를 들어, 많은 프런트 엔드 웹 사이트는 외부 CDN을 사용하여 unpkg 또는 cdnjs와 같은 npm의 패키지를 참조합니다. 아래 그림과 같이 premint는 최신 버전에 직접적으로 의존합니다. 이로 인해 위험이 발생합니다. 공격자는 사용자에게 업데이트를 요구하지 않고 새 버전만 출시하면 되며 사용자는 공격에 취약할 수 있습니다. 따라서 외부 CDN 리소스를 사용할 때에는 보안 위험에 대해 각별히 주의해야 합니다. 이 방법은 새로운 형태의 CDN 중독 공격이 될 수 있다.