Skip to content
ეს გვერდი შეიქმნა და ითარგმნა ხელოვნური ინტელექტის დახმარებით. თუ შეამჩნევთ უზუსტობას, გთხოვთ, დაგვეხმარეთ გაუმჯობესებაში. GitHub-ზე რედაქტირება

მხარდაჭერილი ფაილის ტიპები ​

PRX-SD ფაილის გაფართოებაზე დაყრდნობის ნაცვლად ფაილის ტიპს მაგიური ნომრის გამოვლენით (ფაილის პირველი ბაიტების გამოკვლევა) ადგენს. ეს გადარქმეული ან გაფართოების გარეშე ფაილების ზუსტ იდენტიფიკაციას უზრუნველყოფს.

ფაილის ტიპების მატრიცა ​

ქვემოთ მოცემული ცხრილი მხარდაჭერილ ყველა ფაილის ტიპსა და თითოეულზე გამოყენებული გამოვლენის შრეებს გვიჩვენებს:

ფაილის ტიპიგაფართოებებიმაგიური ბაიტებიჰეშიYARAევრისტიკაარქივის რეკურსია
PE (Windows).exe, .dll, .sys, .scr, .ocx4D 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კიკიკი--
PDF.pdf25 50 44 46 (%PDF)კიკიკი--
Office (OLE).doc, .xls, .pptD0 CF 11 E0კიკიკი--
Office (OOXML).docx, .xlsx, .pptx50 4B 03 04 (ZIP) + [Content_Types].xmlკიკიკიამოღებული
ZIP.zip50 4B 03 04კიკიშეზღუდულირეკურსიული
7-Zip.7z37 7A BC AF 27 1Cკიკიშეზღუდულირეკურსიული
tar.tar75 73 74 61 72 257-ე offset-ზეკიკიშეზღუდულირეკურსიული
gzip.gz, .tgz1F 8Bკიკიშეზღუდულირეკურსიული
bzip2.bz242 5A 68 (BZh)კიკიშეზღუდულირეკურსიული
xz.xzFD 37 7A 58 5A 00კიკიშეზღუდულირეკურსიული
RAR.rar52 61 72 21 (Rar!)კიკიშეზღუდულირეკურსიული
CAB.cab4D 53 43 46 (MSCF)კიკიშეზღუდულირეკურსიული
ISO.iso43 44 30 30 31 32769-ე offset-ზეკიკიშეზღუდულირეკურსიული
Shell script.sh, .bash23 21 (#!)კიკიშაბლონი--
Python.py, .pycტექსტი / 42 0D 0D 0Aკიკიშაბლონი--
JavaScript.js, .mjsტექსტის გამოვლენაკიკიშაბლონი--
PowerShell.ps1, .psm1ტექსტის გამოვლენაკიკიშაბლონი--
VBScript.vbs, .vbeტექსტის გამოვლენაკიკიშაბლონი--
Batch.bat, .cmdტექსტის გამოვლენაკიკიშაბლონი--
Java.class, .jarCA FE BA BE / ZIPკიკიშეზღუდული.jar რეკურსიული
WebAssembly.wasm00 61 73 6Dკიკიშეზღუდული--
DEX (Android).dex64 65 78 0A (dex\n)კიკიშეზღუდული--
APK (Android).apkZIP + 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 უფრო ღრმა ინსპექტირებას იყენებს:

  1. 0-ე offset-ზე მაგიური ბაიტების წაკითხვა
  2. გაურკვევლობისას (მაგ., ZIP) შიდა სტრუქტურის ინსპექტირება
  3. ZIP-ზე დაფუძნებული ფორმატებისთვის [Content_Types].xml (OOXML), META-INF/MANIFEST.MF (JAR), AndroidManifest.xml (APK) შემოწმება
  4. გენერული კონტეინერის ტიპზე გადასვლა

არქივის რეკურსიული სკანირება ​

PRX-SD არქივის (ZIP, 7z, tar, gzip, RAR და სხვ.) შეხვედრისას შინაარსს დროებით დირექტორიაში ამოიღებს და ყოველ ფაილს სრული გამოვლენის კონვეიერით ცალ-ცალკე სკანირებს.

რეკურსიის სიღრმე ​

პარამეტრინაგულისხმევიაღწერა
max_archive_depth5არქივებში არქივების მაქსიმალური ჩადგმის დონეები
max_archive_files10,000ერთი არქივიდან ამოსაღები ფაილების მაქსიმალური რაოდენობა
max_archive_size_mb500გაჩერებამდე ამოღების სრული მაქსიმალური ზომა

ეს ლიმიტები zip-bomb-ისა და ღრმად ჩადგმული არქივების მიერ რესურსების გამოლევას ხელს უშლის.

toml
# ~/.config/prx-sd/config.toml
[scanning]
max_archive_depth = 5
max_archive_files = 10000
max_archive_size_mb = 500

Zip Bomb-ები

PRX-SD zip-bomb-ებს (ექსტრემალური შეკუმშვის კოეფიციენტის მქონე არქივები) ადგენს და გადაჭარბებული დისკის სივრცის ან მეხსიერების მოხმარებამდე ამოღებას წყვეტს. Zip-bomb-ის გამოვლენა სკანირების შედეგებში SUSPICIOUS-ად ირეპორტება.

პაროლ-დაცული არქივები ​

PRX-SD პაროლ-დაცული არქივების ამოღება ვერ ახერხებს. ეს სკანირების შედეგებში skipped-ად ირეპორტება, დაშიფვრის შესახებ შენიშვნით. არქივის ფაილი თავად კი ჰეშ- და YARA მონაცემთა ბაზებთან მაინც მოწმდება.

სკრიპტის გამოვლენა ​

ტექსტ-ზე დაფუძნებული სკრიპტ-ფაილებისთვის (shell, Python, JavaScript, PowerShell, VBScript, batch) PRX-SD შაბლონ-ზე დაფუძნებულ ევრისტიკებს გამოიყენებს:

შაბლონიქულააღწერა
ობფუსცირებული სტრინგები10-20Base64-კოდირებული ბრძანებები, ჭარბი სტრინგ-კონკატენაცია
ჩამოტვირთვა + შესრულება15-25curl/wget bash/sh-ზე მილით, Invoke-WebRequest + Invoke-Expression
Reverse shell20-30ცნობილი reverse shell შაბლონები (/dev/tcp, nc -e, bash -i)
სერთიფიკატების წვდომა10-15/etc/shadow-ის, ბრაუზერის სერთიფიკატების საცავების, keychain-ის წაკითხვა
Persistence მექანიზმები10-15cron job-ების, systemd სერვისების, რეესტრის გასაღებების დამატება

მხარდაუჭერელი ფაილები ​

ცნობილ მაგიურ ნომერთან შეუსაბამო ფაილები ჰეშ- და YARA მონაცემთა ბაზებთან მაინც მოწმდება. ევრისტიკული ანალიზი უცნობ ფაილის ტიპებზე არ გამოიყენება. გავრცელებული მაგალითები:

  • უხეში binary მონაცემები
  • საჯარო მაგიური ნომრების გარეშე საკუთრებრივი ფორმატები
  • დაშიფრული ფაილები (გარდა შემთხვევისა, როდესაც კონტეინერის ფორმატი ცნობილია)

ეს ფაილები სკანირების ანგარიშებში type: unknown-ად ჩანს და მხოლოდ ჰეში + YARA სკანირებას იღებს.

შემდეგი ნაბიჯები ​

Released under the Apache-2.0 License.