არაფაილური ვირუსები და მათი მუშაობის პრინციპი

რა არის არაფაილური ვირუსი?

არაფაილური ვირუსები, ესაა ტრადიციული ვირუსებისგან განსხვავებული მუშაობის პრინციპის მქონე პროგრამები, რომლებიც კომპიუტერის მყარ დისკზე არ წერენ ფაილებს. ამის მაგივრად, არაფაილური ვირუსი იყენებს ოპერაციულ სისტემაში ჩაშენებულ ხელსაწყოებს: ვირუსული პროგრამის მუშაობა პირდაპირ მეხსიერების ბარათზე (RAM) მიმდინარეობს.

მყარ დისკზე ფაილების არ ჩაწერა მთავარი მომენტია. სწორედ ამ მიზეზით არ არსებობს ე.წ. ვირუსის ხელმოწერა (signature), რომელსაც როგორც წესი, ანტივირუსები იყენებენ მავნე პროგრამების აღმოჩენისთვის. მართალია ახალი ანტივირუსული პროგრამების შემქმნელები ირწმუნებიან, რომ მათ პროდუქტს შეუძლია მავნე Powershell აქტივობის დადგენა და რეაგირების მოხდენა, თუმცა რეალობა ისაა, რომ არაფაილური ვირუსების აღმოჩენა ანტივირუსებისთვის ჯერ კიდევ სერიოზულ გამოწვევას წარმოადგენს.

როგორ მუშაობს არაფაილური ვირუსი?

არაფაილური ვირუსების მუშაობის პრინციპი დაფუძნებულია windows-ის სისტემაში ჩაშენებული ხელსაწყოების გამოყენებაზე. კონკრეტულად ასეთ ხელსაწყოებს წარმოადგენს PowerShell და Windows Management Instrumentation (WMI). ეს ხელსაწყოების windows-ის სისტემაში თავიდანვეა ჩაშენებული და სისტემური ბრძანებების შესასრულებლად გამოიყენება. ეს ხელსაწყოები არაერთი IT სპეციალისტის ყოველდღიური მუშაობის განუყოფელი ნაწილია. შესაბამისად, PowerShell-სა და WMI-ს აკრძალვა პრაქტიკულად შეუძლებელია.

ლეგიტიმური პროგრამების გამოყენება არაფაილურ ვირუსებს უპირატეს მდგომარეობაში აყენებს – მათზე შესრულებული ბრძანებები ხომ ავტომატურად აღიქმება სისტემისა და ანტივირუსების მიერ როგორც ლეგიტიმური ბრძანებები.

PowerShell და Windows Management Instrumentation (WMI)

PowerShell სკრიპტინგის ენაა, რომელიც უპრეცედენტო დონის წვდომას იძლევა მოწყობილობის შიდა ფუნქციებზე, მათ შორის Windows API-ზე. ამასთან, PowerShell ვინდოუსის სისტემის განუყოფელი ნაწილია და ოპერაციული სისტემისგან სრული ნდობა აქვს გამოცხადებული.

PowerShell-ის გამოყენება დაშორებული მანძილიდანაც შესაძლებელია WinRM-ის მეშვეობით. ამ თვისების გამო, შემტევს შესაძლებლობა აქვს გვერდი აუაროს Windows-ის ცეცხლოვან კედელს, გაუშვას ბრძანებები დაშორებული მანძილიდან ან ჩაჭრას და შეცვალოს სესიები.

რა თქმა უნდა, შესაძლებელია WinRM-ს გამორთვა, მაგრამ მისი ჩართვა შემტევს დაშორებული მანძილიდან სულ ერთ ხაზიანი კოდის მეშვეობით შეუძლია WMI-ს გამოყენებით.

WMI-ს გამოყენებით ადმინისტრატორებს შეუძლიათ სხვადასხვა მოქმედებების შესრულება. მაგალითად, მოიპოვონ ინფორმაცია სისტემის მუშაობის შესახებ, დააინსტალირონ პროგრამა ან დააყენონ განახლება. WMI-ს პრაქტიკულად, სისტემაში არსებულ ყველა რესურსზე მიუწვდება ხელი და ასევე უზრუნველყოფს პროგრამების შეუმჩნევლად გაშვებას სისტემის ჩართვის მომენტში, ან სპეციალურად არჩეულ დროს.

