본문으로 건너뛰기

LLM 추론 흔적 탐지 도구 aileaks

aileaks는 Anthropic·OpenAI·Google의 암호화된 추론 흔적 블록을 로그와 CI에서 탐지한다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

LLM Provider가 응답과 함께 반환하는 redacted_thinking.data, reasoning.encrypted_content, thoughtSignature는 암호문처럼 보이지만 로그에 남을 경우 민감 정보가 노출될 수 있는 추론 흔적 블록이다. aileaks는 이 데이터를 복호화하지 않고 Provider별 구조와 필드 패턴을 JSON·JSONL 파싱 또는 일반 텍스트 정규식으로 탐지하며, 결과에 structural 또는 text 신뢰도를 부여한다. npx 명령, 표준 입력 파이프, GitHub Action을 지원하고 발견 시 종료 코드 1을 반환해 CI 차단 장치로 쓸 수 있다. API 키와 비밀번호는 검사하지 않으므로 gitleaks나 trufflehog와 병행해야 한다.

섹션별 상세

LLM Provider가 응답과 함께 반환하는 reasoning-trace 블록은 암호문처럼 보여도 단순한 잡음으로 취급하기 어렵다. Anthropic의 redacted_thinking.data, OpenAI의 reasoning.encrypted_content, Google의 thoughtSignature가 로그와 CI 산출물에 그대로 남으면 민감한 정보가 섞일 수 있다. 공개 로그를 대상으로 한 최근 연구와 조사에서 이러한 블록이 평문으로 복원되거나 PII와 실시간 자격 증명이 발견된 사례가 제시되면서, 저장 단계부터 비밀값처럼 다뤄야 할 필요가 커졌다.
bash
npx aileaks scan .

# defaults to the current directory
aileaks scan [path]
--format <text|json> # default: text
--ignore <glob...> # additional glob(s) to skip
--no-fail # always exit 0, even with findings

현재 디렉터리나 지정한 경로를 검사하고 출력 형식, 제외할 glob, 발견 시 종료 동작을 설정하는 CLI 사용 예시다.

bash
psql -Atc "select transcript from agent_runs where id = 42" | aileaks scan -

데이터베이스에서 에이전트 대화 기록을 표준 입력으로 직접 전달해 파일로 저장되지 않은 콘텐츠를 검사한다.

근거
  • aileaks는 LLM Provider의 reasoning-trace 블록을 복호화하지 않고 알려진 구조를 탐지한다. README의 도구 개요와 What it does not do 절
  • Anthropic, OpenAI, Google의 Provider별 추론 흔적 필드가 탐지 대상에 포함된다. What it detects (v1)의 Provider·Block shape·Severity 표
  • 구조적 JSON 탐지와 비JSON 정규식 탐지는 각각 structural과 text 신뢰도로 구분되고 중복 결과가 제거된다. What it detects (v1) 아래 confidence 설명 문단
  • 발견 항목이 있으면 종료 코드 1을 반환해 CI 파이프라인의 게이트로 사용할 수 있다. CLI 절의 Exit code 설명과 GitHub Action 설정 예시
aileaks는 추론 흔적을 복호화하거나 Provider API를 호출하지 않고, 알려진 구조와 필드 조합을 찾아내는 탐지기로 동작한다. JSON과 JSONL을 파싱할 때는 실제 객체가 정확한 형태를 갖췄는지 확인하고, 일반 텍스트 로그나 잘린 출력에서는 정규식으로 패턴을 찾는다. 두 스캐너의 결과는 중복 제거되며 구조적 일치에는 structural, 텍스트 패턴에는 text 신뢰도가 붙어 탐지 근거를 구분한다.
yaml
- uses: sarthakuwar/aileaks@v0
  with:
    path: .
    fail-on-findings: "true"

GitHub Action에서 저장소 전체를 검사하고 탐지 결과가 있으면 작업을 실패시키는 CI 설정이다.

