바이브코딩 시대, 보안은 누가 챙기나요?
ChatGPT, Claude, Cursor 같은 AI 도구 덕분에 개발 속도가 몇 배는 빨라졌습니다. 아이디어가 생기면 하루 이틀 만에 실제로 동작하는 서비스를 만들 수 있는 시대입니다. 이른바 바이브코딩(Vibe Coding)이라고 불리는 이 방식은 생산성 혁명이지만, 한 가지 심각한 맹점이 있습니다.
AI는 동작하는 코드를 만들어 주지, 안전한 코드를 보장하지는 않습니다. 실제로 바이브코딩으로 만들어진 사이트들을 보안 점검해 보면 공통적으로 나타나는 취약점 패턴이 있습니다. 이 글에서는 그 중 가장 위험한 5가지를 정리합니다.
취약점 1: API 키와 시크릿이 코드에 하드코딩
AI에게 "Supabase 연동 코드 짜줘"라고 요청하면, 빠른 동작 시연을 위해 API 키를 코드 안에 직접 박아넣는 예시를 제공하는 경우가 많습니다. 그 코드를 그대로 GitHub에 올리면 끝입니다.
- Supabase anon key가 공개 저장소에 노출되면 수 분 내에 자동 스캐너가 탐지합니다.
- AWS Secret Key 노출은 수백만 원짜리 인프라 비용 청구로 이어질 수 있습니다.
- 결제 API 시크릿 노출은 즉각적인 금전 피해를 유발합니다.
대응법: 환경 변수(.env 파일)를 사용하고, .gitignore에 반드시 등록하세요. GitHub에 올리기 전 시크릿 스캔 도구를 한 번씩 돌리는 습관을 들이세요.
취약점 2: 서버 사이드 입력 검증 누락
AI가 만들어 준 폼 처리 코드는 대부분 클라이언트 사이드 유효성 검사만 포함합니다. 브라우저의 JavaScript를 끄거나 직접 HTTP 요청을 보내면 검증을 완전히 우회할 수 있습니다.
# AI가 만들어준 코드 (위험)
@app.route('/api/price', methods=['POST'])
def update_price():
price = request.json['price'] # 음수? 0원? 검증 없음
db.update(price=price)
이런 코드는 결제 금액 조작, 데이터 오염, SQL 인젝션으로 이어질 수 있습니다. 서버에서 반드시 타입, 범위, 형식을 검증해야 합니다.
취약점 3: 인증/인가 로직의 허점
바이브코딩으로 빠르게 만든 서비스에서 가장 자주 보이는 패턴 중 하나가 인증(Authentication)과 인가(Authorization)의 혼동입니다.
- 로그인은 되어 있는데, 다른 사용자의 데이터에 접근 가능한 경우
- URL에 숫자만 바꾸면 남의 주문 내역이 보이는 IDOR(Insecure Direct Object Reference)
- 관리자 페이지가 로그인 없이 접근 가능한 경우
AI는 "현재 로그인한 사용자의 데이터를 보여줘"라고 요청해도, 실제 소유권 검증 코드를 빠뜨리는 실수를 자주 합니다.
취약점 4: HTTPS 설정 불완전 및 보안 헤더 누락
SSL 인증서를 달았다고 끝이 아닙니다. 브라우저가 HTTP 요청을 자동으로 HTTPS로 리다이렉트하도록 강제하지 않으면 중간자 공격(MITM)에 노출됩니다. 또한 다음 보안 헤더들이 빠지면 XSS, 클릭재킹 같은 공격에 취약해집니다.
Strict-Transport-Security(HSTS): HTTP 접근 차단Content-Security-Policy(CSP): XSS 방어X-Frame-Options: 클릭재킹 방어X-Content-Type-Options: MIME 스니핑 방어
AI가 생성한 서버 설정 코드에는 이런 헤더들이 거의 포함되지 않습니다.
취약점 5: 에러 메시지를 통한 정보 노출
개발 편의를 위해 DEBUG 모드를 켜놓거나, 에러 처리를 제대로 하지 않으면 스택 트레이스, DB 구조, 서버 경로 같은 민감한 정보가 화면에 그대로 노출됩니다. 해커는 이 정보를 바탕으로 공격을 정밀하게 설계합니다.
내 사이트는 괜찮을까요?
위에서 언급한 취약점들은 전문가가 아니라도 자동화 도구로 상당 부분 탐지할 수 있습니다. CodeScan에서 URL 하나만 입력하면 보안 헤더 누락, API 키 노출, SSL 설정 오류 같은 항목들을 무료로 점검할 수 있습니다. 바이브코딩으로 사이트를 오픈하기 전, 한 번 돌려보는 것을 권장합니다.
빠르게 만들수록 보안 점검은 더 꼼꼼히 해야 합니다. 해커는 AI보다 빠르게 취약점을 찾아냅니다.