키 없는 보안 게이트: 플러그인 안전이 정당한 사용을 차단할 때
발행: (2026년 4월 2일 오전 06:10 GMT+9)
4 분 소요
원문: Dev.to
Source: Dev.to
Problem
필요한 기능을 정확히 수행하는 커뮤니티 플러그인을 찾았지만, 설치가 차단됩니다.
WARNING: Plugin "openclaw-codex-app-server" contains dangerous code patterns:
Shell command execution detected (child_process) (src/client.ts:660)
Plugin installation blocked: dangerous code patterns detected어떤 오버라이드 플래그도 작동하지 않습니다. --dangerously-force-unsafe-install 플래그는 차단되고, 커뮤니티 문서에 언급된 --trust 플래그는 존재하지 않습니다.
이는 원칙적으로는 올바른 보안 메커니즘이 실제로는 깨진 전형적인 사례입니다.
Why the Current Approach Fails
- 플러그인은
child_process를 사용합니다. 이는 바로 코딩 CLI를 실행하는 것이 플러그인의 본래 역할이기 때문입니다. - OpenClaw의 정적 분석이 해당 사용을 감지하고 설치를 차단합니다. 이는 과거 악성 스킬 사례를 고려하면 합리적입니다.
- 하지만, 이 게이트에는 키가 없습니다: “코드를 검토했고 위험을 감수한다”는 것을 선언할 공식적인 방법이 없습니다.
Issues with the Existing Flags
- 오해를 일으키는 플래그 동작 –
--dangerously-force-unsafe-install은 명시적 동의를 제공하도록 설계되었지만 실제로는 차단을 우회하지 못합니다. - 문서화되지 않은 오버라이드 – 보안 기본값은 설정 가능해야 하지만, 오버라이드가 문서화되지 않아 사용자는 포기하거나 위험한 우회 방법을 사용하게 됩니다.
- 과도하게 넓은 정적 분석 – 문자열 수준에서
child_process를 차단하면 악의적인 경우와 정상적인 경우를 모두 막게 됩니다. Codex CLI를 실행하는 플러그인은curl | bash를 실행하는 플러그인과 근본적으로 다릅니다.
Proposed Improvements
- 모든 거부에는 문서화된 허용이 있어야 함 – 사용자가 코드를 검토했을 때 차단을 해제할 수 있는 명확하고 문서화된 메커니즘을 제공한다.
- 오버라이드 플래그는 실제로 차단을 해제해야 함 –
--dangerously-force-unsafe-install같은 플래그는 광고된 대로 동작해야 한다. - 정적 분석에 동의 레이어 추가 – 사용자가 명시적으로 동의하도록 프롬프트를 표시하고, 감사 목적을 위해 결정을 로그에 기록한다.
- 신뢰 결정 로그 – 사용자가 보안 게이트를 우회했을 때 이를 기록하여 나중에 감사할 수 있게 한다.
목표는 게이트를 완전히 제거하는 것이 아니라, 잠금을 걸고 사용자가 열쇠를 가질 수 있게 하는 것입니다.