본문으로 건너뛰기
NEW: RSAC 2026 NHI 현장 리포트. 비인간 아이덴티티가 사이버보안의 중심축이 된 이유
블로그로 돌아가기

연구에서 제품으로: Cremit이 NHI 보안 공백을 메우기 위해 Argus를 만든 방법

지난 6개월간 실제 조직에서 비인간 정체성(NHI) 보안이 왜 실패하는지를 기록했다. 유출된 키를 "out of scope"로 분류하는 바운티부터 9편의 NHI 킬체인까지. Argus는 그 연구가 증명한 것으로부터 만들어진 제품이다.

김동현
작성자
8 2,129 단어
Share:
연구에서 제품으로: Cremit이 NHI 보안 공백을 메우기 위해 Argus를 만든 방법

지난 6개월간 실제 조직에서 비인간 정체성(NHI) 보안이 왜 실패하는지를 기록했다. Argus는 그 기록으로부터 만들어진 제품이다.

Act 1. 반복해서 발견한 문제

이 방향을 확신하게 된 첫 글은 두 개의 키와 두 개의 버그 바운티 프로그램, 그리고 책임 공백에 관한 이야기였다. Slack Bot Token이 3년간, 실제 업무 워크스페이스에 연결된 Asana Admin API 키가 2년간 공개 GitHub 저장소에 노출돼 있었다. 두 건 모두 공식 바운티로 제보했고 돌아온 분류는 같았다. "Out of scope." Out of Scope Loophole 글에 정리한 이야기다.

두 사례가 기록할 가치가 있었던 이유는 희소성이 아니라 대표성이다. 조사 과정에서 접한 수십 건 중 가장 상징적인 두 건이었을 뿐, 패턴은 계속 반복됐다. 그래서 질문을 바꿨다. "Out of scope"가 증상을 가리키는 말이라면, 실제 질병은 어떻게 생겼는가. 그 질문이 NHI Kill Chain 시리즈 9편으로 이어졌다. 고아, 섀도, 노화, 과권한, 좀비, 드리프트, 공개 노출, 비귀속, 그리고 이를 꿰는 구조적 요약까지.

6개월의 작성을 마쳤을 때 남은 것은 한 장의 지도였다. 한 번의 통합을 위해 만든 키가 담당자보다 오래 살아남고, 재사용으로 권한이 누적되고, 아무도 기억 못 하는 운영 환경으로 흘러 들어가고, 결국 바운티가 인정조차 거부하는 자리로 유출된다. 사람은 퇴사하면 오프보딩된다. 자격 증명은 그렇지 않다. 같은 문제를 반복해서 발견한 이유는 그 문제가 기본 상태이기 때문이다.

Act 2. 연구가 알려준 것

네 가지 관찰이 생각의 틀이 됐다.

가장 먼저 무너지는 것은 소유권이다. 거의 모든 사례에서 조직은 "이 자격 증명의 소유자는 누구인가"에 답하지 못했다. 내부 추정으로 활성 NHI의 40~60%가 명확한 소유자가 없다. 키를 만든 엔지니어가 퇴사하거나 팀이 재편되는 순간 흔적은 사라진다. 회전, 폐기, 감사 모두 이 질문에 답할 수 있어야 성립한다. 그래서 Argus의 첫 원칙은 이렇다. 소유권 증명(attestation)은 선택이 아니며 지속돼야 한다. ISMS-P 2.5.5 외부자 보안 관리가 요구하는 책임 구조와도 맞닿는다.

대응 없는 탐지는 탐지가 없는 편보다 나쁘다. 공백은 탐지가 아니라 조치에 있었다. 살펴본 조직 다수는 노출 사실을 이미 알고 있었고, 없었던 것은 "찾았다"에서 "회전과 폐기까지 마쳤다"로 가는 경로였다. 그 간극이 공격자에게 열린 시간이다. Argus는 알림에서 멈추는 스캐너가 되지 않기로 했다.

SaaS 자격 증명은 보안 프로그램에서 체계적으로 배제된다. 대부분의 프레임워크는 여전히 경계를 인프라 중심으로 정의한다. SaaS 토큰, OAuth 통합, CI/CD 봇, 벤더 API 키는 커버되지 않는 범주에 들어간다. "Out of scope"는 규칙이 아니라 범위 정의 문제의 증상이다. 원칙은 범위 확장. Slack Bot Token도 AWS 액세스 키와 같은 무게로 다뤄야 한다.

회전 정책은 문서로만 존재한다. 모든 조직이 정책을 보유하지만 일관되게 실행하는 곳은 거의 없었다. 수동 회전은 찾고, 소유자를 파악하고, 다운타임을 조율하고, 의존 시스템을 갱신하고, 검증하는 워크플로우다. 체크박스가 아니다. 노화 키 글에서 그 실패를 기록했다. 회전은 정책이 아니라 워크플로우에 통합돼야 한다. 이는 ISMS-P 인증정보 생명주기 관리의 실질적 이행 방식이다.

