
오즈입니다.
AI로 만든 프로그램이 잘 돌아가긴 하는데, 이걸 남한테 보여줘도 되는지 모르겠으신가요?
아니면 "저장소를 비공개로 해뒀으니 괜찮겠지" 하고 계신가요?
혹은 어디선가 API 키를 코드에 붙여넣은 것 같은데, 어디였는지 기억이 안 나시나요?
그렇다면 이 글을 끝까지 보셔야 합니다.
코드를 한 줄도 못 읽어도 직접 확인할 수 있는 다섯 가지를 정리했습니다. 그중 하나는 브라우저에서 글자 몇 개만 쳐보면 됩니다.
먼저 결론부터 말씀드릴게요.
돌아가는 것과 안전한 것은 완전히 다른 문제입니다.
그리고 이건 AI가 더 똑똑해지면 해결되는 문제가 아닙니다. 이유는 바로 아래에 있습니다.
보안 검사를 붙여 재보니 AI가 쓴 코드의 45%에 취약점이 있었습니다.
베라코드라는 보안 회사가 2025년 7월에 낸 조사입니다. 언어모델 100개가 넘게 동원됐고 자바·파이썬·자바스크립트·C#으로 시켰습니다. 【문서 근거 · 2026-07-25 확인】
"코드 표본의 45%가 보안 테스트를 통과하지 못했고 OWASP 상위 10대 취약점을 코드에 끌어들였다."
여기까지는 "그럴 수도 있지" 싶습니다. 진짜 문제는 다음 문장입니다.
크기도 출시일도 학습 자료도 다른 모델들을 몇 년치에 걸쳐 시험했는데, 새 모델이라고 보안 성적이 나아지지 않았다. 나아진 건 기능적·문법적 정확성뿐이었다.
이게 무슨 뜻이냐면요. 기다린다고 해결되지 않는다는 겁니다.
AI는 "돌아가는 코드"를 점점 잘 씁니다. 그런데 "안전한 코드"는 별개로 안 나아지고 있습니다. 그러니까 AI가 잘할수록 돌아가면서 안전하지 않은 프로그램이 빨리 늘어납니다.
특히 한 항목이 눈에 띕니다. 남이 입력한 걸 화면에 그대로 뿌려서 생기는 취약점(XSS)은 관련 표본의 86%에서 못 막았습니다. 이건 뒤에서 직접 테스트해 보겠습니다.
직원 세 명짜리 인테리어 시공 업체 사장님. 코딩은 배운 적 없고, 저녁 한 시간씩 도구를 만들고 계십니다.
지금까지 현장 사진 도구, 자재 견적 도구, 일정표를 만드셨죠. 그런데 상황이 바뀌었습니다.
직원 세 명도 같이 쓰게 하려고 인터넷에 띄우려는 참입니다.
내 노트북에서만 돌 때와 인터넷에 있을 때는 완전히 다른 얘기입니다. 여기서부터 다섯 가지를 봐야 합니다.
AI한테 물어보면 됩니다. 코드를 읽으실 필요 없습니다.
이 프로젝트 안에 API 키·비밀번호·접속 주소가 코드나 설정 파일에 직접 적힌 곳이 있는지 전부 찾아줘. 값은 보여주지 말고 어느 파일인지만 알려줘.
"값은 보여주지 말고"를 꼭 붙이세요. 찾아준다고 화면에 찍으면 그 화면도 유출 경로가 됩니다.
비밀값은 코드 밖 한곳에 모아두고, 코드에는 어디 있는지만 적습니다. 이 얘기는 앞선 글에서 다뤘으니 넘어가겠습니다.
비공개 저장소가 공개 저장소보다 비밀값이 들어 있을 확률이 약 6배 높습니다.
깃가디언이라는 회사가 2026년 3월에 낸 조사에서 나온 숫자입니다. 【문서 근거 · 2026-07-25 확인】
숫자 자체보다 왜 그런지가 중요합니다. 비공개니까 마음이 놓여서 그냥 적어두는 겁니다. 공개 저장소에서는 다들 조심하고요.
문제는 비공개가 영원하지 않다는 데 있습니다.
나중에 공개로 바꿀 수 있습니다
협업하려고 사람을 초대할 수 있습니다
계정이 털리면 비공개도 소용없습니다
비공개는 잠금장치가 아니라 커튼입니다. 커튼을 쳤다고 금고에 안 넣어도 되는 건 아닙니다.
같은 조사에서 2025년 한 해에만 공개 깃허브에 새로 올라온 비밀값이 2,865만 건, 전년 대비 34% 늘어 역대 최대 증가폭이었다고 합니다. 조사 쪽은 그 원인으로 AI 보조 개발이 늘면서 커밋 자체가 43% 늘어난 것을 꼽습니다.
빨리 만들수록 빨리 새는 겁니다.
키를 실수로 올리셨다면 순서가 있습니다. 지우기 전에 바꾸세요.
많은 분이 반대로 하십니다. 파일에서 지우고 다시 올리면 없어진 줄 아는데, 기록에는 그대로 남습니다.
같은 깃가디언 조사에 이런 숫자가 있습니다. 2022년에 유효했던 비밀값의 64%가 2026년 1월까지도 여전히 살아 있었습니다.
몇 년을 방치해도 대부분 그대로 쓸 수 있다는 뜻입니다.
그래서 순서는 이렇습니다.
먼저 그 키를 못 쓰게 만든다 (발급처에서 폐기하고 새로 받기)
새 키를 코드 밖으로 옮긴다
그다음에 기록을 정리한다
1번을 하면 나머지는 급하지 않습니다. 1번을 안 하면 나머지를 다 해도 소용없습니다.
여기가 코드 못 읽어도 확인할 수 있는 지점입니다. 30초면 됩니다.
앞에서 AI가 86%나 못 막는다고 한 그 항목입니다.
사장님 도구에 자재 이름을 넣는 칸이 있죠. 거기에 이렇게 쳐보세요.
```
<b>테스트</b>
```
그리고 저장한 다음 목록에서 확인합니다.
`<b>테스트</b>`가 글자 그대로 보인다 → 정상입니다
굵은 글씨로 "테스트"만 보인다 → 문제입니다
굵게 나왔다면, 사용자가 입력한 글자를 프로그램이 명령으로 받아들이고 있다는 뜻입니다. 굵게 만드는 정도로 끝나지 않습니다.
혼자 쓰는 프로그램이면 큰일은 안 납니다. 그런데 직원 세 명이 같이 쓰기 시작하면 얘기가 달라집니다.
문제가 나왔으면 이렇게 시키시면 됩니다.
사용자가 입력한 값이 화면에 그대로 실행되지 않게 처리해줘. 입력한 글자는 글자로만 보여야 해.
주소를 아무한테도 안 알려줬으니 괜찮다고 생각하시면 안 됩니다.
인터넷에 올린 주소는 알려주지 않아도 발견됩니다. 자동으로 훑고 다니는 프로그램이 널려 있습니다.
최소한 셋 중 하나는 걸어두셔야 합니다.
비밀번호나 PIN — 제일 간단합니다. 한 자리만 있으면 됩니다
들어올 수 있는 곳 제한 — 사무실에서만 열리게 막는 방식입니다
주소 자체를 안 열기 — 그냥 내 컴퓨터에서만 돌립니다
세 번째가 제일 안전합니다. 인터넷에 안 띄우면 인터넷으로 못 들어옵니다. 직원 셋이 사무실에서만 쓴다면 굳이 밖에 열 이유가 없는지 먼저 따져보세요.
계산해보면 생각보다 짧습니다.
1번 AI한테 물어보기 — 5분
2번 저장소 공개 여부 확인 — 1분
3번 (해당되면) 키 폐기·재발급 — 15분
4번 입력칸 테스트 — 30초
5번 접근 제한 걸기 — 20분
전부 합쳐 40분 남짓입니다. 그중 실제로 뭔가 만드는 건 5번 하나뿐이고 나머지는 확인입니다.
사장님이 도구 하나 만드는 데 저녁 몇 번을 쓰셨는지 생각하면, 40분은 안 쓸 이유가 없습니다.
【직접 확인 · 2026-07-25】 제가 만든 도구들에서 비밀값을 코드 밖 한곳에 모아두고 경로만 참조하는 방식을 쓰고 있습니다. 올리기 전 자동 검사도 걸어뒀고, 검사에 걸리면 값을 화면에 찍지 않고 어느 파일인지만 알리도록 해뒀습니다.
【직접 확인 · 2026-07-25】 4번 입력칸 테스트는 제가 실제로 쓰는 확인법입니다. 다만 이건 가장 흔한 형태 하나만 잡아냅니다. 통과했다고 안전하다는 뜻은 아닙니다.
【아직 못 봄】 제가 만든 도구들을 보안 검사 도구로 제대로 훑어본 적은 없습니다. 위의 45%가 제 코드에서는 몇 %인지 모릅니다.
이건 재볼 수 있는 일이라 재보고 숫자로 다시 올리겠습니다. 결과가 부끄러워도 그대로 쓰겠습니다.
입력칸에 `<b>테스트</b>` 쳐보기 — 30초
굵게 나오면 오늘 안에 고치세요.
AI한테 비밀값 위치 물어보기 — 5분
이 프로젝트에 키·비밀번호가 코드에 직접 적힌 곳이 있는지 찾아줘. 값은 보여주지 말고 파일 이름만.
인터넷에 띄운 게 있으면 비밀번호 한 자리라도 걸기 — 20분
1번이 제일 짧고 제일 확실합니다. 지금 하셔도 됩니다.
Q. 저는 혼자 쓰는 프로그램인데 이것도 해야 하나요?
A. 1번과 3번은 하셔야 합니다. 비밀값은 혼자 쓰는 프로그램에서도 저장소에 올라가면 남한테 갑니다. 4번과 5번은 남이 쓰기 시작할 때 보시면 됩니다.
Q. AI한테 "보안 신경 써서 만들어줘"라고 하면 안 되나요?
A. 도움은 되지만 충분하지 않습니다. 베라코드 조사에서 보안을 콕 집어 지시해도 가장 잘한 모델이 안전한 코드를 낸 비율이 3분의 2 정도였습니다. 나머지는 사람이 봐야 합니다.
Q. 4번 테스트를 통과하면 안전한 건가요?
A. 아닙니다. 제일 흔한 형태 하나를 걸러낸 것뿐입니다. 다만 못 읽는 분이 30초에 할 수 있는 확인 중에는 가장 값어치가 큽니다.
Q. 보안 검사 도구를 써야 하나요?
A. 인터넷에 띄워서 여러 명이 쓰신다면 권합니다. 다만 그 전에 이 다섯 가지부터 하세요. 도구가 잡아주는 것보다 이 다섯이 더 자주, 더 크게 터집니다.
Q. 이미 몇 달째 키가 올라가 있었는데 아무 일도 없었는데요?
A. 아무 일도 없었던 게 아니라 아직 모르시는 걸 수도 있습니다. 위의 조사에서 몇 년 묵은 키의 절반 이상이 여전히 유효했습니다. 발견은 나중에 되고 피해는 그때부터 시작됩니다. 폐기·재발급은 오늘 하시는 게 낫습니다.
정리하면 이렇습니다. AI는 돌아가는 코드를 점점 잘 쓰지만, 안전한 코드는 별개로 안 나아지고 있습니다.
그래서 확인은 사람 몫으로 남습니다. 다행히 그중 큰 것들은 코드를 못 읽어도 확인할 수 있습니다.
같은 글머리의 다른 글도 함께 보세요. 같은 인테리어 사장님으로 이어집니다.
4번 테스트 해보시고 결과가 어땠는지 댓글로 남겨주세요. 굵게 나왔다면 어떻게 고치는지 같이 보겠습니다.
베라코드, 「2025 GenAI Code Security Report」(2025-07-30) — 언어모델 100개 이상, 자바·파이썬·자바스크립트·C# 대상. 코드 표본의 45%가 OWASP 상위 10대 취약점 유입, XSS는 관련 표본의 86%에서 방어 실패, 자바 72%. 새 모델이라고 보안 성적은 나아지지 않았고 기능적 정확성만 개선
https://www.veracode.com/blog/genai-code-security-report/
깃가디언, 「State of Secrets Sprawl 2026」(2026-03-17) — 2025년 공개 깃허브 커밋에 새 비밀값 2,865만 건(전년비 34% 증가, 역대 최대). 내부 저장소가 공개 저장소보다 약 6배 더 비밀값 포함. 2022년 유효 비밀값의 64%가 2026년 1월까지 유효. AI 보조 개발로 공개 커밋 43% 증가
https://blog.gitguardian.com/the-state-of-secrets-sprawl-2026/
최초 작성 2026-07-25 · 최종 수정 2026-07-25
아직 댓글이 없습니다.