콘텐츠센터

컨테이너 이미지 취약점, 발생원인과 해결방법은?

1. 컨테이너 이미지란 무엇인가요?

컨테이너 이미지(이하 이미지)는 애플리케이션과 그 애플리케이션이 실행되기 위해 필요한 모든 것을 포함하는 소프트웨어 패키지입니다. 여기에는 애플리케이션 자체뿐만 아니라 실행에 필요한 라이브러리, 종속성, 구성 파일, 그리고 일부 운영체제(OS) 요소들이 포함되어 있습니다.

컨테이너 이미지는 계층화된 구조로 이루어져 있습니다. 이 계층 구조는 이미지가 여러 개의 레이어(layer)로 쌓여 구성되는 방식을 뜻합니다. 기본적으로 운영체제의 핵심 요소가 첫 번째 레이어에 위치하며, 그 위에 애플리케이션이 실행되는 데 필요한 각종 패키지와 라이브러리들이 더해집니다.

이러한 계층 구조 덕분에 이미지의 중복을 최소화하고 효율적인 이미지 빌드와 관리가 가능합니다. 또한 개발자는 자신이 설정한 환경에서 컨테이너 이미지 테스트를 마친 후, 운영 환경에서도 동일한 이미지를 사용할 수 있습니다. 이를 통해 개발 환경과 운영 환경에서 동일한 동작을 보장할 수 있기 때문에 운영 이슈를 줄이고 신속하게 배포할 수 있습니다.

컨테이너 이미지 레이어 구조 예시

이러한 특징 덕분에 컨테이너 이미지는 클라우드 환경뿐만 아니라 개발 환경과 배포 과정에서 폭넓게 사용되고 있습니다. 하지만 이미지 내부에는 다양한 보안 취약점이 포함될 수 있어 보안 위험이 발생할 가능성도 큽니다.

 

2. 컨테이너 이미지 취약점은 언제 발생하나요?

컨테이너 이미지 취약점은 이미지에 포함된 다양한 구성 요소에서 발생할 수 있으며, 이는 실제 운영 환경에서 심각한 보안 위협으로 이어질 수 있습니다.

컨테이너 이미지 내에는 운영체제, 라이브러리, 실행 파일 등이 포함되는데, 이러한 요소 중 하나라도 보안에 취약할 경우 전체 시스템의 보안이 위협받을 수 있습니다. 이미지 취약점은 주로 취약점이 존재하는 버전의 패키지 또는 오픈소스 라이브러리를 사용할 때 발생합니다.

🚨취약한 버전의 패키지 사용

이미지에서 애플리케이션이 정상적으로 실행되기 위해서는 이미지 속 운영체제 위에 설치되어야 하는 특정 패키지가 필요합니다. 개발자가 필요한 패키지들을 설치하는 과정에서 해당 패키지가 보안 취약점이 있는 버전일 경우, 빌드되는 컨테이너 이미지 또한 해당 취약점을 그대로 가지게 됩니다. 이와 같은 취약점을 가진 이미지가 실제로 어떤 보안 위협을 초래할 수 있는지 사례를 통해 조금 더 자세히 살펴보겠습니다.

– Ubuntu의 libcurl 패키지 취약점(CVE-2020-8285)

2020년에 발견된 libcurl의 취약점은 특정 버전에서 HTTP/2 프로토콜을 처리하는 과정에서 메모리 손상이 발생하는 문제를 포함하고 있습니다. 이로 인해 원격 공격자는 악성 요청을 전송하여 서비스 중단을 유도할 수 있습니다. 해당 취약점이 포함된 버전의 libcurl을 사용하는 컨테이너 이미지가 운영 환경에서 실행 중인 경우, 악성 요청으로 인해 서버의 정상적인 운영이 방해받거나 서비스를 제공하지 못하는 상황이 발생할 수 있습니다.

– Debian의 gnupg 패키지 취약점(CVE-2021-3931)

CVE-2021-3931은 Debian 기반 시스템에서 사용되는 gnupg 패키지의 취약점입니다. 이 취약점은 gnupg가 암호화된 메시지를 처리할 때 메모리 오류를 일으키는 문제를 포함하고 있습니다. 이로 인해 공격자가 실행 중인 컨테이너 운영 환경에 악성 데이터를 주입하거나 서비스를 중단시킬 수 있습니다.

