마이크로소프트가 AI 보안의 핵심 부분을 오픈소스로 공개하고, 클라우드 또는 소규모 언어 모델에서 데이터 집합을 대상에 연결하고 결과를 채점하는 툴킷을 제공한다.
마이크로소프트 AI 서비스의 중심은 신뢰할 수 있고 안전한 AI를 제공한다는 약속이다. 애저 AI 스튜디오를 사용해서 인터페이스를 구축하고 실행하는 경우 입력에서 알려진 프롬프트 공격을 검사하는 숨은 툴 모음의 이점을 얻을 수 있다. 또한 출력도 테스트를 거쳐 오류 위험을 최소화한다.
이러한 툴은 현재 성장 중인 내부 AI 보안 조직의 공개적인 측면이다. 이 조직은 AI 애플리케이션을 일반에 노출하는 것과 관련된 위험을 방지하는 툴과 서비스를 구축한다. 마이크로소프트의 AI 운영 규모는 방대해서, 30개 이상의 데이터센터와 추론 전용 하드웨어로 구성되며 수십억 달러를 투자한 하드웨어와 소프트웨어로 빙과 다양한 코파일럿 애플리케이션을 통해 수백만 명의 사용자에게 서비스를 제공한다.
새로운 방어선 : AI 보안
이 수백만 명의 사용자는 마이크로소프트의 새로운 AI 보안 팀에게 사람들이 AI 시스템을 어떻게 공격해서 프롬프트를 조작하고 AI의 안전과 신뢰성을 보호하는 가드레일을 뚫으려 시도하는지에 대한 시야를 제공한다. AI 안전 툴은 모래사장에서 바늘을 찾고 조기에 공격 패턴을 포착해 공격자가 마이크로소프트 서비스에 접근하지 못하도록 해야 한다.
공격을 기다리기만 해서는 안 된다. 마이크로소프트가 AI 서비스에 대한 공격 패턴을 감지하는 툴을 갖고 있다 해도 공격자는 예를 들어 검색 증강 생성(RAG) 애플리케이션에 사용되는 그라운딩 데이터를 빼내거나 AI 에이전트가 안전하지 않은 워크플로우와 내부 API를 사용하도록 강제하는 등의 행위로 피해를 입힐 수 있다.
공격자가 새로운 기법을 사용하기 전에 적절한 차단벽과 가드레일을 마련할 방법이 필요하다. 마이크로소프트는 AI 제로데이가 사용되기 전에 포착할 수 있어야 한다. 그래야 코드를 수정해서 사용되지 않도록 할 수 있다.
마이크로소프트 AI 레드 팀의 역할이 여기에 있다. 코드에서 취약점을 찾는 전통적인 레드 팀과 달리 AI 레드 팀은 표면적으로 무해해 보이는 입력에서 가능한 출력을 살핀다. 마이크로소프트 그룹은 AI 모델이 어떻게 실패하는지 설명하는 데 도움이 되는 툴과 함께 더 폭넓은 AI 업계에서 AI 모델을 조사하고 테스트하는 데 사용할 수 있는 다른 툴도 개발했다.
파이릿 소개
이러한 툴 중 하나가 파이릿(PyRIT)이다. 파이릿은 머신 러닝 엔지니어와 보안 팀 모두를 위한 오픈소스 툴 모음이다. 이 이름은 생성형 AI를 위한 파이썬 위험 식별 툴(Python Risk Identification Tool)을 뜻한다(어떤 이유인지 ‘생성형 AI’ 부분은 약어에서 빠짐). 로컬 모델과 클라우드에 호스팅되는 원격 AI 서비스에서 모두 사용 가능하다.
파이릿은 AI 보안 툴킷이라고 생각하면 된다. 대상을 정의할 수 있으며, 정적 프롬프트와 템플릿 프롬프트 데이터 집합을 모두 구축할 수 있고 대화에서 하나의 프롬프트 또는 여러 프롬프트로 모델을 공격할 수 있다. 결과는 채점되고 나중에 숙련된 레드 팀원이 분석할 수 있도록 다양한 형식으로 데이터가 저장된다. 목표는 기본적인 보안 테스트를 자동화해서 보안 전문가가 파이릿에서 제기한 문제 또는 아직 완전히 문서화되지 않은 새로운 공격 유형에 집중할 수 있도록 하는 것이다.
설치는 간단하다. 파이썬 툴이므로 최신 환경이 필요하다. 마이크로소프트는 샌드박스 환경에서 실행되도록 콘다(conda)에 호스팅할 것을 권장한다. 먼저 환경을 만들고 활성화한 다음 pip를 통해 파이릿을 설치한다. 파이릿은 노트북에서 실행되므로 주피터 등을 통해 인터랙티브한 방식으로 작업할 수 있다.
문서의 대부분은 노트북을 통해 제공되므로 인터랙티브하게 사용할 수 있다. 전통적인 문서의 흥미로운 대안으로, 로컬 또는 깃허브에서 사용할 수 있다.
파이릿을 사용해 생성형 AI 테스트하기
파이릿의 중심은 오케스트레이터다. 이는 데이터 집합을 대상에 연결해서 잠재적이 공격자가 사용할 수 있는 공격을 구성하는 방법이다. 툴은 간단한 프롬프트 작업부터 일반적인 공격 유형을 구현하는 더 복잡한 작업까지 다양한 오케스트레이터를 제공한다. 오케스트레이터의 작동 방법에 익숙해지면 직접 오케스트레이터를 구축해서 새롭고 다양한 공격을 실험할 수 있다. 결과는 AI와 보안 툴이 프롬프트에 어떻게 반응하는지를 평가하여 채점된다. 프롬프트를 거부했는가, 아니면 유해한 응답을 제공했는가?
오케스트레이터는 파이썬으로 작성되며 저장된 비밀을 사용해서 엔드포인트에 액세스한다. 오케스트레이터는 대상과 프롬프트를 정의하고 나중에 분석하기 위해 출력을 수집해 분석하는 워크플로우라고 생각하면 된다. 한 가지 흥미로운 옵션은 프롬프트를 다른 형식으로 변환하는 기능이다. 예를 들어 표준 텍스트 프롬프트 대신 Base64 인코딩을 사용할 때 어떤 효과를 얻는지 볼 수 있다.
파이릿 컨버터는 다양한 텍스트 인코딩을 사용하는 것 이상의 기능을 한다. 프롬프트에 노이즈를 추가해서 오류의 영향을 확인하고 톤을 변경하거나 다른 언어로 번역할 수도 있다. 외부 대규모 언어 모델(LLM)을 호출해서 프롬프트를 변경하는 컨버터를 호출할 수도 있지만 이 방법은 테스트에 지연을 유발하므로 로컬 컨버터가 선호된다. 최상의 성능은 정적 콘텐츠에서 얻을 수 있으므로 필요에 따라 호출할 수 있는 다양한 프롬프트 라이브러리를 구축하는 것이 좋다.
텍스트 프롬프트로 제한되지 않는다. 파이릿은 멀티 모달 모델에서 작동하도록 설계됐으므로 알려진 샘플을 사용해서 컴퓨터 비전이나 음성 인식을 테스트할 수 있다. 불법적이거나 원치 않는 영상이 포함되거나 모델이 내용을 잘못 해석할 가능성이 있는 프롬프트를 테스트할 수 있다.
오케스트레이터는 테스트 대상 모델에만 사용할 수 있는 것이 아니다. 애저의 콘텐츠 필터와 같은 다른 AI 모델과 함께 사용해서 응답을 채점하고 평가할 수 있다. 이는 모델의 편향을 파악하는 데 도움이 된다.
파이릿의 또 다른 주요 특징은 메모리인 덕DB(DuckDB) 데이터베이스다 덕DB는 대화 기록과 채점 데이터를 관리한다. 요청과 응답은 이후 분석을 위해 데이터베이스에 저장된다. 데이터는 엑셀, 파워 BI 또는 기타 툴을 사용해 추출 및 분석된다. 이와 동시에 메모리는 여러 테스트를 위한 프롬프트 라이브러리를 호스팅한다. 정상 프롬프트와 공격 두 가지 모두의 라이브러리가 있으면 애플리케이션의 동작을 벤치마킹하는 데 도움이 되므로 유용하다. 또한 프롬프트를 팀원들과 공유하는 공간도 제공한다.
엣지의 SLM에 파이릿 사용하기
클라우드에 호스팅되는 AI 서비스로만 제한되지 않는다. 파이릿은 ONNX 호스팅 AI 모델을 지원하므로 로컬 소규모 언어 모델(SLM)을 사용하는 누구에게나 유용한 툴이다. 파이 실리카(Phi Silica)를 기반으로 하는 애플리케이션을 포함해 소규모 언어 모델을 구축하기 테스트하기 위한 또 다른 측면으로 코파일럿 런타임과 함께 실행되는 것을 흔히 볼 수 있다.
또 다른 유용한 기능은 다양한 실행을 비교하는 기능이다. 애플리케이션에 완화(mitigation)를 추가하면 일련의 파이릿 테스트가 이전 테스트와 보안 성능을 비교한다. 모델의 보안 성능이 개선되었는가, 악화되었는가? 버전 비교를 통해 더 효과적으로 작업을 개선하고 특정 변경이 AI 애플리케이션 동작에 미치는 영향을 파악할 수 있다.
마이크로소프트는 이 접근 방법을 사용해서 자체 LLM 기반 코파일럿을 테스트하고, 코파일럿 챗봇의 작동 방법을 정의하고 프롬프트 주입을 통한 탈옥 공격을 차단하는 가드레일을 확인하는 데 도움이 되는 기본 메타프롬프트의 다양한 반복을 확인한다.
파이릿은 유용한 툴이지만 그 유용성은 파이릿을 사용하는 엔지니어에 의해 좌우된다. AI 보안은 새로운 분야로, 프롬프트 엔지니어링과 데이터 과학, 두 영역 모두에 대한 기존 보안 기법과 스킬을 필요로 한다. 이는 파괴에 대비한 보호 수단을 테스트함으로써 안전한 AI 서비스를 구축하기 위해 노력하는 레드 팀과 블루 팀에 모두 필요하다. 결국 방어는 항상 작동해야 하지만 공격자는 한 번만 방어를 통과하면 된다.
dl-ciokorea@foundryco.com