8delp***
2021-02-21

컨테이너 환경에 특화된 보안 문제를 다루는 실무 지침서. 컨테이너의 작동 및 통신 원리를 파헤친 뒤 컨테이너를 격리하는 다양한 방법을 안내하고, 리눅스가 제공하는 기능을 활용하여 컨테이너별로 보안을 강화하는 방법을 익힌다.
최근 도커, 쿠버네티스 등 컨테이너, 가상화 기술을 각광을 받고 있다. 이는 IT 전체의 패러다임 만을 변화시킨 것이 아니라 특히 특정 영역에 있는 업계에도 대단한 바람을 불고 올 변화였다. 그 부분 중 하나가 바로 '정보보안' 업계이다.
물론 컨테이너 방식을 도입하려고 하는 기업들 입장에서도 갑자기 찾아온 변화에 적응하기 위해 많은 노력이 행해지고 있을 것이다. 그럼에도 정보보안 업계는 그야말로 발등에 불이 떨어진 격이다. 기존의 온프레미스 방식의 보안 서비스 제공에서 이제는 클라우드와 컨테이너화된 환경을 가진 기업들에게 새로운 보안 서비스를 제공해야 하는 것이다. 나 또한 그러한 변화의 소용돌이 안에 집어던져진 느낌이다. 그렇다고 해서 강건너 불 구경 하듯이 할수는 없는 노릇이다. 원래 이 분야는 평생 새로운 기술을 배우지 못하면 뒤쳐질 수 밖에 없다는걸 잘 알고 있기 때문에 팀 차원에서 뿐만 아니라 나 개인도 이런 환경을 이해하기 위해 노력하고 있다. 서론이 길었는데 그런 흐름 속에서 내가 공부를 선택한 책이 바로 이 책이다.
다른 책들은 도커가 어떻고. 쿠버네티스는 어떻게 하며 컨테이너화는 이런 특징과 이런 방법으로 이용할 수 있다 등등과 같은 것을 이해하지만 이 책은 오로지 컨테이너 환경의 보안에 관해서만 초점을 맞추고 있다. 제목만 봐도 왠지 어려울 것 같은데 책 분량은 260페이지를 넘지 않는 정도로 그렇게 두껍고 어려운 책은 아니다. 하지만 방대한 책 이름에 비하여 내용이 컴팩트한 이유는 이 책의 독자가 도커나 쿠버네티스를 사용해본 적이 이용해본 적이 있고 최소한 리눅스 터미널을 능숙하게 다를 줄 알아야 한다는 사실이다. 리눅스 명령어 자체는 어렵지 않으니 도커나 쿠버네티스에 대해 어느정도 알고 있거나 공부해본 경험만 있다면 이 책에 필요한 사전지식이 그렇게 많은 것도 아니다.
본 책의 서술 방식은 일반적인 프로그래밍 책 같은 튜토리얼 방식은 아니다. 하나의 큰 주제(챕터)를 가지고 그 주제에 대한 작동 원리, 리눅스를 통해 확인하는 과정, 그리고 그것이 보안에 미치는 영향과 그 영향에 대한 해결책 등을 제시하는 구조로 되어있다.
여기서는 내가 주로 관심 있었던 영역에 대해서만 몇가지 말하려고 한다.
사실 이 책의 어느정도의 분량은 컨테이너 환경에서만 치부할 수 있는 보안 문제가 아니다. 모든 것들이 기존의 토대가 놓인 상태에서 기술들이 완성되기 때문에 호스트 OS에 영향이 있는 보안 취약점은 컨테이너 상황에서도 마주할 가능성이 높다는 것이다. 그래서 그런 공통적인 취약 상황에 놓일 수 있는 것들이 어느 것들이 있는지를 보여주고 있다. 또 setuid와 같은 특수 접근권한에서 유념해야 할 보안적 관점을 보여주고 있다. 또 이것들이 왜 컨테이너 환경 관점에서 중요한 것인지도 알 수 있도록 하였다.
이 책은 또한 컨테이너 격리와 VM 격리를 비교하고 있다. 왜냐하면 컨테이너와 VM은 가상화라는 개념에서는 동일하지만 실제로 동작하는 방식과 원리, 구조가 완전히 다르다. 그런데 가상화라는 이유로 자주 함께 언급이 되니 혼동이 오는 독자가 분명 있을 것이다. 그래서 뭐가 얼마나 다른지를 설명해주는 것이다.
그리고 다음으로는 도커 이미지에 대한 보안 취약점을 설명하는 부분이 인상깊었다. 그 이유는 이것이 바로 내가 연구하려고 준비하는 주제이기 때문이다. 실제 취약점 분야도 이 부분에 맞춰 개발이 많이 되고 있을 것이라 예측한다. 도커와 같은 가상화 이미지들이 편리하다고는 잘 알려져 있지만 그것에 대한 위험성에 대하여는 심각히 다루어지고 있지는 않은 것 같다. 그래서 어떻게 그런 이미지를 식별하고 보안적으로 처리할 것인지를 논하였다. 이를 위한 방안으로서 도커 파일을 사용하기 위한 최선의 모범 관행(Best practice)을 보여주고 있는데 이것은 실무적으로도 굉장한 도움이 될 수 있는 팁이라고 생각할 수 있다.
그 다음으로 중요하다고 생각하는 부분은 웹 애플리케이션의 주요 10대 취약점으로 발표되는 OWASP TOP 10 이다. OWASP은 매년 가장 중요한 취약점 중 10가지 유형의 순위를 발표한다. 보안 분야를 공부해보신 분이라면 모두 OWASP TOP 10을 분명히 들어보셨을것이다. 이 OWASP 자료와 컨테이너와의 관계를 소개하는데 공신력 있는 자료를 통해 컨테이너 관점에서 바라보는 보안의 유형과 이에 대한 대비책이 무엇인지 살펴보는 것도 OWASP 을 연구하는 보안 연구자, 해당 자료를 바탕으로 취약점 소프트웨어를 개발하는 사람에게 정말로 유용한 자료가 될 수 있는 부분이라고 생각한다.
마지막으로 SELinux에 대한 설명인데 더 심화적으로 SELinux와 도커의 연동 방식 등을 알아보고 싶은 독자를 위해서 친절히 아주 좋은 자료를 소개해두었다. 이 책의 이러한 점이 마음에 들었다.
결론적으로 이 책을 번역하셨던 옮긴이는 내가 예전에 리뷰했던 <Bash를 활용한 사이버 보안 운영>이라는 책도 번역을 하신 분이었다. 이 분은 보안과 관련된 해외 서적 중에서도 바로 실무에 적용할 수 있는 컴팩트하고 현장 위주의 도서를 주로 번역하시는 것 같다. 그래서 나와 같이 관련 분야에서 일하는 사람들은 많은 도움을 받고 있는것 같다.
보안과 가상화 환경 두 분야에 모두 관심이 있는 분께 이 책을 추천해드리고자 한다.