크리덴셜은 API 키, 데이터베이스 접근 정보, 서버 접근 권한, 패스워드 뿐만 아니라 이메일, 신용카드, 주민번호 등 민감한 정보를 포함하는 데이터입니다. 이는 개발 과정뿐만 아니라 클라우드 기반 업무 환경에서 다양한 서비스 및 리소스에 접근하기 위해 필수적으로 사용됩니다. 개발자는 물론 운영, 보안, 데이터 분석 등 다양한 분야의 임직원들이 일상적인 업무를 수행하는 데 있어 크리덴셜은 없어서는 안 될 중요한 요소입니다.
크리덴셜 관리 미흡으로 인한 보안 사고 사례는 점점 늘어나고 있습니다. ID및 액세스 관리 솔루션 제공 업체의 선발 리더인 옥타(Okta)는 2023년에 직원들의 고객 지원 시스템에서 크리덴셜이 노출된 HAR 파일을 해커가 탈취하여 고객 데이터와 액세스 토큰이 유출된 사례가 있습니다. Microsoft, Uber, CloudFlare도 22년, 23년에 크리덴셜 유출로 인한 해킹사고를 겪으며 중요도는 점점 높아지고 있습니다.
특히 클라우드 발전과 함께 업무 프로세스는 크게 변화하고 있습니다. 업무 환경이 클라우드로 이동하면서 직원들은 언제 어디서나 작업할 수 있게 되었고, 협업 및 분업화가 더욱 활발해졌습니다. 클라우드는 업무 프로세스를 더욱 빠르고 유연하게 만들어주었지만, 이와 동시에 새로운 보안 과제들을 야기했습니다. 다양한 서비스와 리소스에 접근하기 위해 여러 개의 크리덴셜을 다뤄야 하며, 이를 안전하게 관리하고 공유하는 것이 쉽지 않습니다.
이러한 상황에서 직원들은 편의성을 위해 공유하기 쉬운 공개된 영역에 크리덴셜을 저장하고 공유하는 경우가 많아졌습니다. 소스 코드 저장소, 메신저, 클라우드 문서, 클라우드 스토리지, 이메일 등 접근이 용이한 곳에 크리덴셜을 보관함으로써 업무 효율성을 높이려 하지만, 이는 심각한 보안 위험을 초래할 수 있습니다. 공개된 영역에 저장된 크리덴셜은 해커의 표적이 되기 쉬우며, 내부자의 실수나 악의적인 행동으로 인해 쉽게 유출될 수 있습니다.
크리덴셜 탐지의 중요성이 커짐에 따라 이를 해결하기 위한 다양한 제품들이 등장했습니다. 그 중 대표적인 제품으로는 TruffleHog와 GitGuardian이 있습니다.
TruffleHog는 오픈소스로, 소스 코드 저장소 및 Slack, Jira 등의 협업 도구들을 스캔하여 공개된 영역에 노출된 크리덴셜들을 식별합니다. 위 제품의 강점 중 하나는 단순히 크리덴셜을 탐지하는 데 그치지않고, 800여종의 크리덴셜들이 실제로 유효한지 여부를 검증한다는 점입니다. 이를 통해 보안 담당자들은 유출된 크리덴셜의 위험을 판단하고 조치할 수 있습니다.
하지만 TruffleHog에는 한계점이 있습니다. 가장 큰 문제는 탐지할 수 있는 크리덴셜의 종류가 제한적이라는 점입니다. TruffleHog는 코드에 정의된 정규식 패턴을 기반으로 크리덴셜을 탐지하기 때문에, 패턴에 포함되지 않은 새로운 유형의 크리덴셜이나 패스워드 및 민감 정보와 같은 것들은 탐지하지 못합니다.
다른 문제로는 TruffleHog는 단일 소스에 대한 스캔만 지원한다는 점입니다. 예를 들어, GitHub에 노출된 AWS 아이디와 Slack에 노출된 AWS 토큰을 조합하여 검증할 수 없다는 점입니다. 따라서 여러 개의 클라우드 제품을 사용하는 조직에서는 TruffleHog를 사용하여 모든 크리덴셜 유출 가능성을 탐지하기 어렵습니다.
Trufflehog Security는 TruffleHog 오픈소스 버전을 토대로 엔터프라이즈 Commercial 제품을 제공하고 있으며 이는 공개적이지 않아 선택에 어려움이 있습니다.
GitGuardian은 SaaS기반 크리덴셜 탐지 및 모니터링 서비스입니다. GitGuardian은 TruffleHog와 마찬가지로 다양한 클라우드 제품들을 스캔하여 크리덴셜들을 식별할 수 있습니다. 뿐만 아니라, 노출된 크리덴셜을 실시간 알림을 받을 수 있으며 크리덴셜의 위협도에 따라 분류할 수 있는 리포트 기능을 포함하고 있습니다.
하지만 GitGuardian에도 몇 가지 한계점이 있습니다. 먼저, GitGuardian은 확장성 측면에서 제한이 있습니다. TruffleHog와 같은 오픈소스 도구와 달리 GitGuardian은 사용자가 직접 코드를 수정하거나 기능을 추가할 수 없습니다. 또한 Custom Detector의 경우 최대 5개까지만 지원하므로, 조직 특화된 크리덴셜 탐지 규칙을 대규모로 적용하기 어려울 수 있습니다.
다음으로, GitGuardian은 개인 식별 정보(PII, Personally Identifiable Information)를 탐지하는 데 한계가 있습니다. TruffleHog와 GitGuardian을 비롯한 대부분의 크리덴셜 탐지 도구들은 휴리스틱 방법이나 정규 표현식을 사용하여 크리덴셜을 식별합니다. 이러한 방식은 API 키, 암호, 토큰 등의 크리덴셜 탐지에는 효과적이지만, 이메일 주소, 전화번호, 주민등록번호 등의 PII를 정확히 탐지하기에는 어려움이 있습니다. 한한 예로, Github의 CommitID는 단순한 패턴매칭으론 여권번호와 동일하게 취급됩니다. 휴리스틱, 정규식방식의 패턴 매칭으로는 오탐의 늪에 빠질 수 있습니다. 이러한 한계점들은 GitGuardian, TruffleHog를 포함한 다른 크리덴셜 탐지 도구들에도 공통적으로 나타나는 문제입니다.
Ferret은 영어로 “샅샅이 찾아내다”라는 의미를 가진 동물로 클라우드에 노출된 크리덴셜을 빈틈없이 찾아내는 제품입니다. 페럿은 기존 크리덴셜 탐지 제품들의 한계를 극복하고 완벽한 보안을 제공합니다. 페럿의 특징은 다음과 같습니다.
페럿의 이러한 특징들은 기존 크리덴셜 탐지 도구의 한계를 극복하고 보안 수준을 한층 더 높이는데 기여할 수 있습니다. 특히 정교한 크리덴셜 검증과 AI 기반 민감 데이터 탐지, 그리고 다중 소스 스캔은 페럿만의 차별화된 강점입니다.
뿐만 아니라 페럿은 타사 제품들과 비교했을 때 현저한 성능 우위를 보여줍니다. 신속한 크리덴셜 노출 위협에 대응하기 위해서 속도는 매우 중요한 요소입니다. 페럿은 Rust 언어로 작성 됐으며 효율적인 문자열 탐색 알고리즘과 최적화를 통하여 대용량 데이터에서도 빠르게 크리덴셜을 탐지할 수 있습니다.
페럿은 Linux, Chromium, Spring Boot등 다양한 환경에서 TruffleHog 대비 크게 향상된 스캔 속도를 보여 줬습니다. 코드베이스들을 스캔하는데 있어서 평균적으로 2배정도의 성능 향상을 보여줬으며, Chromium과 같이 방대한 프로젝트의 경우 약 8.8배 빠른 성능을 보여줬습니다. 이는 크리덴셜 노출에 대한 신속한 대응이 가능하다는 걸 의미하며, 대규모 조직에서 크리덴셜 탐지 작업의 효율성을 크게 높일 수 있음을 보여줍니다.
페럿은 지속적인 발전을 통해 고객들에게 더 큰 가치를 제공할 예정입니다. 다음은 페럿의 향후 계획입니다.
크리밋은 현재 SaaS와 On-Premise(Enterprise) 서비스를 제공하고 있습니다. 스타트업, 소규모 비지니스, 엔터프라이즈, 금융 등에 최적화되어 제공되고 있으며 800종 이상의 Secret Validation, NER기반의 개인정보 탐색 기능을 제공합니다. 소스코드, 협업도구, 문서, 저장소 등 어디든 연동할 수 있으니 Demo를 신청하세요!