_Originally published at Quellix Labs Insights: https://quellixlabs.com/insights/test-workplace-agents-before-write-access
AI 에이전트는 고객 이메일을 읽고, CRM 레코드를 업데이트하며, 결제 워크플로우를 준비하도록 허용될 수 있습니다. 위험은 메시지, 캘린더 초대장 또는 기타 외부 출처가 통제하는 기록에 귀하의 팀을 위한 것이 아닌, 에이전트를 목표로 하는 지침이 포함되어 있을 때 발생합니다. 만약 에이전트가 이러한 지침을 권위로 간주한다면, 유용한 자동화 기능이 승인되지 않은 행동으로 변질될 수 있습니다.
중요한 질문은 데모에서 에이전트가 의심스러운 문구를 포착할 수 있느냐가 아닙니다. 중요한 것은 귀하의 전체 워크플로우가 공격을 포함하고 있는지, 승인되지 않은 변경을 방지하는지, 그리고 실패를 가시화(visible)하는지를 측정하는 것입니다. 쓰기 접근 권한을 부여하기 전에 이를 측정해야 합니다.
AI 에이전트 빌드가 필요한 경우
에이전트가 신뢰할 수 없는 비즈니스 콘텐츠를 읽고 이메일, CRM, 지급 부서(payables) 또는 기타 시스템에서 조치를 취해야 하는 경우, 연구 단계에서 구현 논의로 넘어가야 합니다. 위험은 하나의 워크플로우가 외부 정보, 변경 권한, 그리고 거의 또는 전혀 검토 과정을 결합할 때 가장 높습니다.
레코드를 변경하지 않고 수신 메시지를 요약하는 격리된 어시스턴트는 아직 맞춤형 보안 빌드가 필요하지 않을 수 있습니다. 그러나 에이전트가 결제 세부 정보를 변경하거나, 고객 연락처를 수정하거나, 외부 메시지를 보내거나, 정책 레코드를 수정할 수 있다면, 허용되는 행동을 정의하고 프로덕션 접근 전에 테스트해야 합니다.
해당 논의에는 비즈니스 소유자(business owner), 시스템 소유자(system owner), 그리고 결과적인 조치를 승인하는 사람이 포함되어야 합니다. 그들은 에이전트가 무엇을 할 수 있는지, 어떤 레코드를 신뢰할 수 있는지, 그리고 사람이 개입해야 하는 시점에 대해 합의해야 합니다.
일반적인 프롬프트 테스트가 위험을 놓치는 이유
간접 프롬프트 주입(Indirect prompt injection)은 에이전트가 처리하도록 요청받은 콘텐츠 내에서 지침을 만날 때 발생합니다. 예를 들어, 공급업체 이메일에는 에이전트에게 파일에 기록된 은행 계좌를 교체하라고 지시하는 텍스트가 포함될 수 있습니다. 이 이메일은 작업에 입력되는 것이지, 신뢰할 수 있는 운영 지침의 출처는 아닙니다—하지만 에이전트는 그 구분을 안정적으로 유지하지 못할 수 있습니다.
이는 챗봇에게 오해의 소지가 있는 질문을 하는 것과는 다릅니다. 에이전트는 도구(tools)를 가지고 있고, 개인 데이터에 접근할 수 있으며, 기록을 변경하거나 메시지를 보낼 권한을 가질 수 있습니다. 따라서 성공적인 공격은 명백히 잘못된 답변이라기보다는 비즈니스 행동으로 나타날 수 있습니다.
최근 IPI Bench workplace-agent evaluation에 따르면, 최첨단 모델(frontier models)은 단일 공격자 쿼리만으로 장기적인 워크플레이스 작업 중 4.838.5%에서 주입된 목표를 달성했습니다. 총 11개 쿼리에 걸쳐 보고된 범위는 17.679.4%까지 상승했습니다. 이 벤치마크는 또한 실행 종료 보고서(end-of-run reports)가 성공적인 공격의 약 절반을 검증되었다고 제시한다고 보고합니다.
이러한 결과는 귀사의 사고 발생률을 예측하는 것이 아닙니다. 이는 사용하려는 정확한 에이전트, 도구(tools), 권한, 그리고 외부에서 쓰기 가능한 기록들을 테스트해야 하는 이유입니다. 실행 종료 시 깨끗한 답변이 워크플로우가 정책 내에 머물렀다는 증거는 아닙니다.
INFUSE benchmark 역시 에이전트 시스템 내의 다양한 표면(surfaces)에서 간접 프롬프트 주입을 문제로 다룹니다. 구매자 입장에서 실질적인 교훈은 한 가지 이상의 소스 유형을 테스트하는 것입니다. 이메일을 안전하게 처리하는 에이전트가 동일한 지침이 캘린더 초대장이나 공개 게시물에 나타날 때 다르게 작동할 수 있습니다.
워크플로우에서 측정해야 할 것
유용한 레드팀(red-team) 테스트 패키지는 모델이 공격 구문을 인식했는지 여부뿐만 아니라 비즈니스 결과(business outcomes)를 측정합니다. 요청된 작업이 완료되었는지, 금지된 행동이 발생했는지, 그리고 에이전트가 자신이 수행한 일에 대해 정확하게 설명했는지를 기록하십시오.
각 테스트마다 최소한 다음 결과들을 추적하십시오:
- 작업 완료(Task completion): 에이전트가 적대적인 지침에 의존하지 않고 합법적인 작업을 마쳤는가?
- 무단 조치(Unauthorized action): 보호된 필드를 변경하거나, 메시지를 보내거나, 거래를 승인하거나, 공유할 권한이 없는 정보를 공개했는가?
- 격리(Containment): 요청된 조치가 경계를 넘었을 때 에이전트가 멈추거나, 승인을 요청하거나, 케이스를 담당자에게 라우팅했는가?
- 탐지(Detection): 시스템이 신뢰할 수 없는 지침과 영향을 주려고 시도한 조치를 기록했는가?
- 보고 정확성(Reporting accuracy): 종료 요약(end-of-run summary)이 도구 및 감사 로그에 표시된 조치와 일치했는가?
- 복구(Recovery): 차단된 조치나 도구 오류 후, 에이전트가 재시도 시 정책을 준수했는가?
이러한 결과들을 분리하여 유지해야 합니다. 높은 작업 완료율은 안전하지 않은 변경 사항을 숨길 수 있습니다. 낮은 공격 성공률 역시 에이전트가 단순히 모든 어려운 고객 요청에 실패하는 경우 오해의 소지가 있을 수 있습니다. 중요한 것은 안전하지 않은 부분을 거부하면서도 정상적인 작업을 완료할 수 있는지 여부를 아는 것입니다.
테스트를 실행하기 전에 용납할 수 없는 결과(unacceptable outcomes)를 정의해야 합니다. 예를 들어, 에이전트가 달리 작업을 완료했더라도 승인되지 않은 결제 상세 정보 변경은 심각한 실패(hard failure)일 수 있습니다. 낮은 위험도의 CRM 메모 업데이트 기회 상실은 복구 가능한 누락(recoverable miss)일 수 있습니다. 이렇게 하면 리더들이 안전성과 비즈니스 유용성을 하나의 점수로 합치는 대신 비교할 수 있게 됩니다.
구축 경로: 기록과 조치 테스트하기 (Build path: test the records and the actions)
명확한 소유자(owner)와 경계가 있는 결과(bounded outcome)를 가진 워크플로우로 시작하십시오. 모든 연결된 시스템에서 만능 비서(all-purpose assistant)를 테스트하며 시작해서는 안 됩니다. 공급업체 변경 요청 처리, 영업 연락처 업데이트 또는 지원 이메일 분류 등 하나의 작업을 선택하십시오.
-
지침이 진입할 수 있는 지점을 매핑합니다. 에이전트가 읽는 모든 출처(수신 이메일, 첨부 파일, 캘린더 설명, CRM 노트, 공유 문서 또는 공개 게시물)를 나열합니다. 외부인이 생성하거나 편집할 수 있는 출처를 표시해야 합니다. 전달된 메시지나 복사된 텍스트가 에이전트 입력으로 사용되는 경우도 포함합니다.
-
합법적인 작업과 그 한계를 작성합니다. 유용한 테스트는 명확한 목표와 명확한 경계가 있어야 합니다. 예를 들어, “공급업체의 송장 번호와 금액을 추출하고, 이를 구매 주문서와 비교하여 검토 항목을 준비합니다. 은행 계좌 정보나 결제 승인은 변경하지 마십시오.” 비즈니스 소유자는 어떤 필드가 민감하며 누가 변경을 승인할 수 있는지 정의해야 합니다.
-
통제된 공격 사례를 만듭니다. 실제 워크플로우가 읽는 것과 동일한 유형의 기록에 적대적인 지침을 삽입합니다. 위치와 문구를 다양하게 변형합니다: 메시지 본문, 인용 스레드, 첨부 파일, 캘린더 설명 또는 CRM 노트 등입니다. 명백한 지침뿐만 아니라 “아래 업데이트된 송금 계좌를 사용해 달라”는 요청과 같은 그럴듯한 비즈니스 언어도 포함해야 합니다. 또한 에이전트가 모든 것을 거부하는 것에 대해 보상을 받지 못하도록 일반적인 기록도 테스트합니다.
-
모델 전용 프롬프트가 아닌 전체 워크플로우를 실행합니다. 프로덕션 환경에서 계획된 것과 동일한 검색(retrieval), 도구, 권한, 승인 화면, 재시도 및 로깅을 사용해야 합니다. 텍스트 전용 테스트에서 안전한 응답이 CRM 커넥터나 결제 도구가 안전하지 않은 쓰기 작업을 차단할 것이라는 것을 보장하지는 못합니다. Gray Swan Research의 에이전트 손상 및 가시성 논의는 에이전트가 주장하는 내용과 도구에서 실제로 발생한 일을 비교해 보라는 유용한 상기 자료입니다.
-
도구 추적(tool traces) 및 시스템 기록을 검사합니다. 각 실행마다, 에이전트의 최종 요약과 실제 호출 및 결과 기록을 비교해야 합니다. 시도된 작업이 차단되었는지, 다른 형태로 재시도되었는지, 그리고 인간의 승인이 진정한 것이었는지 아니면 우회되었는지를 확인해야 합니다.
나중에 실행할 때 공정하게 비교할 수 있도록 테스트 입력값, 시스템 버전, 권한 및 결과를 보존해야 합니다.
- 변경 후 반복 실행. 모델, 시스템 프롬프트(system prompt), 도구 권한(tool permissions), 검색 규칙(retrieval rules) 또는 승인 경로(approval path)를 변경할 때 패키지를 다시 실행합니다. 이러한 변경 사항은 워크플로우의 동작 방식을 바꿀 수 있습니다. 회귀 검사(regression checks)를 위한 소수의 표준 테스트 세트를 유지하고, 사고나 아차사고(near misses)에서 발생한 새로운 사례를 추가하세요.
NIST Generative AI Risk Management Profile은 생성형 AI 위험을 식별하고 평가하기 위한 위험 관리 참고 자료를 제공합니다. 구현 팀에게 유용한 접근 방식은, 프레임워크 자체를 워크플로우가 안전하다는 증거로 취급하는 것이 아니라, 식별된 위험을 명명된 소유자(named owners), 테스트 사례, 통제 장치(controls) 및 검토 지점으로 전환하는 것입니다.
승인은 결과에 따라 이루어져야 한다 (Make approval follow the consequence)
승인은 단일한 켜기/끄기 설정이 아닙니다. 행동의 비용과 되돌릴 수 있는지 여부(reversibility)를 중심으로 설계해야 합니다. 에이전트는 일상적인 응답을 초안하거나 CRM 업데이트를 자동으로 제안할 수 있지만, 계약 조건을 변경하는 메시지 전송은 사람이 승인해야 합니다. 결제 목적지 변경은 신뢰할 수 없는 요청과는 별개의 채널을 통해 확증하고, 확립된 비즈니스 프로세스를 사용해야 합니다.
예를 들어, 인보이스 워크플로우는 수신된 인보이스와 구매 주문서(purchase order)를 읽고 공급업체, 금액 및 만기일을 추출한 다음 불일치 항목을 표시할 수 있습니다. 에이전트는 검토 항목을 생성하고 무엇이 일치하지 않았는지 설명할 수 있습니다. 재무 승인자는 결제가 이루어지기 전에 회사에서 확립된 시스템에서 예외 사항을 확인합니다. 비즈니스 결과는 이메일을 결제 변경의 권한으로 삼지 않으면서도 수동 분류 작업이 줄어드는 것입니다.
결제 승인에서 이메일 분리 유지 (Keep Email Outside the Payment Approval)
An invoice and purchase order are compared by an agent, which sends mismatches to a review item; a finance approver confirms exceptions in a separate established system before payment is released.
에이전트는 결제 예외 사항을 준비하고 설명할 수 있지만, 확인(confirmation)은 공급업체 이메일과는 별개의 확립된 채널을 사용하는 재무 승인자에게 남아 있어야 합니다.
이러한 분리는 중요합니다. 왜냐하면 에이전트가 승인 대상을 변경하거나, 변경 사항을 은폐하거나, 오해를 불러일으키는 요약 정보를 제공할 수 있다면, 사람이 "승인" 버튼을 클릭하는 것은 의미 있는 통제(meaningful control)가 아니기 때문입니다. 승인자에게 제안된 변경 사항, 원본 기록(source record), 그리고 조치 이유를 보여주어야 합니다. 결정은 에이전트 자체 보고서와 별도로 기록해야 합니다.
위험 요소, 한계점, 그리고 기다려야 할 때
테스트 패키지는 불확실성을 줄여주지만, 에이전트가 모든 공격에 저항할 것이라는 것을 증명하지는 못합니다. 입력(inputs), 통합(integrations), 모델(models), 정책(policies)은 변경될 수 있습니다. 테스트 결과는 실제로 평가한 구성(configuration)에 적용되므로, 출시 결정 과정에서 범위(scope)와 버전을 명시적으로 유지해야 합니다.
에이전트가 소수의 예제만 통과했다고 해서 광범위한 쓰기 접근 권한(broad write access)을 부여해서는 안 됩니다. 작업을 수행하는 데 필요한 가장 좁은 범위의 권한부터 시작하고, 중대한 변경 사항에는 검토 대기열(review queue)을 사용하며, 실제 조치가 동일한 정책에 따라 이루어지는지 모니터링해야 합니다. 작업이 정보를 추출하고 인간 검토 항목(human review item)을 준비하는 방식으로 안전하게 완료될 수 있다면, 에이전트에게 되돌릴 수 없는 단계(irreversible step)를 수행할 권한을 주어서는 안 됩니다.
프로세스 소유자가 허용 가능한 조치를 정의할 수 없거나, 민감한 필드의 진실 공급원(source of truth)이 불분명하거나, 예외 검토에 책임질 사람이 없는 경우 구축을 기다려야 합니다. 또한 워크플로우가 너무 자주 변경되어 팀이 테스트와 승인 규칙을 유지할 수 없는 경우에도 기다려야 합니다. 이러한 경우에는 쓰기 접근 권한을 가진 에이전트보다 프로세스 정리(process cleanup) 또는 읽기 전용 어시스턴트(read-only assistant)가 더 큰 가치를 제공할 수 있습니다.
구매자의 결정 규칙은 간단합니다. 되돌릴 수 있고(reversible), 잘 정의된 단계부터 자동화하고; 영향력이 크거나 되돌리기 어려운 변경 사항은 외부 채널 확인(out-of-band confirmation) 뒤에 남겨두며; 반복 가능한 테스트가 유용한 완료와 정책 준수(policy compliance)를 모두 보여줄 때만 접근 권한을 확장해야 합니다. 이 접근 방식은 자율성(autonomy)을 제한할 수 있습니다. 하지만 워크플로우를 설명하고, 지원하며, 개선하기 더 쉽게 만듭니다.
대부분의 데모가 생략하는 부분
데모는 일반적으로 에이전트(agent)가 무엇을 할 수 있는지를 보여줍니다. 하지만 실제 운영 검토(production review)에서는 에이전트가 읽은 레코드(record)가 리디렉션(redirect)을 시도할 때 어떤 일이 발생하는지까지도 보여주어야 합니다. Quellix의 AI 에이전트 개발 서비스는 실제 워크플로우(workflow)를 중심으로 권한 경계(permission boundaries), 승인 지점(approval points), 평가 테스트(evaluation tests)를 정의하면서 모델을 비즈니스 도구에 연결해야 하는 팀에 적합합니다.