WMI-ს ფუნქციონალი ადმინისტრატორებს საჭირო ბრძანებების სწრაფად შესრულებაში ეხმარება, მაგრამ იგივე მიზეზით შემტევის ხელში ის მძლავრ იარაღად იქცევა. ადმინისტრატორის მსგავსად, შემტევი იყენებს WMI-ს უპირატესობებს და საჭიროების შემთხვევაში მთელ ქსელში უშვებს ვირუსულ კოდს, რომლის აღმოჩენაც არამხოლოდ ანტივირუსულ პროგრამებს, არამედ უსაფრთხოების ანალიტიკოსებსაც კი უჭირთ.

WMI-ს გათიშვის შემთხვევაში კი იზღუდება ადმინისტრატორის მოქმედების არეალი (მაგალითად, განახლებებს ვეღარ დააყენებს ქსელში) და იზრდება შესასრულებელი სამუშაოსთვის საჭირო დრო.

არაფაილური ვირუსის შეტევის მაგალითი

არაფაილური ვირუსების შეტევები მართალია ისე ფართოდ არ შუქდება, როგორც მაგალითად გამომძალველი ვირუსების (ransomware) შეტევები, თუმცა ეს მათგან მომდინარე საფრთხეებს ოდნავადაც არ ამცირებს.

არაფაილური ვირუსის შეტევის კარგი მაგალითია ოპერაცია Cobalt Kitty, რომელიც ერთ-ერთი მსხვილი აზიური კორპორაციის წინააღმდეგ მიმდინარეობდა. შემტევმა მხარემ შექმნა PowerShell-ის კარგად დამუშავებული ინფრასტრუქტურა და მსხვერპლის სისტემაში გაუშვა PowerShell payload (სპეციალურად მოდიფიცირებული კოდი), რომელიც თავის მხრივ შეიცავდა Cobalt Strike-ის payload-ს. Cobalt Strike – საფრთხეების ემულაციის პროგრამაა, რომელსაც სპეციალისტები და Pentester-ები იყენებენ სისტემის სისუსტეების შემოწმების დროს.

ამ ხერხით, შემტევმა მხარემ მოახერხა და 6 თვის განმავლობაში შეუმჩნეველი დარჩა. კომპანიის უსაფრთხოების სპეციალისტებს ეგონათ, რომ PowerShell-დან მომავალი ბრძანებები საეჭვო თუმცა ლეგიტიმური იყო, ამიტომ კონტრ-ღონისძიებები არ გაუტარებიათ.

ვერ ვიტყვით, რომ არაფაილური ვირუსების არსებობა უსაფრთხოების სფეროში ახალია. არაფაილური ვირუსის წარმომადგენელი SQL Slammer ჯერ კიდევ 2000 წლის დასაწყისში დაფიქსირდა. მიუხედავად ამისა, არაფაილურმა ვირუსებმა პოპულარობა მხოლოდ ბოლო წლების განმავლობაში მოიპოვა. ეს პირდაპირ დაკავშირებულია ე.წ. exploit kit-ების შექმნასა და ფართო გავრცელებასთან.

ყველაფერი ზემოთქმულიდან ნათელია, რომ უსაფრთხოების ტრადიციული მიდგომები არაფაილური ვირუსების წინააღმდეგ ვერ არის ეფექტური.

არაფაილური ვირუსებისგან დაცვა

PowerShell, როგორც პროგრამათა უმრავლესობა აგენერირებს log-ებს, სულ მინიმუმ როდის ჩაირთო და გამოირთო PowerShell. ლოგების ანალიზი დიდ დროს, ენერგიასა და ყურადღებას მოითხოვს. ამასთან, IT სპეციალისტებს როგორც წესი, ბევრი საქმე აქვთ და ამიტომ ვეღარ იცლიან ლოგების ანალიზისთვის. მაშ სად არის გამოსავალი?

არაფაილური ვირუსების ქცევის ანალიზი საუკეთესო მიდგომა ასეთი შეტევების დროულად დადგენისა და გაუვნებელყოფისთვის. სპეციალური მინიშნებებისთვის ყურადღების მიქცევა სწორედ ისაა, რაც კომპანიებს დაიცავს არაფაილური შეტევებისგან. ასეთი მინიშნებები შეიძლება იყოს, მაგალითად, PowerShell-ის სესია, რომელიც შესრულებულია კოდირებული (encoded) ბრძანებით, ეს ბრძანება კი გაშვებულია command line ხელსაწყოს გამოყენებით.

მსგავსი შემთხვევები კომპანიის უსაფრთხოების გუნდში უნდა იწვევდეს ბრძანების ლეგიტიმურობის შემოწმების გადაუდებელ აუცილებლობას. მხოლოდ ასეთ შემთხვევაში შეუძლია ორგანიზაციას შედარებით დაცულად იგრძნოს თავი არაფაილური შეტევებისგან.