Skip to main content

Scan your vibe-coded project for leaked secrets and security issues

Project description

VibeScan

Push 전에, 코드를 점검하세요.

VibeScan은 바이브코딩(AI 기반 코딩) 시대에 맞춘 로컬 코드 보안 점검 도구입니다. 민감정보 노출, 보안 취약점, 설정 실수를 초보자도 이해할 수 있는 설명형 리포트로 제공합니다.

pip install vibescan-cli
vibescan scan .

Your code never leaves your machine. VibeScan runs entirely locally.


왜 VibeScan인가

AI가 만들어준 코드를 그대로 push하면 이런 일이 생깁니다.

  • .env에 실제 API 키가 들어간 채로 GitHub에 올라감
  • docker-compose.yml에 DB 비밀번호가 평문으로 노출
  • serviceAccountKey.json이 프로젝트 루트에 방치
  • NEXT_PUBLIC_SECRET_KEY 같은 환경변수가 브라우저에 노출

기존 보안 도구는 경고 메시지가 어렵고, 수정 방법도 알려주지 않습니다. VibeScan은 왜 위험한지, 어떻게 고치는지까지 안내합니다.


주요 기능

Secret 탐지 (14개 카테고리)

카테고리 예시
환경변수 파일 .env, .env.production 노출
설정 파일 하드코딩 config.py, application.yml의 비밀번호
클라우드 인증 파일 serviceAccountKey.json, terraform.tfstate
Docker/인프라 docker-compose.yml의 평문 비밀번호
CI/CD 파이프라인 GitHub Actions yml에 시크릿 직접 입력
IDE 설정 .npmrc, .vscode/launch.json의 토큰
SSH 키/인증서 *.pem, *.key, *.jks
코드 내 하드코딩 sk-, AKIA, ghp_ 패턴, DB 연결 문자열
프론트엔드 환경변수 NEXT_PUBLIC_, VITE_ + 시크릿 조합
데이터 파일 .sqlite, .sql, Jupyter Notebook 출력
문서 내 실수 README curl 예시에 실제 토큰
모바일 앱 파일 AndroidManifest.xml, Info.plist의 API 키
DB/시스템 설정 .pgpass, .kube/config
에디터 잔여물 .bash_history, .htaccess, Vim swap

위험 코드 패턴

Python: eval(), exec(), subprocess(shell=True), pickle.loads(), DEBUG=True, verify=False JS/TS: eval(), innerHTML, dangerouslySetInnerHTML, child_process.exec(), jwt.decode without verify SQL: f-string/template literal 쿼리 조합 (인젝션)

Git Hygiene

.gitignore 존재 여부, .env* / *.pem / *.key 등의 ignore 등록 여부 검사

프로젝트 구조

README, LICENSE, lockfile 존재 여부, .ssh/.aws 같은 위험 디렉토리 검사


사용법

# 설치
pip install vibescan-cli

# 기본 스캔 (콘솔 출력, 시스템 언어 자동 감지)
vibescan scan .

# python -m으로 실행 (PATH 문제 시)
python -m vibescan .

# HTML 리포트 생성
vibescan scan . --format html

# JSON 리포트 생성 (CI/CD 연동)
vibescan scan . --format json -o result.json

# MEDIUM 이상만 표시
vibescan scan . --min-severity medium

# 한국어/영어 강제 지정
vibescan scan . --lang ko
vibescan scan . --lang en

출력 예시

┌─────────────── 스캔 완료 ────────────────┐
│ VibeScan이 ./my-project에서 147개 파일을 스캔했습니다 │
└──────────────────────────────────────────────┘
 요약
  CRITICAL   2
  HIGH       2
  MEDIUM     1

config.py
  [!] 변수에 하드코딩된 시크릿이 포함되어 있을 수 있습니다
      라인 23
      원인: 코드에 직접 저장된 시크릿은 저장소에 접근할 수 있는 누구나 볼 수 있습니다.
      해결: 하드코딩 대신 환경변수 또는 시크릿 매니저를 사용하세요.

Exit code 1: CRITICAL 또는 HIGH 이슈가 발견되었습니다.
규칙에 대한 자세한 정보: https://vibescan.calmee.store/#rules

심각도 체계

등급 기준 예시
CRITICAL 즉시 악용 가능, 금전적 피해 AWS 키, DB 비밀번호, 서비스 계정 키
HIGH 보안 취약점, 공격 경로 API 키 하드코딩, eval(), SQL 인젝션
MEDIUM 잠재적 위험, 모범 사례 위반 DEBUG=True, CORS 전체 허용
LOW 코드 품질, 유지보수성 README 부재, LICENSE 미작성

기술 스택

구분 선택
언어 Python 3.10+
CLI typer
콘솔 출력 rich
패턴 탐지 re (정규표현식)
다국어 i18n (한국어/영어, 로케일 자동 감지)
빌드 hatchling
패키지 배포 PyPI
테스트 pytest (196 tests)
외부 의존성 2개 (typer, rich)

로드맵

  • 코어 엔진 (17개 규칙, File Collector, Rule Engine)
  • 테스트 (196 tests passing)
  • PyPI 배포 (pip install vibescan-cli)
  • 소개 웹사이트 (https://vibescan.calmee.store)
  • 콘솔/JSON/HTML 리포트
  • 한국어 지원 (시스템 로케일 자동 감지)
  • 오탐 필터 (한국어 에러 메시지, 플레이스홀더, 환경변수 참조 제외)
  • Git History Scan
  • GitHub Actions 연동
  • VSCode Extension

보안 원칙

Your code never leaves your machine.
VibeScan runs entirely locally.
No network. No upload. No tracking.

라이선스

MIT License


링크

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vibescan_cli-0.2.5.tar.gz (89.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vibescan_cli-0.2.5-py3-none-any.whl (53.5 kB view details)

Uploaded Python 3

File details

Details for the file vibescan_cli-0.2.5.tar.gz.

File metadata

  • Download URL: vibescan_cli-0.2.5.tar.gz
  • Upload date:
  • Size: 89.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for vibescan_cli-0.2.5.tar.gz
Algorithm Hash digest
SHA256 8620bb58b81f23b63f5030cfc6cd5a4b64e244082adbf0db1c0c3fc67ce6632e
MD5 b83cb192bd00a26f3c8160dbd1827096
BLAKE2b-256 1d6e605e665172d72492fd9e5d6785c2c9aae5c3dad30fb32d158a33b25fcbb5

See more details on using hashes here.

File details

Details for the file vibescan_cli-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: vibescan_cli-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 53.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for vibescan_cli-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 a913164f52dbe79dc9cc6403a2f4956337a1e5056dbe2a8994993e72567533fb
MD5 a1d4ec9559202bd5479e6743b83445d0
BLAKE2b-256 00082468630f5a4540effa43cca88f3dbc5f87da0ab0cd524ab767d632746a1b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page