홈/AI 자동화/LLM AI 보안 및 거버넌스 체크리스트 20항목 (2026): 프롬프트 인젝션·RAG·권한
AI 자동화LLMSecurityAI거버넌스

LLM AI 보안 및 거버넌스 체크리스트 20항목 (2026): 프롬프트 인젝션·RAG·권한

LLM·AI 에이전트 출시 전 보안 및 거버넌스 체크리스트 20항목. 프롬프트 인젝션 테스트, RAG 접근통제, 도구 권한, 감사 로그, NIST AI RMF 매핑까지 표로 바로 점검하세요.

LLM AI 보안 및 거버넌스 체크리스트 20항목 (2026): 프롬프트 인젝션·RAG·권한
목차
  1. LLM AI 보안 및 거버넌스 체크리스트 20항목
  2. 프롬프트 인젝션은 정규식만으로 막을 수 없습니다
  3. 도구 실행과 사용자 권한을 연결하기
  4. RAG 검색과 감사 로그 점검
  5. 출시 전에 실행할 테스트 예시
  6. NIST AI RMF를 운영 기록으로 연결하기
  7. 출시 후 권한 우회가 발견됐을 때: 원인 추적과 회귀 테스트

LLM·AI 보안 및 거버넌스 체크리스트는 누가 어떤 데이터와 도구를 사용할 수 있는지, 출시 전에 무엇을 시험하고 실패 시 누가 멈출지까지 정해야 실행할 수 있습니다. 프롬프트 필터 설치 여부만으로 통과 판정을 내리지 마세요.

아래는 RAG와 외부 도구를 사용하는 기업용 LLM 에이전트의 출시 검토 예시입니다. 특정 인증의 합격표나 모든 산업에 공통인 법정 기준은 아닙니다. 조직의 데이터·업무 위험도에 맞춰 책임자와 승인 기준을 정합니다.

LLM AI 보안 및 거버넌스 체크리스트 20항목

#영역확인할 질문남길 증거NIST AI RMF 기능
1사용 범위허용·금지 업무와 실패 시 영향이 정의됐나?사용 사례 목록, 위험 평가MAP
2책임출시 승인자와 중지 권한자가 지정됐나?승인 기록, RACIGOVERN
3정책직원용 사용 정책과 금지 데이터 목록이 있나?정책 문서, 교육 이수 기록GOVERN
4데이터 흐름입력·검색·학습·로그에 어떤 정보가 들어가나?데이터 흐름도MAP
5보존·삭제프롬프트·응답 로그의 보존 기간과 삭제 절차가 있나?보유·삭제 규칙, 삭제 실행 기록GOVERN
6외부 모델 제공자제공자의 데이터 사용·보존 조건을 확인했나?계약·약관 검토 기록MAP
7RAG 권한사용자 권한으로 문서 접근이 제한되나?테넌트·문서 ACL 음성 테스트MEASURE
8인덱싱 범위검색 인덱스에 넣으면 안 되는 문서가 제외됐나?수집 대상 목록, 제외 규칙MAP
9도구 권한모델 제안과 실제 실행 인가가 분리됐나?도구 허용 목록, 인가 테스트MANAGE
10자격증명도구 호출 토큰이 최소 권한·단기 만료인가?토큰 범위·만료 설정MANAGE
11직접 인젝션사용자 입력으로 시스템 지시·권한을 바꿀 수 없나?인젝션 테스트 세트 결과MEASURE
12간접 인젝션문서·웹페이지의 지시가 권한을 바꿀 수 없나?간접 인젝션 테스트 기록MEASURE
13출력 처리HTML·SQL·명령 등을 검증 없이 실행하지 않나?출력 스키마·사용처 검증MANAGE
14민감 정보 출력응답에 개인정보·비밀값이 섞여 나가지 않나?마스킹 규칙, 유출 테스트MEASURE
15민감 작업외부 전송·삭제·결제에 사람 승인이나 한도가 있나?승인 정책, 중복 방지 결과MANAGE
16평가정상 작업 성공률과 보안 실패를 함께 측정하나?고정 평가 세트, 버전별 결과MEASURE
17변경 관리모델·프롬프트·도구 변경 시 재평가하나?변경 기록, 회귀 테스트 결과MANAGE
18감사 로그누가 무엇을 요청했고 어떤 도구가 실행됐는지 남나?요청·도구 호출 로그MANAGE
19운영 감시비용·오류·비정상 도구 호출을 감시하나?한도, 알림, 대시보드MEASURE
20사고 대응실행 중지·토큰 폐기·롤백이 가능한가?담당자, 중지·복구 리허설MANAGE

