AI 레드티밍 교재와 공식 챌린지

에피소드별 교재

수업 영상 시작 교재 연결 챌린지
1 00:00 에피소드 1. AI 레드티밍의 목적과 세 가지 위험 시험 범위 설명
2 06:05 에피소드 2. 생성형 AI의 학습과 글 처리 토큰·임베딩 그림 설명
3 13:29 에피소드 3. 시스템 프롬프트와 AI 앱의 입력 경로 Lab 1
4 19:06 에피소드 4. 간접 인젝션과 웹페이지 요약 데모 Lab 6
5 25:25 에피소드 5. 한 턴 공격과 입력 표현 바꾸기 Lab 1·2
6 35:32 에피소드 6. 여러 턴 공격과 대화 이력 Lab 5
7 42:59 에피소드 7. 스포트라이팅과 외부 자료 구분 Lab 6 방어 비교
8 49:53 에피소드 8. 파이릿의 구성과 자동화 데모 Lab 1 노트북 구조
9 57:55 에피소드 9. 한 턴 자동화와 성공 판정 Lab 1 자동화
10 1:06:26 에피소드 10. 여러 턴 자동화와 결과 검토 Lab 5·13 노트북

각 수업에는 구체적인 상황 설명, 한국어 비교표·경로도·순서도, 이해 확인 문제와 답이 있다. 영상 링크는 출처 확인용이며, 용어의 뜻과 예시를 링크 밖의 본문에서도 설명한다. 토큰 그림은 공식 강의의 분해 예이고 임베딩 그림은 관계를 설명하는 개념도다. 실제 모델의 측정 결과와 교재용 가상 예를 구분해 표시했다.

공식 챌린지 진행

AI Red Teaming Playground Labs는 모의 웹페이지를 바꾸거나 연습 파일·비밀값을 찾는 과제를 제공한다. 강의와 소스는 공개되어 있지만 랩 실행에는 Docker와 모델 API 설정이 필요하다. 실제 모델 호출에는 이용 비용이 발생할 수 있다.

먼저 정상 결과를 확인하고, 시험 입력을 하나씩 바꾸고, 목표와 실제 응답을 비교한다. 세 명은 입력 작성, 정상 동작·방어 확인, 기록·판정을 나누어 진행하고 다음 과제에서 역할을 바꾼다. 한 턴은 새 대화에서, 여러 턴은 같은 이력을 유지하며 시험한다.

API를 아직 준비하지 않았다면 에피소드 1~2의 그림 설명, 공식 과제의 목표 읽기, 노트북의 대상·점수·기록 위치 찾기부터 할 수 있다. 이는 공식 랩 실행 완료와 구분한다. 영상의 예전 Gandalf 주소는 확인 시 Lakera Agent Breaker로 이동했다. 영상의 과거 레벨과 현재 서비스의 목표·이용 조건이 같다고 가정하지 않는다.

공식 보조 교재

공식 챌린지 실행

공식 저장소에는 웹 인터페이스와 Lab 1·5·13 노트북이 있다. 웹 홈은 과제 선택 화면이며 진도와 순위표를 관리하지 않는다. 영상의 점수 화면과 현재 기본 구성은 다르다. 자동 점수가 없으면 과제의 실제 목표와 응답을 사람이 대조한다.

준비할 것

Docker 엔진, Git, Python 3.8 이상, 사용할 모델 API가 필요하다. 공식 README는 Azure OpenAI와 표준 OpenAI 설정을 제공한다. 다음은 표준 OpenAI로 선택한 네 과제를 실행하는 절차다. Azure를 쓸 때는 저장소의 .env.example과 Azure용 Compose 파일을 따른다.

git clone https://github.com/microsoft/AI-Red-Teaming-Playground-Labs.git
cd AI-Red-Teaming-Playground-Labs
docker info

docker info에서 서버 정보가 나와야 한다. 명령이 설치돼 있어도 엔진이 실행되지 않으면 컨테이너는 시작하지 못한다. Docker Desktop 또는 사용 중인 엔진을 먼저 실행한다.

연결 설정

저장소 루트에 .env를 만들고 아래 항목을 채운다. 값의 의미를 이해하기 위한 틀이며 그대로 호출할 수 있는 키나 모델 이름은 아니다. 사용할모델이름은 자신의 계정에서 사용할 모델로 바꾼다.

