처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.06.09 53

설정 파일이 코드를 실행한다고요? 공급망 보안의 사각지대

Hacker News 원문 보기
설정 파일이 코드를 실행한다고요? 공급망 보안의 사각지대

무슨 이야기냐면요

우리는 보통 설정 파일(config file)을 '얌전한 데이터'라고 생각하잖아요. .json, .yaml, .toml 같은 파일은 그냥 값만 적어두는 거고, 코드처럼 뭔가 '실행'되는 건 아니라고요. 그런데 SafeDep이라는 보안 회사가 짚은 핵심이 바로 이 착각이에요. 상당수의 설정 파일은 단순한 데이터가 아니라, 읽히는 순간 코드를 실행한다는 거죠. 이게 공급망 보안(supply chain security, 내가 가져다 쓰는 외부 의존성을 통해 들어오는 위협)에서 자주 간과되는 사각지대라는 이야기예요.

왜 지금 중요하냐면요, 요즘 공격자들은 악성 코드를 패키지의 '진짜 소스 코드'에 숨기지 않아요. 거기는 코드 리뷰나 보안 스캐너가 잘 들여다보거든요. 대신 아무도 의심 안 하는 설정 파일에 숨겨요. 사람들이 "이건 그냥 설정인데 뭐" 하고 넘기는 그 빈틈을 노리는 거예요.

설정 파일이 어떻게 코드를 실행하냐면요

구체적인 예를 들어볼게요. 파이썬의 setup.py는 사실 파일 자체가 파이썬 스크립트예요. pip install을 하면 이게 그냥 실행돼요. 그러니까 그 안에 시스템 명령어를 넣어두면 설치하는 순간 돌아가는 거죠. npm도 마찬가지예요. package.jsonscripts에 있는 postinstall 같은 항목은 패키지를 설치할 때 자동으로 실행돼요. 악성 패키지들이 가장 즐겨 쓰는 통로가 바로 이 postinstall이에요.

더 교묘한 것도 많아요. YAML은 데이터 형식인데도 일부 파서는 !!python/object 같은 태그를 만나면 객체를 생성하면서 코드를 실행할 수 있어요(그래서 안전한 파서인 safe_load를 쓰라고 하는 거예요). 빌드 도구도 그래요. Makefile, Gradle의 build.gradle, 파이썬의 pyproject.toml이 가리키는 빌드 백엔드 등은 빌드 과정에서 임의의 코드를 돌려요. CI 설정인 GitHub Actions의 .yml도 결국 정해진 명령을 실행하는 파일이고요.

핵심은 이거예요. '선언형처럼 생긴 파일'과 '실제로 실행되는 파일'을 겉모습만 보고 구분할 수 없다는 것. 확장자가 .toml이라고 안전한 게 아니라, 그걸 누가 어떻게 읽느냐에 따라 코드가 될 수 있는 거예요.

업계 맥락에서 보면

이건 새로운 위협 흐름의 한 조각이에요. 최근 몇 년간 npm, PyPI 같은 패키지 저장소를 노린 공격이 폭발적으로 늘었거든요. 타이포스쿼팅(유명 패키지와 한 글자 다른 이름으로 속이기), 정상 패키지 탈취 같은 수법이 대표적인데, 이번 이야기는 그중에서도 '실행 지점'에 주목한 거예요.

보안 도구들도 따라가고 있어요. 의존성에 알려진 취약점이 있는지 보는 SCA 도구(Snyk, Dependabot 등)는 많지만, '설치/빌드 과정에서 뭐가 실행되는지'를 보는 건 또 다른 영역이거든요. 그래서 sandbox(격리된 환경)에서 설치를 돌려보며 수상한 동작을 잡아내는 접근이 주목받고 있어요. SafeDep, Socket 같은 곳이 이런 방향을 파고들고 있죠.

한국 개발자에게는요

당장 실무에서 점검할 게 있어요. 첫째, 신뢰할 수 없는 패키지를 설치할 때 npm install --ignore-scripts 옵션으로 라이프사이클 스크립트 실행을 막을 수 있어요. 둘째, 파이썬에서 YAML 읽을 땐 무조건 yaml.safe_load를 쓰세요. 셋째, CI 파이프라인에서 의존성을 설치하는 단계는 권한을 최소화하고 격리하세요. 거기서 코드가 실행되면 빌드 서버 전체가 뚫릴 수 있거든요. 넷째, 새 라이브러리를 도입하기 전에 setup.pypostinstall 스크립트를 한 번 들여다보는 습관도 큰 도움이 돼요.

마무리

'설정 파일은 데이터일 뿐'이라는 방심이 가장 큰 구멍이에요. 코드처럼 동작할 수 있는 파일은 코드처럼 의심하고 검토해야 하는 거죠. 여러분 프로젝트의 의존성 중에, 설치만 해도 뭔가를 실행하는 패키지가 몇 개나 될지 한 번 확인해 본 적 있으세요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

파이썬으로 자동화를 시작해보세요

파이썬 기초부터 자동화까지 실전 강의.

파이썬 강의 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.