제
13
장
실행 시점 컨테이너 보호
228
존요소가 컨테이너 이미지에 미리 들어 있어야 한다. 이 부분을 전에는 취약점 검출의 관점에
서 이야기했다. 이미지에 없는 코드에서 취약점을 찾을 수는 없으므로, 취약점을 제대로 찾아
내려면 스캔할 모든 것이 이미지에 포함되어 있어야 한다.
컨테이너를 불변 객체로 취급하면 실행 시점의 코드 주입 공격을 찾는 것도 쉬워진다. 실행
시점에서 코드 주입을 검출하고 방지하는 것을
표류 방지
(
drift
prevention
; 또는 이탈 방지 )
라고 부른다. 제대로 된 실행 시점 솔루션이라면 반드시 표류 방지 기능을 제공해야 한다. 표류
방지는 스캐닝 측면과 컨테이너 실행 측면의 조합으로 이루어진다.
●
스캐너로 이미지를 스캔해서 실행 파일들을 찾고, 각 실행 파일의 지문 (
fingerprint
)을
계산해서 기록해 둔다.
●
적절한 도구를 이용해서, 컨테이너가 어떤 실행 파일을 실행하려 할 때마다 그 실행 파일
의 지문이 스캐너가 기록한 지문과 동일한지 점검한다. 만일 동일하지 않으면 그 실행 파
일의 실행을 금지한다(컨테이너 프로세스에는 “
permission
denied
(접근 권한 없음 )”
오류를 돌려준다 ).
파일 이름 대신 파일 지문 (다이제스트)을 이용하는 덕분에, 공격자가 자신의 실행 파일을 마
치 적법한 실행 파일인 것처럼 주입해서 실행하려는 시도가 방지된다.
13.3
요약
컨테이너 보안 도구의 설정 및 적용이 지루하고 사소한 일로 보일 수 있지만, 이번 장에서 설명
한 것처럼 실행 시점 보호를 ...