მხარდაჭერილი ფაილის ტიპები
PRX-SD ფაილის გაფართოებაზე დაყრდნობის ნაცვლად ფაილის ტიპს მაგიური ნომრის გამოვლენით (ფაილის პირველი ბაიტების გამოკვლევა) ადგენს. ეს გადარქმეული ან გაფართოების გარეშე ფაილების ზუსტ იდენტიფიკაციას უზრუნველყოფს.
ფაილის ტიპების მატრიცა
ქვემოთ მოცემული ცხრილი მხარდაჭერილ ყველა ფაილის ტიპსა და თითოეულზე გამოყენებული გამოვლენის შრეებს გვიჩვენებს:
| ფაილის ტიპი | გაფართოებები | მაგიური ბაიტები | ჰეში | YARA | ევრისტიკა | არქივის რეკურსია |
|---|---|---|---|---|---|---|
| PE (Windows) | .exe, .dll, .sys, .scr, .ocx | 4D 5A (MZ) | კი | კი | კი | -- |
| ELF (Linux) | .so, .o, (გაფართოების გარეშე) | 7F 45 4C 46 | კი | კი | კი | -- |
| Mach-O (macOS) | .dylib, .bundle, (გაფართოების გარეშე) | FE ED FA CE/CF ან CE FA ED FE/CF | კი | კი | კი | -- |
| Universal Binary | (გაფართოების გარეშე) | CA FE BA BE | კი | კი | კი | -- |
25 50 44 46 (%PDF) | კი | კი | კი | -- | ||
| Office (OLE) | .doc, .xls, .ppt | D0 CF 11 E0 | კი | კი | კი | -- |
| Office (OOXML) | .docx, .xlsx, .pptx | 50 4B 03 04 (ZIP) + [Content_Types].xml | კი | კი | კი | ამოღებული |
| ZIP | .zip | 50 4B 03 04 | კი | კი | შეზღუდული | რეკურსიული |
| 7-Zip | .7z | 37 7A BC AF 27 1C | კი | კი | შეზღუდული | რეკურსიული |
| tar | .tar | 75 73 74 61 72 257-ე offset-ზე | კი | კი | შეზღუდული | რეკურსიული |
| gzip | .gz, .tgz | 1F 8B | კი | კი | შეზღუდული | რეკურსიული |
| bzip2 | .bz2 | 42 5A 68 (BZh) | კი | კი | შეზღუდული | რეკურსიული |
| xz | .xz | FD 37 7A 58 5A 00 | კი | კი | შეზღუდული | რეკურსიული |
| RAR | .rar | 52 61 72 21 (Rar!) | კი | კი | შეზღუდული | რეკურსიული |
| CAB | .cab | 4D 53 43 46 (MSCF) | კი | კი | შეზღუდული | რეკურსიული |
| ISO | .iso | 43 44 30 30 31 32769-ე offset-ზე | კი | კი | შეზღუდული | რეკურსიული |
| Shell script | .sh, .bash | 23 21 (#!) | კი | კი | შაბლონი | -- |
| Python | .py, .pyc | ტექსტი / 42 0D 0D 0A | კი | კი | შაბლონი | -- |
| JavaScript | .js, .mjs | ტექსტის გამოვლენა | კი | კი | შაბლონი | -- |
| PowerShell | .ps1, .psm1 | ტექსტის გამოვლენა | კი | კი | შაბლონი | -- |
| VBScript | .vbs, .vbe | ტექსტის გამოვლენა | კი | კი | შაბლონი | -- |
| Batch | .bat, .cmd | ტექსტის გამოვლენა | კი | კი | შაბლონი | -- |
| Java | .class, .jar | CA FE BA BE / ZIP | კი | კი | შეზღუდული | .jar რეკურსიული |
| WebAssembly | .wasm | 00 61 73 6D | კი | კი | შეზღუდული | -- |
| DEX (Android) | .dex | 64 65 78 0A (dex\n) | კი | კი | შეზღუდული | -- |
| APK (Android) | .apk | ZIP + AndroidManifest.xml | კი | კი | შეზღუდული | რეკურსიული |
გამოვლენის შრეების განმარტება
| შრე | მნიშვნელობა |
|---|---|
| ჰეში | SHA-256/MD5 ჰეში სიგნატურების მონაცემთა ბაზასთან მოწმდება |
| YARA | ფაილის შინაარსზე სრული YARA rule set გამოიყენება |
| ევრისტიკა: კი | ფაილის ტიპის სრული ევრისტიკული ანალიზი (იხილეთ ევრისტიკა) |
| ევრისტიკა: შეზღუდული | მხოლოდ საბაზისო ენტროპიისა და სტრუქტურის შემოწმებები |
| ევრისტიკა: შაბლონი | საეჭვო ბრძანებებისა და ობფუსკაციის ტექსტ-ზე დაფუძნებული შაბლონ-შეჯამება |
| არქივის რეკურსია | შინაარსი ამოღებული და ყოველი ფაილი ცალ-ცალკე სკანირდება |
მაგიური ნომრის გამოვლენა
PRX-SD ტიპის დასადგენად ყოველი ფაილის პირველ 8192 ბაიტს კითხულობს. ეს მიდგომა გაფართოება-ზე დაფუძნებულ გამოვლენაზე სანდოა:
File: invoice.pdf.exe
Extension suggests: PDF
Magic bytes: 4D 5A → PE executable
PRX-SD identifies: PE (correct)გაფართოების შეუსაბამობა
ფაილის გაფართოება გამოვლენილ მაგიურ ნომერს რომ არ შეესაბამება, PRX-SD სკანირების ანგარიშში შენიშვნას ამატებს. გაფართოების შეუსაბამობა სოციალური ინჟინერიის გავრცელებული ტექნიკაა (მაგ., photo.jpg.exe).
მაგიური გამოვლენის პრიორიტეტი
მრავალი სიგნატურის შესაძლო შეჯამებისას (მაგ., .zip-ისა და .docx-ისთვის ZIP მაგიკი) PRX-SD უფრო ღრმა ინსპექტირებას იყენებს:
- 0-ე offset-ზე მაგიური ბაიტების წაკითხვა
- გაურკვევლობისას (მაგ., ZIP) შიდა სტრუქტურის ინსპექტირება
- ZIP-ზე დაფუძნებული ფორმატებისთვის
[Content_Types].xml(OOXML),META-INF/MANIFEST.MF(JAR),AndroidManifest.xml(APK) შემოწმება - გენერული კონტეინერის ტიპზე გადასვლა
არქივის რეკურსიული სკანირება
PRX-SD არქივის (ZIP, 7z, tar, gzip, RAR და სხვ.) შეხვედრისას შინაარსს დროებით დირექტორიაში ამოიღებს და ყოველ ფაილს სრული გამოვლენის კონვეიერით ცალ-ცალკე სკანირებს.
რეკურსიის სიღრმე
| პარამეტრი | ნაგულისხმევი | აღწერა |
|---|---|---|
max_archive_depth | 5 | არქივებში არქივების მაქსიმალური ჩადგმის დონეები |
max_archive_files | 10,000 | ერთი არქივიდან ამოსაღები ფაილების მაქსიმალური რაოდენობა |
max_archive_size_mb | 500 | გაჩერებამდე ამოღების სრული მაქსიმალური ზომა |
ეს ლიმიტები zip-bomb-ისა და ღრმად ჩადგმული არქივების მიერ რესურსების გამოლევას ხელს უშლის.
# ~/.config/prx-sd/config.toml
[scanning]
max_archive_depth = 5
max_archive_files = 10000
max_archive_size_mb = 500Zip Bomb-ები
PRX-SD zip-bomb-ებს (ექსტრემალური შეკუმშვის კოეფიციენტის მქონე არქივები) ადგენს და გადაჭარბებული დისკის სივრცის ან მეხსიერების მოხმარებამდე ამოღებას წყვეტს. Zip-bomb-ის გამოვლენა სკანირების შედეგებში SUSPICIOUS-ად ირეპორტება.
პაროლ-დაცული არქივები
PRX-SD პაროლ-დაცული არქივების ამოღება ვერ ახერხებს. ეს სკანირების შედეგებში skipped-ად ირეპორტება, დაშიფვრის შესახებ შენიშვნით. არქივის ფაილი თავად კი ჰეშ- და YARA მონაცემთა ბაზებთან მაინც მოწმდება.
სკრიპტის გამოვლენა
ტექსტ-ზე დაფუძნებული სკრიპტ-ფაილებისთვის (shell, Python, JavaScript, PowerShell, VBScript, batch) PRX-SD შაბლონ-ზე დაფუძნებულ ევრისტიკებს გამოიყენებს:
| შაბლონი | ქულა | აღწერა |
|---|---|---|
| ობფუსცირებული სტრინგები | 10-20 | Base64-კოდირებული ბრძანებები, ჭარბი სტრინგ-კონკატენაცია |
| ჩამოტვირთვა + შესრულება | 15-25 | curl/wget bash/sh-ზე მილით, Invoke-WebRequest + Invoke-Expression |
| Reverse shell | 20-30 | ცნობილი reverse shell შაბლონები (/dev/tcp, nc -e, bash -i) |
| სერთიფიკატების წვდომა | 10-15 | /etc/shadow-ის, ბრაუზერის სერთიფიკატების საცავების, keychain-ის წაკითხვა |
| Persistence მექანიზმები | 10-15 | cron job-ების, systemd სერვისების, რეესტრის გასაღებების დამატება |
მხარდაუჭერელი ფაილები
ცნობილ მაგიურ ნომერთან შეუსაბამო ფაილები ჰეშ- და YARA მონაცემთა ბაზებთან მაინც მოწმდება. ევრისტიკული ანალიზი უცნობ ფაილის ტიპებზე არ გამოიყენება. გავრცელებული მაგალითები:
- უხეში binary მონაცემები
- საჯარო მაგიური ნომრების გარეშე საკუთრებრივი ფორმატები
- დაშიფრული ფაილები (გარდა შემთხვევისა, როდესაც კონტეინერის ფორმატი ცნობილია)
ეს ფაილები სკანირების ანგარიშებში type: unknown-ად ჩანს და მხოლოდ ჰეში + YARA სკანირებას იღებს.
შემდეგი ნაბიჯები
- ევრისტიკული ანალიზი -- ფაილის ტიპის მიხედვით დეტალური ევრისტიკური შემოწმებები
- YARA წესები -- კონკრეტული ფაილ-ფორმატის სტრუქტურების სამიზნე წესები
- ფაილებისა და დირექტორიების სკანირება -- ფაილების სკანირება პრაქტიკაში
- გამოვლენის ძრავის მიმოხილვა -- ყველა შრის ერთობლივი მუშაობა