피드로 돌아가기
Dev.toSecurity
원문 읽기
실행 없는 Static Analysis 기반 Supply-Chain Malware 탐지 체계 구축
Detecting Supply-Chain Malware Without Running the Code
AI 요약
Context
npm install 단계에서 실행되는 postinstall 스크립트 및 악성 의존성으로 인한 시크릿 유출 위험 존재. 런타임 분석 방식은 이미 코드가 실행된 후 탐지하므로 보안상 무의미한 구조적 한계 보유.
Technical Solution
- Clone 및 Install 과정 없이 파일 내용을 직접 파싱하는 Static Analysis 아키텍처 채택
package.json내 preinstall, postinstall 등 자동 실행 스크립트의 원격 페이로드 호출 여부 검사- Lockfile과 package.json 간의 불일치 및 비정상적 Registry URL(tarball) 매핑 탐지
- 정규표현식을 활용한 Long Hex/Base64 문자열 및
eval기반의 Obfuscation 패턴 식별 - 분석 로직을 I/O와 분리한 Pure Function으로 설계하여 네트워크/파일시스템 의존성 제거 및 테스트 가능성 확보
- Deterministic Rule로 1차 필터링 후, LLM을 통해 모호한 코드의 의도(Intent)를 분석하는 계층적 판별 구조 적용
실천 포인트
- 의존성 설치 전 lockfile의 resolved URL이 공식 Registry 주소와 일치하는지 검증 - package.json 내 자동 실행 스크립트(postinstall 등)의 존재 여부 및 외부 통신 코드 포함 여부 확인 - 비정상적으로 긴 문자열 리터럴이나 `String.fromCharCode` 등이 다수 포함된 Obfuscated 코드 경계 - 보안 분석 도구 설계 시 핵심 로직을 Pure Function으로 분리하여 Fixture 기반 유닛 테스트 환경 구축