보안 문제를 위해 22개의 인기 GitHub 리포를 스캔했더니 - 68%가 노출된 비밀을 포함하고 있었습니다

발행: (2026년 3월 5일 AM 11:03 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

개요

저는 shinobi 라는 CLI 도구를 만들었습니다(shinobi-scan이라는 이름으로 PyPI에 배포). 이 도구는 프로젝트 디렉터리나 GitHub 저장소에 대해 10초 정도의 빠른 보안 스캔을 수행합니다. 스캔에서는 다음을 확인합니다:

  • 노출된 API 키 및 비밀 패턴
  • 위험한 기본값(예: debug 모드, 와일드카드 CORS)
  • 취약한 의존성
  • 보안 기본 사항 누락
  • AI‑특화 위험

이 도구는 완전히 파이썬으로 작성되었으며, CLI를 위해 argparse를 사용하고, 비밀 탐지를 위해 정규식 패턴 매칭을, 히스토리 스캔을 위해 gitpython을, 의존성 감사를 위해 서브프로세스 호출을 사용합니다. 100 % 로컬에서 실행되므로 데이터가 머신을 떠나지 않습니다.

pip install shinobi-scan

GitHub 저장소:

방법론

저는 shinobi를 22개의 인기 오픈소스 프로젝트에 적용했습니다. 포함된 프로젝트는 다음과 같습니다:

  • FastAPI
  • Flask
  • Dify
  • Flowise
  • LiteLLM
  • Lobe‑Chat

각 저장소는 위에 열거한 카테고리별로 스캔되었습니다. 도구는 발견된 문제의 심각도에 따라 위협 수준(낮음, 중간, 높음, 치명적)을 보고합니다.

결과

  • 스캔된 저장소의 **86 %**가 높음 또는 치명적 위협 수준을 반환했습니다.
  • 가장 흔한 문제는 노출된 비밀 패턴(소스 코드에 직접 나타난 API 키 형식)였습니다.
  • 두 번째로 빈번한 문제는 debug=True를 그대로 두거나 와일드카드 CORS 설정을 사용하는 등 위험한 기본값이었습니다.

많은 노출된 키가 테스트용 고정값일지라도, 수천 파일에 걸쳐 실제와 유사한 키 패턴이 존재한다는 점은 이러한 템플릿을 포크하거나 기반으로 개발하는 개발자들이 상당한 보안 부채를 물려받는다는 것을 의미합니다.

결론

이 스캔은 인기 있는 오픈소스 프로젝트 중 상당 부분에 쉽게 탐지 가능한 보안 취약점이 존재한다는 것을 보여줍니다. shinobi와 같은 로컬 자동 스캔을 실행하면 개발자가 이러한 문제를 사전에 식별하고 수정하여 하위 프로젝트로 전파되는 것을 방지할 수 있습니다.

연락처

피드백이나 질문이 있으면 언제든지 연락 주세요. 저는 하루 종일 X(구 Twitter)에서 활동하고 있습니다.

0 조회
Back to Blog

관련 글

더 보기 »