🚨취약한 버전의 라이브러리 사용

컨테이너 이미지에서 실행되는 서비스가 포함하고 있는 라이브러리 역시 보안 취약점을 가질 수 있습니다. 취약한 라이브러리를 포함한 이미지는 컨테이너 운영 환경에서 보안 위협으로 작용합니다. 이미지 속에서 실행될 서비스를 개발하는 과정에서 오픈소스 라이브러리를 사용할 때에는 해당 버전에 알려진 취약점이 존재하는지 확인한 후 사용해야 합니다.

오픈소스는 전 세계적으로 활발히 개발되고 사용되지만, 보안 취약점이 발견될 경우 광범위한 영향을 미칠 수 있습니다. 예를 들어 특정 라이브러리에서 발견된 취약점이 패치되기 전까지 많은 이미지에 해당 라이브러리가 포함될 수 있으며, 이를 공격자가 악용할 경우 심각한 결과를 초래할 수 있습니다. 이러한 취약점은 컨테이너 내에서 실행되는 애플리케이션에 영향을 미쳐 전체 시스템에 대한 공격 가능성을 높입니다.

 

3. 컨테이너 이미지 취약점을 검출하는 방법, 컨테이너 이미지 분석

앞서 설명드린 것처럼 컨테이너 이미지는 개발과 운영의 일관성을 제공하는 강력한 도구이지만, 그 내부에 보안 취약점이 내재될 수 있습니다. 이러한 상황을 방지하기 위해서는 컨테이너 이미지 분석을 통해 잠재적인 보안 위협을 사전에 식별하고 차단하여 안전하고 신뢰할 수 있는 이미지를 구축하는 것이 중요합니다.

컨테이너 이미지 분석은 이미지를 운영 환경에 배포하기 전이나 배포한 이후에도 지속적으로 이미지 내부의 구성 요소를 점검하는 과정입니다. 이미지를 분석하는 주요 목적은 이미지에 포함된 패키지, 라이브러리, 운영체제 구성 요소 등의 보안 취약점을 사전에 발견하고, 이를 기반으로 적절한 대응 조치를 취하는 데 있습니다. 취약점이 발견된 패키지나 라이브러리에 대한 대응 방법으로는 취약점이 해결된 버전으로 업데이트하여 사용하거나, 해결된 버전이 존재하지 않는다면 대체 패키지나 라이브러리를 사용하는 방법도 고려할 수 있습니다.

컨테이너 이미지 분석이 중요한 또 다른 이유는 단순한 취약점 탐지를 넘어 지속적인 보안 관리를 가능하게 한다는 점입니다. 보통 컨테이너 이미지는 한 번 빌드되고 끝나는 것이 아니라 계속해서 업데이트되고 재배포되기 때문에, 지속적인 분석을 통해 새로운 보안 취약점이 발견되면 즉각적으로 대응해야 합니다. 보안 위협을 최소화하기 위해서는 컨테이너 이미지 분석 결과를 확인하여 보안 이슈를 사전에 해결하고, 안전한 이미지만 운영 환경에 배포되도록 해야 합니다.

 

 

지금까지 컨테이너 이미지 취약점과 컨테이너 이미지 분석 방법에 대해 살펴봤습니다. 오픈소스 관리 도구인 Sparrow SCA에서는 컨테이너 이미지 분석 기능을 제공합니다. 이미지의 레이어별 구성 요소를 분석하여 운영체제 위에 설치된 패키지와 애플리케이션에 포함된 의존성 등 컴포넌트 정보를 추출한 후, 이를 취약점 데이터베이스와 대조해 알려진 취약점이 있는지를 확인합니다. 또한 각 컴포넌트에 취약점이 존재하는 경우 해당 취약점의 CVSS 점수, 영향받는 버전 목록, 취약점 해결을 위한 조치 방안을 제공하여 사용자가 대응해야 할 취약점을 쉽게 식별하고 대응할 수 있도록 도와줍니다.

Sparrow SCA를 활용해 컨테이너 이미지 취약점을 사전에 점검하고 안전하게 컨테이너를 활용하세요.