.env의 각 줄은 변수이름=값 형식으로 쓴다. 다음 이름에 해당 값을 넣는다.

변수 이름 넣을 값
OPENAI_API_KEY 자신의 API 키
OPENAI_TEXT_MODEL 사용할 모델 이름
OPENAI_EMBEDDING_MODEL 공식 구성의 text-embedding-ada-002
AUTH_KEY 직접 생성한 무작위 로그인 값
SECRET_KEY 별도로 생성한 무작위 서명 값

AUTH_KEY는 연습 화면 로그인 값, SECRET_KEY는 구성요소 사이의 서명에 사용하는 값이다. 두 값은 각각 새로 만든다. Python에서 secrets.token_urlsafe(32)로 만들 수 있다. .env와 로그인 인증값은 공개 실습 기록에 넣지 않는다. 임베딩 모델 이름은 확인한 공식 구성의 값이며 실제 계정에서 사용할 수 있는지 확인한다.

선택한 과제 시작과 종료

docker compose -p ai-redteam-study -f docker-compose-openai.yaml up --build -d challenge-home chat-copilot-1 chat-copilot-2 chat-copilot-5 chat-copilot-6
docker compose -p ai-redteam-study -f docker-compose-openai.yaml ps

과제 선택 홈과 Lab 1·2·5·6만 시작한다. ps로 실행 상태를 확인하고 브라우저에서 http://127.0.0.1:5000/login?auth=AUTH_KEY에넣은값을 연다. macOS에서는 공식 README 안내대로 IPv4 주소 127.0.0.1을 사용한다. 홈에서 과제를 고른 뒤 정상 요청을 먼저 보내 실제 응답이 오는지 확인한다.

Lab 1은 파일의 실제 연습 값, Lab 2는 메타프롬프트의 모의 비밀값, Lab 6은 웹페이지 요약의 작업 변경이 목표다. Lab 5는 인플레이션 설명에서 욕설을 유도하는 여러 턴 과제다. 공식 README는 Lab 5의 안전 필터를 비활성화한 과제 조건임을 밝힌다. 해당 결과를 기본 필터를 유지한 제품의 결과로 설명하지 않는다.

실습이 끝나면 이번 Compose 프로젝트를 종료한다.

docker compose -p ai-redteam-study -f docker-compose-openai.yaml down

노트북과 세 명의 결과 검토

각 노트북의 설치·연결 셀을 읽고 현재 PyRIT 버전과 맞춘다. 모델 연결 정보를 넣어 실행하기 전에 입력 생성 모델·시험 대상·평가 기준·최대 시도 수를 찾는다. 영상의 클래스 이름을 현재 API라고 가정하지 않는다.

한 명은 입력과 변경 이유를 적고, 한 명은 정상 동작과 실제 응답을 확인하고, 한 명은 점수와 목표를 대조한다. 과제가 바뀌면 역할을 바꾼다. 원문·변환문·전체 응답·도구 실행·자동 점수·사람 판정·종료 이유를 기록한다. 실패한 시도도 남긴다. 설명을 읽은 것과 실제 과제를 실행한 것은 따로 기록한다.

Microsoft AI Red Teaming 101의 영어 자동 자막·공식 슬라이드·공식 실습 자료를 대조했다.

AI Red Teaming 101

  1. AI 레드티밍 교재와 공식 챌린지
  2. 에피소드 1. AI 레드티밍의 목적과 세 가지 위험
  3. 에피소드 2. 생성형 AI의 학습과 글 처리
  4. 에피소드 3. 시스템 프롬프트와 AI 앱의 입력 경로
  5. 에피소드 4. 간접 인젝션과 웹페이지 요약 데모
  6. 에피소드 5. 한 턴 공격과 입력 표현 바꾸기
  7. 에피소드 6. 여러 턴 공격과 대화 이력
  8. 에피소드 7. 스포트라이팅과 외부 자료 구분
  9. 에피소드 8. 파이릿의 구성과 자동화 데모
  10. 에피소드 9. 한 턴 자동화와 성공 판정
  11. 에피소드 10. 여러 턴 자동화와 결과 검토
  12. Lab 1: 12번의 실패, 새 채팅의 성공
  13. Lakera Agent Breaker - Trippy Planner - Lv 1&2
이 글의 목차