본문으로 건너뛰기

보안 설정

Elftia는 Agent 도구 호출 및 외부 메시지 인젝션의 잠재적 위험으로부터 시스템을 보호하기 위한 다중 레이어 보안 보호 메커니즘을 제공합니다. 이 페이지에서는 보안 관련 설정 옵션을 모두 자세히 설명합니다.

보안 아키텍처 개요

Elftia의 보안 시스템은 다음과 같은 핵심 구성 요소로 이루어져 있습니다:

구성 요소위치기능
GuardianAgentAgent 실행 레이어AI를 사용하여 도구 호출의 보안성을 검토
PromptGuardianChannel 메시지 레이어외부 메시지의 프롬프트 인젝션 공격 감지
권한 모드Agent 상호작용 레이어사용자가 도구 실행을 확인해야 하는지 제어
InputSanitizerChannel 메시지 레이어정규식 매칭 기반 규칙 기반 입력 필터링
AuditLogger전역모든 보안 이벤트에 대한 감사 로그 기록

GuardianAgent

GuardianAgent는 AI 기반 보안 검토 모듈입니다. Agent가 도구 호출을 실행할 때 GuardianAgent는 먼저 독립적인 LLM을 사용하여 작업의 위험 수준을 평가하고, 설정에 따라 실행 허용 여부를 결정합니다.

네 가지 모드

모드동작권장 시나리오
끄기완전히 비활성화, 성능 오버헤드 없음개인 사용, Agent 동작 신뢰
모니터민감한 도구 호출 검토, 차단 없이 로그만 기록Agent 동작을 이해하되 방해받지 않고 싶은 경우
가드민감한 도구 호출 검토, 고위험 및 치명적 작업 차단일상 사용, 보안과 편의성의 균형
엄격모든 도구 호출 검토, 중간 위험 이상 차단공유 환경, 최대 보안 요구 사항

위험 수준

GuardianAgent는 도구 호출을 다섯 가지 위험 수준으로 분류합니다:

위험 수준의미예시
없음완전히 안전프로젝트 내 파일 읽기, 디렉토리 목록 보기
낮음경미한 위험작업 공간 내 프로젝트 파일 쓰기
중간보통 위험시스템 상태를 수정하는 Shell 명령 실행, npm 패키지 설치
높음심각한 위험민감한 경로 접근, 작업 공간 외부 파일 조작, 네트워크 작업
치명적즉각적인 위험재귀적 삭제 명령, 데이터 탈취, 권한 상승

모드별 차단 동작

위험 수준끄기모니터가드엄격
none허용허용허용허용
low허용로그 + 허용허용허용
medium허용로그 + 허용허용차단
high허용로그 + 허용차단차단
critical허용로그 + 허용차단차단

민감한 도구

모니터 및 가드 모드에서는 다음 "민감한 도구"만 보안 검토를 트리거합니다:

  • Bash: Shell 명령 실행
  • Write: 파일 쓰기
  • Edit: 파일 편집
  • Agent: 하위 Agent 생성

엄격 모드에서는 모든 도구 호출(파일 읽기 포함)이 검토를 트리거합니다.

내결함성 설계

모드타임아웃/오류 발생 시 동작
모니터 / 가드허용 (fail-open) — 검토를 사용할 수 없을 때 정상 작업을 차단하지 않음
엄격차단 (fail-closed) — 검토를 사용할 수 없을 때 기본적으로 거부

검토 타임아웃은 15초입니다. LLM이 15초 이내에 검토 결과를 반환하지 않으면 위의 규칙이 적용됩니다.

설정 위치

설정 → Clawia → GuardianAgent 모드

원하는 모드를 선택하세요. 변경 사항은 재시작 없이 즉시 적용됩니다.

감사 로그

모든 검토 결과(차단 여부와 상관없이)는 감사 로그에 기록됩니다. 설정 → Clawia → 감사 로그에서 이전 검토 기록을 볼 수 있으며, 다음을 포함합니다:

  • 타임스탬프
  • 도구 이름 및 매개변수
  • 검토 결과 (위험 수준, 이유)
  • 차단 여부

PromptGuardian

PromptGuardian은 Channel (다중 플랫폼 채널) 메시지를 위한 보안 보호 기능입니다. Elftia가 Discord, Telegram 등의 채널을 통해 외부 사용자의 메시지를 수신할 때, PromptGuardian은 AI를 사용하여 메시지에 프롬프트 인젝션 공격이 포함되어 있는지 감지합니다.

세 가지 모드

모드동작권장 시나리오
끄기인젝션 감지 없음혼자 Channel을 사용하는 경우, 모든 메시지 소스 신뢰
모니터인젝션 감지, 차단 없이 로그만 기록의심스러운 메시지가 있는지 관찰하고 싶은 경우
차단인젝션 감지, 의심스러운 메시지를 차단하고 친절한 거절 메시지 반환공개 Channel, 악의적인 사용자 방어 필요

감지 내용