Act 3. Argus가 어떻게 만들어졌는가

Argus에는 네 개의 워크플로우가 있다. 각각의 한계도 함께 적는다.

탐지(Detection). 공개·비공개 저장소를 지속 스캔해 노출된 자격 증명을 찾는다. GitHub Secret Scanning으로 충분하지 않은 이유는 세 가지다. 첫째, 알림이 벤더에게 가고 코드 소유 조직에는 가지 않는다. 둘째, 커버리지가 부분적이며 커스텀 토큰이 빠진다. 셋째, 소유권 계층이 없다. 한계: 자체 호스팅 Git 환경에서는 추가 설정이 필요하며 아직 다듬는 중이다.

소유권 매핑. "활성 NHI의 40~60%가 소유자 없음" 문제에 대응한다. 자격 증명 도입 커밋의 최종 작성자, 브랜치 소유 이력, 참조된 파이프라인의 CI/CD 출처로 자동 추론하고 신뢰도가 낮으면 수동 증명 흐름으로 전환한다. 한계: 스쿼시 머지나 인수로 들어온 키에서는 추론이 약해 수동 증명 의존이 높아진다.

지속적 모니터링. 대부분의 스캐너는 최초 발견 제품이다. 어제 안전했던 키도 권한, 사용 패턴, 프로비저닝되지 않은 환경 등장으로 위험해진다. Argus는 행위를 시간 축으로 추적하고 변화에 알림을 보낸다. 한계: 기준선은 약 2주의 관측이 쌓인 뒤에야 의미가 있다.

회전 자동화. 탐지와 조치를 연결한다. 노출 확인 시 발급 서비스 통합으로 회전·폐기를 실행하고, 시크릿 스토어 갱신, 의존 저장소 PR 생성, 신규 자격 증명 정상 동작 확인까지 조율한다. 모든 회전은 노출 탐지부터 검증까지 타임스탬프 기록이 남아 감사 증적으로 쓸 수 있다. 한계: AWS, GCP, Slack, GitHub 등 주요 플랫폼은 완전 자동화돼 있다. 그 외 서비스에는 회전 런북을 생성하고 진행을 추적하지만 실행하지는 않는다.

워크플로우는 연구에서 이미 길게 썼던 내용의 구현이다. 연구가 먼저였다.

Act 4. 연구가 제품 설계에 대해 증명한 것

NHI Kill Chain 패턴대응하는 Argus 워크플로우
고아(Ghost) 키소유권 매핑 + 증명
섀도 서비스 계정탐지(섀도 디스커버리)
노화(Aged) 키회전 자동화 + 연령 추적
과권한 키범위 분석
좀비 키폐기 워크플로우
드리프트 키환경 단위 모니터링
공개 노출 키공개 저장소 스캐닝
비귀속 키소유권 매핑
시리즈 요약위의 전부

제품이 모든 패턴의 모든 사례를 해결한다고 주장하지는 않는다. Argus의 워크플로우가 연구가 요구했기 때문에 존재한다고 주장할 뿐이다. 설계 압력이 연구 바깥에서 왔을 때는 거절했고, 문서화한 실패 모드에서 왔을 때는 반영했다.

Act 5. 직접 스캔해 보는 편이 빠르다

여기 적은 내용이 지금 조직에서 보이는 상황과 겹친다면, 가장 빠른 확인 방법은 Argus를 직접 저장소에 연결해 보는 일이다. argus.cremit.io에서 통합 약정 없이 14일 무료 체험을 제공한다. 단일 조직의 공개 저장소 초기 스캔은 대부분 10분 안에 끝나며, 결과는 이후 사용 여부와 무관하게 보관할 수 있다.

NHI Kill Chain 9편을 모두 발행한 뒤에야 제품 페이지를 공개했다. 그 순서가 중요하다. 주장의 출발은 연구다. 제품은 그 연구가 착지하는 지점이다. 연구를 먼저 읽고 싶다면 시리즈 개요가 가장 짧은 길이다. 같은 문제가 바운티를 만났을 때의 모습을 보려면 Out of Scope Loophole이 직접적이다. 우리 말을 믿는 것보다 직접 보는 편이 낫다.

네트워크에 공유해보세요LinkedInX

이 글이 유익하셨나요?

네트워크에 공유해보세요

Share:
뉴스레터

다음 글을 메일로 받아보세요

Cremit 리서치 팀의 월간 NHI 브리프. 한 통에 핵심만 담습니다.

이메일은 공유하지 않으며, 한 번의 클릭으로 수신거부 가능합니다.