홍드로이드의 야매코딩

AI 코드 보안 검사 무료 플러그인 — 짜는 동안 취약점을 잡습니다 본문

AI & Vibe Coding

AI 코드 보안 검사 무료 플러그인 — 짜는 동안 취약점을 잡습니다

홍드로이드 2026. 8. 27. 05:26
반응형

AI가 짜준 코드를 나중에 한 번 훑는 방식은 이미 익숙합니다. 그런데 쓰는 도중에 보고 같은 대화 안에서 고치게 하는 쪽도 있습니다. 세 지점에서 각각 다른 깊이로 보는데, 정작 눈에 띈 건 기능이 아니라 설계였습니다 — 코드를 쓴 쪽에게 자기 채점을 시키지 않습니다. 대신 아무것도 막지는 않는다는 점은 미리 알고 들어가야 합니다.

📌 30초 요약

  • 세 지점에서 봅니다 — 편집마다, 대화가 끝날 때, 커밋할 때.
  • 첫 층은 공짜입니다 — 모델을 안 부르는 문자열 검사입니다.
  • 쓴 쪽이 채점하지 않습니다 — 별도 호출에 새 맥락을 줍니다.
  • 고치는 데까지 갑니다 — 같은 대화 안에서 이어집니다.
  • ⚠️ 막지는 않습니다 — 저장도 커밋도 그대로 진행됩니다.
  • ⚠️ 내가 친 커밋은 안 봅니다 — AI가 실행한 것만입니다.

세 지점에서 봅니다

한 번에 몰아 보는 게 아니라 깊이가 다른 세 층으로 나눠 봅니다. 가벼운 쪽이 자주 돌고, 무거운 쪽은 드물게 돕니다. 설치하면 따로 부를 명령이 없습니다 — 알아서 돌아갑니다.

언제 무엇을
파일을 고칠 때마다 위험한 호출 패턴을 문자열로 찾음 0 (모델 안 부름)
한 번의 대화가 끝날 때 그 사이 바뀐 것 전체를 모아 검토 사용량 차감
AI가 커밋·푸시할 때 주변 코드까지 읽는 깊은 검토 사용량 차감 (더 큼)

첫 층이 잡는 건 동적으로 코드를 실행하는 호출, 안전하지 않은 역직렬화, 화면에 값을 통째로 밀어 넣는 방식, 그리고 자동화 설정 파일에 손대는 것 정도입니다. 문자열 검사라 놓치는 게 많지만 값이 0이라 늘 켜둘 만하죠. 같은 파일에서 같은 패턴이 반복되면 한 번만 알립니다 — 대화가 경고로 도배되지 않게요.

두 번째 층부터가 진짜입니다. 문자열로는 절대 못 잡는 것들 — 권한 우회, 남의 자원에 접근하게 되는 참조, 주입, 서버가 대신 요청을 보내게 만드는 문제, 약한 암호 사용 — 을 봅니다. 이 검사는 배경에서 돌아 답이 늦어지지 않고, 뭔가 나오면 그 내용을 다시 물려줘서 이어지는 작업으로 고치게 합니다. 전부 만으로 만들어져 있어서, 직접 훅을 짜볼 생각이라면 이 플러그인 자체가 좋은 예제이기도 합니다.

자기가 자기를 채점하지 않습니다

여기가 가장 인상적인 부분입니다. "AI가 짠 코드를 AI가 검사한다"는 말에는 자기 답안을 자기가 채점하는 것 아니냐는 당연한 의심이 따라붙죠. 문서는 이 지점을 정면으로 다룹니다 — 코드를 쓴 그 인스턴스에게 채점을 시키지 않습니다.

🧪 어떻게 독립을 만드나

첫 층은 아예 모델이 끼지 않는 기계적 문자열 대조라 판단이 개입할 여지가 없습니다. 두·세 번째 층은 별도 호출로 새 맥락에서 돕니다. 검사하는 쪽은 바뀐 부분만 보고 시작하고, 원래 어떤 방식으로 짰는지에 애착이 없으며, 문제를 찾으라는 지시만 받습니다. 앞선 대화도, 왜 그렇게 짰는지도 모르는 상태로 들여다보는 거죠. 같은 모델이라도 맥락을 끊으면 다른 눈이 된다는 접근인데, 나중에 몰아서 훑는 스캔 도구가 처음부터 남의 코드를 보는 것과 비슷한 조건을 인위적으로 만드는 셈입니다.