CLI는 npx aileaks scan .으로 저장소나 로그 디렉터리를 순회하며 검사하고, 표준 입력을 뜻하는 -를 사용하면 데이터베이스에서 꺼낸 transcript처럼 파일에 기록되지 않은 콘텐츠도 파이프로 넘길 수 있다. 발견 항목이 있으면 종료 코드 1, 없으면 0을 반환하고 --no-fail을 지정하면 항상 0을 반환한다. 이 동작 덕분에 검사 결과를 CI의 실패 조건으로 연결하거나 JSON 형식으로 후속 처리할 수 있다.
typescript
import { scanPath } from "aileaks";
const findings = await scanPath("./logs");

TypeScript 코드에서 scanPath를 호출해 로그 디렉터리의 탐지 결과를 프로그래밍 방식으로 가져온다.

GitHub Action에서는 sarthakuwar/aileaks@v0에 path와 fail-on-findings를 지정해 저장소에 추론 흔적이 들어오는 순간 작업을 중단할 수 있다. 다만 aileaks는 API 키나 비밀번호 같은 일반 비밀값을 검사하지 않으므로 gitleaks 또는 trufflehog를 별도로 함께 사용해야 한다. 저장소·로그·에이전트 실행 기록에 Provider 응답을 남기는 팀이라면 기존 secret-scanning 도구가 놓치는 추론 상태 블록을 별도 검사 대상으로 추가할 수 있다.

용어 해설

추론 흔적(Reasoning Trace)
LLM 응답과 함께 제공되는 내부 추론 관련 데이터 블록이다. Anthropic의 redacted_thinking.data, OpenAI의 reasoning.encrypted_content, Google의 thoughtSignature처럼 암호문과 유사한 형태로 전달되며, 로그에 남으면 민감 정보가 포함될 가능성이 있어 비밀값처럼 관리해야 한다.
암호화된 사고 과정(Encrypted Chain-of-Thought)
모델의 추론 상태나 사고 과정에 해당하는 데이터를 외부에서 읽기 어렵도록 변환한 값이다. 일부 Provider는 응답에 이 블록을 포함해 후속 대화나 도구 호출에서 상태를 이어가지만, 원문 로그에 보관하면 보안 위험이 생길 수 있다.
JSON Lines(JSONL)
각 줄에 하나의 JSON 객체를 저장하는 로그 형식이다. aileaks는 JSON과 JSONL을 구조적으로 파싱한 뒤 Provider별 필드와 값의 정확한 형태를 확인해 정규식보다 높은 신뢰도의 탐지 결과를 생성한다.
CI 파이프라인(CI Pipeline)
코드 변경 때마다 빌드·테스트·검사를 자동 실행하는 처리 흐름이다. aileaks는 발견 항목이 있으면 종료 코드 1을 반환하고 없으면 0을 반환하므로 GitHub Action이나 다른 CI 단계에서 로그 유출을 차단하는 게이트로 사용할 수 있다.
비밀정보 탐지(Secret Scanning)
저장소와 로그에서 API 키, 비밀번호처럼 외부에 노출되면 안 되는 값을 찾는 보안 검사다. aileaks는 일반적인 비밀정보 전체가 아니라 LLM Provider의 추론 흔적 블록이라는 별도 범주를 맡으며, gitleaks나 trufflehog와 함께 사용하도록 설계됐다.

기술

  • aileaks
  • Anthropic
  • OpenAI
  • Google
  • npm
  • npx
  • GitHub Action
  • gitleaks
  • trufflehog
  • TypeScript
  • JSON
  • JSONL

활용 사례

  • LLM 응답 로그의 reasoning-trace 블록 검사
  • 공개 저장소에 커밋되기 전 CI 산출물 검사
  • 데이터베이스에서 추출한 에이전트 transcript의 표준 입력 검사
  • GitHub Action을 통한 저장소 보안 게이트 구성
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 12.수집 2026. 08. 12.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.