자격 증명에 대한 GitHub 리포지토리를 스캔하는 방법은 무엇입니까?
GitHub 저장소 내에 암호, 비밀 키, 그리고 다른 중요한 정보와 같은 민감한 자료가 있는지 검토하는 것이 중요합니다.
수많은 개발자들이 GitHub를 활용하여 코드를 저장하고 공유합니다. 이는 매우 유용하지만, 때때로 사용자, 개발자, 혹은 코드 소유자가 실수로 기밀 정보를 공개된 저장소에 노출시키는 경우가 발생할 수 있으며, 이는 심각한 문제를 야기할 수 있습니다.
실제로 GitHub에서 기밀 데이터가 노출된 사례는 여러 번 있었습니다. 사람의 실수를 완전히 막을 수는 없겠지만, 이러한 위험을 줄이기 위한 예방 조치를 취할 수 있습니다.
그렇다면 저장소에 암호나 키가 없는지 어떻게 확인할 수 있을까요? 가장 간단한 대답은 '애초에 저장하지 않는 것'입니다.
가장 좋은 방법은 모든 민감한 정보를 비밀 관리 소프트웨어를 사용하여 안전하게 보관하는 것입니다.
하지만 팀으로 협업하는 환경에서는 다른 팀원의 행동을 완벽하게 통제하기 어렵습니다.
만약 Git을 사용하여 애플리케이션을 초기화하고 배포하는 경우, 생성되는 .git 폴더가 인터넷을 통해 접근 가능하게 되면 민감한 정보가 노출될 위험이 있습니다. 이러한 위험을 방지하려면 .git URI 차단을 고려해야 합니다.
다음과 같은 도구들은 저장소에서 발생할 수 있는 실수를 찾아내는 데 도움이 될 수 있습니다.
비밀 스캐닝
GitHub의 비밀 검색 기능은 코드 내에 숨겨진 비밀을 탐지하여 데이터 유출 및 손상으로부터 보호하는 강력한 솔루션입니다. 이 기능은 공개 및 비공개 저장소 모두에서 작동하며, 코드 구석구석을 정밀하게 분석하여 혹시라도 누출된 비밀을 찾아냅니다.
비밀이 발견되면 GitHub는 해당 서비스 제공업체에 즉시 알림을 보내 잠재적인 위험을 신속하게 해결하도록 돕습니다. 또한 개인 저장소의 경우, GitHub는 조직 소유자나 관리자에게 알림을 보내 팀 내 적절한 담당자가 즉시 상황을 인지할 수 있도록 합니다.
저장소 내에서 눈에 잘 띄는 경고를 표시하여 사용자 및 팀원들이 즉각적인 조치를 취하도록 유도합니다. GitHub의 비밀 스캐닝 기능은 경계하는 동반자로서 어떠한 비밀도 놓치지 않고 프로젝트를 안전하게 유지하기 위해 항상 노력합니다.
중요한 정보가 안전하게 보호된다는 확신을 가지고 비밀 스캐닝 기능을 사용하고 코딩에 집중할 수 있습니다.
Git Secrets
Git 저장소에 실수로 비밀을 추가하는 실수를 방지하는 데 도움을 주는 git-secrets를 소개합니다. 이 도구는 커밋 및 커밋 메시지를 스캔하고 병합 과정에서 코드에 숨겨진 비밀을 찾아내어 유출을 방지합니다.
Windows 사용자라면, install.ps1 PowerShell 스크립트를 실행하여 간편하게 설치할 수 있습니다. 이 스크립트는 필요한 파일을 설치 디렉터리에 복사하고 사용자 PATH에 추가하여 개발 환경 어디에서든 git-secrets를 쉽게 사용할 수 있도록 합니다.
설치가 완료되면 git-secrets는 저장소를 감시하는 보호자 역할을 수행하여 커밋, 커밋 메시지, 병합 기록이 설정된 금지 패턴과 일치하는지 확인합니다. 일치하는 항목이 발견되면 커밋을 거부하여 민감한 정보가 노출되지 않도록 합니다.