방금 읽은 이 콘텐츠가 마음에 드셨다면?
지금 바로 스패로우 뉴스레터 '스포'를 구독하고, 매주 인사이트를 가장 빠르게 받아보세요

개인정보처리방침

(주)스패로우 (이하회사) 고객님의 개인정보를 중요시하며, “정보통신망 이용촉진 및 정보보호에 관한 법률을 준수하고 있습니다.

회사는 개인정보처리방침을 통하여 고객님께서 제공하시는 개인정보가 어떠한 용도와 방식으로 이용되고 있으며, 개인정보보호를 위해 어떠한 조치가 취해지고 있는지 알려드립니다.  회사는 개인정보처리방침을 개정하는 경우 웹사이트 공지사항(또는 개별공지)을 통하여 공지할 것입니다.

본 방침은 2024 1월 2일부터 시행됩니다.

 
제1조(개인정보의 처리목적)

수집하는 개인정보 항목 회사는 상담, 서비스 신청 등을 위해 아래와 같은 개인정보를 수집하고 있습니다. 회사는

수집한 개인정보를 다음의 목적을 위해 활용합니다.

  • 수집항목: 이름, 회사명, 이메일, 연락처
  • 수집방법: 홈페이지(문의하기, 뉴스레터 구독신청, 이벤트 프로모션 신청, 브로슈어 다운로드)
  • 수집목적: 정보이용 및 이벤트 신청에 따른 본인 확인, 개인 식별, 불만처리 등 민원처리 마케팅 및 광고에 활용 이벤트 등 광고성 정보 전달, 접속 빈도 파악 또는 회원의 서비스 이용에 대한 통계
 
 
제2조(개인정보의 처리 및 보유기간)
1. 회사는 법령에 따른 개인정보 보유·이용기간 또는 이용자로부터 개인정보를 수집시에 동의받은 개인정보 보유·이용기간 내에서 개인정보를 처리·보유하며 개인정보 수집 및 이용목적이 달성된 후에는 예외없이 해당 정보를 지체 없이 파기합니다.
 
2. 각각의 개인정보 처리 및 보유 기간은 다음과 같습니다.
(1) 홈페이지 회원 가입 및 관리 : 홈페이지 탈퇴시까지 다만, 다음의 사유에 해당하는 경우에는 해당 사유 종료시까지
 1) 관계 법령 위반에 따른 수사·조사 등이 진행중인 경우에는 해당 수사·조사 종료시까지
 2) 홈페이지 이용에 따른 채권·채무관계 잔존시에는 해당 채권·채무관계 정산시까지
(2) 재화 또는 서비스 제공 : 재화․서비스 공급완료 및 요금결제․정산 완료시까지 다만, 다음의 사유에 해당하는 경우에는 해당 기간 종료시까지
 1)「전자상거래 등에서의 소비자 보호에 관한 법률」에 따른 표시·광고, 계약내용 및 이행 등 거래에 관한 기록
 – 표시·광고에 관한 기록 : 6개월
  계약 또는 청약철회 등에 관한 기록 : 5년
  대금결제 및 재화 등의 공급에 관한 기록 : 5년
 – 소비자 불만 또는 분쟁처리에 관한 기록 : 3년
 2)「통신비밀보호법」제41조에 따른 통신사실확인자료 보관
(3)컴퓨터통신, 인터넷 로그기록자료, 접속지 추적자료 : 3개월
 
 
제3조(개인정보처리의 위탁)
1. 회사는 원활한 개인정보 업무처리를 위하여 다음과 같이 개인정보 처리업무를 위탁하고 있습니다.
 (1) 고객지원 센터 운영
  위탁받는 자 (수탁자) : HubSpot Inc.
  위탁하는 업무의 내용 : 영업/기술/제품 등 문의 수집 및 안내(답변) 관리
 (2) 모바일 쿠폰 경품 발송 업무
  위탁받는 자 (수탁자) : 비즈콘
  위탁하는 업무의 내용 : 이벤트 진행 후 모바일 쿠폰 경품 발송
