Betterleaks 비밀 스캐너: 아키텍처 및 키
최근 몇 년 동안 저장소에서 비밀 정보를 탐지하는 방식은 크게 변화했습니다. 이전에는 코드에서 의심스러운 문자열이나 높은 엔트로피를 가진 키를 찾는 것만으로도 충분했습니다. 하지만 오늘날 상황은 완전히 달라졌습니다. 저장소 규모가 커지고, CI/CD 파이프라인 속도가 빨라졌으며, 무엇보다 자동화 도구나 AI 모델이 생성하는 코드의 양이 증가하고 있기 때문입니다.
이는 실질적인 결과를 초래합니다. 이제 문제는 단순히 비밀을 찾는 것이 아니라, 실제로 위험한 것과 위험해 보이는 것을 구분하는 것입니다. 많은 팀들이 이러한 스캐너의 진정한 비용은 분석을 실행하는 데 드는 비용이 아니라 수백 건의 오탐을 검토하는 데 있다는 사실을 깨닫고 있습니다.

탐지 아키텍처: Betterleaks 도입으로 무엇이 달라지나요?
Betterleaks는 바로 이러한 맥락에서 등장했습니다. 이 회사는 비밀 스캐닝 방식을 완전히 혁신하려는 것은 아니지만, 패턴 탐지만으로 충분하다는 널리 퍼진 가정에 의문을 제기합니다.
많은 최신 저장소에서는 그렇지 않습니다.
잭 라이스가 개발하고 아이키도의 지원을 받아 유지 관리되는 이 프로젝트는 약간 다른 방식을 제안합니다. 단순히 일치하는 항목을 찾는 데만 집중하는 대신, 발견된 내용이 타당한지 검증한 후 경고로 보고하는 것입니다.
이는 사소한 디테일처럼 보일 수 있지만, 대규모 팀의 역학 관계에 상당한 영향을 미칩니다. 스캐닝 시스템에서 불필요한 경고가 너무 많이 발생하면 팀은 자연스럽게 이를 무시하게 됩니다. 하지만 보안 측면에서는 무시된 경고가 아예 경고가 없는 것보다 더 심각한 결과를 초래할 수 있습니다.
이 문제를 해결하기 위해 Betterleaks는 CEL(Common Expression Language)을 사용한 유효성 검사와 BPE 토큰화를 기반으로 하는 "토큰 효율성"이라는 지표라는 두 가지 흥미로운 기술적 요소를 도입했습니다.
핵심은 비밀처럼 보이는 모든 것이 실제로 비밀은 아니라는 점입니다. 엔트로피가 높은 문자열 중 일부는 단순히 해시값, 식별자 또는 자동으로 생성된 조각일 뿐입니다. 이 시스템의 목표는 이러한 노이즈를 줄이는 것입니다.
프로젝트 문서에는 CredData 데이터셋에서 BPE 토큰화 방식이 엔트로피를 사용한 방식보다 98.6% 높은 재현율을 달성했다는 비교 내용이 언급되어 있습니다. 모든 벤치마크 결과와 마찬가지로 이러한 수치는 참고 자료일 뿐이며, 실제 저장소에서의 테스트를 대체할 수는 없습니다.

