바이브 코딩 웹사이트 보안 점검
인터넷은 동화 속 세상이 아닙니다.
웹사이트가 공개되는 순간부터 공격이 시작됩니다. 원한을 가진 누군가가 아닙니다. 모든 웹사이트의 모든 문을 하루 종일, 매일 두드리는 봇입니다.
AI는 빠르게 만들도록 도와주었습니다. 하지만 누가 침입할 수 있는지는 확인하지 않았습니다. 그 일을 제가 합니다.
- GET/.env404
- GET/.git/config404
- GET/.env.production404
- GET/.env.bak404
- GET/.aws/credentials404
- GET/app/.env404
- GET/api/.env404
- GET/backend/.env404
- GET/credentials.json404
- GET/service-account.json404
- GET/phpinfo.php404
- GET/laravel/.env404
- GET/admin/.env404
- GET/config.php404
- GET/.git-credentials404
- GET/wp-config.php404
- GET/.git/HEAD404
- GET/google-credentials.json404
- GET/.gitlab-ci.yml404
- GET/.env.swp404
- GET/wp-login.php404
- GET/wp-config.php.bak404
- GET/dump.sql404
- GET/database.sql404
- GET/backup.sql404
아무도 당신을 노리지 않습니다. 모두가 노립니다.
제가 운영하는 작은 웹사이트 하나가 7일 동안 받은 요청입니다. 유명한 사이트가 아닙니다. 그저 온라인에 있었을 뿐입니다.
- 4,761비밀번호와 API 키가 들어 있는
.env파일을 찾는 요청 - 798소스 코드를 내려받으려고
.git을 찾는 요청 - 3,160WordPress와 PHP 공격. 이 사이트는 둘 다 쓰지 않습니다
- 1,197백업, 데이터베이스 덤프, 클라우드 키를 찾는 요청
제 서버에서 2026년 11월 5일부터 2026년 11월 12일까지 측정했습니다. 전체 요청 25,222건 중 39%입니다.
바이브가 끝난 뒤에 생기는 문제
AI는 작동하는 코드를 씁니다. 작동한다고 안전한 것은 아닙니다. 제가 가장 자주 발견하는 허점들입니다.
- 01
그대로 노출된 키
페이지 소스, 공개 저장소, 오래된 커밋에 남아 있는 API 키와 토큰. 봇은 몇 분 안에 찾아내어 당신의 돈을 씁니다.
- 02
누구나 읽을 수 있는 데이터베이스
기본 규칙 그대로 둔 Supabase나 Firebase. 비밀번호 없이 요청 한 번이면 모든 사용자의 데이터가 나옵니다.
- 03
화면에서만 하는 검사
버튼은 숨겼지만 API는 여전히 응답합니다. 주소의 숫자 하나만 바꾸면 다른 사람의 계정이 보입니다.
- 04
절대 제공되면 안 되는 파일
.env,.git, 백업, 디버그 페이지. 요청하는 누구에게나 전달됩니다. 위의 숫자를 보셨을 겁니다. - 05
제한 없음
요청 제한이 없는 로그인, 회원가입, 유료 API. 비밀번호는 대입 공격에 뚫리고 요금은 하룻밤에 폭증합니다.
- 06
되돌릴 방법 없음
작동하는 백업도, 로그도, 알림도 없습니다. 유출 사실을 사용자에게서 듣게 됩니다.
개인정보를 저장하나요? 책임은 당신에게 있습니다.
이메일 주소는 개인정보입니다. 이름, 전화번호, IP 주소도 마찬가지입니다. 수집하는 순간부터 법이 적용됩니다. 사이드 프로젝트도 예외가 아닙니다.
보호해야 합니다
개인정보 보호법 제29조는 개인정보가 유출되지 않도록 안전성 확보에 필요한 조치를 요구합니다.
유출을 알려야 합니다
유출을 알게 된 때부터 72시간 이내에 정보주체에게 통지해야 하며, 일정 규모 이상이거나 해킹으로 인한 유출은 개인정보보호위원회 또는 한국인터넷진흥원에 신고해야 합니다(제34조).
과징금을 받을 수 있습니다
전체 매출액의 3% 이하의 과징금이 부과될 수 있습니다(제64조의2). 유럽 이용자가 있다면 GDPR도 적용됩니다.
"AI가 작성했다"는 변명이 되지 않습니다
사이트는 당신의 것입니다. 책임도 마찬가지입니다.
이 내용은 법률 자문이 아닙니다. 일이 생기기 전에 보안을 진지하게 챙겨야 하는 이유입니다.
서버를 직접 운영하는 사람의 점검
시니어 엔지니어 한 명이 공격자의 눈으로 사이트를 살펴보고, 무엇을 고쳐야 하는지 정확히 알려드립니다.
- 1
연락을 주세요
사이트 주소, 하는 일, 저장하는 데이터를 알려주세요. 범위와 일정, 시작 전에 합의하는 가격을 답해 드립니다.
- 2
동의를 받고 공격합니다
서면 동의서에 서명하시면, 외부에서 실제 사이트를 테스트한 뒤 코드와 설정(호스팅, 데이터베이스, 키)을 검토합니다.
- 3
바로 쓸 수 있는 보고서를 받습니다
발견한 문제를 위험도 순으로 정리하고 해결 방법을 쉬운 말로 설명합니다. AI에게 붙여 넣어 고친 뒤, 제가 다시 확인합니다.
점검 항목
- 코드와 커밋 기록 속 비밀 정보와 API 키
- 로그인, 세션, 비밀번호 재설정
- 누가 누구의 데이터를 읽고 바꿀 수 있는지
- 데이터베이스 규칙과 노출 여부
- 파일 업로드와 스토리지 버킷
- 결제와 웹훅
- 요청 제한과 유료 API 남용
- HTTP 헤더, TLS, DNS
- 이메일 사칭: SPF, DKIM, DMARC
- 알려진 취약점이 있는 의존성
- 백업, 로그, 알림
- 개인정보: 무엇을 어디에 보관하는지
점검하는 사람
저는 시니어 소프트웨어 엔지니어 Alexandre Roux입니다. 매일 인터넷에 노출되는 서버 소프트웨어를 C와 Python으로 개발하고 리뷰하며, 그 아래의 인프라(Linux, Kubernetes, Ansible, Terraform)도 운영합니다.
제 웹사이트들도 제 서버에서 직접 운영합니다. 이 페이지의 숫자는 그중 한 곳에서 나온 것입니다.