보안

개요

Neotask는 보안 우선 아키텍처로 설계되었습니다. 게이트웨이는 기본적으로 localhost에 바인딩되며, 모든 민감한 데이터는 저장 시 암호화되고, 에이전트 실행은 격리된 컨테이너에서 샌드박싱될 수 있습니다.

네트워크 보안

기본 루프백

게이트웨이는 바인딩 모드를 명시적으로 변경하지 않는 한 127.0.0.1(localhost)에서만 수신합니다. 기본적으로 외부 네트워크에 노출되지 않습니다.

인증

모든 WebSocket 연결에는 인증이 필요합니다:

원격 접근 보안

원격 접근의 경우 권장되는 방법은 Tailscale VPN 또는 SSH 터널링입니다, 게이트웨이를 인터넷에 직접 노출하지 마세요.

기기 페어링

페어링 작동 방식

게이트웨이에 연결하는 모든 클라이언트는 페어링되어야 합니다:

  1. 기기가 자신의 신원(지문 + 공개 키)을 제시합니다
  2. 게이트웨이가 페어링 챌린지(논스)를 발급합니다
  3. 기기가 개인 키로 논스에 서명합니다
  4. UI를 통해 기기를 승인합니다
  5. 게이트웨이가 향후 연결을 위한 기기 토큰을 발급합니다

신뢰 모델

암호화

저장 데이터

전송 중 데이터

샌드박싱

Docker 기반 격리

에이전트 명령 실행은 Docker 컨테이너에서 샌드박싱될 수 있습니다:

샌드박스 범위

범위 설명
세션별 각 세션에 대한 새로운 컨테이너
에이전트별 에이전트당 영구 컨테이너
공유 에이전트 간 공유 컨테이너

워크스페이스 접근

샌드박싱된 에이전트는 자신의 워크스페이스 디렉토리(컨테이너에 마운트됨)에 접근할 수 있지만 워크스페이스 외부의 호스트 파일시스템에는 접근할 수 없습니다.

실행 승인

노드와 게이트웨이 호스트에서 에이전트가 실행할 수 있는 명령을 제어합니다:

모드

모드 설명
허용 목록 사전 승인된 명령만 실행
요청 알 수 없는 명령은 사용자 승인 프롬프트 표시
전체 제한 없음 (주의하여 사용)

노드별 구성

각 노드(macOS, 헤드리스 호스트)는 로컬에 저장된 자체 실행 승인 구성을 가집니다. 특정 바이너리(예: /usr/bin/docker, /usr/local/bin/terraform)를 허용하고 다른 것은 차단할 수 있습니다.

상승 모드

일부 작업은 (샌드박스가 아닌) 게이트웨이 호스트에서 직접 실행해야 합니다. 상승 모드는:

보안 감사

내장 보안 감사는 다음을 확인합니다:

감사는 권한이 주어지면 많은 문제를 자동으로 수정할 수 있습니다.

모범 사례

  1. 게이트웨이를 루프백으로 유지, 원격 접근에는 Tailscale 또는 SSH 사용
  2. 샌드박싱 활성화, Docker 컨테이너에서 에이전트 명령 실행
  3. 실행 허용 목록 사용, 에이전트가 노드에서 실행할 수 있는 명령 제한
  4. 인증 토큰 설정, 루프백에서도 항상 토큰 인증 구성
  5. 에이전트 권한 검토, 가능한 경우 최소 도구 프로필 사용
  6. Neotask 최신 상태 유지, 업데이트에 보안 패치 포함
  7. 정기적으로 감사, 보안 감사를 실행하여 잘못된 구성 감지
  8. 플러그인 로딩 제한, 신뢰할 수 있는 플러그인만 설치