본문으로 건너뛰기
0
r/jeffnews HN 약 5분

nah — Claude Code용 컨텍스트 인식 권한 가드

devops

요약

Claude Code의 도구별 허용/거부 방식의 한계를 해결하는 오픈소스 보안 가드로, 명령어가 실제로 수행하는 동작을 기준으로 컨텍스트 인식 분류를 수행함

기사 전체 정리

nah — Claude Code용 컨텍스트 인식 권한 가드

왜 필요한가

  • Claude Code의 기본 권한 시스템은 도구(tool)별 허용/거부 방식인데, 이게 현실에서 안 돌아감. 파일 삭제가 어떤 때는 괜찮고 어떤 때는 치명적이니까. git checkout도 마찬가지임
  • --dangerously-skip-permissions 옵션을 쓰면 편하긴 한데, 추적 안 되는 파일 날리거나 키 유출시키거나 멀웨어 깔리는 건 감수해야 함
  • nah는 도구 호출(tool call)이 실행되기 전에 가로채서, 명령어 이름이 아니라 실제로 뭘 하는지 기준으로 분류하는 오픈소스 가드임 (MIT 라이선스)

💡

> 같은 rm 명령이라도 rm dist/bundle.js(프로젝트 내부)는 허용, rm ~/.bashrc(프로젝트 외부)는 확인 요청으로 처리됨. 컨텍스트가 정책을 결정하는 구조임.

작동 방식

  • 모든 도구 호출은 먼저 **결정론적 구조 분류기(deterministic structural classifier)**를 거침. LLM 없이 밀리초 단위로 판단함
  • 분류기가 결정 못 하는 애매한 경우에만 선택적으로 LLM에 넘김. LLM이 없거나 응답 불가면 사용자에게 직접 물어봄
  • 지원 LLM 프로바이더: Ollama, OpenRouter, OpenAI, Anthropic, Snowflake Cortex

가드 대상 도구 7종

  • Bash: 명령어 구조 분류 — 액션 타입, 파이프 구성, 셸 언래핑까지 분석
  • Read: 민감 경로 탐지 (~/.ssh, ~/.aws, .env 등)
  • Write: 경로 + 프로젝트 경계 + 콘텐츠 검사 (비밀정보, 유출 페이로드, 파괴적 내용)
  • Edit: 교체 문자열에 대한 경로 + 콘텐츠 검사
  • Glob / Grep: 민감 디렉터리 스캐닝이나 프로젝트 외부 인증정보 검색 패턴 차단
  • MCP 도구: 서드파티 툴 서버(mcp__*)에 대한 범용 분류

정책 체계

  • 23개 내장 액션 타입이 있고, 각각 기본 정책이 있음:
    • allow: filesystem_read, git_safe, package_run
    • context: 경로/프로젝트 상황 보고 결정 — filesystem_write, filesystem_delete, network_outbound
    • ask: 항상 사용자에게 확인 — git_history_rewrite, git_remote_write
    • block: 무조건 차단 — obfuscated (예: base64 -d | bash)
  • 프리셋 3단계: full(기본, 포괄적), minimal(핵심만), none(빈 상태에서 직접 구성)

중요

> 프로젝트 .nah.yaml로 정책을 강화할 수는 있지만, 완화는 불가능함. 악성 레포가 .nah.yaml로 위험 명령을 허용 목록에 넣는 건 원천 차단됨. 전역 설정만 완화 권한이 있음.

설치와 사용

  • nah installsettings.json에 등록하면 모든 Claude 세션에 자동 적용. nah uninstall로 제거
  • nah claude로 훅을 인라인 전달해서 해당 프로세스에만 적용하는 것도 가능
  • 보안 데모 내장: 8개 위협 카테고리에 걸친 25개 라이브 케이스로 테스트 가능 (원격 코드 실행, 데이터 유출, 난독화 명령 등). 약 5분 소요

핵심 포인트

  • 결정론적 구조 분류기가 밀리초 단위로 판단, 애매한 경우만 선택적 LLM 폴백
  • Bash, Read, Write, Edit, Glob, Grep, MCP 도구 등 7종 가드
  • 23개 내장 액션 타입과 allow/context/ask/block 4단계 정책
  • 프로젝트 .nah.yaml로 정책 강화만 가능, 완화는 전역 설정에서만 허용
  • 8개 위협 카테고리 25개 케이스의 보안 데모 내장

인사이트

AI 코딩 에이전트의 권한 관리 문제를 명령어 이름이 아닌 실제 동작 기준으로 해결하는 접근이 인상적. 프로젝트 설정으로 정책 완화를 차단한 보안 설계도 실용적임

댓글

댓글

댓글을 불러오는 중...

devops

살면서 몰랐던 셸 트릭 모음 — 터미널에서 Backspace 꾹 누르기 이제 그만

대부분의 개발자가 ls, cd, grep 이후로 터미널 학습을 멈추는데, 셸에는 1989년부터 존재하던 생산성 트릭들이 가득함. POSIX 범용 단축키부터 Bash/Zsh 전용 기능까지, 하루 하나씩 익히면 터미널 생활이 완전히 달라짐.

devops

OCI에서 PostgreSQL HA 구성할 때, 페일오버 테스트는 통과하는데 프로덕션에서 깨지는 이유

OCI에서 PostgreSQL HA 클러스터의 VIP가 페일오버 시 자동으로 이동하지 않는 문제를 다룬다. AWS/Azure와 달리 OCI는 VIP가 VNIC에 명시적으로 바인딩되어 있어 OCI API 호출이 필요하며, 이를 해결하는 두 가지 프로덕션 검증된 방법(HAProxy vs OCI API 콜백)을 제시한다.

devops

Wine 11, 드디어 커널 수준에서 Windows 동기화 재설계 — FPS 678% 상승 레전드

Wine 11이 출시됐는데 이거 그냥 버전업이 아님. **NTSYNC**라는 커널 레벨 동기화 드라이버가 탑재되면서 일부 게임 FPS가 최대 678% 폭등했고, **WoW64** 아키텍처도 완성돼서 32비트 앱 실행에 더 이상 삽질 안 해도 됨. Proton이랑 Steam Deck도 혜택 받는 구조라 Linux 게이밍 역사상 손꼽히는 업데이트임.

devops

NixOS 찬양글 - 이게 바로 OS가 나아가야 할 방향 아님?

NixOS 유저가 왜 NixOS에 진심인지 열변을 토하는 글임. 핵심은 NixOS 자체보다 **Nix 패키지 매니저**의 선언적·재현 가능한 철학에 있고, LLM 코딩 에이전트 시대에 특히 더 찰떡이라고 함. Docker보다 낫다는 주장도 ㄹㅇ 공감 포인트.

devops

10GbE DAC 케이블의 EEPROM을 조작해서 25Gbps를 뽑아낸 이야기

10GbE DAC 케이블의 SFP EEPROM에 저장된 속도 메타데이터를 I2C로 수정하여 25Gbps 링크를 성공시킨 홈랩 해킹기. 실측 9.4Gbps에서 22.8Gbps로 점프. 모든 케이블이 되는 건 아님.