npm audit & Trivy

하이솝·2일 전

소프트웨어공학

목록 보기
24/27

학습 목표

  • 왜 보안 도구가 필요한가
  • npm audit 이해하기
  • Trivy 이해하기
  • 두 도구 함께 사용하기

2021년 Log4j 사태

Log4j

  • 자바에서 거의 모든 회사가 쓰던 로그 기록 라이브러리

  • 해당 라이브러리에 해커가 한 줄의 메시지만 보내도
    서버를 통째로 빼앗을 수 있는 치명적인 결함 발견

npm audit

"냉장고에 있는 식재료만 검사해주는 점원"
냉장고 안 식재료만 골라서 어떤 게 상했고, 리콜 됐는지 알려주는 점원

  • JavaScript, Node.js 패키지만 골라서 검사

특징

  • 내장형
    npm 설치 시 자동 포함
  • JavaScript 전용
    Node.js 패키지만 검사
  • 자동 수정
    audit fix 한 줄로 패치

동작

1) package.json 읽기

  • 재료 목록 확인
{
	"dependencies": {
    	"express": "4.17.1",
    	"lodash": "4.17.20" // 옛날 버전
    }
}

2) 보안 DB 조회

  • 공식 데이터베이스에 문의

3) 결과 보고

  • 취약점 + 수정버전 안내

실제 실행 결과

npm audit fix 를 통해 자동으로 수정 가능

심각도(severity) 4단계

low: 위험도 낮음 - 약간 시들해진 채소
moderate: 보통 - 유통기한 임박
high: 심각 - 곰팡이 핀 빵
critical: 매우 위험 - 상한 고기

high, critical은 즉시 수정이 필요하며,
low, moderate는 우선순위에 따라 처리

Trivy

주방 위생검사원
냉장고 뿐만 아니라 주방 전체 가스레인지, 조리기구, 도시락 통 (컨테이너) 까지
전부 점검하는 종합 검사원

특징

  • 다중 언어 지원
    JavaScript, Python, GO, Java 등

  • 컨테이너 지원
    Docker 이미지, OS 패키지 포함

  • 시크릿 검사
    비밀번호, API 키 노출 탐지

검사 대상

1) 컨테이너 이미지 - "배달 도시락 통"

  • Docker 이미지 안의 모든 것

2 소스 코드 - "레시피 노트"

  • GitHub 저장소

3) 설정 파일 - "주방 설계도"

  • Dockerfile, Kubernetes 설정

4) 비밀번호, 열쇠 - 금고 "비밀번호 메모"

  • 코드에 실수로 적힌 API 키

사례: 실수로 비밀번호를 코드에 적었다면?

  • GitHub는 공개 저장소이기 때문에 업로드 순간 전 세계에 공유

npm audit vs Trivy

npm audit: 매일 점검
Trivy: 정기 종합검사

마무리

0개의 댓글