해당 글에서는 OpenSouce 중 Gitleaks를 이해하고 이를 이용하여 민감정보를 찾는 간단한 스캔방법에 대해 알아봅니다
1) Gitleaks
💡 Gitleaks - Git 저장소(Repository) 내에 포함된 민감 정보(API Key, 비밀번호, 토큰, 인증서, 개인키 등)를 탐지하는 보안 도구를 의미합니다. 민감정보를 탐지하여 실수로 소스코드 내에 커밋이 된 내용들을 빠르게 찾아낼 수 있습니다.
- 특히, 이미 원격 저장소 내에 Commit & Push 작업을 수행하면 저장소 내에 이력으로 모든 기록이 남기 때문에, 잘못 올린 한 번 잘못 올린 민감정보는 파일을 삭제하더라도 히스토리에 남아있습니다. - 그렇기에, 원격 저장소 내에 민감정보를 올리지 않도록 해야 합니다.
- 기본적으로 Gitleaks에서 탐지하는 ‘민감정보’ 대상입니다. 이뿐만 아니라 gitleaks의 toml을 이용하여서 특정 패턴, 특정 민감 정보, 규칙을 정의하여서 추가적 탐지 및 제외가 가능합니다.
항목
설명
AWS Access Key / Secret Key
AWS 계정에 접근하기 위한 인증 키. Secret Key가 유출되면 S3, EC2, RDS 등 전체 리소스가 탈취되거나 삭제될 수 있음.
GitHub Personal Access Token(PAT)
GitHub API 사용 및 private repo 접근을 위한 인증 토큰. 유출되면 코드 유출, 저장소 삭제, 악성코드 삽입 가능.
Database URL & Password
DB 접속 주소, 계정, 비밀번호. 유출되면 데이터 조회·변조·삭제 가능. 개인정보 포함 DB일수록 위험 증가.
OAuth Token (Google, Kakao, Naver 등)
외부 서비스 계정을 대신 사용하도록 허용하는 토큰. 악용 시 사용자 정보 조회, API 사용료 폭증 위험.
Private Key (id_rsa 등)
SSH 접속용 개인키. 유출되면 서버에 직접 로그인 가능. 비밀번호보다 훨씬 위험.
JWT Secret / Signing Key
JWT 서명에 사용되는 비밀 값. 유출되면 공격자가 임의의 JWT 생성 가능 → 모든 인증 우회 가능.
Slack Webhook URL
Slack 특정 채널에 메시지를 보낼 수 있는 URL. 유출되면 스팸/피싱 메시지 자동 발송에 악용됨.
사용자 정의 정규식 기반 Secret (Custom Regex)
기업/프로젝트마다 특정 패턴으로 생성되는 고유 키들(API Key, 내부 인증 토큰 등). 유출 시 시스템 전체가 위험해질 수 있음.
[ 더 알아보기 ] 💡 Gitleaks Configuration File(=toml)
- Gitleaks가 “어떤 정보를 어떻게 탐지할지 정의하는 규칙 파일”입니다. - 즉, Gitleaks의 탐지 엔진을 직접 커스터마이징 하는 설정 파일을 의미합니다.
title = "프로젝트에 맞는 Gitleaks 설정"
[[rules]] # 탐지 규칙(여러 개 가능): API Key, Token, Password 패턴 정의
[allowlist] # 제외 규칙: 특정 파일, 경로, 문자열 무시
[whitelist] # 제외할 파일/폴더/정규식
[global] # 전체 글로벌 설정