8 Docker security rules to live by

컨테이너 기반 응용 프로그램에는 고유 한 보안 문제가 있습니다. 주소를 지정하는 방법은 다음과 같습니다.

 

소프트웨어 (또는 가상) 컨테이너가 조직 내의 어딘가에서 사용되고 있습니다. 분리된 개발자 또는 개발팀이 새 응용 프로그램을 신속하게 만들 수 있습니다. 심지어 프로덕션 환경에서 실행될 수도 있습니다. 안타깝게도 많은 보안팀은 컨테이너의 보안의미를 아직 이해하지 못하거나 회사에서 실행 중인지 여부를 알고 있습니다.

간단히 말해, Docker 및 CoreOS Rkt와 같은 Linux 컨테이너 기술은 전체 서버 대신 응용 프로그램을 가상화합니다. 컨테이너는 게스트 운영 체제를 복제할 필요없이 가상 시스템에 비해 수퍼 라이트급입니다. 유연하고 확장성이 있으며 사용하기 쉽고 VM을 사용하는 것보다 더 많은 응용 프로그램을 특정 물리적 인프라에 패키징 할 수 있습니다. 또한 게스트 OS에 의존하기보다 호스트 운영 체제를 공유하기 때문에 컨테이너를 즉시 스핀 업할 수 있습니다 (VM이 필요로하는 시간 (분) 대비 초 단위).

 

