6.9 구축 시점 보안
123
민감한 자료
민감한 자료와 비밀 정보에 관해서는 제
12
장에서 자세히 이야기한다. 여기서는 자격 증명이
나 패스워드 등 비밀 자료를 이미지에 포함하면 비밀이 노출되기 쉽다는 점을 명심해야 한
다는 것만 이야기하겠다.
setuid
이진 파일 주의
제
2
장에서 논의했듯이,
setuid
비트가 설정된 실행 파일은 이미지에 포함하지 않는 것이 바
람직하다. 그런 실행 파일은 권한 확대로 이어질 수 있기 때문이다.
불필요한 코드 주의
컨테이너에 담긴 코드가 적을수록 공격 표면이 작다. 꼭 필요하지 않은 패키지나 라이브러
리, 실행 파일은 이미지에 추가하지 말아야 한다. 스크래치 이미지나 배포판 없는 이미지를
기반 이미지로 삼으면 이미지의 코드가 극히 적으며, 따라서 취약한 코드도 극히 적다.
컨테이너에 필요한 모든 것을 포함
불필요한 여분의 코드를 이미지에 포함하지 말라는 앞의 권장 사항들을 뒤집어서 생각하면
응용 프로그램이 작동하는 데 꼭 필요한 모든 것을 이미지에
포함해야
한다는 결론이 나온다.
컨테이너를 실행한 후에 패키지들을 추가로 설치한다면, 그 패키지들의 무결성을 점검하는
추가적인 단계를 두어야 한다. 그렇게 하는 것보다는, 애초에 컨테이너 이미지에 필요한 모
든 것을 담고 검사해서 하나의 불변 (
immutable
) 이미지를 만드는 것이 낫다. 왜 더 나은
지는 §
7
.
7
.
1
불변 컨테이너 (
p
.137
)에서 좀 더 이야기하겠다.
이상으로 침해하기 어려운 이미지를 구축하는 데 도움이 되는 권장 사항들을 살펴보았다. 그럼 ...