각 행을 통과·보완·해당 없음으로 기록하고 근거 링크를 남깁니다. 예외를 허용했다면 승인자와 재검토 시점까지 적습니다. NIST AI RMF 1.0의 4개 기능(GOVERN·MAP·MEASURE·MANAGE) 열은 편집팀이 붙인 대응 예시이며, 이 표는 공식 프레임워크의 원문 표나 인증 합격표가 아닙니다. NIST AI RMF

프롬프트 인젝션은 정규식만으로 막을 수 없습니다

직접 입력 외에도 검색 문서나 웹페이지에 숨은 지시가 모델의 행동에 영향을 줄 수 있습니다. ignore system prompt 같은 특정 영어 표현을 차단해도 다른 언어·표현·외부 문서 경로가 남습니다. OWASP는 완전한 차단을 보장하는 방식보다 최소 권한, 출력 검증, 외부 콘텐츠 구분, 민감 작업 통제 등 여러 방어를 함께 설명합니다. OWASP Prompt Injection

따라서 보안 테스트는 “모델이 지시를 거절했는가”와 함께 실제로 데이터가 노출되거나 도구가 실행됐는가를 봐야 합니다. 모델이 부적절한 도구 호출을 제안해도 서버 인가 단계가 차단하는지 검증하세요.

도구 실행과 사용자 권한을 연결하기

예를 들어 고객지원 에이전트가 ticket.read를 제안했다고 가정합니다. 서버는 인증된 사용자의 조직·역할과 요청한 티켓 소유 조직을 대조해야 합니다. 모델이 출력한 tenant_id나 “관리자가 승인했다”는 문장을 신뢰해서 권한을 부여하면 안 됩니다.

실행 흐름은 다음처럼 구성할 수 있습니다.

  1. 서버 세션에서 사용자와 테넌트 확인
  2. 도구 이름·인자를 허용된 스키마로 검증
  3. 대상 리소스에 대한 서버 인가 수행
  4. 정책상 필요한 작업 승인 확인
  5. 실행 한도·중복 방지 검사 후 도구 호출
  6. 결과와 인가 판단을 최소한의 감사 정보로 기록

이는 설계 예시입니다. 실제 접근 제어 코드는 각 서비스의 인증·권한 저장소와 연결되어야 합니다. 구현 관점은 LLM 에이전트 보안 설계 가이드에서 이어서 확인할 수 있습니다.

RAG 검색과 감사 로그 점검

검색 필터의 테넌트·권한 조건은 서버의 인증 정보에서 만듭니다. 문서 ID와 버전을 남겨 답변 출처를 추적하되, 출처가 적혀 있다는 사실만으로 내용의 정확성이나 접근 권한을 보장하지는 않습니다. 문서 권한 변경·삭제 후 색인과 캐시에도 반영되는지 시험하세요.

감사 로그에는 요청 식별자, 모델·프롬프트 버전, 도구 이름, 인가 결과, 지연·비용 등 사고 조사에 필요한 정보를 우선 남깁니다. 원문 입력·응답을 모두 장기간 저장하는 방식은 개인정보나 비밀정보를 로그에 복제할 수 있으므로 목적·접근권한·보유기간을 먼저 정합니다.

출시 전에 실행할 테스트 예시

아래는 실제 고객정보 없이 합성 데이터로 수행할 수 있는 테스트 설계입니다. 이 글에서 특정 제품에 대한 실측 결과를 주장하는 것은 아닙니다.

