← 최신 논문
💻 computer science

Killing Two Birds with One Stone: Malicious Package Detection in NPM and PyPI using a Single Model of Malicious Behavior Sequence

이 논문은 행동 시퀀스의 고수준 추상화를 활용하여 교차 생태계 지식을 융합하고 순차적 악성 패턴을 포착함으로써 NPM과 PyPI 생태계 모두에서 악성 패키지를 탐지하는 통합 딥러형 모델인 Cerebro를 소개하며, 수백 개의 새로운 위협을 성공적으로 식별해 냈다.

원저자: Junan Zhang, Kaifeng Huang, Yiheng Huang, Bihuan Chen, Ruisi Wang, Chong Wang, Xin Peng

게시일 2026-06-23
📖 4 분 읽기☕ 가벼운 읽기

원저자: Junan Zhang, Kaifeng Huang, Yiheng Huang, Bihuan Chen, Ruisi Wang, Chong Wang, Xin Peng

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

소프트웨어 개발의 세계를 거대하고 북적이는 글로벌 시장이라고 상상해 보십시오. 개발자들("패키지 개발자")은 도구와 라이브러리("패키지")를 만들고, 두 개의 거대하고 인기 있는 바자르(시장)인 NPM(JavaScript용)과 PyPI(Python용)에서 이를 판매합니다. 모두가 이 바자르들을 좋아하는 이유는 소프트웨어를 만드는 과정을 빠르고 쉽게 만들어주기 때문입니다.

하지만 문제가 생겼습니다. 악당들(해커)이 이 시장에 몰래 잠입하기 시작한 것입니다. 그들은 단순히 훔치는 것에 그치지 않고, 트로이 목마를 심어 놓습니다. 도움이 되는 것처럼 보이지만, 실제로는 당신의 비밀번호를 훔치거나 컴퓨터를 감시하거나 데이터를 인질로 잡도록 설계된 악성 코드가 숨겨진 패키지를 업로드하는 것입니다.

오랫동안 이 바자르의 경비원들(보안 팀)은 두 가지 주요 문제에 직면해 있었습니다:

  1. 서로 다른 언어를 사용했습니다: NPM 바자르의 경비원들은 나쁜 JavaScript만을 식별할 줄 알았습니다. PyPI 바자르의 경비원들은 나쁜 Python만을 식별할 줄 알았습니다. 만약 범죄자가 한쪽 바자르에서 가져온 "악랄한 계획"을 다른 쪽 바자르에 복제한다면, 반대편의 경비원들은 이를 알아보지 못할 것입니다.
  2. 단서를 고립된 상태로 확인했습니다: 경비원들은 "이 패키지의 이름이 이상한가?" 또는 "인터넷에 연결을 시도하는가?"와 같은 단일한 의심스러운 항목만을 체크했습니다. 하지만 그들은 패키지가 수행하는 행동의 이야기를 보지는 않았습니다. 어떤 패키지는 하나의 요소만 체크했을 때는 무해해 보일 수 있지만, 그 패키지의 하루 일과를 지켜본다면 다음과 같은 상황을 볼 수 있을 것입니다: 파일을 훔치고, 숨기고, 그러고 나서 낯선 사람에게 이메일을 보내는 것. 이 사건의 순서가 진짜 이야기를 말해줍니다.

해결책: "Cerebro" (슈퍼 브레인)

연구진은 Cerebro라고 불리는 새로운 보안 시스템을 구축했습니다. Cerebro를 두 언어를 모두 유창하게 구사하며 이야기 읽기에 전문가인 초지능 탐정이라고 생각하십시오.

Cerebro가 어떻게 작동하는지 쉬운 비유를 통해 설명하겠습니다:

