Bootstrap VibeSec: full open-source security kit for AI-generated apps - #1
Merged
Conversation
…, reports, docs, examples
Copilot
AI
changed the title
[WIP] Add VibeSec security layer for VibeCoder
Bootstrap VibeSec: full open-source security kit for AI-generated apps
May 28, 2026
seonghobae
marked this pull request as ready for review
May 28, 2026 14:32
There was a problem hiding this comment.
This review was skipped because it would exceed your organization's monthly flex usage limit. Raise the limit in billing settings or wait until the next billing period resets limits.
This was referenced Aug 3, 2026
This was referenced Aug 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
VibeSec is repositioned from a one-time pre-launch pentest to a persistent security layer for vibe coders — covering the full app lifecycle from first commit through production operations.
What's added
rules/— Drop-in security rules for AI coding toolsPer-tool files for Cursor (
.cursor/rules/), Claude Code (CLAUDE.md), Windsurf, and Lovable. Cover auth, ownership checks, secrets, file uploads, Stripe webhooks, CORS, and required tests.checklists/— 9 stack-specific checklistsauth·authorization·supabase·firebase·stripe·file-upload·api-security·secrets·deploymentEach checklist calls out the specific AI-generated anti-patterns (e.g.
getSession()vsgetUser()server-side,NEXT_PUBLIC_SERVICE_ROLE_KEY,allow read, write: if true).prompts/— Paste-into-AI audit/fix promptssecure-code-review·fix-authz-bugs·supabase-rls-review·stripe-webhook-review·admin-route-reviewscanner/— Lightweight static analysis6 YAML rule files (
secrets,authz,supabase,firebase,nextjs,stripe) and a Python CLI with three commands:Scanner targets the vibe-coding failure profile — IDOR, exposed service role keys, missing RLS, webhook bypass,
// TODO: add authin prod — not classic SQLi/XSS.reports/templates/— Three report formatsfounder-friendly-report(plain-language + fix prompts) ·agency-report(CVSS, CWE, retest table) ·fix-pack(problem → risk → fix prompt → verification, per issue)examples/— Vulnerable vs fixed side-by-sideSeven real-world AI-generated vulnerability patterns (IDOR, exposed service role, no webhook sig verification, price from client, hardcoded secret, no RLS, TODO auth bypass) with corrected versions and test cases.
docs/methodology(why AI-generated code fails differently) ·scope-and-authorization·responsible-testingOriginal prompt
맞습니다. “출시 전”은 너무 좁습니다.
더 좋은 방향은 VibeSec = 바이브코더를 위한 지속형 보안 레이어입니다.
단, 이름은 조금 조심해야 합니다. 간단히 찾아보니 VibeSec이라는 이름은 이미 여러 곳에서 쓰이고 있습니다. 예를 들어 vibesec.app은 AI와 Semgrep 기반 코드 취약점 스캔을 내세우고 있고, vibesec.sh는 Claude/Cursor 같은 AI 코딩 도구에 넣는 보안 스킬 형태를 제공한다고 설명합니다. GitHub에도 vibesec 또는 VibeSec 이름의 보안 관련 저장소가 이미 여럿 보입니다.
그래도 레포지터리 이름이나 내부 프로젝트명으로는 VibeSec이 아주 좋습니다. 다만 나중에 서비스 브랜드로 쓸 거라면 VibeSec Korea, VibeSec Lab, VibeSec Guard, VibeSec Ops, VibeSec for Builders처럼 살짝 변형하거나, 상표/도메인 확인은 따로 하는 게 안전합니다.
방향을 이렇게 넓히면 좋습니다
VibeSec: 바이브코딩 시대의 보안 운영체계
출시 전 점검이 아니라, 바이브코더가 앱을 만드는 전 과정에 붙는 보안 서비스입니다.
AI로 만든 앱을 계속 안전하게 만드는 보안 코파일럿.
코드 작성, 배포, 운영, 업데이트, 사고 대응까지 함께 본다.
즉, 포지션은 **“모의해킹 1회성 서비스”**가 아니라 **“AI 개발자를 위한 DevSecOps + 미니 보안팀”**에 가깝습니다.
제품/서비스를 5개 레이어로 나누면 좋습니다
AI 코딩 도구에 넣는 보안 규칙 세트입니다.
Cursor, Claude Code, Windsurf, Codex CLI, Lovable, Replit 같은 도구에 넣을 수 있는 .md, rules, prompt, checklist 형태로 제공합니다.
예를 들면:
When generating API routes, always enforce authentication and ownership checks.
Never rely on frontend-only authorization.
Never expose service role keys to client-side code.
For every user-owned resource, verify owner_id against the current session user.
Add tests for cross-user access denial.
이건 진입장벽이 낮습니다. 오픈소스로 공개하기 좋고, 레포 이름 VibeSec과도 잘 맞습니다.
레포지터리 스캔 서비스입니다.
대상은 다음입니다.
영역 점검
코드 인증 누락, 권한 검증 누락, 위험한 API 패턴
시크릿 API key, DB URL, JWT secret, Supabase service role key
의존성 취약 패키지, 이상한 패키지명, 오래된 라이브러리
설정 CORS, 보안 헤더, public bucket, exposed env
프론트엔드 클라이언트에 노출된 민감 로직
서버리스 인증 없는 endpoint, webhook 검증 누락
AI 흔적 임시 코드, TODO, mock auth, “disable security for now” 패턴
기존 SAST와 다른 점은 AI가 만든 코드에서 자주 나오는 실수에 특화하는 겁니다. 일반 스캐너는 SQLi, XSS 같은 전통 취약점에 강하지만, 바이브코딩 앱에서는 오히려 권한 설계 실수, 공개 설정 실수, 시크릿 노출, Supabase/Firebase 룰 오류가 더 치명적입니다.
사람이 보는 리뷰입니다.
여기서 돈을 벌 수 있습니다. 자동 스캔은 누구나 따라 만들 수 있지만, 바이브코더가 진짜 원하는 건 이겁니다.
“내 앱에서 남의 데이터가 보이나요?”
“이거 실제 사용자 받아도 되나요?”
“Supabase 설정이 맞나요?”
“AI가 만든 코드인데 뭐가 위험한지 모르겠어요.”
서비스 이름은 꼭 “출시 전”일 필요 없습니다.
상품명 설명
VibeSec Snapshot 현재 앱 상태 1회 점검
VibeSec Review 코드·설정·권한 구조 리뷰
VibeSec Red Team Lite 실제 사용자 시나리오 기반 방어적 침투 테스트
VibeSec Fix Pack 발견된 문제를 고칠 수 있는 패치/프롬프트 제공
VibeSec Retainer 매달 변경사항 보안 점검
이게 “출시 전”을 넘어서는 핵심입니다.
바이브코더는 앱을 한 번 만들고 끝내지 않습니다. 계속 AI에게 “이 기능 추가해줘”, “결제 붙여줘”, “관리자 페이지 만들어줘”, “파일 업로드 추가해줘”라고 시킵니다. 그러면 매번 보안 상태가 바뀝니다.
그래서 운영형 모니터링이 필요합니다.
이벤트 VibeSec이 할 일
새 커밋 발생 보안 위험 diff 분석
새 API route 추가 인증·권한 검사 여부 확인
env 변경 민감 키 노출 여부 확인
Supabase/Firebase rule 변경 과도한 공개 여부 확인
새 dependency 추가 취약성·typosquat 의심 확인
배포 발생 public endpoint, headers, exposed files 점검
결제 기능 추가 webhook, 가격 조작, 권한 검증 확인
이걸 잘 만들면 일회성 컨설팅이 아니라 월 구독이 됩니다.
바이브코더에게 가장 중요한 건 “문제 발견”보다 고치는 방법입니다.
그래서 결과물을 일반 보안 보고서처럼 주면 안 됩니다. 이렇게 줘야 합니다.
문제:
사용자 A가 사용자 B의 project_id를 넣으면 B의 프로젝트를 조회할 수 있습니다.
위험:
고객 데이터가 사용자 간에 노출될 수 있습니다.
수정 프롬프트:
"Update all project API routes to verify that the authenticated user's id matches project.owner_id before returning data. Return 403 when ownership does not match. Add tests for cross-user access."
검증:
User A token으로 User B project_id 요청 시 403이 나와야 합니다.
즉, VibeSec의 차별점은 취약점 보고서 + AI 수정 프롬프트 + 재검증입니다.
“모의해킹 서비스”보다 더 좋은 카테고리명
“모의해킹”은 너무 보안업계스럽고, 바이브코더에게는 무겁습니다. 대신 이런 카테고리가 좋습니다.
AI AppSec for Vibe Coders
한국어로는:
바이브코더를 위한 AI 앱 보안 점검
AI로 만든 앱을 위한 지속형 보안 리뷰
바이브코딩 보안 운영 서비스
AI 개발자를 위한 미니 보안팀
Cursor/Lovable/Supabase 앱 보안 점검
가장 마음에 드는 포지션은 이겁니다.
VibeSec은 바이브코더의 미니 보안팀이다.
레포 구조 제안
레포 이름을 vibesec으로 한다면, 처음부터 SaaS보다 오픈소스 보안 키트로 시작하는 게 좋습니다.
vibesec/
README.md
rules/
cursor/
security-rules.md
claude-code/
security-skill.md
windsurf/
security-rules.md
lovable/
secure-build-checklist.md
checklists/
auth.md
authorization.md
supabase.md
firebase.md
stripe.md
file-upload.md
api-security.md
secrets.md
deployment.md
prompts/
secure-code-review.md
fix-authz-bugs.md
supabase-rls-review.md
stripe-webhook-review.md
admin-route-review.md
scanner/
rules/
secrets.yml
authz.yml
supabase.yml
firebase.yml
nextjs.yml
stripe.yml
cli/
vibesec.py
reports/
templates/
founder-friendly-report.md
agency-report.md
fix-pack.md
examples/
vulnerable-vibe-app/
fixed-vibe-app/
docs/
methodology.md
scope-and-authorization.md
responsible-testing.md
이렇게 하면 레포가 단순한 서비스 소개가 아니라 바이브코딩 보안 표준처럼 보입니다.
첫 번째 오픈소스 MVP
처음 만들 건 복잡한 스캐너가 아니라 이 정도면 충분합니다.
vibesec init
프로젝트에 보안 규칙 파일을 설치합니다.
vibesec init --tool cursor
vibesec init --tool claude-code
vibesec init --stack nextjs-supabase
생성되는 파일:
.cursor/rules/vibesec.md
CLAUDE.md
VIBESEC_CHECKLIST.md
vibesec scan
가벼운 정적 분석을 합니다.
vibesec scan .
처음에는 다음만 잡아도 됩니다.
탐지 항목 예시
하드코딩된 키 SUPABASE_SERVICE_ROLE_KEY, STRIPE_SECRET_KEY
위험한 Supabase 사용 service role key 클라이언트 사용
권한 없는 API session check 없이 DB 조회
공개 Firebase rule read/write true
위험한 CORS origin: "*"
webhook 검증 누락 Stripe signature 검증 없음
admin route 보...