새 소프트웨어 설치를 잠시 멈추라는 경고 — 공급망 공격 피로의 임계점
“새 소프트웨어 설치, 며칠만 미뤄두세요.” 보안 업계에서 좀처럼 듣기 어려운 조언이 2026년 봄 현실이 되었습니다. 룩셈부르크 금융감독청 CSSF가 공급망 공격 경보를 내리고, npm 생태계에서는 자가 복제하는 웜이 등장했습니다. 매주 새로운 침해 소식에 개발자들이 무뎌지는 사이, 공격자들은 그 피로를 정확히 노리고 있습니다.
임계점에 도달한 2026년 봄
올해 4월 한 달 사이 굵직한 사건이 연이어 터졌습니다. 4월 10일 룩셈부르크 CSSF는 Axios npm 패키지를 노린 활성 공급망 공격에 대한 공식 경보를 발령했습니다. Axios는 주간 다운로드가 수천만 건에 달하는 HTTP 클라이언트 라이브러리인데요, 이런 핵심 패키지가 표적이 되었다는 것 자체가 충격이었습니다.
며칠 뒤에는 더 무서운 소식이 등장했습니다. 4월 27일 보안 연구자들이 공개한 CanisterSprawl은 npm 생태계에서 자가 복제하는 웜 형태의 공격이었습니다. 단일 패키지를 감염시키는 전통적 수법을 넘어, 개발자가 감염된 패키지를 설치하면 그 개발자가 관리하는 다른 패키지로 확산되는 방식입니다.
왜 하필 npm이 계속 뚫릴까
답은 구조적 문제에 있습니다. npm 생태계는 평균적으로 패키지 하나가 수십 개의 의존성을 끌어옵니다. 프로젝트 하나에 직간접 의존성이 1,000개를 넘기는 일도 흔한데요, 이 중 단 하나만 뚫려도 전체 빌드가 오염됩니다.
게다가 많은 패키지가 한두 명의 개인 개발자가 무보수로 관리합니다. 공격자가 메인테이너 계정을 탈취하거나, 인수 제안으로 패키지를 넘겨받으면 끝입니다. 4월 사건들도 결국 이 약한 고리를 파고든 결과였습니다.
“설치를 멈추라"는 조언의 무게
Kiki’s DevDiaries가 4월 21일 공개한 영상의 메시지는 단순합니다. 공급망 보안은 여전히 부적절하고, 일반 개발자가 할 수 있는 가장 효과적인 방어는 설치 시점을 늦추는 것이라는 겁니다.
실제로 보안 전문가들은 새 버전이 공개된 직후 24-72시간 동안은 설치를 보류하라고 권합니다. 악성 버전은 보통 발견 후 몇 시간 안에 npm 레지스트리에서 내려가기 때문입니다. 의존성 자동 업데이트를 끄고, 락파일을 엄격하게 관리하고, 새 패키지는 며칠 묵힌 뒤 가져오라는 것이죠.
피로의 정체 — 무뎌진 감각
문제는 이런 경고가 나와도 개발자들이 더 이상 놀라지 않는다는 겁니다. 매주 새 침해 사건이 터지고, 매달 새로운 보안 도구가 등장하고, 분기마다 새 컴플라이언스 요구가 추가됩니다. 경고 피로(alert fatigue)가 보안 업계 전반에 퍼져 있습니다.
CanisterSprawl 영상의 조회수가 33회에 그쳤다는 점이 상징적입니다. 진짜 위협이 등장해도, 비슷한 뉴스가 너무 많아서 묻혀버리는 시대가 된 것입니다. 공격자들은 정확히 이 둔감함을 자산으로 삼고 있습니다.
무엇을 바꿔야 할까
당장 할 수 있는 일이 몇 가지 있습니다. CI/CD 파이프라인에서 의존성 자동 업데이트를 검토 단계로 바꾸고, 새 메이저 버전은 일주일 이상 묵힌 뒤 채택하고, Socket이나 Snyk 같은 도구로 패키지 행동을 모니터링하는 것입니다.
더 근본적으로는 의존성 다이어트가 필요합니다. “이 라이브러리, 정말 필요한가?“를 매번 묻는 문화가 자리잡지 않으면, 공급망의 표면적은 계속 늘어날 수밖에 없습니다.
당신의 프로젝트는 지금 몇 개의 패키지에 의존하고 있나요? 그리고 그중 몇 개를 실제로 검토해본 적이 있으신가요? 공급망 공격은 결국 우리가 방치한 신뢰의 빈틈에서 시작됩니다.
댓글
댓글을 불러오는 중...