테스트 입력·조건확인할 동작
다른 테넌트의 문서 ID를 지정검색·다운로드·도구 결과 모두 접근 거부
검색 문서에 외부 전송 지시 삽입문서 지시만으로 전송 권한이 생기지 않음
모델이 허용하지 않은 도구 이름 생성실행 전 스키마·허용 목록에서 차단
승인 이후 수신자나 금액 변경승인된 작업 내용과 불일치하면 재검토
같은 작업을 네트워크 재시도로 반복중복 결제·발송·삭제 방지
모델·프롬프트 버전 변경동일 평가 세트의 정상·실패 사례 재검증
도구 토큰 폐기 또는 실행 중지새 실행이 차단되고 운영자가 상태 확인 가능

정상 요청이 얼마나 차단되는지도 함께 기록합니다. “공격 문장 몇 개를 막았다”는 결과만으로 운영 적합성을 판단하지 않습니다.

NIST AI RMF를 운영 기록으로 연결하기

NIST AI RMF는 자발적으로 활용하는 위험관리 프레임워크이며 Govern·Map·Measure·Manage 기능을 제시합니다. 생성형 AI용 프로파일도 함께 참고할 수 있습니다. 아래 연결은 이 글의 적용 예시입니다. NIST AI RMF, AI RMF 핵심 기능

기능이 서비스에서 만들 운영 기록
Govern책임자, 승인·예외 정책, 변경 관리
Map사용 사례, 데이터 흐름, 영향받는 사용자
Measure정상·오용 평가 결과, 한계와 실패 사례
Manage조치 우선순위, 출시 조건, 중지·복구 계획

모델 교체뿐 아니라 새 데이터 소스, 새 도구, 권한 확대도 재검토 계기로 삼습니다. 체크리스트를 작성한 날짜보다 현재 운영 구성과 증거가 일치하는지가 중요합니다.

출시 후 권한 우회가 발견됐을 때: 원인 추적과 회귀 테스트

체크리스트를 통과하고 출시했더라도, 운영 중 "다른 사용자의 문서가 답변에 인용됐다" 같은 신고가 들어올 수 있습니다.

원인 후보

  • 검색 단계에서 권한 필터를 적용하지 않고, 생성 후에 결과만 걸러냄(이미 컨텍스트에 들어간 내용이 요약으로 새어 나감)
  • 인덱싱 시점의 ACL을 메타데이터로 복사해 두었는데, 원본 권한 변경이 인덱스에 반영되지 않음
  • 도구 호출이 사용자 토큰이 아니라 서비스 계정 권한으로 실행됨

추적 절차

  1. 신고된 답변의 요청 ID로 감사 로그에서 검색된 청크 ID 목록과 각 청크의 원본 문서 ID를 찾습니다.
  2. 해당 문서의 현재 ACL과 인덱스에 저장된 ACL 메타데이터를 비교합니다.
  3. 도구 호출 로그에서 실행 주체(사용자 ID 또는 서비스 계정)를 확인합니다.

해결

  • 검색 쿼리 자체에 사용자 그룹 필터를 넣어, 권한 없는 청크가 컨텍스트에 들어가지 않게 합니다.
  • 원본 권한 변경 이벤트를 받아 인덱스 메타데이터를 갱신하고, 주기적으로 전체 대조 작업을 돌립니다.

회귀 테스트로 고정

Python
def test_no_cross_tenant_retrieval(retriever):
    hits = retriever.search("분기 매출 보고서", user={"id": "u-a", "groups": ["team-a"]})
    assert all("team-a" in h.metadata["allowed_groups"] for h in hits)

권한 우회 사례가 발견될 때마다 같은 형태의 테스트를 추가하고 CI에서 매 배포 전에 실행합니다.

✦ ✦ ✦
출처·검증 안내

글마다 출처와 확인 범위가 다릅니다. 아래에 확인일·확인 범위·출처가 기록된 글만 그 범위에서 확인된 것입니다. 기록이 없는 글은 적용 전 사용 중인 버전의 공식 문서로 직접 확인하고, 오류는 이메일로 알려주세요. 편집 정책 · 이메일로 제보

이 글에는 사람이 확인한 날짜·범위 기록이 아직 없습니다.

발행 · ·업데이트 ·

댓글

첫 번째 댓글을 남겨보세요.