The muti daemon은 소유자의 머신에서 실행되는 작은 백그라운드 프로세스입니다. 아웃바운드 HTTPS 연결을 통해 룸 서비스를 폴링하고, 이미 설치된 런타임으로 요청을 로컬에서 실행하며, 발생한 작업을 설명하는 타임라인 이벤트 스트림을 업로드합니다. 파일, 환경 변수, 키 정보 또는 브라우저 상태를 업로드하지 않으며, 인바운드 포트도 열지 않습니다.
요약하자면 그렇습니다. 보안 검토자가 원하는 것은 상세 목록일 것입니다. 바로 여기에 있습니다.
The connection
- 방향: 아웃바운드 전용. daemon은 작업을 위해 롱 폴링(long-poll)하며, 머신으로 들어오는 연결은 없습니다.
- 인증: 머신별 키. 서버 측에는 해시만 저장됩니다. 철회되거나 삭제된 머신의 키는 에러를 반환하고 daemon이 중지됩니다.
- 승인 게이트: 새로 페어링된 머신은 소유자가 웹 앱에서 확인할 때까지
awaiting_approval상태로 유지됩니다. 그 전까지는 어떤 작업도 할당되지 않으며 어떤 이벤트도 수락되지 않습니다.
Amber는 절대 경계를 넘지 않습니다: 키, 리포지토리, 환경은 머신에 유지되며, 룸은 이벤트와 작은 아티팩트만 수신합니다.
전송되는 항목: 타임라인 이벤트
모든 요청은 순서가 지정된 일련의 이벤트를 생성합니다. 각 이벤트에는 요청 id, 룸 id, 시퀀스 번호, 타입 및 페이로드가 포함됩니다.
이벤트와 함께, daemon은 등록 및 하트비트 시 머신 메타데이터를 보고합니다: 호스트 이름, 플랫폼, 아키텍처, daemon 버전, 감지된 런타임 및 해당 버전, 로컬 및 공용 IP 주소, 서비스로 실행되는지 여부.
절대 전송되지 않는 항목
daemon은 다음 항목을 읽지 않으며, 따라서 전송할 수도 없습니다:
- 사용자 또는 런타임 프로세스의 환경 변수.
- 키 파일:
~/.ssh, 클라우드 자격 증명,.env파일, 키체인. - 브라우저 프로필, 쿠키 또는 로그인된 세션.
- 파일 형태의 리포지토리 또는 작업 트리. diff는 경로와 줄 수로만 전송됩니다.
- 에이전트가 명시적으로 생성하고 답변에서 참조하는 아티팩트를 제외하고, 에이전트 작업 디렉터리 외부의 모든 항목.
또한 룸에서 임의의 경로로 파일을 수신하는 방법도 전혀 없습니다. 요청자가 보낸 첨부 파일은 해당 요청에 한해 에이전트의 컨텍스트에만 배치됩니다.
요약만으로 충분한 이유
룸에 있는 사람들에게 필요한 것은 에이전트가 무엇을 했는지 아는 것이지, 사용자의 디스크를 그대로 재현하는 것이 아닙니다. 도구 호출 요약, 경로와 줄 수로 표시된 diff, 명령의 마지막 40줄만으로도 코드베이스를 옮기지 않고 "올바르게 동작하고 있는가?"에 답할 수 있습니다. 전체 변경 사항이 필요한 경우, 에이전트가 푸시한 리포지토리에 있으며 해당 리포지토리 자체의 권한에 따라 접근이 관리됩니다.
이것이 바로 muti가 런타임을 호스팅하지 않는 이유이기도 합니다. 런타임이 이동하는 순간 자격 증명과 파일도 따라가기 때문입니다. 로컬 우선 에이전트 vs 호스팅 에이전트를 참조하세요.
직접 확인하기
muti status는 daemon의 설정, 프로세스 id 및 로그 경로를 보여줍니다.muti logs -f는 전송되는 내용을 실시간으로 추적합니다. 모든 아웃바운드 요청은 이벤트 타입과 함께 기록됩니다.- 콘솔에서 머신을 Revoke하고 daemon이 한 번의 폴링 주기 내에 중지되는 것을 확인해 보세요.
자주 묻는 질문
daemon이 파일 전체를 업로드하는 경우가 있나요? 아티팩트뿐입니다. 에이전트가 생성하고 답변에서 참조하여 룸의 출력에 나타나도록 한 파일이나 이미지에 한합니다. 이는 디스크에서 무단으로 스캔하는 것이 아니라 룸의 스토리지로 업로드되는 것입니다.
룸 서비스가 내 머신에서 코드를 실행할 수 있나요? 요청을 큐에 넣는 것만 가능하며, 이는 사용자의 권한 규칙과 승인에 의해 제어됩니다. 요청 외부에서 임의의 명령을 실행할 수 없으며, 파일에 접근할 수도 없습니다.
타임라인 이벤트는 어디에 저장되나요? 룸 서비스의 데이터베이스에 해당 룸 범위로 격리되어 저장됩니다. 룸의 멤버만 읽을 수 있으며, 그 외에는 아무도 읽을 수 없습니다.
룸 서비스를 직접 호스팅하여 실행할 수 있나요? 1인용 셀프 호스팅 모드가 로드맵에 있습니다. daemon과 서비스는 이미 일반 API를 통해 통신하고 있습니다.
보안 검토를 위해 여기에 나열되지 않은 추가 정보가 필요하다면 service@muti.im으로 문의해 주세요. 그렇지 않다면 에이전트에게 룸을 만들어 주세요.
게시일