[ Give yourself a technology career advantage with InfoWorld's Deep Dive technology reports and Computerworld's career trends reports. GET A 15% DISCOUNT through Jan. 15, 2017: Use code 8TIISZ4Z. | Discover how to secure your systems with InfoWorld's Security Report newsletter. ]

 

클라우드 파운드리 재단 (Cloud Foundry Foundation)의 2016 년 6 월 보고서에 따르면 711 개 기업이 컨테이너 사용에 대해 조사했습니다. 절반 이상이 컨테이너를 평가했거나 평가중이었습니다. 그 중 16%는 이미 컨테이너 사용을 주류로 삼았으며 64%는 내년 안에 그렇게 할 것으로 예상했다. 보안 팀이 "보안을 왼쪽으로 이동" 할 수있는 기회를 포착하려면 컨테이너 이니셔티브를 확인하고 참여시켜야합니다.

개발자 팀과 DevOps 팀은 민첩하고 지속적인 애플리케이션 전달이라는 철학과 일맥 상통하기 때문에 컨테이너를 채택했습니다. 그러나 새로운 기술의 경우와 마찬가지로 컨테이너는 새롭고 독특한 보안 문제를 제기합니다. 여기에는 다음이 포함됩니다.

  • 취약한 소스 코드의 유출 : 컨테이너는 오픈 소스이기 때문에 조직 개발자가 만든 이미지는 종종 업데이트되어 필요에 따라 저장되고 사용됩니다. 이로 인해 취약성이나 예기치 않은 동작이있을 수 있는 제어되지 않은 코드가 끊임없이 생성됩니다.
  • 대규모 공격 영역 : 주어진 환경에서 응용 프로그램, VM, 데이터베이스 또는 보호해야하는 다른 개체보다 컨테이너가 더 많습니다. 온 프레미스 또는 클라우드에 관계없이 여러 머신에서 실행되는 다수의 컨테이너로 인해 발생하는 상황을 추적하거나 노이즈를 통해 이상을 탐지하기가 어렵습니다.
  • 가시성 부족 : 컨테이너는 Linux 커널과 인터페이스하는 컨테이너 엔진 (예 : Docker 또는 Rkt)에 의해 실행됩니다. 이는 특정 컨테이너의 활동을 마스크하거나 특정 사용자가 컨테이너 내에서 수행중인 것을 추상화하는 또 다른 계층을 만듭니다.
  • Devops speed : 변화의 속도는 일반적으로 컨테이너의 평균 수명이 가상 머신의 수명보다 4 배 짧습니다. 컨테이너를 즉시 실행하고 몇 분 동안 실행 한 다음 중지하고 제거 할 수 있습니다. 이 임시 성은 공격을 시작하고 아무 것도 설치할 필요없이 신속하게 사라지는 것을 가능하게합니다.
    "시끄러운 이웃"컨테이너 : 컨테이너는 다른 컨테이너에 DoS 공격을 효과적으로 생성하는 방식으로 작동 할 수 있습니다. 예를 들어, 소켓을 반복해서 열면 전체 호스트 컴퓨터가 빠르게 크롤링되고 결국 정지됩니다.
  • 호스트에 대한 컨테이너 브레이크 아웃 : 컨테이너는 루트 사용자로 실행되어 권한 상승을 사용하여 "봉쇄"를 중단하고 호스트의 운영 체제에 액세스 할 수 있습니다.
  • "East-West"네트워크 공격 : 특히 아웃 바운드 네트워크 연결 및 원시 소켓으로 실행하는 기능이 제대로 제한되지 않은 경우 위험한 컨테이너를 활용하여 네트워크에서 공격을 시작할 수 있습니다.

컨테이너 환경을 보호하는 가장 좋은 방법은 사실 이후에 실행되는 컨테이너나 서버를 강화하는 것입니다. 그들은 전체 환경을 보호하는데 중점을두고 있습니다. 컨테이너 이미지를 레지스트리에서 가져 와서 컨테이너가 런타임 또는 프로덕션 환경에서 스핀 다운되는 순간부터 보안을 고려해야합니다. 컨테이너가 CI/CD 프레임워크의 일부로서 devops 속도로 배포되는 경우가 많을수록 자동화가 가능할수록 좋습니다.

이를 염두에 두고 이 모범 사례 목록을 제시합니다. 그들 중 다수는 컨테이너에 고유하지 않지만 현재 devops 프로세스에 "구워진"경우 컨테이너화 된 어플리케이션의 보안 상태에 훨씬 더 큰 영향을줍니다. 사실 이후에 "볼트로 고정"됩니다.

 

  1. 포괄적인 취약성 관리 프로그램을 구현하십시오. 취약점 관리는 레지스트리에서 처음 다운로드할 때 이미지를 스캔하는 것 이상의 의미가 있습니다. 컨테이너는 액세스 제어 또는 너무 느슨한 다른 정책을 통해 개발주기를 쉽게 통과할 수 있으므로 응용 프로그램이 손상되거나 런타임에 손상될 수 있는 손상이 발생합니다. 엄격한 취약성 관리 프로그램은 자동으로 실행되고 개발, 테스트, 스테이징 및 프로덕션 환경간의 게이트로 사용되는 "크래들에서 무덤"까지 여러 번 검사하는 사전 예방책입니다.
  2. 사용자 환경에서 승인 된 이미지만 사용되는지 확인하십시오. 공격 표면을 줄이고 개발자가 심각한 보안 실수를 하지 않도록 하는 효과적인 방법은 컨테이너 이미지가 개발 환경으로 유입되는 것을 제어하는 ​​것입니다. 이는 승인된 사적 등록 정보와 승인된 이미지 및 버전만 사용함을 의미합니다. 예를 들어, 단일 Linux 배포판을 기본 이미지로 허용할 수 있습니다. 잠재적인 공격 가능성을 최소화하기 위해 린 (Alpine 또는 Ubuntu보다는 CoreOS) 이미지를 사용하는 것이 좋습니다.
  3. 라이프 사이클 전반에 걸쳐 사전 무결성 검사를 구현하십시오. 컨테이너 수명주기 전반에 걸쳐 보안을 관리하는 일은 레지스트리에서 컨테이너 이미지의 무결성을 보장하고 컨트롤을 프로덕션 환경으로 변경하거나 배포 할 때 컨트롤을 적용하는 것입니다. 이미지 서명 또는 지문을 사용하여 컨테이너의 무결성을 확인할 수있는 양육권 체인을 제공 할 수 있습니다.
  4. 런타임시 최소 권한을 적용합니다. 이는 컨테이너 세계에서 동등하게 적용되는 기본적인 보안 모범 사례입니다. 취약점이 악용되면 일반적으로 침입자는 침해당한 응용 프로그램이나 프로세스의 것과 동일한 액세스 권한을 침입자에게 제공합니다. 컨테이너가 최소한의 권한으로 작동하고 작업을 완료하는 데 필요한 액세스가 위험에 노출되는 것을 줄입니다.
  5. 컨테이너가 액세스하거나 실행할 수있는 파일 및 실행 파일 허용 목록을 작성합니다. 허용 목록을 구현할 때 화이트리스트를 관리하는 것이 훨씬 쉽습니다. 화이트리스트는 응용 프로그램이 올바르게 작동하는 데 필요한 파일과 실행 파일을 파악할 때 제어 및 관리 효율성을 측정하며 보다 안정적이고 안정적인 환경을 유지 관리 할 수 ​​있도록합니다. 미리 승인되거나 허용된 파일 및 실행 파일만 액세스하거나 실행할 수 있도록 컨테이너를 제한하는 것은 위험을 완화하는 강력한 방법입니다. 공격 표면을 줄이는 것뿐만 아니라 이상에 대한 기준을 제공하고 위에 설명 된 "시끄러운 이웃" 및 컨테이너 탈주 시나리오의 사용 사례를 방지하는 데에도 사용할 수 있습니다.
  6. 실행중인 컨테이너에서 네트워크 세분화를 시행합니다. 응용 프로그램 또는 작업 부하별로 컨테이너의 클러스터 또는 영역을 분리하려면 네트워크 세분화 (또는 "나노 세분화")를 유지하십시오. 매우 효과적인 모범 사례 일뿐만 아니라 PCI DSS의 적용을받는 컨테이너 기반 애플리케이션의 경우 네트워크 세분화가 필수적입니다. 또한 "East-West"공격에 대한 보호 장치 역할을합니다.
  7. 컨테이너 활동 및 사용자 액세스를 능동적으로 모니터링합니다. 모든 IT 환경에서와 마찬가지로 컨테이너 생태계에 대한 활동 및 사용자 액세스를 지속적으로 모니터링하여 의심스러운 활동이나 악의적 인 활동을 신속하게 식별해야합니다.
  8. 감사를 위해 모든 관리 사용자 액세스를 컨테이너에 기록하십시오. 강력한 사용자 액세스 제어가 컨테이너와 상호 작용하는 대다수의 사용자에 대한 권한을 제한할 수 있지만 관리자는 스스로 클래스에 있습니다. 컨테이너 생태계, 컨테이너 레지스트리 및 컨테이너 이미지에 대한 관리 액세스를 로깅하는 것은 좋은 보안 방법이자 상식적인 제어입니다. 규정 준수를 입증해야 하는 경우 명확한 감사 추적뿐만 아니라 위반 사례에 필요한 법 의학적 증거를 제공합니다.

"IT 프로세스에 보안을 부여하는"개념의 상당 부분은 예방 프로세스를 시작부터 자동화하는 것과 관련이 있습니다. 컨테이너 보안에 대한 공격적인 접근은 컨테이너화된 응용 프로그램이 이전 버전보다 더 안전 할 수 있게 합니다. 그러나 컨테이너가 일시적으로 대량으로 배포되므로 모든 보안 프로그램에 필수적인 능동적인 탐지 및 대응 -은 컨테이너 환경에 중요합니다. 컨테이너 런타임 환경은 이상, 의심되는 위반 및 규정 준수 목적을 위해 항상 모니터링해야합니다.

공개 도메인에서 컨테이너 보안에 대한 지식이 늘어나고 있지만, 아직 초기 단계에 있음을 기억하는 것이 중요합니다. 새로운 컨테이너 관련 취약점 (또는 Dirty COW와 같은 새로운 오래된 취약점)을 발견하고 (보안 연구원이 Vine의 소스 코드에 액세스 할 수있게 해주는 Vine's Docker 레지스트리의 구성 오류와 같은) 필연적 인 실수를 할 때 모범 사례 진화해야한다.

 

좋은 소식은, 컨테이너 채택에 관한 한, 컨테이너 환경에 대한 강력한 보안 제어를 자동화하기에 아직 이르다는 것입니다. 별로 좋지 않은 소식은 보안 팀이 컨테이너 이니셔티브를 일찍 시작할 수 있을 만큼 빨리 알 필요가 있으며 그렇지 않은 경우가 많습니다. 컨테이너 기반 응용 프로그램 개발로의 전환에서 얻을 수있는 잠재적인 보안 향상을 실현하려면 빨리 변경해야합니다. 컨테이너에 대한 교육과 컨테이너 사용에 따른 보안상의 영향은 좋은 시작입니다.

New Tech Forum은 새로운 기업 기술을 전례없는 깊이와 폭을 탐구하고 토론할 수 있는 장을 제공합니다. 선택은 InfoWorld 독자에게 중요하고 중요하다고 생각하는 기술을 기반으로하여 주관적입니다. InfoWorld는 게시용 마케팅 자료를 수락하지 않으며 모든 기고 된 컨텐츠를 편집 할 수있는 권한을 보유합니다. 모든 문의 사항은 newtechforum@infoworld.com으로 보내주십시오.

Comments

Category
글이 없습니다.
글이 없습니다.
반응형 구글광고 등
State
  • 현재 접속자 7 명
  • 오늘 방문자 16 명
  • 어제 방문자 189 명
  • 최대 방문자 420 명
  • 전체 방문자 105,027 명
  • 전체 게시물 333 개
  • 전체 댓글수 2 개
  • 전체 회원수 31 명
Facebook Twitter GooglePlus KakaoStory NaverBand