Bảo vệ
Pi là một tác nhân mã hóa cục bộ. Nó chạy với quyền của tài khoản người dùng đã khởi động nó và nó xử lý các tệp mà người dùng đó có thể ghi như bên trong cùng một ranh giới tin cậy cục bộ.
Dự án ủy thác
Sự tin cậy của dự án kiểm soát xem pi có tải các cài đặt, tài nguyên, gói và tiện ích mở rộng cục bộ của dự án hay không. Nó không phải là sandbox và nó không hạn chế những gì mô hình có thể yêu cầu các công cụ thực hiện sau khi bạn bắt đầu làm việc trong một thư mục.
Pi coi một dự án có các tài nguyên cần có sự tin cậy khi nó tìm thấy bất kỳ tài nguyên nào trong số này từ thư mục làm việc hiện tại:
.pi/settings.json.pi/extensions,.pi/skills,.pi/promptshoặc.pi/themes.pi/SYSTEM.mdhoặc.pi/APPEND_SYSTEM.md- dự án
.agents/skillstrong thư mục hiện tại hoặc thư mục tổ tiên
Thư mục .pi trống không được tính là tài nguyên dự án cần có sự tin cậy.
Khi một phiên tương tác bắt đầu trong một dự án có các tài nguyên yêu cầu sự tin cậy và không có quyết định nào được lưu cho thư mục hiện tại hoặc thư mục mẹ, pi sẽ tuân theo defaultProjectTrust từ cài đặt chung. Giá trị mặc định là "ask", giá trị này hỏi xem có nên tin cậy dự án khi có giao diện người dùng hay không. Các quyết định đã lưu được lưu trữ theo thư mục chuẩn trong ~/.pi/agent/trust.json và quyết định đã lưu gần nhất trên đường dẫn hiện tại hoặc đường dẫn gốc sẽ được áp dụng trước mặc định chung.
Tin cậy một dự án cho phép pi tải các tài nguyên dự án yêu cầu sự tin cậy, bao gồm:
.pi/settings.json.picác tài nguyên như tiện ích mở rộng, kỹ năng, prompt templates, chủ đề và tệp nhắc hệ thống- gói dự án bị thiếu được định cấu hình thông qua cài đặt dự án
- tiện ích mở rộng dự án cục bộ và tiện ích mở rộng được quản lý gói dự án
Sự suy giảm niềm tin sẽ bỏ qua các tài nguyên được bảo vệ. Các tệp ngữ cảnh như AGENTS.override.md, AGENTS.md và CLAUDE.md được tải bất kể độ tin cậy của dự án trừ khi tính năng tải ngữ cảnh bị tắt. Trước khi giải quyết được sự tin cậy, pi chỉ tải context files, tiện ích mở rộng người dùng/toàn cầu và tiện ích mở rộng CLI -e. Tiện ích mở rộng người dùng/toàn cầu và CLI có thể xử lý sự kiện project_trust; phần mở rộng đầu tiên trả về quyết định có/không sẽ sở hữu quyết định đó.
Các chế độ không tương tác (-p, --mode json và --mode rpc) không hiển thị lời nhắc tin cậy. Nếu không có quyết định tin cậy đã lưu hiện hành, defaultProjectTrust: "ask" và "never" bỏ qua các tài nguyên đó, trong khi "always" tin tưởng chúng. Sử dụng --approve/-a hoặc --no-approve/-na để ghi đè độ tin cậy của dự án trong một lần chạy.
Không có hộp cát tích hợp
Pi không bao gồm sandbox tích hợp. Các công cụ tích hợp có thể đọc tệp, ghi tệp, chỉnh sửa tệp và chạy lệnh shell với quyền của quy trình pi. Extensions là các mô-đun TypeScript chạy với cùng quyền. Cài đặt gói, lệnh shell, máy chủ ngôn ngữ, lệnh kiểm tra và các công cụ dành cho nhà phát triển khác hoạt động như các quy trình cục bộ thông thường.
Đây là cố ý. Pi được thiết kế để hoạt động trên cây nguồn cục bộ, gọi chuỗi công cụ dự án và tích hợp với môi trường phát triển hiện có của người dùng. Một phần sandbox trong quá trình sẽ dễ bị hiểu nhầm là ranh giới bảo mật trong khi vẫn phụ thuộc vào vỏ máy chủ, hệ thống tệp, trình quản lý gói, thông tin xác thực và mã mở rộng. Sự cô lập thực sự cần đến từ hệ điều hành hoặc ranh giới ảo hóa/container.
Sự tin cậy của dự án chỉ là một người bảo vệ tải đầu vào. Nó ngăn kho lưu trữ âm thầm thay đổi cài đặt hoặc tiện ích mở rộng của pi trước khi bạn phê duyệt. Nó không làm cho mã không đáng tin cậy, lời nhắc không đáng tin cậy hoặc đầu ra mô hình không đáng tin cậy trở nên an toàn. Việc tiêm nhắc nhở từ các tệp kho lưu trữ, nhận xét, tài liệu, context files hoặc đầu ra của bản dựng có thể là rủi ro tác nhân cục bộ và không thể được ngăn chặn một cách đáng tin cậy bằng pi.
Chạy công việc không đáng tin cậy hoặc không được giám sát
Đối với các kho lưu trữ không đáng tin cậy, mã được tạo mà bạn không có ý định giám sát chặt chẽ hoặc tự động hóa không được giám sát, hãy chạy pi trong một môi trường được chứa. Sử dụng vùng chứa, VM, micro-VM, sandbox từ xa hoặc sandbox được kiểm soát chính sách chỉ với các tệp và thông tin xác thực cần thiết cho tác vụ.
Các mẫu phổ biến được ghi lại trong Containerization:
- chạy toàn bộ quy trình
pibên trong vùng chứa/sandbox - chạy máy chủ pi trong khi định tuyến việc thực thi công cụ tích hợp vào Gondolin micro-VM
- chỉ gắn kết các đường dẫn không gian làm việc mà tác nhân nên truy cập
- tránh gắn máy chủ
~/.pi/agenttrừ khi vùng chứa truy cập vào các phiên, cài đặt và thông tin đăng nhập của máy chủ - vượt qua API keys được yêu cầu tối thiểu hoặc sử dụng thông tin xác thực có thời hạn sử dụng ngắn
- hạn chế truy cập mạng khi tác vụ không cần thiết
- xem xét các khác biệt và kết quả đầu ra trước khi sao chép kết quả trở lại hệ thống đáng tin cậy
Nếu bạn gắn liên kết đọc/ghi không gian làm việc trên máy chủ, ghi từ bên trong vùng chứa hoặc VM vẫn có thể sửa đổi tệp máy chủ. Sử dụng các giá trị gắn kết chỉ đọc hoặc sao chép tệp vào và ra khỏi sandbox khi bạn cần được bảo vệ mạnh mẽ hơn khỏi việc ghi ngoài ý muốn.
Báo cáo vấn đề bảo mật
Để báo cáo vấn đề bảo mật, hãy theo dõi kho lưu trữ Security Policy. Không mở một vấn đề công khai cho các báo cáo nhạy cảm về bảo mật.
Hành vi dự kiến của tác nhân cục bộ, thiếu sandbox tích hợp, đưa nội dung không đáng tin cậy vào và hành vi của các tiện ích hoặc kỹ năng do người dùng cài đặt thường nằm ngoài ranh giới bảo mật trừ khi báo cáo thể hiện việc vượt qua ranh giới đặc quyền thực sự hoặc cho biết cách pi cấp quyền truy cập mà người dùng cục bộ chưa có.