블로그

설문조사 결과: 컨테이너 보안(여전히) 우려의 원인

로리 맥비티 썸네일
로리 맥비티
2019년 12월 17일 게시

컨테이너의 사용은 계속해서 증가하고 있습니다. 서버리스, 클라우드 네이티브 앱 또는 모놀리스를 현대화하려는 요구 사항 등, 컨테이너는 앱을 배포하기 위한 선호 플랫폼으로 빠르게 자리잡고 있습니다.

Sysdig는 최근 자사의 퍼블릭 클라우드 및 온프레미스 서비스에서 수집한 고객 데이터를 기반으로 2019년 컨테이너 사용 보고서를 발표했습니다 . 해당 데이터는 200만 개가 넘는 컨테이너에 대한 것입니다.

정말 흥미로운 사실 하나는 컨테이너의 60%가 NGINX를 실행한다는 사실인데, Sysdig는 꽤 걱정스러운 보안 통계도 발견했습니다.

다음 내용을 고려해 보세요. 54%의 용기가 5분 이내에 작동하지 않았습니다. 2018년에는 그런 경우가 20%에 불과했습니다.

왜 이것이 걱정스러운가요? 물론 보안이죠. 액세스를 보호하려는 경우(보호해야 할 사항) 그리고 해당 컨테이너에서 실행되는 앱이나 API를 보호하려는 경우 보안 서비스가 클러스터의 현재 상태에 맞게 정책을 지속적으로 조정하도록 해야 합니다. 즉, 컨테이너가 시작될 때 정책을 적용해야 하고, 컨테이너가 폐기될 때 정책을 제거해야 합니다. 많은 변화가 일어나고 있다는 것은 운영상의 간접 비용이 많이 든다는 것을 의미합니다. 비교적 정적인 애플리케이션에 보안을 제대로 적용하는 것조차 어려운데요. 변동성이 매우 큰 상황에서는 빠른 속도로 처리하기가 정말 어렵습니다.

이것이 문제가 되지 않는다면 이 통계를 시도해 보세요. 컨테이너 이미지의 60%가 개인 레지스트리에서 가져온 것이지만(좋은 통계입니다!), 그 중 52%는 이미지 검사에 실패합니다. 이는 심각도가 높거나 그 이상의 취약점이 알려져 있었다는 의미입니다.

으악. 난 심지어 못해.

많은 사람들이 컨테이너를 루트로 실행하고 있는 것으로 나타났습니다(호스트당 중간값: 21) 또는 특권 모드(호스트당 중간값: 4). 다른 호스트는 제한된 권한을 갖지 않습니다(호스트당 평균 28개). 특히 Docker(가장 널리 사용되는 컨테이너 런타임)는 기본적으로 제한된 기능 세트로 시작하기 때문에 이는 실망스럽습니다. 이는 누군가가 의도적으로 기본 보안 설정을 변경했다는 것을 의미합니다. 제한 없이 실행하면 권한을 확대하거나 컨테이너를 분리(시스템에 대한 액세스 허용)할 수 있습니다. 

이제 컨테이너 보안의 기본 사항에 대한 알림을 위해 잠시 휴식을 취합니다.

  • 문을 잠그세요. 인증은 선택 사항이 아닙니다. 강력한 자격 증명을 요구하고 자주 교체하십시오. 가능하면 항상 2단계 인증을 사용하세요. 특히 오케스트레이션 콘솔과 중요 인프라에 대한 특권 액세스의 경우 더욱 그렇습니다.
  • 귀중품은 숨겨 두세요. 저장소나 쉽게 접근할 수 있는 공유 소스에서 비밀(키와 자격 증명 등)을 실수로 공개하지 마세요.
  • 전화를 걸러내세요. 모든 요청이 유효한 것은 아니며, 일부 요청은 악성 코드를 포함하고 있습니다. 앱이든 인프라 서비스든 콘텐츠를 검사하여 악의적인 의도가 있는지 평가하세요. 약간의 성능 저하를 상쇄하기 위해 SSL/TLS 종료로 검사를 통합하여 최적화합니다.
  • 구멍을 패치하세요. 이미지, 서비스, 워크로드 또는 기타 구성 요소가 취약하다는 것을 알고 있으면 패치를 적용하세요. 특히 외부 소싱 구성 요소의 취약점은 주요 타깃이기 때문에 이러한 취약점이 더욱 심각합니다. Apache Struts와 같이 일반적으로 배포되는 애플리케이션이나 인프라에 취약점이 나타나면 공격자가 이를 찾아 악용하는 데 투자가 거의 필요하지 않아 기회가 풍부한 분야이기 때문입니다.

앱의 보안과 그에 따른 비즈니스 보안에 있어서 좋은 컨테이너 보안 관행이 실제로 실행에 옮겨지는 것은 절대적으로 중요합니다. 곧 출간될 2020 애플리케이션 서비스 현황 보고서에 따르면 클라우드 네이티브/마이크로서비스가 엔터프라이즈 앱 포트폴리오의 평균 15%를 차지하는 것으로 나타났습니다. 그 비율은 새로운 신청에 대한 처리가 오랫동안 미뤄지고 있다는 조사 결과에도 불구하고 나온 것입니다. 즉, 컨테이너화된 앱은 계속해서 성장할 것이라는 뜻입니다. 그리고 만약 우리가 소수의 앱만 보호하지 못한다면, 어떻게 그 중 상당 부분을 보호할 수 있을 만큼 확장할 수 있을 것으로 기대할 수 있을까요?

안전한 컨테이너화를 실천하세요.

컨테이너 보안 기본 사항에 대한 재교육에 관심이 있다면 F5 동료 Jordan Zebor의 전문 지식을 기반으로 한 이 시리즈를 확인하세요.

  1. 컨테이너 보안 기본 사항: 소개
  2. 컨테이너 보안 기본 사항: 관로
  3. 컨테이너 보안 기본 사항: 관현악법
  4. 컨테이너 보안 기본 사항: 작업량
  5. 컨테이너 보안 기본 사항: 결론