1. 만능 번역기 (특징 추출 - Feature Extraction)
특정 코드(Python과 JavaScript가 서로 다르게 보이는 것)를 보는 대신, Cerebro는 고차원적인 행동을 봅니다.

  • 비유: 외국어로 된 영화를 보고 있다고 상상해 보십시오. 당신은 대사를 이해하지 못해도 줄거리를 알 수 있습니다. 등장인물이 자물쇠를 따고, 차로 달려가서, 차를 타고 떠나는 것을 보는 것과 같습니다.
  • Cerebro도 똑같이 작동합니다. 특정 구문을 무시하고 보편적인 "나쁜 행동"을 찾습니다: 비밀 파일 읽기, 인터넷 연결, 데이터 숨기기, 또는 숨겨진 명령 실행 시도 등. 이를 통해 Cerebro는 NPM의 나쁜 패키지와 PyPI의 나쁜 패키지를 똑같이 잘 이해할 수 있습니다.

2. 스토리텔러 (행동 시퀀스 - Behavior Sequence)
이것이 Cerebro의 비밀 병기입니다. 단순히 패키지가 할 수도 있는 나쁜 일들을 나열하는 대신, Cerebro는 그것들을 하나의 타임라인으로 배열합니다.

  • 비례: 만약 어떤 사람이 가면, 빠루(크로바), 그리고 도주용 차량을 사는 것을 본다면 의심스럽습니다. 하지만 그 사람이 가면을 쓰고, 그다음 빠루로 창문을 깨고, 그다음 차에 올라타는 것을 본다면, 그것은 명확한 강도 사건입니다.
  • Cerebro는 "행동 시퀀스"를 구축합니다. "이 패키지가 인터넷을 통해 데이터를 보내기 전에 파일을 읽었는가?"라고 묻습니다. 사건의 순서를 이해함으로써, Cerebro는 데이터를 전송해야 하는 정당한 도구(예: 날씨 앱)와 데이터를 훔쳐서 외부로 보내는 도둑을 구분할 수 있습니다.

3. 전문 독자 (AI 모델 - The AI Model)
Cerebro는 이 "나쁜 행동의 이야기"를 가져와서 악성 코드의 "분위기(vibe)"를 이해하도록 훈련된 강력한 AI(대규모 언어 모델)에 입력합니다. 이는 마치 탐정에게 수천 권의 범죄 소설을 읽게 하여, 범죄자의 범행 수법(modus operandi)을 즉각적으로 인식할 수 있도록 가르치는 것과 같습니다.

무엇을 달성했는가?

연구진은 수천 개의 실제 패키지로 구성된 방대한 데이터셋을 통해 Cerebro를 테스트했습니다. 결과는 다음과 같습니다:

  • "일석이조"의 솔루션: 그들은 하나의 단일 모델을 훈련시켜 *두 곳 모두(NPM과 PyPI)*에서 나쁜 패키지를 잡아냈습니다. 별도의 두 팀이 필요하지 않았습니다. 단지 하나의 똑똑한 뇌만 있으면 되었습니다.
  • 기존의 경비원들보다 뛰어납니다: 테스트에서 Cerebro는 기존의 가장 우수한 보안 도구들보다 훨씬 더 정확했습니다. 더 많은 나쁜 패키지를 잡아냈고(높은 재현율/recall), 정상적인 패키지에 대해 실수를 더 적게 저질렀습니다(높은 정밀도/precision).
  • 실제 환경에서도 작동합니다: 연구진은 단순히 오래된 데이터로만 테스트하지 않았습니다. 그들은 Cerebro가 몇 달 동안 실제 시장을 관찰하도록 했습니다.
    • Cerebro는 다른 누구도 잡아내지 못했던 683개의 새로운 악성 PyPI 패키지799개의 새로운 NPM 패키지를 찾아냈습니다.
    • 이들은 이를 공식 팀에 보고했고, 해당 패키지들은 삭제되었습니다.
    • 공식 팀들은 매우 감사해하며 707통의 감사 편지를 보냈습니다.

핵심 요약

이 논문은 컴퓨터에게 고립된 단서가 아닌 행동의 순서(이야기)를 이해하도록 가르치고, 두 주요 소프트웨어 시장의 "언어"를 모두 말할 수 있게 가르침으로써, 우리가 디지털 도둑들을 훨씬 더 효과적으로 잡을 수 있음을 보여줍니다. Cerebro는 단 하나의 똑똑한 모델이 두 개의 서로 다른 세계를 동시에 보호할 수 있으며, 소프트웨어 공급망을 모두를 위해 더 안전하게 만들 수 있음을 증명했습니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →