Offcanvas

How To / 개발자 / 보안 / 애플리케이션

퍼블릭 코드 저장소의 기밀을 안전하게!··· 추천 툴 4종

2021.11.12 Daniel Brame  |  CSO
깃랩, 깃허브, 구글 클라우드 빌드와 같은 저장소에 존재하는 기밀은 기업에게 재앙이 될 수 있다. 이와 관련해 검토해볼 만한 4가지 도구를 정리했다. 

깃(Git) 저장소에 저장된 ‘기밀’은 공격자에게 유용한 공격 대상이다. 소프트웨어가 침해될 확률을 낮추기 위해서는 저장소(리포지토리)의 정보를 안전하게 저장하는 것과 폐기하는 것을 감안해야 한다. 애석하게도 개발 도구 자체에 하드코딩 된 방식으로 연결 문자열, 암호, 심지어 일반 텍스트 형식의 크리덴셜이 저장되어 있음이 자주 간과되곤 한다. 예를 들어, 비주얼 스튜디오(Visual Studio)는 다르게 설정하지 않으면 플레인 텍스트 형식으로 SQL 연결 크리덴셜을 저장한다.

깃가디언(GitGuardin)에 따르면, 2020년 한 해에만 퍼블릭 리포지토리에 보관된 ‘기밀’이 200만 개가 넘었다. 인턴이 생성한 크리덴셜이 유출되어 솔라윈드(SolarWinds) 공격에 큰 역할을 한 것으로 알려진 바 있다. 이런 사건을 감안할 때 자신의 프로젝트가 노출될 수 있는지 신중하게 검토할 가치가 있다.

먼저 할 일은 기밀을 찾는 것이다. 기밀은 코드나 모호한 XML 파일에 숨겨져 있고, 찾기 어려운 방식으로 되어있는 경우가 많다. 수동으로 코드를 스크러빙(scrubbing) 하면 실수하기 쉽다. 

유감스럽게도 깃은 다른 소스 관리 시스템처럼 이전의 커밋을 유지하기 때문에 노출된 기밀을 정리하는 작업은 단순히 코드에서 기밀을 삭제해 리커밋을 하는 수준을 넘어선다. 히스토리에서 제거해야 한다. 다시 시작해야 하는 경우도 있다. 이런 이유로 처음부터 올바르게 하는 것이 중요하다.

다행히 이런 문제를 다루는 데 도움을 주는 몇몇 도구들이 있다. 대부분은 명령줄 도구이지만, 웹 기반 도구들도 존재한다. 대개 이런 도구들은 사용자 이름, 비밀번호, 프라이빗 키, 기타 민감할 수 있는 정보들을 찾는다. 기능은 비슷하지만, 동작 방식은 제각각이다. 

적합한 도구를 선택하려 한다면, 자신의 기술 역량과 능력, 새 도구 학습에 투자할 수 있는 가용한 시간, 맞춤 감지가 필요한지 여부, 예산 등을 살펴봐야 한다. 
 
Image Credit : Getty Images Bank


깃리크스(Gitleaks)
깃리크스는 홈브루(Homebrew), 도커(Docker), 고(Go)를 사용해 설치할 수 있고, 여러 플랫폼에서 이용 가능하다. 설치를 마치면, 규칙을 정의해 명령줄 도구를 실행해 깃 리포지토리를 스캔할 수 있다. JSON과 윈도우 INI 파일 중간 정도로 보이는 TOML(Tom’s Obvious Minimal Language)를 이용해 규칙을 정의한다. 각 규칙은 정규표현식(regular expression)이다. 여기에 능숙하면 도움이 된다.

다행히 학습하고 나면, 매칭할 수 있는 패턴 종류에 큰 제한이 없다. 깃리크스에는 몇 개의 샘플 구성이 포함돼 있다. 정규 표현에 대한 지식을 다시 떠올릴 필요가 있거나, 좋은 출발점이 필요한 경우에 이용할 수 있다. 기본 구성만으로 일반적인 기밀 가운데 대부분을 포착할 수 있다.

도구를 실행하면, 문제들의 목록과 스캔을 자동화할 수 있는 반환 코드가 제공된다. 깃리크스는 관련 지식이 필요하지만 강력한 도구이다. 그러면서도 모든 개발 파이프라인에 부합할 정도로 가볍다.