2. 회사는 위탁계약 체결시 개인정보보호법 제26조에 따라 위탁업무 수행목적 외 개인정보 처리금지, 기술적·관리적 보호조치, 재위탁 제한, 수탁자에 대한 관리·감독, 손해배상 등 책임에 관한 사항을 계약서 등 문서에 명시하고, 수탁자가 개인정보를 안전하게 처리하는지를 감독하고 있습니다.
3. 위탁업무의 내용이나 수탁자가 변경될 경우에는 지체없이 본 개인정보 처리방침을 통하여 공개하도록 하겠습니다.
 
 
제4조(개인정보의 국외 이전)
회사는 원활한 서비스데스크의 원활한 서비스 제공을 위하여 아래와 같이 해외에 위치한 업체에 개인정보 처리를 위탁하고 있습니다.
1. 정보관리책임자 연락처 : Nicholas Knoop / privacy@hubspot.com
 
 
제5조(이용자의 권리․의무 및 행사방법)
 
이용자 및 법정 대리인은 언제든지 등록되어 있는 자신 혹은 당해 만 14세 미만 아동의 개인정보를 조회하거나 수정할 수 있으며 가입해지를 요청할 수도 있습니다. 이용자 혹은 만 14세 미만 아동의 개인정보 조회 · 수정을 위해서는 ‘개인정보변경'(또는 ‘회원정보수정’ 등)을 가입해지(동의철회)를 위해서는 “회원 탈퇴”를 클릭하여 본인 확인 절차를 거치신 후 직접 열람, 정정 또는 탈퇴가 가능합니다. 혹은 개인정보 관리책임자에게 서면, 전화 또는 이메일로 연락하시면 지체없이 조치하겠습니다.

귀하가 개인정보의 오류에 대한 정정을 요청하신 경우에는 정정을 완료하기 전까지 당해 개인정보를 이용 또는 제공하지 않습니다. 또한 잘못된 개인정보를 제3자 에게 이미 제공한 경우에는 정정 처리결과를 제3자에게 지체없이 통지하여 정정이 이루어지도록 하겠습니다.

회사는 이용자 혹은 법정 대리인의 요청에 의해 해지 또는 삭제된 개인정보는 “회사가 수집하는 개인정보의 보유 및 이용기간”에 명시된 바에 따라 처리하고 그 외의 용도로 열람 또는 이용할 수 없도록 처리하고 있습니다.

 
 
제6조(처리하는 개인정보 항목)
회사는 다음의 개인정보 항목을 처리하고 있습니다.
 
1. 고객 홈페이지를 통한 고객문의 대응 및 마케팅 활용 용도
 회원 필수항목: 성명, 이메일주소, 비밀번호, 전화번호, 회사명
 비회원 필수항목: 성명, 이메일주소, 전화번호, 회사명
2. 실시간 헬프데스크 운영
 필수항목 : 성명, 회사명, 전화번호, 이메일주소
고객문의 과정에서 고객지원 수탁업체(Hubspot)를 사용하며 생성된 수집한 IP 주소, 방문기록, 지역 등이 사용될 수 있습니다.
3. 회사는 인터넷 서비스 이용과정에서 고객의 선호 사항 등을 기억해 서비스를 효율적으로 제공하기 위해 개인정보를 저장하고 조회하는 쿠키(Cookie, 이하 ‘쿠키’)를 설치하거나 운용할 수 있습니다. 회사는 고객이 웹 브라우저에 접속하면 고객의 브라우저에 저장된 쿠키의 내용을 읽고, 추가 정보를 찾아 이후 접속할 시 맞춤 서비스를 제공할 수 있습니다. 회사가 쿠키를 통해 수집한 고객의 정보는 아래 목적 등을 위해 사용될 수 있습니다. 
 고객의 관심 분야에 따라 차별화한 정보 제공
 관심있게 둘러본 내용의 자취를 추적해 추후 접속 때 개인 맞춤 서비스 제공
 고객들의 패턴을 분석해 서비스 개편 등의 척도로 활용

고객은 위 목적으로 운영되는 맞춤
서비스를 원치 않을 시, 쿠키의 저장을 거부할 수 있습니다.

 
제7조(개인정보의 파기)