그런데 아무것도 막지 않습니다

문서가 분명히 적어둡니다 — 어느 층도 저장이나 커밋을 막지 않습니다. 찾아낸 것은 지시로 전달될 뿐이고, 고칠지 말지는 대화 안에서 처리됩니다. 검사하는 쪽이 놓칠 수도 있고요. 문서 표현대로 "완전한 보안 해법이 아니라 여러 겹 중 한 겹"으로 다루라고 합니다.

그래서 진짜로 막고 싶다면 편집 자체를 차단하는 훅이나 자동 빌드 단계의 검사와 짝을 지어야 합니다. 내 규칙을 얹는 것도 더하는 것만 됩니다 — 회사 사정에 맞는 검사를 추가할 수는 있지만, "이 유형은 무시하라"고 적어도 그 경고가 사라지지는 않습니다. 내장 검사는 개별로 못 끄고, 층 단위로만 끕니다(환경 변수 넷으로 층별, 하나로 통째).

조용히 건너뛰는 경우들

"켰는데 아무 반응이 없다"가 이 도구의 가장 흔한 함정입니다. 에러를 내지 않고 그냥 넘어가기 때문이죠. 알려진 이유가 셋 있습니다 — 버전 관리 저장소가 아닌 폴더(두·세 번째 층은 변경분을 비교해야 해서 건너뜁니다), 인증이 안 잡힌 세션(모델을 쓰는 층만 빠지고 문자열 검사는 돕니다), 그리고 규칙 파일 형식에 필요한 부속이 없을 때(그 파일을 통째로 무시합니다 — 이 경우 다른 형식으로 쓰면 됩니다). 진단 기록이 남는 위치도 안내돼 있으니 조용할 땐 거기부터 보면 됩니다.

한도도 알아둘 만합니다. 두 번째 층은 한 번에 최대 30개 파일까지 보고 연속 세 번까지만 돌다가 사람에게 넘깁니다. 세 번째 층은 시간당 20회가 상한이고요. 그리고 이게 놓치기 쉬운데 — 내가 내 터미널에서 직접 친 커밋은 검토되지 않습니다. AI가 자기 도구로 실행한 커밋만 대상입니다.

🏁 합치기 직전에 한 번 더 보는 자리 (8월 27일 추가)

여기서 다룬 쪽은 짜는 동안 값 없이 계속 도는 층입니다. 그 위에 합치기 직전 딱 한 번 도는 층이 하나 더 있습니다 — 클라우드에 에이전트 무리를 띄워 훑고, 찾아낸 것을 하나하나 재현해본 뒤에야 보고합니다. 그래서 스타일 지적 대신 진짜 버그만 옵니다. 대신 무료가 계정당 세 번뿐이고, 중간에 멈추거나 실패해도 그 한 번이 사라집니다. 요금제에 포함된 사용량이 아니라 별도 지갑에서 나가는 점도 다르고요. 싼 것부터 자주, 비싼 건 결정적일 때 한 번이라는 순서로 보시면 됩니다. 정리는 무료 세 번뿐인 코드 리뷰에 담았습니다.

🎯 같은 원리를 품질 쪽에도 쓰고 있습니다 (8월 27일 추가)

여기서 다룬 "쓴 쪽에게 채점을 안 시키고 맥락을 끊어 따로 부른다"는 설계가, 보안이 아닌 결과물 품질 쪽에서도 똑같이 쓰이고 있습니다. 무엇이 완성인지를 기준표로 먼저 적어주면 채점자가 자동으로 붙어 항목별로 따지고, 모자란 부분을 돌려줘 다시 고치게 합니다. 그 채점자 역시 별도 맥락에서 도는데, 본 작업이 어떤 방식으로 만들었는지에 영향받지 않게 하려는 것입니다. 서로 다른 자리에서 같은 판단을 하고 있는 셈이죠. 정리는 끝을 먼저 정하기에 담았습니다.

