ფაილის ოპერაციები
PRX ორ ძირითად ფაილის ოპერაციის ინსტრუმენტს გთავაზობთ -- file_read და file_write -- რომლებიც მინიმალური default_tools() ნაკრების ნაწილია. ეს ინსტრუმენტები ყოველთვის ხელმისაწვდომია, დამატებითი კონფიგურაცია არ სჭირდება და აგენტის ლოკალურ ფაილურ სისტემასთან ურთიერთქმედების საფუძველს ქმნის.
ორივე ინსტრუმენტი უსაფრთხოების პოლიტიკის ძრავის ქვეშ მოქმედებს. ბილიკის ვალიდაცია უზრუნველყოფს, რომ აგენტს მხოლოდ ნებადართულ დირექტორიებში ფაილებზე წვდომა ჰქონდეს. მეხსიერების ACL-ის ჩართვისას file_read დამატებით ბლოკავს მეხსიერების markdown ფაილებზე წვდომას.
shell ინსტრუმენტისგან განსხვავებით, ფაილის ოპერაციები გარე პროცესებს არ იწყებს. ისინი PRX პროცესში პირდაპირი Rust I/O ოპერაციების სახით არის განხორციელებული.
კონფიგურაცია
ფაილის ოპერაციებს გამოყოფილი კონფიგურაციის სექცია არ აქვს. მათი ქცევა უსაფრთხოების პოლიტიკის ძრავითა და მეხსიერების ACL პარამეტრებით კონტროლდება:
# მეხსიერების ACL გავლენას ახდენს file_read-ის ქცევაზე
[memory]
acl_enabled = false # true-ზე, file_read ბლოკავს მეხსიერების ფაილებზე წვდომას
# უსაფრთხოების პოლიტიკით ფაილებზე წვდომის ბილიკების შეზღუდვა
[security.tool_policy.tools]
file_read = "allow" # "allow" | "deny" | "supervised"
file_write = "allow"
# ბილიკზე დაფუძნებული პოლიტიკის წესები
[[security.policy.rules]]
name = "allow-workspace-read"
action = "allow"
tools = ["file_read"]
paths = ["/home/user/workspace/**"]
[[security.policy.rules]]
name = "block-sensitive-paths"
action = "deny"
tools = ["file_read", "file_write"]
paths = ["/etc/shadow", "/root/**", "**/.ssh/**", "**/.env"]გამოყენება
file_read
file_read ინსტრუმენტი ფაილის შინაარსს კითხულობს და სტრიქონად აბრუნებს.
{
"name": "file_read",
"arguments": {
"path": "/home/user/project/src/main.rs"
}
}file_write
file_write ინსტრუმენტი ფაილში კონტენტს ჩაწერს, ქმნის თუ არ არსებობს, ან გადაწერს არსებულს.
{
"name": "file_write",
"arguments": {
"path": "/home/user/project/src/config.toml",
"content": "[server]\nport = 8080\nhost = \"0.0.0.0\"\n"
}
}პარამეტრები
file_read პარამეტრები
| პარამეტრი | ტიპი | სავალდებულო | ნაგულისხმევი | აღწერა |
|---|---|---|---|---|
path | string | დიახ | -- | ფაილის აბსოლუტური ან ფარდობითი ბილიკი წასაკითხად |
file_write პარამეტრები
| პარამეტრი | ტიპი | სავალდებულო | ნაგულისხმევი | აღწერა |
|---|---|---|---|---|
path | string | დიახ | -- | ფაილის აბსოლუტური ან ფარდობითი ბილიკი ჩასაწერად |
content | string | დიახ | -- | ფაილში ჩასაწერი კონტენტი |
ბილიკის ვალიდაცია
ორივე ინსტრუმენტი I/O ოპერაციის შესრულებამდე ბილიკის ვალიდაციას ახორციელებს:
- ბილიკის ნორმალიზაცია -- ფარდობითი ბილიკები მიმდინარე სამუშაო დირექტორიის მიმართ იხსნება. სიმბოლური ბმულები იხსნება ბილიკის გადახრის გამოსავლენად.
- პოლიტიკის შემოწმება -- გადაწყვეტილი ბილიკი უსაფრთხოების პოლიტიკის წესებთან მოწმდება.
- სპეციალური ბილიკების ბლოკირება -- გარკვეული ბილიკები ყოველთვის დაბლოკილია პოლიტიკის მიუხედავად:
/proc/,/sys/(Linux ბირთვის ინტერფეისები)- მოწყობილობის ფაილები
/dev/-ში (/dev/null,/dev/urandom-ის გარდა) - მეხსიერების შენახვის ფაილები, როცა
memory.acl_enabled = true
მეხსიერების ACL აღსრულება
როცა memory.acl_enabled = true, file_read დამატებით შეზღუდვებს აღასრულებს:
- მეხსიერების ფაილები დაბლოკილია:
file_readუარს ამბობს მეხსიერების დირექტორიაში შენახული markdown ფაილების წაკითხვაზე - მეხსიერების გამოძახება გამორთულია:
memory_recallინსტრუმენტი მთლიანად ამოიშლება რეესტრიდან - მხოლოდ მიზნობრივი წვდომა: აგენტი უნდა გამოიყენოს
memory_getანmemory_searchსათანადო ACL შემოწმებებით
უსაფრთხოება
პოლიტიკის ძრავის ინტეგრაცია
ყოველი file_read და file_write გამოძახება უსაფრთხოების პოლიტიკის ძრავას გადის შესრულებამდე.
აუდიტის ჟურნალირება
აუდიტის ჟურნალირების ჩართვისას, ყოველი ფაილის ოპერაცია იწერება: დროის ნიშნული, ინსტრუმენტის სახელი, გადაწყვეტილი ბილიკი, წარმატების/წარუმატებლობის სტატუსი.
მგრძნობიარე ფაილების დაცვა
ნაგულისხმევი უსაფრთხოების პოლიტიკა ბლოკავს წვდომას გავრცელებულ მგრძნობიარე ბილიკებზე: SSH გასაღებები (~/.ssh/), გარემოს ფაილები (.env), Git ავტორიზაციის მონაცემები, shell ისტორია, სისტემის პაროლის ფაილები.
დაკავშირებული გვერდები
- Shell-ის შესრულება -- ბრძანების შესრულების ინსტრუმენტი
- მეხსიერების ინსტრუმენტები -- ACL-ით კონტროლირებული მეხსიერების წვდომა
- პოლიტიკის ძრავი -- ბილიკზე დაფუძნებული წვდომის კონტროლის წესები
- ინსტრუმენტების მიმოხილვა -- ყველა ინსტრუმენტი და რეესტრის სისტემა