AI 에이전트를 공개 채팅 플랫폼에 노출할 때 보안 제어는 매우 중요합니다. 제한 없는 AI Bot은 남용될 수 있습니다. 대량의 API 비용 소모, 부적절한 콘텐츠 생성, 민감한 정보 유출 등의 위험이 있습니다. OpenClaw은 누가 AI와 상호작용할 수 있고 어떻게 상호작용할 수 있는지를 제어하기 위한 다층 보안 메커니즘을 제공합니다.
보안 위협 개요
공개 채팅 플랫폼에서 AI Bot을 운영할 때 직면하는 주요 위험:
- 미승인 사용자가 AI 리소스를 남용하여 고액의 API 비용 발생
- 악의적 사용자가 프롬프트 인젝션(Prompt Injection)을 통해 AI 행동 조작 시도
- 그룹 채팅에서 AI가 부적절하게 트리거되어 부적절한 내용 응답
- AI 응답을 통해 미승인 인원에게 민감한 정보 유출
OpenClaw의 보안 메커니즘은 바로 이러한 시나리오에 대응하기 위해 설계되었습니다.
Allowlist 화이트리스트 메커니즘
Allowlist는 OpenClaw의 가장 기본적이면서도 효과적인 접근 제어 수단입니다. 원리는 간단합니다: 화이트리스트에 있는 사용자만 AI와 상호작용할 수 있고, 다른 사용자의 메시지는 무시됩니다.
전역 화이트리스트
openclaw.json의 최상위에 전역 화이트리스트를 설정하면 모든 채널에 적용됩니다:
{
"security": {
"allowlist": {
"enabled": true,
"users": [
{"platform": "telegram", "id": "123456789"},
{"platform": "whatsapp", "id": "[email protected]"},
{"platform": "discord", "id": "987654321098765432"}
]
}
}
}
전역 화이트리스트는 플랫폼명과 사용자 ID 형식으로 사용자를 식별합니다. 이를 통해 한 곳에서 모든 플랫폼의 승인된 사용자를 관리할 수 있습니다.
채널별 화이트리스트
각 채널에도 고유한 화이트리스트를 설정할 수 있으며, 전역 화이트리스트와 합집합으로 적용됩니다:
{
"channels": {
"telegram": {
"allowlist": [123456789, 111222333]
},
"whatsapp": {
"allowlist": ["[email protected]"]
}
}
}
화이트리스트 모드
OpenClaw은 두 가지 화이트리스트 모드를 지원합니다:
엄격 모드(strict): 화이트리스트에 있는 사용자만 상호작용할 수 있습니다. 기본 모드이며 프라이빗 배포에 적합합니다.
관대 모드(permissive): 모든 사용자가 상호작용할 수 있지만, 화이트리스트 사용자는 더 높은 우선순위와 더 많은 기능 권한을 가집니다. 예를 들어 일반 사용자는 하루 10건만 메시지를 보낼 수 있지만 화이트리스트 사용자는 제한이 없습니다.
{
"security": {
"allowlist": {
"mode": "strict"
}
}
}
개인 메시지 페어링 메커니즘
개인 메시지 페어링(Private Message Pairing)은 OpenClaw의 독특한 보안 기능입니다. 사용자가 먼저 Bot과의 개인 메시지를 통해 신원 인증을 완료한 후에야 그룹 채팅 등의 시나리오에서 AI 기능을 사용할 수 있습니다.
동작 흐름
- 사용자가 그룹 채팅에서 처음으로 AI와 상호작용 시도
- Bot이 해당 사용자가 미페어링 상태임을 감지하고 개인 메시지를 전송 (또는 사용자에게 Bot에 직접 메시지를 보내도록 안내)
- 사용자가 개인 메시지에서 일회성 페어링 코드를 수신
- 사용자가 개인 메시지에서 페어링 코드를 회신하여 인증 완료
- 인증 성공 후 사용자는 그룹 채팅에서 정상적으로 AI 기능 사용 가능
개인 메시지 페어링 설정
{
"security": {
"pairing": {
"enabled": true,
"codeExpiry": 300,
"codeLength": 6,
"maxAttempts": 3,
"pairingMessage": "AI 어시스턴트를 활성화하려면 5분 이내에 다음 페어링 코드를 회신해 주세요: {code}"
}
}
}
codeExpiry는 페어링 코드의 유효 시간(초), codeLength는 페어링 코드의 자릿수, maxAttempts는 최대 시도 횟수이며 초과 시 페어링을 다시 시작해야 합니다. pairingMessage는 사용자에게 전송되는 안내 메시지 템플릿으로, {code}가 실제 페어링 코드로 대체됩니다.
페어링 상태 영속화
페어링 성공 후 사용자의 인증 상태는 영속적으로 저장됩니다. OpenClaw이 재시작되더라도 사용자는 다시 페어링할 필요가 없습니다. 페어링 기록은 로컬 데이터베이스에 저장되며, 명령으로 관리할 수 있습니다:
openclaw pairing list # 모든 페어링된 사용자 조회
openclaw pairing revoke <id> # 특정 사용자의 페어링 해제
openclaw pairing clear # 모든 페어링 기록 삭제
그룹 채팅 권한 제어
그룹 채팅 시나리오의 보안 제어는 그룹 수준과 사용자 수준의 이중 권한이 관련되어 더 복잡합니다.
그룹 화이트리스트
Bot이 특정 그룹에서만 작동하도록 제한합니다:
{
"security": {
"groups": {
"allowedGroups": {
"telegram": [-1001234567890],
"whatsapp": ["[email protected]"],
"discord": ["guild_id_here"]
}
}
}
}
Bot이 화이트리스트 외의 그룹에 추가되면 모든 메시지를 무시합니다. 미승인 그룹에 추가될 때 자동으로 나가도록 설정할 수도 있습니다.
그룹 역할 권한
역할 시스템을 지원하는 플랫폼(예: Discord, Telegram)에서 사용자의 그룹 역할에 기반한 접근 제어가 가능합니다:
{
"security": {
"groups": {
"roleBasedAccess": {
"adminOnly": false,
"allowedRoles": ["ai-user", "premium"]
}
}
}
}
속도 제한
접근 제어 외에도 속도 제한은 중요한 보안 수단입니다. 단일 사용자의 과도한 AI 리소스 사용을 방지합니다:
{
"security": {
"rateLimit": {
"enabled": true,
"maxRequests": 30,
"windowSeconds": 3600,
"cooldownMessage": "사용 횟수가 상한에 도달했습니다. 잠시 후 다시 시도해 주세요."
}
}
}
위 설정은 각 사용자의 시간당 최대 30회 AI 상호작용을 제한합니다. 속도 제한은 사용자별로 독립 계산되며 채널 간 공유됩니다. 즉, 같은 사용자가 Telegram에서 20회를 사용하면 Discord에서는 10회만 남습니다.
콘텐츠 보안
OpenClaw은 기본적인 콘텐츠 보안 필터링 기능도 제공합니다. 사용자 입력이나 AI 응답에 특정 키워드가 포함될 때 차단하도록 설정할 수 있습니다:
{
"security": {
"contentFilter": {
"enabled": true,
"blockedPatterns": ["민감한단어1", "민감한단어2"],
"action": "block_and_warn"
}
}
}
action은 block_silently(무음 차단)와 block_and_warn(차단 및 사용자에게 알림) 두 가지 모드를 지원합니다.
보안 설정 모범 사례
프로덕션 환경에서는 다음 보안 전략 조합을 권장합니다: 전역 화이트리스트의 엄격 모드를 활성화하여 알려진 사용자만 접근 허용, 그룹 채팅 시나리오에서 개인 메시지 페어링을 활성화하여 인증 레이어 추가, 합리적인 속도 제한을 설정하여 남용 방지, 그룹 화이트리스트를 설정하여 Bot이 알 수 없는 그룹에 끌려가는 것을 방지, 정기적으로 페어링 기록과 사용 로그를 검토합니다.
이러한 보안 메커니즘은 유연하게 조합할 수 있습니다. 내부 팀 사용의 경우 화이트리스트와 속도 제한만으로 충분합니다. 대중을 대상으로 하는 서비스의 경우 모든 보안 조치를 활성화하는 것을 권장합니다.