자주 묻는 질문 (FAQ)

Q. 돈이 더 드나요?

층에 따라 갈립니다. 편집마다 도는 문자열 검사는 모델을 안 부르므로 추가 비용이 없습니다. 나머지 둘은 보통 요청과 똑같이 사용량에 잡힙니다 — 대략 파일을 바꾼 대화마다 한 번, 커밋마다 한 번 더 무거운 검토가 붙는다고 보면 됩니다. 기본으로 꽤 좋은 모델을 쓰는데 두 층 각각 다른 모델로 바꿀 수 있어 값이 부담되면 낮춰도 됩니다. 플러그인 자체는 모든 요금제에서 쓸 수 있습니다.

Q. 이미 있는 코드도 봐주나요?

아닙니다. 이게 가장 흔한 오해입니다. 이건 AI가 지금 쓰고 있는 변경분을 보는 도구입니다. 예전부터 있던 코드를 훑고 싶으면 대화에서 특정 파일·폴더를 짚어 검토를 시키거나, 저장소 전체를 여러 갈래로 훑는 쪽을 쓰는 게 맞습니다. 어느 쪽이든 읽는 건 내 컴퓨터에 받아둔 소스이지 돌아가는 사이트가 아닙니다.

Q. 회사 규칙을 넣을 수 있나요?

둘 다 됩니다. 모델이 보는 쪽에는 평범한 문장으로 적은 검토 기준을 얹을 수 있고("어떤 값은 기록에 남기지 말 것" 같은), 문자열 검사 쪽에는 내 패턴 규칙을 더할 수 있습니다. 개인용·프로젝트용·개인 예외용 세 자리를 모두 읽어 합칩니다. 다만 앞서 말한 대로 더하기만 되고, 이건 강제가 아니라 참고 자료입니다. 반드시 막아야 하는 규칙이면 차단하는 훅이나 자동 빌드 검사로 옮기세요.

🧾 정직하게 밝혀둘 것

  • 직접 설치해 돌려보지는 않았습니다. 공식 문서에 적힌 동작·조건·한도를 정리한 것이고, 실제 탐지율은 확인하지 않았습니다.
  • ★"막지 않는다"를 흐리지 않으려 애썼습니다. 문서가 스스로 완전한 해법이 아니라고 못 박은 도구입니다. 이 글을 "깔면 안전해진다"로 읽지 마세요.
  • ★위험 패턴의 구체적 문자열은 범주로 풀어 적었습니다. 원문에는 예시 문자열이 표로 나와 있으니, 규칙을 직접 쓸 때는 원문 표를 보세요.
  • ★탐지 정확도·오탐률에 대한 수치는 문서에 없습니다. "주변 코드를 읽어 오탐을 낮춘다"는 설명은 있지만 근거 수치는 제시되지 않았습니다.
  • 사전 조건이 있습니다. 특정 버전 이상의 실행 환경과 버전 관리 저장소가 필요하고, 처음 켤 때 내려받는 과정이 있습니다. 조건이 안 맞으면 일부 층이 낮은 단계로 대체되거나 빠집니다.

✨ 정리하면

나중에 훑는 대신 쓰는 도중에 봅니다. 세 층의 깊이가 다르고 첫 층은 값이 0이며, 쓴 쪽에게 채점을 안 시키려고 맥락을 끊어 따로 부릅니다. 대신 막는 기능이 아니라는 것내가 친 커밋은 안 본다는 것은 안고 가야 합니다. 다 쓴 코드를 훑는 쪽은 취약점 스캔 플러그인, 이 플러그인의 뼈대가 된 구조는 훅 완전정리, 사내 서버를 안전하게 잇는 쪽은 포트를 안 여는 연결, 도구에 드는 값을 통으로 잡는 흐름은 AI 지출 관리 허브에 모아뒀습니다.

※ 출처: Claude Code 보안 지침 플러그인 공식 문서(2026년 8월 27일 열람). 층별 한도·기본 모델·사전 조건은 예고 없이 바뀔 수 있으니 설치 전 원문을 확인하시길 권합니다. 이 글은 보안 도구를 소개할 뿐, 어떤 코드가 안전하다고 보증하지 않습니다.

반응형
Comments