소프트웨어 개발 환경이 점점 더 복잡해지고 있는 현대에서는 효율적인 패키징과 배포가 필수적인 요소로 자리 잡고 있습니다. 많은 개발자들은 코드 작성 이후에도 빌드, 저장, 배포 등의 과정을 보다 체계적으로 관리할 수 있는 도구를 필요로 하고 있으며, 이를 통해 개발 생산성을 극대화하고자 합니다. 이러한 요구에 부응하여 탄생한 OllPack 은 단순한 저장소 역할을 넘어, 소프트웨어 개발 과정 전반에서 다양한 부가 기능을 제공하는 혁신적인 솔루션입니다.
OllPack은 다양한 개발 산출물을 여러 빌드 도구와 연동하여 손쉽게 관리할 수 있도록 지원하며, 단순한 아티팩트 저장을 넘어 라이선스 스캔, 통계, 취약점 분석 등 다양한 기능을 제공합니다. 특히, 소프트웨어의 안정성과 보안이 중요한 시대적 흐름 속에서 OllPack의 취약점 관리 기능은 기업이 신뢰할 수 있는 소프트웨어를 제공하는데 중요한 역할을 합니다.
이번 블로그에서는 OllPack의 주요 기능 중 하나인 아티팩트의 취약점 관리 방법에 대해 심층적으로 다루며, 이를 통해 기업이 어떻게 소프트웨어 보안을 강화할 수 있는지 살펴보겠습니다.
Artifact 취약점 관리의 중요성의 대두
모든 코드를 100% 직접 개발하던 시대는 저물었습니다. 현재의 개발 환경은 다양한 오픈소스 프로젝트와 서드파티 라이브러리를 적극적으로 활용함으로써 개발 시간을 단축하고 비용을 절감할 수 있도록 진화했습니다. 그러나 이러한 방식은 보안 측면에서 새로운 도전 과제를 제시하고 있습니다.
오픈소스 라이브러리는 누구나 접근 가능하고 빠르게 배포될 수 있는 장점이 있지만, 보안 취약점이 발견될 경우 이를 사용하는 모든 소프트웨어가 동일한 보안 위협에 노출될 수 있습니다. 실제로 유명한 보안 사고들(예: Apache Struts, log4j 등)은 특정 라이브러리의 취약점이 얼마나 큰 영향을 미칠 수 있는지를 보여주었습니다.
특히, 최근에는 소프트웨어 공급망 공격이 증가하면서 취약점 관리의 중요성이 더욱 강조되고 있습니다. 공격자는 종속된 라이브러리를 통해 전체 시스템에 침투할 수 있으며, 이를 방지하기 위해 기업은 자사의 소프트웨어에 포함된 모든 아티팩트를 지속적으로 모니터링하고 관리해야 합니다.
또한 최근 컨테이너 시스템이 비즈니스 환경에도 보급되고 사용되면서, 컨테이너 이미지를 빌드할 때 같이 설치하는 Dependency에 대한 취약점도 관리 대상이 되었습니다. 그러나 보안 전문가가 아닌 일반 개발자가 발견된 취약점의 심각도를 정확히 평가하는 것은 쉽지 않은 일입니다.
CVSS(Common Vulnerability Scoring System) Score의 등장
CVSS 는 소프트웨어 취약점의 심각도를 일관되고 표준화된 방식으로 평가하기 위해 개발되었습니다. 과거에는 각 벤더와 조직들이 자체적인 취약점 평가 방식을 사용했기 때문에, 취약점의 심각도를 비교하고 우선순위를 정하는 데 어려움이 있었습니다.
그래서 미국 국가기반시설자문위원회와 포럼을 통해 2005년에 CVSS Ver 1이 발표되어, 지금까지 관리되어 오고 있습니다. 현재는 Ver 4까지 발표되었으며, 취약점의 심각도를 0~10 사이의 점수로 표현하고 있습니다.
관심이 필요한 취약점 뉴스 그리고 자동으로 알려주는 OllPack
이렇게 취약점에 대해서 관심을 환기하고 객관적인 지표를 만들기 위한 여러 제도가 있지만, 개발자들이 개발한 소프트웨어에 사용한 라이브러리 리스트와 버전까지 체계적으로 관리하고 보안 뉴스에 귀를 기울이지 않는다면 사용한 라이브러리에 취약점이 발견되었다는 사실을 즉시 인지하기 어렵습니다.
결과적으로 취약점에 대한 적절한 대응이 이루어지지 않으면 해당 취약점을 악용한 보안 공격에 노출될 가능성이 높아지고, 이는 기업의 소프트웨어 신뢰도를 심각하게 저하시킬 수 있습니다.
여기서 자동 취약점 알림 시스템을 제공하는 OllPack이 등장합니다. OllPack에서는 업데이트되는 취약점 Database과 자체 스캔 기능을 통해 존재하는 Artifact의 취약점을 실시간으로 확인하고 진단합니다. 이렇게 확인된 취약점은 CVSS Score로 표시되기에 발견된 취약점의 강력함을 객관적인 수치로 확인하고, 대응 전략을 효과적으로 수립할 수 있습니다.
OllPack을 이용한 취약점 자동 관리
OllPack은 아티팩트에서 발견된 취약점의 심각도에 따라 접근 정책을 설정하고, 이를 통해 다운로드 및 접근을 통제할 수 있도록 지원합니다.
이 화면은 OllPack의 접근 정책 타입을 설정하는 화면으로, 기본적으로 아래의 3가지 유형을 제공합니다.
Blocked: Client의 다운로드를 차단하고, Web UI에 경고도 표출합니다.
Caution: Client의 다운로드를 차단하지는 않지만, Web UI에 경고가 표시됩니다.
Ignore: 해당 취약점을 무시하고, 경고를 표시하지 않습니다.
이러한 정책은 CVSS Score(취약점 심각도 평가 기준)의 범위를 조정하는 것만으로도 효과적인 보안 체계를 구축할 수 있으며, 기업의 운영 환경에 따라 사용자 정의 정책을 설정하여 보다 유연하게 적용할 수 있습니다.
예를 들어 이전에 있었던 log4j2 취약점(CVE-2021-44228)의 경우, CVSS Score(Version 3.x기준)가 10.0으로 매우 높았습니다. 하지만, log4j2는 Java 기반 Enterprise Application에서는 없어서는 안 될 정도로 많이 쓰이는 라이브러리였기 때문에, OllPack에서 제공하는 자동 Blocked 정책을 바로 적용하기에는 비즈니스에 큰 애로사항이 있습니다.
이러한 상황에서는 사용자 정의 정책을 활용하여, 특정 취약점에 대해 다운로드를 허용하되 웹 UI에 경고를 제공하고, 내부적으로 해결 기간을 설정한 후 해당 기간이 지나면 다운로드를 차단하는 등의 유연한 조치가 가능합니다.
OllPack 에서 표시되는 취약점
이렇게 취약점 정책을 설정하면, OllPack에 저장된 Artifact에는 아래와 같이 표시됩니다.
각 아티팩트 및 버전 별로 보안 취약점을 확인할 수 있으며, 지정된 정책에 따라 취약점의 심각도에 따른 대응 조치가 자동으로 적용됩니다. 예를 들어, 이미지와 같이 CVSS 9.8점을 받은 Curl 취약점이 있는 경우 해당 아티팩트는 접근이 차단되고, 클라이언트가 다운로드를 시도할 경우 ‘Not Found’ 오류가 반환되어 배포가 방지됩니다.
이러한 방식으로 OllPack은 실시간 취약점 모니터링을 통해 보안 위험을 사전에 차단하고, 기업의 소프트웨어 자산을 안전하게 보호할 수 있도록 지원합니다.
마무리
OllPack은 객관화된 위협 지표를 제공하여 진화하는 사이버 위협에 합리적으로 대응할 수 있도록 하는 강력한 솔루션입니다. OllPack 을 활용하면 아티팩트 내 취약점을 자동으로 식별하고, 체계적인 보안 정책을 적용하여 소프트웨어의 안정성을 확보할 수 있습니다.
본 글은 OllPack 으로 구현하는 보안과 효율적인 아티팩트 관리 웨비나에서 소개된 내용을 바탕으로 작성되었습니다. OllPack의 다양한 기능과 활용 방법에 대해 더 깊이 알고 싶으시다면 웨비나 영상 다시보기를 통해 더욱 상세한 정보를 확인하시기 바랍니다.