DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
Read Original

Contents

Continue Reading

  • More from 당근
  • Related reads#Python
#DevOps

당근이 파이썬 공급망 공격에 대응하는 방법

당근이 파이썬 공급망 공격에 대응하는 방법
01

Summary

당근이 악성 파이썬 패키지를 거르는 비결: '의존성 쿨다운' 프록시 구축기

보안과 개발자 경험을 동시에 잡은 사내 PyPI 프록시 레이어 전략

오픈소스 생태계를 노리는 공급망 공격에 맞서 당근 파이썬 챕터가 설계한 전사 방어 체계를 다룹니다. 단순히 패키지를 저장하는 것을 넘어, 프록시 레이어에서 업로드 시각을 검증하여 위험한 신규 버전을 차단하는 '쿨다운' 정책의 구현 과정과 실질적인 방어 사례를 상세히 소개합니다.

  • 01LiteLLM 및 PyTorch Lightning 공급망 공격을 실제 차단한 실전 보안 사례
  • 02PEP 503과 PEP 691 표준 규격을 조합하여 패키지 업로드 시각을 검증하는 기술적 해법
  • 03AWS CodeArtifact 인증 과정을 추상화하여 로컬 및 CI 환경의 개발자 생산성 향상
  • 04Central Dogma를 활용해 재배포 없이 실시간으로 제어하는 동적 보안 설정 관리
  • 058KB 단위 청크 스트리밍을 통한 대용량 바이너리 배포 효율 최적화

+RECOMMENDATION

오픈소스 의존도가 높은 기업이라면 사내 패키지 프록시를 단일 진입점으로 구축하고 쿨다운 정책을 도입할 것을 적극 추천합니다. 보안과 업데이트 속도 사이의 균형을 위해 Central Dogma와 같은 동적 설정 관리 도구를 함께 활용하는 것이 핵심입니다.

The Problem

PyPI 패키지의 공식 CI/CD 권한을 탈취하여 악성 코드를 삽입하는 공급망 공격이 빈번해지고 있으며, 이러한 공격의 대부분은 배포 후 일주일 이내에 탐지 및 격리되지만 그 사이 발생하는 노출 시간 동안 보안 위협이 큽니다. 특히 당근 내부에서는 AWS CodeArtifact 사용 시 발생하는 복잡한 인증 절차로 인해 개발자들이 패키지 설치 시 불편함을 겪고 있었습니다.

The Solution

AWS CodeArtifact 앞에 자체 PyPI 프록시 레이어를 구축하여 '의존성 쿨다운(Dependency Cooldown)' 정책을 전사적으로 적용했습니다. 프록시는 PEP 691 JSON API를 통해 pypi.org의 패키지 업로드 시각을 확인하고, 쿨다운 기간 내의 버전은 PEP 503 HTML 응답에서 필터링하여 노출하지 않도록 구현되었으며, Central Dogma를 통해 정책을 동적으로 관리합니다.

The Result

프록시 레이어 도입을 통해 개별 개발 환경의 설정 없이도 일관된 보안 정책을 적용할 수 있게 되었으며, 실제로 PyTorch Lightning 공급망 공격 발생 시 악성 버전의 유입을 자동으로 차단하는 성과를 거두었습니다. 또한 복잡한 AWS 인증을 프록시가 대신 처리함으로써 개발자 경험(DX)도 크게 개선되었습니다.

Trade-off

쿨다운 정책으로 인해 최신 버전의 보안 패치나 기능 업데이트가 지연될 수 있는 한계가 있으나, 이는 Central Dogma의 exclude 목록 관리를 통해 신뢰할 수 있는 패키지를 예외 처리함으로써 대응하고 있습니다. 또한 쿨다운 적용 이전의 과거 악성 패키지는 탐지할 수 없어 별도의 보안 감사 도구와의 병행이 권장됩니다.

03

Key Concepts

Concept · 01

Dependency Cooldown

새로 배포된 패키지 버전을 즉시 신뢰하지 않고, 보안 커뮤니티의 검증이 이루어질 때까지 일정 기간 설치를 유예하는 보안 전략입니다.

  • 공급망 공격 패키지가 대부분 일주일 내에 탐지된다는 사실에 기반하여 노출 시간을 최소화합니다.
Concept · 02

PEP 691

파이썬 패키지 인덱스를 JSON 형식으로 제공하는 표준으로, 기존 HTML 방식(PEP 503)보다 풍부한 메타데이터를 포함합니다.

  • 패키지 파일의 정확한 'upload-time'을 확인하기 위해 프록시 서버에서 pypi.org에 요청할 때 사용합니다.
Concept · 03

Central Dogma

Git 기반의 고가용성 구성 관리 서비스로, 마이크로서비스 환경에서 설정 데이터를 안전하게 관리하고 전파합니다.

  • 쿨다운 활성화 여부, 기간 설정, 예외 패키지 목록을 서버 재시작 없이 실시간으로 프록시에 반영하는 데 활용됩니다.
Continue reading · same source

당근More from 당근

View all posts from 당근
  • 당근의 인증은 어떻게 달라져 왔을까요?

    OAuth 2.0OIDCSSO
    1주 전
  • Laying the Rails Beyond WebView: Why Karrot Chose Lynx

    LynxWebViewPerformance
    2주 전
  • 웹뷰 다음의 레일을 깔다: 당근이 Lynx를 선택한 이유

    LynxReactQuickJS
    2주 전
  • 실험을 더 편하게 설계할 수 있게: 당근 실험플랫폼 이야기

    AB TestingData PlatformLLM Agent
    3주 전
  • 프론트엔드와 백엔드를 한 팀으로 합치면 어떤 일이 일어날까?

    Team TopologyCross FunctionalAI Coding
    1개월 전

Related reads#Python

Explore #Python
Airbnb·Data Privacy

프로젝트 라이트하우스 3부 — project-lighthouse-anonymize를 소개합니다

#Python4일 전
토스·MLOps

DS와 MLE가 함께 일하는 법

#Python3주 전
라인·ADK

ODW #2: ADK로 싱글/멀티 에이전트를 개발해 사내 시스템과 통합

#Python4개월 전
무신사·SLO

추측이 아닌 데이터로: 3개 서비스 27개 SLO와 54개 모니터를 설정하고 배포 자동화까지 구축한 2주의 집중 작업

#Python6개월 전
채널 톡·Dagster

팀 내 전처리 프레임워크 dagster 도입기

#Python7개월 전

Source

당근
당근
Engineering Blog

Published · May 6, 2026

Topics

PythonPyPIAWS CodeArtifactSecurityDependency Management