저장소의 루트 디렉토리에 있는 .gitallowed 파일에 정규식 패턴을 추가하여 git-secrets의 동작을 세밀하게 조정할 수 있습니다. 이 설정을 통해 경고를 유발할 수 있지만 합법적인 코드를 필터링하여 보안과 편리함 사이의 균형을 유지할 수 있습니다.
파일을 스캔할 때 git-secrets는 금지된 패턴과 일치하는 모든 줄을 추출하고, 파일 경로, 줄 번호 및 일치하는 내용을 포함한 자세한 정보를 제공합니다. 또한 일치하는 줄이 등록된 허용 패턴과 일치하는지 확인합니다. 허용된 패턴이 플래그가 지정된 모든 줄을 취소하면 해당 커밋 또는 병합은 안전한 것으로 간주됩니다. 그러나 일치하는 줄이 허용된 패턴과 일치하지 않는 경우 git-secrets는 프로세스를 중단합니다.

git-secrets를 사용할 때는 주의가 필요합니다. 금지된 패턴이 너무 광범위하거나, 허용된 패턴이 너무 관대해서는 안 됩니다. 패턴을 테스트하려면 `git secrets –scan $filename` 명령어를 사용하여 의도한 대로 작동하는지 확인할 수 있습니다.
git-secrets에 대한 자세한 내용이나 프로젝트 기여에 관심이 있다면 GitHub에서 프로젝트를 찾아보세요. 커뮤니티 참여를 장려하는 오픈 소스 프로젝트입니다. 커뮤니티에 참여하여 함께 만들어가세요!
git-secrets를 사용하면 실수로 인한 비밀 유출 걱정 없이 코딩에 집중할 수 있습니다. 이 도구를 활용하여 민감한 정보를 안전하게 보호하세요.
Repo-supervisor
코드 내에서 비밀과 암호를 찾아내는 유용한 도구인 Repo-supervisor를 소개합니다. 설치 방법은 매우 간단합니다. GitHub 저장소에 웹훅을 추가하기만 하면 됩니다. Repo-supervisor는 GitHub에서 풀 요청을 스캔하거나 명령줄에서 로컬 디렉토리를 스캔하는 두 가지 모드를 제공합니다. 상황에 맞는 모드를 선택하여 사용하시면 됩니다.
git-secrets를 시작하려면 GitHub 저장소를 방문하여 최신 릴리스를 다운로드하세요. AWS Lambda 배포 및 사용자 친화적인 CLI 모드에 최적화된 번들을 찾을 수 있습니다. CLI 모드는 추가 설정 없이 즉시 사용할 수 있으며, 풀 요청 모드를 사용하려면 AWS Lambda에 배포해야 합니다. 필요에 맞는 옵션을 선택하고 git-secrets의 기능을 활용하여 코드베이스의 보안을 강화하세요!

CLI 모드에서 디렉터리를 인수로 제공하면 Repo-supervisor는 지원되는 파일 유형을 스캔하고 유형별 토크나이저를 사용하여 각 파일을 처리합니다. 추출된 문자열에 대한 보안 검사를 실행하고 결과를 일반 텍스트 또는 JSON 형식으로 제공합니다.
풀 요청 모드의 경우 Repo-supervisor는 웹훅 페이로드를 처리하고 수정된 파일을 추출하여 추출된 문자열에 대한 보안 검사를 수행합니다. 문제가 발견되면 CI 상태를 오류로 설정하고 보고서에 연결합니다. 문제가 없다면 CI 상태는 성공으로 표시됩니다.
Repo-supervisor는 중요한 코드베이스의 무결성을 보장해주는 강력한 코드 검사 도구입니다.
지금 바로 Repo-supervisor를 사용해 보세요! 설치하고 웹훅을 설정하여 비밀과 암호를 탐지하도록 하십시오. 한층 강화된 보안을 경험할 수 있습니다!
Truffle Hog
Truffle Hog라는 유용한 도구를 소개합니다. 이는 마치 저장소 내에 숨어 있는 민감한 정보의 흔적을 샅샅이 찾아내는 충실한 코드 동반자와 같습니다. Truffle Hog는 API 키나 암호와 같은 중요한 비밀이 노출될 가능성을 꼼꼼하게 검사하여 프로젝트의 역사를 철저히 파고드는 데 능숙합니다.
높은 엔트로피 검사와 정규식 패턴을 결합하여 숨겨진 정보를 찾아내고 코드의 안전을 보장합니다. Truffle Hog의 철저한 보호를 통해 비밀 유출 걱정은 이제 그만!
Truffle Hog의 최신 버전은 강력하고 새로운 기능들을 많이 포함하고 있습니다. 이제 각 API에 대해 활발하게 검증하는 700개가 넘는 자격 증명 감지기를 제공합니다. 또한 GitHub, GitLab, 파일 시스템, S3, GCS 및 Circle CI 스캔을 지원하여 뛰어난 범용성을 자랑합니다.

