제
7
장
컨테이너 이미지의 소프트웨어 취약점
134
Go
나
C
,
Rust
같은 컴파일 방식 언어에서는 서드파티 의존요소들이 공유 라이브러리의 형
태로 응용 프로그램과 함께 설치되거나, 응용 프로그램을 빌드할 때 정적 라이브러리 형태로
응용 프로그램에 직접 포함된다.
독립형 이진 실행 파일은 ‘독립형 (
standalone
)’이라는 이름이 말해 주듯이 외부 의존요소
가 없다. 개발 과정에서 서드파티 라이브러리나 패키지에 의존할 수는 있지만, 어차피 의존요
소 코드는 빌드 시점에서 실행 파일 자체에 들어간다. 이 경우에는 스크래치 이미지(빈 이미
지)를 기반 이미지로 두어서 이진 실행 파일로만 구성된 컨테이너를 만들 수 있다.
의존 패키지나 라이브러리가 전혀 없는 응용 프로그램은 취약점 스캔을 실행해도 공표된 패
키지 취약점들이 나오지 않는다. 그렇지만 공격자가 악용할 수 있는 결함이 전혀 없다는 보장
은 없는데, 이에 관해서는 §
7
.
11
제로데이 취약점 (
p
.145
)에서 다시 이야기하겠다.
7.4
취약점 위험 관리
소프트웨어 취약점 처리는 위험 관리 (
risk
management
)의 중요한 측면이다. 아주 간단한
소프트웨어가 아닌 한 모든 소프트웨어의 배치본에는 취약점이 있을 가능성이 크며, 따라서 공
격자가 그 취약점을 이용해서 시스템을 공격할 위험이 존재한다. 이 위험을 관리하려면 어떤
취약점들이 있는지 파악해서 심각도 순으로 우선순위를 정하고, 수정사항을 마련하거나 문제
점을 완화하는 절차를 진행해야 한다.
취약점 스캐너는 취약점 ...