출처: GitHub
차이를 만들어내는 구성 요소
프로젝트의 특징을 검토해 보면 명확한 방향이 드러납니다. 바로 기술적 복잡성을 지나치게 증가시키지 않으면서 실제 환경에 쉽게 배포할 수 있도록 하는 것입니다.
가장 두드러진 요소는 다음과 같습니다.
- CEL(공통 표현 언어)을 사용한 규칙 기반 유효성 검사
- 엔트로피 기반이 아닌 BPE 토큰화 기반의 토큰 효율성 스캐닝을 통해 CredData 데이터셋에서 98.6%의 재현율을 달성한 반면, 엔트로피 기반 스캐닝에서는 70.4%의 재현율을 달성했습니다.
- 순수 Go 언어로 구현됨 (CGO 또는 Hyperscan에 의존하지 않음)
- 이중/삼중으로 암호화된 비밀 정보의 자동 처리
- 더 많은 공급자를 위한 확장된 규칙 세트
- 저장소 분석 속도 향상을 위한 병렬화된 Git 스캔
이 목록은 단순히 기술적인 개선 사항들의 나열처럼 보일 수 있지만, 흥미로운 점은 이러한 개선 사항들이 일상적인 사용에 어떤 영향을 미치는지입니다.
예를 들어, 네이티브 종속성이 없는 완벽한 Go 구현은 CI/CD 파이프라인에 통합하는 것을 크게 단순화합니다. 많은 팀에서 이와 같은 작은 세부 사항이 도구가 사용될지 아니면 저장소에서 잊혀질지를 결정합니다.
BPE 토큰화는 또한 다른 접근 방식을 도입합니다. 단순히 체인의 무작위성을 측정하는 대신, 최신 자격 증명이 실제로 어떻게 구성되는지를 더 정확하게 반영하는 토큰 패턴을 분석합니다.
스캐너가 무언가를 발견하면 어떻게 되나요?
Betterleaks가 잠재적인 기밀 정보를 탐지하더라도 그 과정은 거기서 끝나지 않습니다.
먼저, CEL에 정의된 규칙을 사용하여 컨텍스트를 평가합니다. 이를 통해 추가 조건을 추가할 수 있습니다. 예를 들어, 형식이 예상되는 공급자와 일치하는지 확인하거나 예제 또는 가상 데이터에 자주 나타나는 패턴을 제외할 수 있습니다.
이 단계는 사소해 보일 수 있지만 실질적으로 매우 중요한 영향을 미칩니다. 오탐은 시간 낭비뿐 아니라 경보 시스템에 대한 팀의 신뢰도를 떨어뜨립니다.
또 다른 흥미로운 점은 여러 번 인코딩된 비밀 정보를 자동으로 처리한다는 것입니다. 일부 저장소에서는 자격 증명이 base64 또는 다른 인코딩 방식을 사용하여 변환된 형태로 나타나기 때문에 이를 탐지하기가 어렵습니다.
그렇지만, 종종 간과되는 점을 기억할 필요가 있습니다. 어떤 스캐너도 인간의 검토를 완전히 대체할 수는 없습니다. 비밀 정보를 탐지하는 것은 시작에 불과하며, 탐지된 정보를 어떻게 처리할지(폐지, 교체, 무시 또는 조사)는 상황에 따라 결정해야 합니다.
거버넌스와 인간 중심적 접근 방식/AI
Betterleaks는 MIT 라이선스 하에 배포되며 캐나다 왕립은행, 레드햇, 아마존과 같은 기관의 외부 기여를 포함하고 있습니다.
이 프로젝트는 또한 현대 저장소에서 점점 더 두드러지게 나타나는 현실, 즉 개발자가 작성한 코드와 자동화 도구가 생성한 코드가 혼합된 환경에 적응하고자 합니다.
이러한 맥락에서, 해당 도구는 사람이 조작하는 워크플로우와 전체 저장소를 검토하는 자동화 시스템 모두에서 원활하게 작동하도록 설계되었습니다. 이는 점점 더 확대되는 활용 추세와도 일맥상통합니다. 자동화 및 도구 코드를 분석하거나 자동 코드 리뷰를 생성하는 도구.
로드맵에는 흥미로운 아이디어도 포함되어 있습니다. 예를 들면 다음과 같은 통합이 있습니다. Git 외의 데이터 소스제공업체 API를 통해 검색 결과 분류 및 자동 취소 메커니즘을 위한 언어 모델 지원.
이는 흥미로운 논쟁을 불러일으킵니다. 자격 증명 취소 자동화는 사고 대응 시간을 단축할 수 있지만, 분류 시스템의 정확성에 의존해야 한다는 것을 의미하기도 합니다.
자동 해지가 실패하거나 실수로 인해 발생할 경우 운영에 상당한 영향을 미칠 수 있습니다.
실질적인 영향 및 한계
운영적인 관점에서 볼 때, Betterleaks는 오탐을 줄이고 배포를 간소화하려는 팀에게 매력적입니다.
하지만 몇 가지 한계점도 염두에 두는 것이 중요합니다.
- 재현율 지표는 사용된 데이터 세트에 따라 달라지며 저장소마다 상당한 차이가 있을 수 있습니다.
- 키 폐기와 같은 작업을 자동화하려면 추가적인 제어 및 감사 로그가 필요합니다.
- 비밀 스캐너는 더 광범위한 전략의 한 방어선일 뿐입니다.
많은 경우, 그러한 도구를 도입할지 여부에 대한 결정은 이론적인 정확성보다는 훨씬 더 간단한 것, 즉 팀의 업무 흐름에 얼마나 잘 통합되는지에 달려 있습니다.
정밀도가 매우 높지만 마찰이 너무 많이 발생하는 스캐너는 대개 폐기됩니다. 반면, 정밀도가 적절하고 통합이 용이한 스캐너는 대개 유지됩니다.
그런 의미에서 Betterleaks는 균형을 맞추려고 노력합니다. 모든 오탐을 제거하거나 기존 보안 프로세스를 대체하겠다고 약속하는 것은 아니지만, 노이즈를 줄이고 최신 파이프라인에 쉽게 통합될 수 있도록 하는 것을 목표로 합니다.
해당 프로젝트는 GitHub에서 확인할 수 있습니다. 이 방식은 Gitleaks에서 사용하는 접근 방식의 진화된 형태로 제시되며, 자동화, 분석 에이전트 및 언어 모델에 의해 생성된 코드가 개발 흐름의 일반적인 부분인 저장소에 적응하도록 설계되었습니다.




















