როდესაც ოპერაციული სისტემა გთავაზობთ BIOS-ის მიკროპროგრამის ან UEFI-ის გასაღებების ბაზის განახლებას, მომხმარებელთა უმეტესობა ამაზე უარს ამბობს: „ხომ მუშაობს, რატომ შევეხო?“. თუმცა, სწორედ ამ მომენტში თქვენ ტოვებთ კომპიუტერის თავდაცვის მთავარ ხაზს ღიას, ყველაზე საშიში კლასის მავნე პროგრამებისთვის ბუტკიტებისთვის (Bootkits).
მოდით განვიხილოთ, როგორ არის მოწყობილი ეს დაბალი დონის საფრთხეები, რატომ უვლიან გვერდს ისინი საუკეთესო ანტივირუსებს, როგორ აინფიცირებენ ჰაკერები HardWare-ს დისტანციურად და როგორ შეუძლია ერთ ბუტკიტს შეუტიოს თქვენს სახლში არსებულ ყველა მოწყობილობას.
რა არის ბუთკიტი და რაში მდგომარეობს მისი ძალა?
ჩვეულებრივი ტროიანები და ვირუსები მუშაობენ უკვე ჩატვირთული ოპერაციული სისტემის (OS) შიგნით, როგორც პროცესები. მათთან ბრძოლა თანამედროვე ანტივირუსებისა და ბირთვის დაცვის მექანიზმებისთვის შედარებით მარტივია.
ბუთკიტი პრინციპულად სხვანაირად არის მოწყობილი. ის კომპიუტერის მართვას ხელში აგდებს ყველაზე ადრეულ ეტაპზე ჯერ კიდევ Windows-ის ან Linux-ის ჩატვირთვამდე. ის ინერგება ან დისკის სისტემურ EFI-სექციაში, ან პირდაპირ დედაპლატის მეხსიერების ჩიპში (SPI-flash).
რა არის მთავარი საფრთხე? ვინაიდან ბუთკიტი პირველი იშვება, ის ოპერაციული სისტემისთვის „ბატონ-პატრონის“ როლში გამოდის. როდესაც Windows-ის ან Linux-ის ბირთვი იწყებს ჩატვირთვას, ბუთკიტი უკვე იმყოფება ოპერატიულ მეხსიერებაში (RAM). ის პირდაპირ პროცესში აკეთებს ოპერაციული სისტემის ბირთვის კოდის მოდიფიცირებას, მალავს თავის პროცესებს და სრულად თიშავს დაცვის მექანიზმებს მათ გააქტიურებამდე.
ქსელური შეტევები ფაილების გარეშე: როგორ ხდება ინფიცირება ინტერნეტიდან?
არსებობს მითი: „თუ მე არ ვიწერ საეჭვო .exe ფაილებს და არ ვხსნი ფიშინგურ წერილებს, ბუთკიტი არ მემუქრება“. სამწუხაროდ, ეს ასე არ არის. ჰაკერებს შეუძლიათ მავნე პროგრამა UEFI-ში დისტანციურად ჩაწერონ, რისთვისაც იყენებენ ეგრეთ წოდებულ (Zero-click RCE)** და ე.წ. უფაილო შეტევებს (Fileless malware):
- ქსელის სკანირება და შეღწევა: ჰაკერები ავტომატიზებული სკრიპტებით ეძებენ გარე პორტებზე ღიად დატოვებულ დაუცველ ქსელურ სერვისებს (მაგალითად, RDP, SMB ან მოძველებულ ვებ-სერვერებს). უსაფრთხოების კრიტიკული ხვრელის აღმოჩენის შემთხვევაში, ისინი ოპერაციული სისტემის გავლით ახორციელებენ პირველად შეღწევას.
- უფაილო შეტევა (Fileless Malware) RAM-ში: ნაპოვნი უსაფრთხოების ხარვეზის გამოყენებით, მავნე კოდი თავსდება ოპერატიულ მეხსიერებაში იმ პროგრამების სივრცეში, რომლებსაც ოპერაციული სისტემა მართავს. ვინაიდან მყარ დისკზე ფიზიკური ფაილი (მაგალითად,
.exe) არ იწერება, ხელმოწერებზე დაფუძნებული კლასიკური ანტივირუსები ამ აქტივობას ვერ ამჩნევენ. ამავე ეტაპზე, ვირუსი სისტემური ხვრელების დახმარებით იღებს უმაღლეს პრივილეგიებს (SYSTEMანroot).
- აპარატურული წვდომა და მიკროპროგრამის გადაწერა: მაქსიმალური უფლებების მოპოვების შემდეგ, მავნე პროგრამა ჩადის ოპერაციული სისტემის ბირთვის დონეზე, რათა პირდაპირი აპარატურული წვდომა მოიპოვოს. აქ ის ეძებს კონკრეტული დედაპლატის ან ჩიპსეტის ტექნიკურ ნაკლოვანებებს (SPI დაცვის რეგისტრების შეცდომებს). თუ ფიზიკური ჩიპის დაცვა (SPI Write Protection) არასწორად არის კონფიგურირებული, ვირუსი გვერდს უვლის მას და თავის მავნე კოდს პირდაპირ დედაპლატის BIOS/UEFI ჩიპში (SPI Flash მეხსიერებაში) წერს. სტანდარტული სისტემური ცვლადები ამ დროს უსარგებლოა, რადგან ჩიპის ფიზიკური გადაწერა ბევრად უფრო დაბალ, აპარატურულ დონეზე ხდება.
შედეგი: მავნე პროგრამა იძენს „აპარატურულ უკვდავებას“. თქვენ შეგიძლიათ სრულად დააფორმატოთ SSD, ხელახლა დააყენოთ სუფთა სისტემა, მაგრამ შემდეგი ჩართვისას ბუთკიტი კვლავ გაიშლება მეხსიერებაში პირდაპირ დედაპლატის მიკროსქემიდან.
ჯაჭვური რეაქცია: ლოკალური ქსელის ყველა მოწყობილობის ინფიცირება
ყველაზე კრიტიკული ფაზა მას შემდეგ იწყება, რაც ბუთკიტი აპარატურულ დონეზე გამაგრდება. უმაღლესი პრივილეგიების მქონე მავნე პროგრამა ინფიცირებულ კომპიუტერს პლაცდარმად აქცევს, საიდანაც იერიშს მთელ თქვენს ლოკალურ ქსელზე მიიტანს.
მნიშვნელოვანია აღინიშნოს: ყველა ბუთკიტს არ აქვს ჩაშენებული ქსელური ჭიის (Worm) ან ლოკალური ბოტნეტის ფუნქციონალი ბევრი მათგანი მხოლოდ კონკრეტული მსხვერპლის ფარულ თვალთვალზეა ორიენტირებული. თუმცა, აპარატურული დონის უფლებები ჰაკერებს აძლევს სრულ ტექნიკურ შესაძლებლობას, საჭიროების შემთხვევაში, კომპიუტერი მეზობელ მოწყობილობებზე თავდასხმის იარაღად აქციონ.
ასეთ შემთხვევაში, მავნე პროგრამა იწყებს შიდა ქსელის ფარულ სკანირებას და სხვა წერტილების დაინფიცირების მცდელობას:
- სხვა კომპიუტერები და ნოუთბუქები: შიდა ქსელური პროტოკოლების (მაგალითად, SMB-ის) ხვრელების მეშვეობით, ვირუსი ცდილობს მავნე კოდი მეზობელ მოწყობილობებზეც გაავრცელოს. თუ მეზობელ კომპიუტერებზეც უსაფრთხოების ანალოგიური ხარვეზები დახვდება, ვირუსმა შესაძლოა იქაც მოიპოვოს ბირთვის დონის უფლებები და, საბოლოო ჯამში, მათი UEFI-ც დააზიანოს.
- როუტერები და ქსელური საცავები (NAS): ვირუსი ცდილობს პაროლების შერჩევას (Brute Force) ან მარშრუტიზატორის პროგრამულ უზრუნველყოფაში არსებული ხვრელების გამოყენებას. წარმატების შემთხვევაში, ის ხელში აგდებს ქსელის მართვას როუტერის დონეზე და ცვლის DNS-სერვერებს, რათა ქსელში ჩართული მოწყობილობები ყალბ, მავნე ვებგვერდებზე გადაამისამართოს და მათი ტრაფიკი გააკონტროლოს.
- ჭკვიანი სახლი (IoT მოწყობილობები): სათვალთვალო კამერებს, ჭკვიან ტელევიზორებს და სხვა გაჯეტებს ხშირად აქვთ სუსტი ქარხნული დაცვა. ვირუსი მათზე წვდომას მოიპოვებს და თავისი ბოტნეტის (botnet) ნაწილად აქცევს, რათა მოგვიანებით გარე შეტევებისთვის გამოიყენოს.
საბოლოო ჯამში, იმ შემთხვევაშიც კი, თუ თქვენს კომპიუტერზე ოპერაციულ სისტემას ხელახლა დააყენებთ, ლოკალურ ქსელში არსებული სხვა ინფიცირებული მოწყობილობებიდან ან გატეხილი როუტერიდან მავნე კოდი მალევე ხელახლა შემოაღწევს დაუცველ სისტემაში.
რატომ უნდა განვაახლოთ dbx ბაზა (Secure Boot)?
ბუთკიტებისგან დასაცავად შეიქმნა ტექნოლოგია Secure Boot (უსაფრთხო ჩატვირთვა). კომპიუტერის ჩართვისას ის ამოწმებს ყველა ჩამტვირთველის ციფრულ ხელმოწერას.
თუმცა, ბოროტმოქმედები პოულობენ სხვა სისტემების ძველ, ოფიციალურად ხელმოწერილ ჩამტვირთავებს, რომლებშიც ოდესღაც კრიტიკული უსაფრთხოების შეცდომები იყო დაშვებული. ჰაკერი იყენებს ასეთ უსაფრთხოების ხვრელის მქონე, მაგრამ ლეგალურ ფაილს, როგორც „ტარანს“ დაცვის გვერდის ავლით: UEFI ხედავს ვალიდურ ხელმოწერას, მიიჩნევს ფაილს სანდოდ, უშვებს მას და მასთან ერთად ბუთკიტსაც.
dbx ბაზის განახლება, არსებითად, არის გაუქმებული ხელმოწერების შავი სია. როდესაც ოპერაციული სისტემა აახლებს dbx-ს, ის უკრძალავს თქვენს დედაპლატას ამ ძველი, დაუცველი ჩამტვირთავების გაშვებას, რითაც სამუდამოდ კეტავს ჰაკერებისთვის ამ უსაფრთხოების ხვრელს.
ქსელური ტრაფიკი-უჩინარი: რატომ არის Wireshark უსარგებლო OS-ის შიგნით?
ვთქვათ, ბუთკიტი გამაგრდა სისტემაში და იწყებს თქვენი პაროლების გაგზავნას ან ბრძანებების მიღებას თავისი სერვერიდან. თუ თქვენ გაუშვებთ Wireshark-ს, tcpdump-ს ან დავალებების მენეჯერს (Task Manager) ამ ოპერაციული სისტემის შიგნით, თქვენ ვერანაირ საეჭვო ტრაფიკს ვერ დაინახავთ.
ანალიზატორი პროგრამები ქსელს უსმენენ ოპერაციული სისტემის ბირთვის სისტემური გამოძახებების (system calls) მეშვეობით. მაგრამ რადგან ბუთკიტი თავად აკონტროლებს ბირთვს, ის ამ მოთხოვნებს გზაშივე ანადგურებს. როდესაც Wireshark ითხოვს ქსელური პაკეტების ჩვენებას, ბუთკიტი უბრალოდ „ამოჭრის“ ანგარიშიდან თავის IP-მისამართებს. ოპერაციული სისტემისთვის ეს ტრაფიკი ფიზიკულად არც არსებობდა.
როგორ დავიჭიროთ ბუთკიტის ტრაფიკი სწორად?
ბუთკიტის ქსელური აქტივობის დაჭერა შესაძლებელია მხოლოდ გარედან, როდესაც პაკეტები უკვე ფიზიკულად გასცდნენ კომპიუტერის ქსელურ ბარათს:
- პორტების დუბლირება (Port Mirroring / SPAN): ჭკვიან ქსელურ გამანაწილებელზე (სვიჩზე) ირთვება ფუნქცია, რომელიც ინფიცირებული კომპიუტერის მთელ ქსელურ ტრაფიკს მეზობელ, სუფთა ნოუთბუქზე აკოპირებს, სადაც Wireshark-ია ჩართული. სვიჩის აპარატურულ ლოგიკას ბუთკიტი ვერანაირად ვერ მოატყუებს.
- აპარატურული ქსელური ხიდი (Network TAP): სპეციალური მოწყობილობა თავსდება ინტერნეტ-კაბელის „ჭრილში“ და დუბლირებას უკეთებს ელექტრულ სიგნალებს ანალიტიკოსის მოწყობილობაზე.
- ლოგირება შლუზზე (როუტერზე): ბუთკიტს, ადრე თუ გვიან, მაინც მოუწევს ინტერნეტში თავის სერვერებთან დაკავშირება. თუ თქვენი როუტერის (ან სპეციალური ფილტრის, მაგალითად Pi-hole-ის) ჩანაწერებს შეამოწმებთ, იქ მკაფიოდ გამოჩნდება ყველა ის საეჭვო მისამართი, რომლებსაც დაინფიცირებული კომპიუტერი ფარულად უკავშირდება.
დასკვნა
BIOS/UEFI კომპიუტერის ფუნდამენტია. თუ ჰაკერებმა ეს საძირკველი გატეხეს, ნებისმიერი ანტივირუსი თუ დამცავი პროგრამა უსარგებლო ხდება. BIOS/UEFI-ისა და dbx-ის განახლება სულ რამდენიმე წუთის საქმეა, თუმცა ეს ერთადერთი გზაა იმ „უკვდავი“ საფრთხეებისგან თავდასაცავად, რომლებსაც ოპერაციული სისტემის გადაყენება ან ახალი მყარი დისკის ჩადგმაც კი ვერ შველის.