기티리크스(GiityLeaks)
기티리크스는 깃리크스와 이름이 비슷하지만, 전혀 다른 도구다. 파이썬에 기반을 두고 있고, 한 가지를 잘하는 도구라고 할 수 있다. Pip로 설치하고, 깃 리포지토리가 복제된 폴더에서 실행할 수 있다. 사용자 아름, 비밀번호, 간과했을 수 있는 이메일 같은 단어들을 찾는 도구이다. 

단 아직 개발이 완료되지 않은 도구이며, 검색 패턴이나 수정 등을 맞춤화 할 확립된 메커니즘이 없다. 그러나 깃리크스처럼 특정 규칙 문장을 학습할 필요가 없다.

이 파이썬 도구의 까다로운 점 한 가지는 실행하는 파이썬과 Pip 버전이 적합해야 한다는 점이다. 이를 감안하면, 쉽게 도구를 실행해 좋은 결과를 얻을 수 있다.

스펙트럴옵스(SpectralOps)
스펙트럴(Spectral)의 스펙트럴옵스는 유료 솔루션이다. 스펙트럴은 가격을 공개하지 않는다. 웹사이트에서 데모에 가입해야 가격을 문의할 수 있다. 

스펙트럴옵스는 다양한 장점을 갖고 있다. 깃 외에도 여러 데이터 소스와 통합된다. 깃허브(GitHub), 깃랩(GitLab), NPM, 구글 클라우드 빌드(Google Cloud Build)와 연동할 수 있다. 무료 도구들처럼 클라우드로 이동하기 전에 코드를 스캔하는 명령줄 도구다.

스펙트럴옵스의 차별화 요소는 자동을 빌드해 코드 변경을 테스트하는 몇몇 CI 시스템과 쉽게 통합할 수 있다는 점이다. 스펙트럴옵스는 디텍터(Detectors)로 불리는 정교한 YAML 파일을 이용해 코드에서 정의한 기밀을 찾는다. 스펙트럴이 지속적으로 이 라이브러리를 확장하고 있지만, 자유롭게 자신의 라이브러리를 만들 수도 있다.

스펙트럴옵스는 예산이 있고, 많은 지원을 받는 큰 개발 팀에 적합한 도구다. 무료 도구 이상이 필요하고, 프라이버시가 우려되는 경우에 고려할 가치가 있다.

깃가디언(GitGuardian)
깃가디언은 기밀을 찾기 위해 계속 리포지토리를 스캔하는 웹 기반 솔루션이다. 자동화 수준이 높고, 코드 대상 엔드포인트 보호 장치처럼 작동한다. 깃허브, 비트버켓(BitBucket), 깃랩(GitLab), 또는 내부 리포지토리를 직접 연결할 수 있으며, 이를 통해 지속적으로 기밀을 모니터링할 수 있다. 이 앱 안에서 발견한 기밀을 처리, 추적, 해결할 수 있다.

자신의 깃 리포지토리를 수동으로 수정해야 하는 작업이 요구되긴 하지만, 깃가디언은 적절히 기밀이 제거되도록 필요한 조치를 취할 수 있도록 해준다. 개인 리포지토리와 최대 25명의 개발자까지 소규모 팀은 무료로 깃가디언을 이용할 수 있다. 그 이상일 경우 ‘최저가’ 월 434달러에서 시작한다.

문제가 될 수 있는 한 가지는 자신의 리포지토리를 직접 연결해야 한다는 것이다. 소속 조직의 프라이버 정책으로 이 기능을 이용할 수 없는 상황이거나 다른 우려사항이 있다면, 오프라인 도구를 고려하는 것이 더 합리적이다. 명령줄을 다루기 싫고, 시각적인 방식을 선호한다면 깃가디언을 적합하다.

아주 중요한 기밀이 소스 관리 시스템을 통해 세상에 유출되는 것을 막는 데 도움을 주는 도구들이 다양하게 존재한다. 약간의 시간을 투자해 이런 애플리케이션 중 하나를 개발 프로세스에 도입하면, 조직과 사용자들에게 초래되는 위험을 줄일 수 있을 것이다. 언론 헤드라인을 안 좋게 등장하는 사고도 줄일 수 있겠다. ciokr@idg.co.kr
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.