회사는 원칙적으로 개인정보 수집 및 이용목적이 달성된 후에는 해당 정보를 지체없이 파기합니다. 파기절차 및 방법은 다음과 같습니다.

  • 파기절차: 제품 정보이용을 위해 입력하신 개인정보는 목적이 달성된 후 별도의 DB로 옮겨져(종이의 경우 별도의 서류함) 내부 방침 및 기타 관련 법령에 의한 정보보호 사유에 따라(보유 및 이용기간 참조) 일정 기간 저장된 후 파기되어집니다. 별도 DB로 옮겨진 개인정보는 법률에 의한 경우가 아니고서는 보유되어지는 이외의 다른 목적으로 이용되지 않습니다.
  • 파기방법 : DB삭제 방법으로 파기합니다.
 
 
제8조(개인정보의 안전성 확보조치)
 
1. 기술적 대책: 회사는 고객님의 개인정보가 분실, 도난, 누출, 변조 또는 훼손되지 않도록 다음과 같은 기술적 대책을 마련하고 있습니다.
 (1) 개인정보는 암호화 되어 저장되어 있으며 권한이 있는 자만 접근이 가능하도록 ID/비밀번호에 의해 접근이 통제되고 있습니다.
 (2) 접속기록은 위변조를 방지하기 위해 외부 접근이 불가능한 데이터베이스에 보관되어 있습니다.
 (3) HTTPS 프로토콜을 통한 통신데이터를 보호하고, 외부 서비스를 제외한 모든 데이터베이스는 외부접근이 불가능한 네트워크 영역에 구축하는 등 해킹 등에 대비한 기술적 방법을 마련하고 있습니다.
2. 관리적 대책
 (1) 개인정보에 대한 접근 및 관리에 필요한 절차 등을 마련하여 소속 직원으로 하여금 이를 숙지하여 지키도록 하고 있습니다.
 (2) 개인정보에 대한 접근권한을 최소한의 인원으로 제한하고 있습니다. 최소한의 인원에 해당하는 자는 다음과 같습니다
  1) 이용자를 직접 상대로 하여 마케팅 업무를 수행하는 자
  2) 개인정보 관리책임자, 담당자 등 개인정보 관리업무를 수행하는 자
  3) 기타 업무상 개인정보의 취급이 불가피한 자
 (3) 개인정보에 대한 접근과 관리에 필요한 절차 등을 마련하여 소속 직원으로 하여금 이를 숙지하여 지키도록 하고 있으며, 개인정보를 취급하는 직원을 대상으로 새로운 보안 기술 습득 및 개인정보보호 의무 등에 관한 정기적인 사내 교육과 외부 위탁교육을 시행하고 있습니다.
 (4) 개인정보 관련 취급자의 업무 인수인계는 보안이 유지된 상태에서 철저하게 이뤄지고 있으며 입사 및 퇴사 후 개인정보 사고에 대한 책임을 명확히 하고 있습니다.
 (5) 신규직원을 채용할 때 정보보호서약서 또는 개인정보보호서약서에 서명하게 하여 직원에 의한 정보유출을 사전에 방지하고 있으며 개인정보처리방침에 대한 이행사항과 직원의 준수 여부를 감사하기 위한 내부 절차를 마련해 지속적으로 시행하고 있습니다.
 (6) 직원이 퇴직할 때 비밀유지서약서에 서명하게 함으로써 고객의 개인정보를 취급하였던 자가 직무상 알게 된 개인정보를 훼손, 침해 또는 누설하지 않도록 하고 있습니다.
 (7) 이용자 개인의 실수나 기본적인 인터넷의 위험성 때문에 일어나는 일에 대해 책임을 지지 않습니다. 회원 개개인은 본인의 개인정보를 보호하기 위하여 자신의 이메일(e-mail) 과 비밀번호(PASSWORD)를 적절하게 관리하고 이에 대해 책임을 져야 합니다. 또한, 다른 사람이 추측할 수 있는 쉬운 비밀번호(PASSWORD)는 사용을 피하기를 권장하며, 정기적으로 비밀번호(PASSWORD)를 변경하는 것이 바람직합니다.
 (8) 공동으로 사용하는 PC에서 저희 홈페이지에 접속하여 로그인한 상태에서 다른 사이트로 이동할 경우에 서비스 이용을 종료하고자 한다면 반드시 로그아웃 한 후 해당 홈페이지를 종료하시기 바랍니다. 그렇지 않으면, 해당 브라우저를 통해 이메일(e-mail), 비밀번호(PASSWORD) 등 고객님의 정보가 타인에게 쉽게 유출될 수 있습니다.
 (9) 그 밖에 내부 관리자의 실수나 기술 관리상의 사고로 개인정보의 상실, 유출, 변조, 훼손이 유발되면 당사는 즉각 그 사실을 알리고 적절한 대책과 보상을 마련할 것입니다.
 
 
 
