brunch

프롬프트 주입부터 데이터유출까지 ,AI보안 실전 가이드

개발자가 알려주는 AI를 더 똑똑하게 쓰기 위해, 먼저 지켜야 할 것

by 개발개발빔

안녕하세요, 개발개발빔입니다!! :)


요즘엔 정말 어느 팀이든 "AI를 어떻게 쓰느냐"보다

"AI를 어디까지 믿을 수 있느냐"가 더 큰 고민이죠.

저 역시 팀 내 생성형 AI도입을 주도하면서 보안이라는 단어의 무게를 다시 느꼈습니다.

기존 보안 매뉴얼로는 설명되지 않는 새로운 위험이 너무 많았기 때문입니다...


AI 시대의 보안은 단순히 '서버를 안전하게 유지하는 일'이 아닙니다.

언어를 코드로 실행하는 구조 그 자체를 관리하는 일로 바뀌고 있습니다.

이 글에서는 그 변화를 개발자 입장에서 자세히 설명해보려고 합니다!


solen-feyissa-Aj7cDaR6QXs-unsplash.jpg

입력이 곧 명령이 되는 세상


AI 보안의 본질적인 변화는 간단합니다.

이전에는 요청 안에 명령이 명시적으로 담겼다면,

이제는 "자연어" 자체가 곧 명령이 됩니다!


겉으로는 단순한 질문처럼 보여도,

모델 내부에서는 권한 상승을 시도하거나,

시스템 정책을 우회하는 형태로 작동할 수 있죠.

게다가 학습 데이터, 프롬프트, 벡터DB, 캐시까지

모두 새로운 유출 지점이 됩니다. ㅠㅠ

개발자가 챙겨야 할 '보안 경계'가 단순히 서버에서 모델로 확장된 셈입니다.


philip-oroni-_clmfthu8uo-unsplash.jpg

우리가 마주하고 있는 새로운 위험들


생성형 AI가 만든 새로운 위협은 생각보다 구체적입니다!


1. 프롬프트 주입

사용자가 일부러 숨겨둔 명령어를 모델이 실행하게 만들어,

정책을 무시하거나 금지된 정보를 유출시키는 방식이죠.

RAG 구조라면 외부 문서에 명령문을 끼워넣는 것만으로도 충분히 발생합니다.


2.데이터 유출

대화 중 전달된 개인정보나 업로드된 문서가 그대로 로그에 남거나,

API 요청 본문에 평문으로 포함될 수 있습니다.

한 번이라도 이런 경험을 해보셨다면, 그 찜찜함을 잘 아실 겁니다...ㅠ


3. 모델중독

파인튜닝이나 RAG 인덱싱 과정에서 악성 데이터가 들어가면,

모델이 특정 방향으로 왜곡된 출력을 내놓습니다!

이건 단순한 기술 문제가 아니라, 조직의 신뢰도 문제로 직결됩니다.


그 밖에도 잘못된 응답이 자동으로 실행되는 에이전트 오작동,

과도한 API 권한으로 인한 도구 호출 남용,

서드파티 플러그인 업데이트로 생기는 공급망 리스크까지.

AI 생태계는 이제 보안의 경계가 어디까지인지조차

불분명한 세상으로 이동하고 있습니다...


pramod-tiwari-QPWKc779h2E-unsplash.jpg

AI 보안은 기술보다 '습관'에 가깝다


AI 보안을 실무에서 다루다 보면 결국 결론은 하나로 수렴합니다.

"보안은 기능이 아니라 습관이다."


저는 처음부터 완벽한 보안 체계를 만들기보다는

매일 습관적으로 시스템을 만들려고 합니다.

입력값을 신뢰하지 않고, 로그를 남기기 전에 한 번 더 가리고,

모든 권한을 가능한 한 작게 쪼갰습니다.


에이전트에게는 최소한의 API만 연결하고,

시크릿 키는 환경변수 대신 전용 매니저로 관리했습니다!

작은 불편을 감수하면서 시스템을 조금씩 단단하게 만들어갔죠.

결국 이런 작은 조치들이 대형 사고를 막는 방어막이 되었습니다. :)


rag-in-action.jpeg 검색 증강 생성 RAG

RAG 구축 중 겪은 실전 에피소드


몇 달 전, 사내 위키를 RAG로 연결했을 때 일입니다.

처음엔 답변 품질이 좋았지만

시간이 지나자 이상한 답변이 섞이기 시작했습니다.

확인해보니 문서 안에 "~하라", "~을 금지한다" 같은

명령형 문장이 그대로 포함되어 있던 게 원인이었습니다.

모델이 문서를 지식이 아니라 명령문으로 해석한 겁니다.


