პრობლემების მოგვარება
ეს გვერდი PRX-SD-ის გაშვებისას ყველაზე გავრცელებულ პრობლემებს, მათ მიზეზებსა და გადაჭრებს მოიცავს.
სიგნატურ-მონაცემთა ბაზის განახლება ვერ ხდება
სიმპტომები: sd update ქსელის შეცდომით, timeout-ით ან SHA-256 შეუსაბამობით ვერ ხდება.
შესაძლო მიზეზები:
- ინტერნეტ-კავშირი არ არის ან firewall გამავალ HTTPS-ს ბლოკავს
- განახლების სერვერი დროებით მიუწვდომელია
- proxy ან კორპორატიული firewall პასუხს ცვლის
გადაჭრები:
- კავშირის შემოწმება განახლების სერვერთან:
curl -fsSL https://api.github.com/repos/openprx/prx-sd-signatures/commits?per_page=1- ოფლაინ-განახლების სკრიპტის გამოყენება ქსელის შეზღუდვების შემთხვევაში:
# On a machine with internet access
./tools/update-signatures.sh
# Copy the signatures directory to the target machine
scp -r ~/.prx-sd/signatures user@target:~/.prx-sd/- ხელახლა-ჩამოტვირთვის გაძალება ნებისმიერი დაზიანებული ქეშის გასასუფთავებლად:
sd update --force- მომხმარებლის განახლების სერვერის გამოყენება პირადი სარკის ჰოსტინგის შემთხვევაში:
sd config set update_server_url "https://internal-mirror.example.com/prx-sd/v1"
sd update- SHA-256 შეუსაბამობის შემოწმება -- ეს ჩვეულებრივ ნიშნავს, რომ ჩამოტვირთვა გადაცემისას დაზიანდა. სცადეთ ხელახლა ან ხელით ჩამოტვირთეთ:
sd update --forceTIP
განახლების ჩამოტვირთვის გარეშე მისი ხელმისაწვდომობის შესამოწმებლად sd update --check-only-ის გაშვება.
სკანირება ნელია
სიმპტომები: დირექტორიის სკანირება მოსალოდნელზე გაცილებით მეტ დროს მოითხოვს.
შესაძლო მიზეზები:
- ქსელ-მიმაგრებული ფაილ-სისტემების (NFS, CIFS, SSHFS) სკანირება
- YARA წესები ყოველ სკანზე კომპილირდება (ქეშ-კომპილაცია არ არის)
- ძალიან ბევრი thread-ი ბრუნვად დისკებზე I/O-ს ეჯიბრება
- დიდ ჩადგმულ არქივებზე არქივ-რეკურსია
გადაჭრები:
- Thread-ების გაზრდა SSD-ზე დაფუძნებული საცავისთვის:
sd config set scan.threads 16- Thread-ების შემცირება ბრუნვადი დისკებისთვის (I/O-ბმული):
sd config set scan.threads 2- ნელი ან შეუსაბამო გზების გამოსავლელი:
sd config set scan.exclude_paths '["/mnt/nfs", "/proc", "/sys", "/dev", "*.iso"]'- არქივ-სკანირების გამორთვა საჭიროების არარსებობის შემთხვევაში:
sd config set scan.scan_archives false- არქივ-სიღრმის შემცირება ღრმად ჩადგმული არქივების თავიდან ასაცილებლად:
sd config set scan.max_archive_depth 1--excludeნიშნის გამოყენება ერთ-ჯერადი სკანებისთვის:
sd scan /home --exclude "*.iso" --exclude "node_modules"- Debug ჟურნალირების ჩართვა დაყოვნების პოვნისთვის:
sd --log-level debug scan /path/to/dir 2>&1 | grep -i "slow\|timeout\|skip"fanotify ნებართვის შეცდომები
სიმპტომები: sd monitor --block "Permission denied" ან "Operation not permitted" შეცდომით ვერ ხდება.
შესაძლო მიზეზები:
- root-ად გაშვება არ ხდება
- Linux kernel-ს
CONFIG_FANOTIFY_ACCESS_PERMISSIONSჩართული არ აქვს - AppArmor ან SELinux fanotify-ის წვდომას ბლოკავს
გადაჭრები:
- Root-ად გაშვება:
sudo sd monitor /home /tmp --block- Kernel-ის კონფიგის შემოწმება:
zgrep FANOTIFY /proc/config.gz
# Should show: CONFIG_FANOTIFY=y and CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y- ბლოკ-არარა რეჟიმის გამოყენება სარეზერვო ვარიანტად (საფრთხეებს კვლავ ავლენს, მაგრამ ფაილ-წვდომას არ ბლოკავს):
sd monitor /home /tmpWARNING
ბლოკ-რეჟიმი მხოლოდ fanotify-ის მხარდაჭერის მქონე Linux-ზეა ხელმისაწვდომი. macOS-ზე (FSEvents) და Windows-ზე (ReadDirectoryChangesW) რეალურ დროში მონიტორინგი მხოლოდ-გამოვლენის რეჟიმში მუშაობს.
- SELinux/AppArmor-ის შემოწმება:
# SELinux: check for denials
ausearch -m AVC -ts recent | grep prx-sd
# AppArmor: check for denials
dmesg | grep apparmor | grep prx-sdმცდარი დადებითი (ლეგიტიმური ფაილი საფრთხად გამოვლინდა)
სიმპტომები: ცნობილ-უსაფრთხო ფაილი საეჭვოდ ან მავნედ ნიშნდება.
გადაჭრები:
- გამოვლენის გამომწვევის შემოწმება:
sd scan /path/to/file --jsondetection_type და threat_name ველებს მიაქციეთ ყურადღება:
HashMatch-- ფაილის ჰეში ცნობილ მავნე-პროგრამ-ჰეშს ემთხვევა (მცდარი დადებითი ნაკლებ სავარაუდოა)YaraRule-- YARA წესმა ფაილში შაბლონები ამოიცნოHeuristic-- ევრისტიკულმა ძრავამ ფაილი ბარიერს ზემოთ შეაფასა
- ევრისტიკური მცდარი დადებითებისთვის ბარიერის ამაღლება:
# Default is 60; raise to 70 for fewer false positives
sd config set scan.heuristic_threshold 70- ფაილის ან დირექტორიის სკანიდან გამოსავლელი:
sd config set scan.exclude_paths '["/path/to/safe-file", "/opt/known-good/"]'YARA-ს მცდარი დადებითებისთვის კონკრეტული წესების გამოსავლელი
~/.prx-sd/yara/დირექტორიაში მათი ამოღებით ან კომენტარებში გადასვლით.ჰეშით თეთრ-სიაში შეტანა -- ფაილის SHA-256-ის ლოკალურ allowlist-ში დამატება (მომავალი ფუნქცია). სარეზერვო ვარიანტად ფაილის გზით გამოსავლელი.
TIP
გამოვლენის ნამდვილ მცდარ დადებითად მიჩნევის შემთხვევაში, გთხოვთ შეატყობინოთ github.com/openprx/prx-sd/issues-ზე ფაილის ჰეშით (არა თავად ფაილით) და წესის სახელით.
დემონი ვერ იწყებს
სიმპტომები: sd daemon მყისიერ გასდის, ან sd status "stopped"-ს გვიჩვენებს.
შესაძლო მიზეზები:
- სხვა ინსტანცია უკვე მუშაობს (PID ფაილი არსებობს)
- მონაცემთა დირექტორია მიუწვდომელია ან დაზიანებულია
- სიგნატურ-მონაცემთა ბაზა აკლია
გადაჭრები:
- მოძველებული PID ფაილის შემოწმება:
cat ~/.prx-sd/prx-sd.pid
# If the listed PID is not running, remove the file
rm ~/.prx-sd/prx-sd.pid- დემონის სტატუსის შემოწმება:
sd status- წინა პლანზე debug ჟურნალირებით გაშვება სტარტ-შეცდომების სანახავად:
sd --log-level debug daemon /home /tmp- სიგნატურების არსებობის შემოწმება:
sd info
# If hash_count is 0, run:
sd update- დირექტორიის ნებართვების შემოწმება:
ls -la ~/.prx-sd/
# All directories should be owned by your user and writable- ხელახლა-ინიციალიზება მონაცემთა დირექტორიის დაზიანების შემთხვევაში:
# Back up existing data
mv ~/.prx-sd ~/.prx-sd.bak
# Re-run any command to trigger first-run setup
sd info
# Re-download signatures
sd updateჟურნალ-დონის რეგულირება
პრობლემა: პრობლემის გამართვისთვის მეტი სადიაგნოსტიკო ინფორმაცია გჭირდებათ.
PRX-SD ხუთ ჟურნალ-დონეს მხარს უჭერს, ყველაზე დეტალურიდან ნაკლებ-დეტალურამდე:
| დონე | აღწერა |
|---|---|
trace | ყველაფერი, მათ შორის ფაილ-დონის YARA-შემჯამების დეტალები |
debug | ძრავის დეტალური ოპერაციები, plugin-ის ჩატვირთვა, ჰეშ-ძებნა |
info | სკანირების პროგრესი, სიგნატურ-განახლებები, plugin-ის რეგისტრაცია |
warn | გამაფრთხილებლები და არა-ფატალური შეცდომები (ნაგულისხმევი) |
error | მხოლოდ კრიტიკული შეცდომები |
# Maximum verbosity
sd --log-level trace scan /tmp
# Debug-level for troubleshooting
sd --log-level debug monitor /home
# Redirect logs to a file for analysis
sd --log-level debug scan /home 2> /tmp/prx-sd-debug.logTIP
--log-level ნიშანი გლობალურია და ქვე-ბრძანებამდე უნდა მოვიდეს:
# Correct
sd --log-level debug scan /tmp
# Incorrect (flag after subcommand)
sd scan /tmp --log-level debugმეხსიერების მაღალი გამოყენება
სიმპტომები: sd პროცესი მოსალოდნელზე მეტ მეხსიერებას მოიხმარს, განსაკუთრებით დიდი დირექტორიების სკანირებისას.
შესაძლო მიზეზები:
- ბევრი thread-ით ძალიან დიდი ფაილ-რაოდენობის სკანირება
- YARA წესები მეხსიერებაში კომპილირდება (38,800+ წესი მნიშვნელოვან მეხსიერებას მოიხმარს)
- არქივ-სკანირება დიდ შეკუმშულ ფაილებს მეხსიერებაში ავრცელებს
- WASM plugin-ები მაღალი
max_memory_mbლიმიტებით
გადაჭრები:
- Thread-ების რაოდენობის შემცირება (ყოველი thread საკუთარ YARA კონტექსტს ტვირთავს):
sd config set scan.threads 2- ფაილის მაქსიმალური ზომის შეზღუდვა ძალიან დიდი ფაილების გამოსატოვებლად:
# Limit to 50 MiB
sd config set scan.max_file_size 52428800- არქივ-სკანირების გამორთვა მეხსიერება-შეზღუდული სისტემებისთვის:
sd config set scan.scan_archives false- არქივ-სიღრმის შემცირება:
sd config set scan.max_archive_depth 1WASM plugin-ის მეხსიერების ლიმიტების შემოწმება --
~/.prx-sd/plugins/*/plugin.json-ის განხილვა მაღალიmax_memory_mbმნიშვნელობების მქონე plugin-ებისთვის და მათი შემცირება.მეხსიერების მონიტორინგი სკანირების დროს:
# In another terminal
watch -n 1 'ps aux | grep sd | grep -v grep'- დემონისთვის დროთა განმავლობაში მეხსიერების მონიტორინგი:
sd status
# Shows PID; use top/htop to watch memoryსხვა გავრცელებული პრობლემები
"No YARA rules found" გამაფრთხილებელი
YARA წესების დირექტორია ცარიელია. ხელახლა-გაუშვით პირველ-ჯერადი დაყენება ან ჩამოტვირთეთ წესები:
sd update
# Or manually trigger setup by removing the yara directory:
rm -rf ~/.prx-sd/yara
sd info # triggers first-run setup with embedded rules"Failed to open signature database" შეცდომა
LMDB სიგნატურ-მონაცემთა ბაზა შეიძლება დაზიანებული იყოს:
rm -rf ~/.prx-sd/signatures
sd updateAdblock: "insufficient privileges"
adblock-ის ჩართვა/გამორთვის ბრძანებები სისტემის hosts ფაილს ცვლის და root-ს საჭიროებს:
sudo sd adblock enable
sudo sd adblock disableსკანი ფაილებს "timeout" შეცდომით გამოტოვებს
ფაილ-დონის timeout-ი ნაგულისხმევად 30 წამია. გაზარდეთ რთული ფაილებისთვის:
sd config set scan.timeout_per_file_ms 60000დახმარების მიღება
ზემოაღნიშნული გადაჭრებიდან არცერთი პრობლემას ვერ წყვეტს:
- არსებული issue-ების შემოწმება: github.com/openprx/prx-sd/issues
- ახალი issue-ის შეტანა შემდეგით:
- PRX-SD ვერსია (
sd info) - ოპერაციული სისტემა და kernel-ის ვერსია
- Debug ჟურნალის გამოტანა (
sd --log-level debug ...) - გამეორების ნაბიჯები
- PRX-SD ვერსია (
შემდეგი ნაბიჯები
- ძრავის ქცევის დაზუსტებისთვის კონფიგურაციის ცნობარის განხილვა
- საფრთხეების იდენტიფიკაციის გასაგებად გამოვლენის ძრავის შესწავლა
- პრობლემების შეტყობინებისთვის Alert-ების დაყენება