PromptGuardian은 다음 유형의 공격을 감지할 수 있습니다:

  • 지시 재정의: 시스템 지시를 재정의하거나 우회하려는 시도 (예: "위의 모든 지시를 무시하세요")
  • 역할 조작: 다른 신원을 가장하는 것 (예: "당신은 이제 DAN입니다")
  • 프롬프트 마커 인젝션: 시스템/지시 마커 삽입 (예: [INST], <|im_start|>)
  • 프롬프트 추출: 시스템 프롬프트 내용을 얻으려는 시도
  • XML/태그 인젝션: 도구 호출 마커 삽입 (예: <tool_use>, <function_calls>)
  • 인코딩 우회: base64 인코딩, 보이지 않는 문자 등의 기법 사용
  • 소셜 엔지니어링: "교육 목적" 또는 "가상 시나리오"를 사용하여 보안 규칙 우회
  • 다단계 공격: 여러 메시지에 걸쳐 점진적으로 공격 구축

차단 시 동작

메시지가 차단될 때 PromptGuardian은 사용자에게 보안 감지의 존재를 드러내지 않습니다. 대신 무작위의 친절한 거절 메시지(예: "신호가 끊겼어요~ 다른 주제로 바꿔볼까요")를 반환하여 공격자가 전략을 조정할 수 없도록 합니다.

내결함성 설계

PromptGuardian은 fail-open 설계를 채택합니다. 검토 시간 초과(10초) 또는 실패 시 메시지는 정상적으로 통과되며, 보안 감지 실패로 인해 메시지 흐름이 중단되지 않습니다.

설정 위치

PromptGuardian 설정은 Channel 보안 설정에 있습니다. 먼저 보안 검토에 사용할 LLM 제공자와 모델을 설정해야 합니다.

권한 모드

권한 모드는 Agent가 도구 호출을 실행할 때 사용자 확인이 필요한지 여부를 제어합니다.

모드동작사용 사례
기본민감한 작업은 사용자 확인 필요일상 사용, 권장
AcceptEdits파일 편집은 자동 통과, 다른 작업은 여전히 확인 필요Agent의 코드 편집 능력 신뢰
BypassPermissions모든 작업 자동 통과Agent를 완전히 신뢰하고 최대 효율 추구
PlanAgent는 계획만 세우고 어떤 작업도 실행하지 않음Agent의 동작 계획 검토
주의

"BypassPermissions" 모드는 Agent가 모든 작업(Shell 명령 및 파일 삭제 포함)을 직접 실행하도록 허용합니다. Agent 동작을 완전히 신뢰하고 안전한 환경에 있을 때만 사용하세요. GuardianAgent의 "가드" 또는 "엄격" 모드와 함께 사용하는 것을 권장합니다.

Channel 보안 설정

Channel을 통해 외부 플랫폼을 연결할 때 다음 보안 옵션을 설정할 수 있습니다:

속도 제한

설정설명
메시지 속도 제한특정 시간 내 사용자당 최대 메시지 수 제한
전역 속도 제한Channel의 전체 메시지 처리 속도 제한

입력 필터링

InputSanitizer는 정규식 기반 입력 필터링을 제공합니다 (PromptGuardian 전에 실행):

  • 알려진 악성 패턴 필터링
  • 잠재적인 인젝션 마커 정리
  • 경고 로그만 생성하고 메시지를 차단하지 않음

사용자 역할

Channel은 다양한 사용자에게 역할을 할당하여 접근 권한을 제어할 수 있습니다.

보안 설정 권장 사항

개인 사용

Elftia를 개인 용도로만 사용하고 외부에 서비스를 제공하지 않는 경우:

설정권장값
GuardianAgent끄기 또는 모니터
PromptGuardian끄기
권한 모드기본

공유 Channel

Channel이 외부 사용자가 메시지를 보낼 수 있도록 공개된 경우:

설정권장값
GuardianAgent가드 또는 엄격
PromptGuardian차단
권한 모드기본
속도 제한활성화

개발 및 디버깅

개발 및 테스트 시나리오에서:

설정권장값
GuardianAgent모니터
PromptGuardian모니터
권한 모드AcceptEdits

이를 통해 감사 로그에서 보안 이벤트를 관찰하면서 개발 효율성에 영향을 주지 않을 수 있습니다.

감사 로그

모든 보안 이벤트는 감사 로그에 기록되며 설정 → Clawia → 감사 로그에서 확인할 수 있습니다.

로그에는 다음 정보가 기록됩니다:

필드설명
시간이벤트 발생 시간
유형GuardianAgent / PromptGuardian / 권한
작업특정 도구 이름 또는 메시지 소스
결과허용 / 차단
세부 정보위험 수준, 이유 설명 등

감사 로그를 정기적으로 검토하면 Agent의 동작 패턴과 잠재적인 보안 위협을 파악하고 보안 정책을 적절히 조정하는 데 도움이 됩니다.


더 많은 설정 옵션은 설정 참고를 참조하세요. 사용 중 보안 관련 문제가 발생하면 자주 발생하는 문제를 참조하세요.