그 뒤로는 인덱싱 전 문서에서 행동 지시 패턴을 자동 제거하도록 파이프라인을 수정했습니다.

또한 문서별 신뢰도 점수를 매기고,

특정 기준 이하의 콘텐츠는 검색 결과에서 제외하도록 조정했죠.

그 후 모델의 안정성이 확실히 개선됐습니다! ㅎㅎ


getty-images-m2pxgGc1Yas-unsplash.jpg

데이터 유출의 교훈


로그 설계 때도 시행착오가 많았습니다.

초기에는 프록시 로그에 요청 전문을 남겼는데,

며칠 만에 고객 이메일이 일부 노출되는 사건이 있었습니다.

그 이후로는 모든 로그에 PII 스크러버(개인정보 제거 모듈)를 거치고,

민감한 값은 즉시 가명 처리했습니다!


사소해 보이지만, "로그를 남기기 전에 데이터를 가리자"는 습관 하나가

전체적인 신뢰도의 핵심이 되었습니다.


getty-images-kFoddA8WiWQ-unsplash.jpg

AI 보안 설계의 핵심은 '분리'다


AI 프로젝트에서 가장 중요한 건 분리입니다.

권한을 분리하고, 네트워크를 분리하고, 프롬프트를 분리하세요.


모델 접근 권한은 서비스 계정별로 쪼개고,

파일 시스템이나 도구 호출은 별도 샌드박스에서 돌리는 게 좋습니다!

RAG 문서 수집 파이프라인에는 반드시 정규화·검열·인덱싱 단계를 분리해야 합니다~

프롬프트 템플릿엔 절대 비밀값이나 경로를 직접 넣지 말고,

시크릿 매니저에서 안전하게 주입해야 합니다.


이런 기본기가 없으면,

"AI 보안"이라는 거창한 단어도 결국 기초가 무너지면 아무 의미가 없습니다!


tanya-yarosh-40lnUH04iVo-unsplash.jpg

협업에서 경험한 AI 보안


제가 외부 프로젝트를 함께한 외주개발사 똑똑한개발자 팀은

AI 보안과 운영 품질을 자연스럽게 함께 다뤄주었습니다.

(최신)2025똑똑한개발자_소개서_page-0001.jpg

RAG 구축 과정에서

"문서 정규화 → 금칙어 검사 → 임베딩 → 인덱스 서명" 단계를 CI에 통합해

품질과 보안을 동시에 챙기는 구조를 만들었고,

릴리즈 때마다 프롬프트 템플릿과 모델 버전을 해시값으로 남겼습니다.

덕분에 언제든지 버전 롤백이 가능했고,

문제 발생 시 추적이 훨씬 수월했죠.


에이전트 도구 권한도 세분화되어 있었습니다.

파일, 브라우저, 웹훅을 각각 분리 계정으로 운영하고,

정책 엔진이 허가한 명령만 실행되게 구성했습니다!


똑똑한개발자 팀의 AI 보안 관련 프로세스를 보고

저도 저의 실무에 있어 적용하면서

더 높은 단계의 AI 보안을 실현할 수 있게 되었습니다~ :) ㅎㅎ


getty-images-uGVxGrsKoMQ-unsplash.jpg

AI 보안의 우선순위


보안은 끝이 없습니다.

그래서 현실적으로 '무엇부터' 할지를 정하는 게 더 중요합니다.

제 경험상, 아래 세 가지부터 시작하면 됩니다~!


입력 게이트웨이 점검 – 프롬프트 주입을 1차 차단하는 가장 효율적인 방어선입니다.

시크릿·권한 분리 – API 키, 계정, 데이터 접근 범위를 분리하면 사고의 영향 반경이 확 줄어듭니다.

RAG 전처리 자동화 – 전처리와 금칙어 검사를 CI에 통합하면 품질과 보안 모두 향상됩니다.


이 세 가지를 먼저 습관으로 만들면,

AI 보안을 일상적인 루틴으로 만들 수 있습니다!!!


AI 보안은 거대한 솔루션이 아니라,

작은 의심과 확인의 반복입니다.

"이 입력은 안전한가?", "이 로그에 개인정보는 없는가?",

"이 권한은 꼭 필요한가?"를 하루에도 몇 번씩 묻는 것.


그 질문을 멈추지 않는 개발자와 팀만이

AI 시대의 보안 문제를 '사건'이 아닌 '관리'로 유지할 수 있을 겁니다!


오늘도 읽어주셔서 감사드리고

공감과 댓글도 부탁드립니다~! ㅎㅎ


keyword
작가의 이전글외주개발 실패를 막는 유일한 방법, 운영형 웹에이전시