뿐만 아니라 TruffleHog는 최첨단 Driftwood 기술을 활용하여 수백만 명의 GitHub 사용자와 수십억 개의 TLS 인증서에 대한 개인 키를 즉시 검증할 수 있습니다. 이 도구는 바이너리 및 기타 파일 형식까지 스캔할 수 있어 어떤 정보도 놓치지 않습니다.
TruffleHog는 GitHub Action 및 사전 커밋 후크로도 사용할 수 있어 개발 워크플로에 원활하게 통합됩니다. 사용하기 편리하도록 설계되어 불필요한 복잡함 없이 추가 보안 기능을 제공합니다.
Truffle Hog를 사용하면 실수로 인한 노출로부터 코드를 안전하게 보호하고 비밀을 안전하게 유지할 수 있습니다. Truffle Hog를 활용하여 프로젝트를 안전하게 관리하세요.
Git Hound
GitHound는 GitHub 코드 검색, 패턴 일치 및 커밋 기록 검색을 활용하여 다른 도구의 한계를 뛰어넘습니다. 특정 저장소, 사용자 또는 조직뿐만 아니라 전체 GitHub를 검색할 수 있다는 점이 매우 유용합니다.
Git Hound는 GitHub/Gist 코드 검색을 활용하여 GitHub의 방대한 영역에 흩어져 있는 민감한 정보를 정확하게 찾아냅니다. 이는 잠재적인 취약점을 발견하기 위한 보물 지도와 같습니다.
하지만 GitHound는 여기서 멈추지 않습니다. 패턴 일치, 컨텍스트 정보 및 문자열 엔트로피를 사용하여 민감한 데이터를 탐지합니다. 커밋 기록을 깊이 파고들어 잘못 삭제된 비밀을 찾아내어 정보가 유출되지 않도록 합니다.
또한 GitHound는 일반적인 오탐지를 필터링하고 집약적인 저장소 검색을 최적화하는 채점 시스템을 통합하여 시간과 노력을 절약하도록 설계되었습니다.
Git Hound는 base64 탐지 및 디코딩 기능도 갖추고 있습니다. Base64 형식으로 인코딩된 숨겨진 비밀을 찾아낼 수 있어 중요한 정보를 찾는 데 큰 도움이 됩니다.

또한 GitHound는 더 큰 시스템에 통합할 수 있는 옵션을 제공합니다. 특정 요구 사항에 따라 JSON 출력을 생성하고 정규식을 사용자 정의할 수 있어 유연성을 제공합니다.
기업 환경에서 GitHound는 노출된 고객 API 키를 검색하는 데 매우 중요합니다. 민감한 정보를 보호하여 최고 수준의 보안을 보장합니다.
버그 바운티 사냥꾼에게 Git Hound는 획기적인 도구입니다. 이 도구를 통해 유출된 직원 API 토큰을 검색하여 취약점을 발견하고 충분한 보상을 받을 수 있습니다.
Gitleaks
Gitleaks는 코드의 과거 또는 현재에 숨겨진 비밀을 감지하는 사용하기 쉬운 올인원 솔루션입니다. 프로젝트에서 암호, API 키 또는 토큰이 노출될 위험에 작별을 고하세요.
Gitleaks 설치는 간단합니다. Homebrew, Docker 또는 Go를 사용하여 설치할 수 있습니다. 또한 저장소에서 직접 커밋 전 후크로 설정하거나 Gitleaks-Action을 사용하여 GitHub 워크플로에 원활하게 통합할 수 있어 유연한 구현 옵션을 제공합니다.