제9조(개인정보 자동 수집 장치의 설치∙운영 및 거부에 관한 사항)
1. 회사는 이용자에게 개별적인 맞춤서비스를 제공하기 위해 이용정보를 저장하고 수시로 불러오는 ‘쿠키(cookie)’를 사용합니다.
2. 쿠키는 웹사이트를 운영하는데 이용되는 서버(https)가 이용자의 컴퓨터 브라우저에게 보내는 소량의 정보이며 이용자들의 PC 컴퓨터내의 하드디스크에 저장되기도 합니다.
 
 (1) 쿠키의 사용목적: 이용자가 방문한 각 서비스와 웹 사이트들에 대한 방문 및 이용형태, 인기 검색어, 보안접속 여부, 등을 파악하여 이용자에게 최적화된 정보 제공을 위해 사용됩니다.
 (2) 쿠키의 설치∙운영 및 거부 : 웹브라우저 상단의 도구 > 인터넷 옵션 > 개인정보 메뉴의 옵션 설정을 통해 쿠키 저장을 거부 할 수 있습니다.
 (3) 쿠키 저장을 거부할 경우 맞춤형 서비스 이용에 어려움이 발생할 수 있습니다.
 
3. 웹사이트 상에서 분석 도구인 Google Analytics를 사용할 수 있습니다. Google 웹 로그 분석에서 쿠키를 사용하는 방법에 대한 자세한 내용은 www.google.com/policies/privacy/partners에서 확인할 수 있습니다. 또한, https://tools.google.com/dlpage/gaoptout를 통해 모든 웹 사이트에서 Google Analytics의 사용을 중지할 수도 있습니다.
 
 
 
제10조(개인정보 보호책임자)
1. 회사는 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 이용자의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를 지정하고 있습니다.
 개인정보 보호책임자
– 성명 : 안성준
 직책 : 마케팅팀장
 연락처 : 02-6263-7408, privacy@sparrow.im
 
2. 귀하께서는 회사의 서비스를 이용하시며 발생하는 모든 개인정보보호 관련 민원을 개인정보관리책임자 혹은 담당부서로 신고하실 수 있습니다.
 
 
 
제11조(개인정보 열람청구)
이용자는 개인정보 보호법 제35조에 따른 개인정보의 열람 청구를 개인정보보호 담당 부서에 할 수 있습니다. 회사는 이용자의 개인정보 열람청구가 신속하게 처리되도록 노력하겠습니다.
 
 
 
제12조(권익침해 구제방법)
이용자는 아래의 기관에 대해 개인정보 침해에 대한 피해구제, 상담 등을 문의하실 수 있습니다. 아래의 기관은 회사와는 별개의 기관으로서, 회사의 자체적인 개인정보 불만처리, 피해구제 결과에 만족하지 못하시거나 보다 자세한 도움이 필요하시면 문의하여 주시기 바랍니다
 
▶ 개인정보 침해신고센터: (국번없이)118 (privacy.kisa.or.kr)
▶ 개인정보 분쟁조정위원회: (국번없이) 1833-6972 (www.kopico.go.kr)
▶ 대검찰청 사이버수사과 : (국번없이)1301 (www.spo.go.kr)
▶ 경찰청 사이버수사국 : (국번없이)182 (https://police.go.kr)
 
 
 
 
제13조(개인정보 처리방침 변경)
1. 본 개인정보처리 방침의 내용 추가, 삭제 및 수정이 있을 시에는 개정 최소 7일전부터 ‘홈페이지 ‘를 통해 고지하며, 개인정보의 수집 및 활용, 제3자 제공 등과 같이 이용자 권리의 중요한 변경은 최소 30일 전에 고지합니다. 다만, 사전 고지하기로 한 일자 내 고지가 곤란한 경우에는 지체 없이 고지합니다.
2. 이 개인정보 처리방침은 2024. 1. 2부터 적용됩니다.