Gitleaks에서 제공하는 명령어를 살펴보겠습니다. 먼저 "detect" 명령어가 있습니다. 이 명령어를 사용하여 저장소, 디렉토리 및 개별 파일을 검색할 수 있습니다. 로컬 환경에서든 CI 환경에서든 Gitleaks를 사용하여 모든 코드에서 비밀 유출을 막을 수 있습니다.
뿐만 아니라, Gitleaks는 "protect" 명령어도 제공합니다. 이 명령어는 Git 저장소에서 명시적으로 커밋되지 않은 변경 사항을 검색합니다. 이는 마지막 방어선 역할을 하여 비밀이 실수로 커밋되는 것을 방지해줍니다.
업계에서 신뢰받는 Tines에서 Gitleaks를 후원하고 있습니다. 이들의 지원 덕분에 Gitleaks는 지속적으로 발전하고 개선되어 최고의 비밀 탐지 기능을 제공하고 있습니다.
비밀로 인해 프로젝트가 손상되는 일이 없도록 Gitleaks를 설치하고 설정하여 저장소를 검색하고 보호하는 데 활용해 보세요.
Repo 보안 스캐너
Repo 보안 스캐너는 Git 저장소 내에서 실수로 커밋된 중요한 데이터(암호, 토큰, 개인 키, 기타 비밀)를 식별하는 데 도움이 되도록 설계된 명령줄 도구입니다.
이 강력한 도구를 사용하면 코드베이스에 포함될 수 있는 기밀 정보로 인한 잠재적인 보안 취약점을 미리 감지하고 해결할 수 있습니다. Repo 보안 스캐너를 사용하면 저장소의 무결성을 보장하고 무단 액세스로부터 중요한 데이터를 보호할 수 있습니다.

Repo 보안 스캐너는 저장소 전체의 기록을 손쉽게 조사하여 상세한 스캔 결과를 신속하게 제공합니다. 철저한 스캔을 통해 오픈 소스 소프트웨어에서 노출될 수 있는 잠재적인 보안 취약점을 사전에 식별하고 빠르게 해결할 수 있습니다.
Git Guardian
GitGuardian은 개발, 보안, 규정 준수 팀이 GitHub 활동을 실시간으로 모니터링하고 API 토큰, 보안 인증서, 데이터베이스 자격 증명 등과 같은 노출된 비밀로 인한 취약성을 식별할 수 있도록 지원하는 도구입니다.

GitGuardian을 통해 팀은 비공개 및 공개 코드와 기타 데이터 소스에서 보안 정책을 시행할 수 있습니다.
GitGuardian의 주요 기능은 다음과 같습니다.
- 비공개 소스 코드에 포함된 비밀과 같은 민감한 정보를 찾는 데 도움이 됩니다.
- 공개 GitHub에서 민감한 데이터 유출을 식별하고 수정합니다.
- 설정이 간편하고 효과적이며 투명한 비밀 탐지 도구입니다.
- 위험에 처한 거의 모든 민감한 정보를 포괄하는 광범위한 적용 범위와 포괄적인 데이터베이스를 제공합니다.
- 검색 프로세스와 효율성을 향상시키는 정교한 패턴 일치 기술을 사용합니다.
결론
이 글이 GitHub 저장소에서 민감한 데이터를 찾는 데 도움이 되었기를 바랍니다. 만약 AWS를 사용한다면, AWS 보안 및 구성 오류를 스캔하는 방법에 대한 이 기사를 확인해 보세요. 앞으로도 여러분의 업무에 도움이 될 만한 더 흥미로운 도구들을 계속해서 소개할 예정이니 많은 기대 부탁드립니다. 즐겁게 코딩하고 비밀을 안전하게 지키세요! 🔒