ამ პოსტში ჩვენ ვისაუბრებთ გამომძალველი პროგრამების (ransomware) თეორიულ მომავალზე, როგორ შეიძლება ისინი განვითარდნენ და დაიხვეწონ, შეიძინონ ახალი ფუნქციები და მოახდინონ საკუთარი პოტენციალის ბოლომდე გამოყენება. ახლანდელი გამომძალველი პროგრამები საკმაოდ პრიმიტიულია და ამ ვირუსული პროგრამის სხვადასხვა ვარიანტების ავტორები ხშირად უშვებენ სერიოზულ შეცდომებს, რაც უსაფრთხოების ექსპერტებს საშუალებას აძლევს დაშიფრული ფაილების გაშიფვრა მოახერხონ. პრიმიტიულობის მიუხედავად, ეს ვირუსი ფრიად მომგებიანია: FBI-ის ინფორმაციით ამ პროგრამების ოპერატორები საერთო ჯამში 1 მილიარდს შოულობენ… ყოველ წელს.
გამომძალველი პროგრამების პრიმიტიულობა მუდმივი ვერ იქნება, ამიტომ საჭიროა ვიკითხოთ რა სახის განვითარება შეიძლება განიცადოს მან? სწორედ ამ კითხვაზე პასუხის გაცემას შევეცდებით, თუმცა ჩვენი ვარაუდების გარკვეული ნაწილი მხოლოდ თეორიულია და ნაკლებად სავარაუდოა ისინი პრაქტიკაში ვიხილოთ.
ზოგადი მიმოხილვა: გამომძალველი პროგრამები დღეს
გამომძალველი პროგრამების „სიდიადე“ იმაშია, რომ ასეთ მარტივ პროგრამას შეუძლია უსერიოზულესი პრობლემების გამოწვევა. ამ ვირუსის მოქმედების პრინციპი შემდეგში მდგომარეობს: მოხვდება რა მსხვერპლის კომპიუტერში, თანმიმდევრობით მიჰყვება ფაილებს, უცვლის გაფართოებას და შიფრავს მათ. მას შეუძლია მიწვდეს არამხოლოდ ლოკალურ, არამედ ქსელში გაზიარებულ (network sharing) ფაილებსაც. დაშიფვრის დასრულებისას გამოდის ფანჯარა, სადაც მითითებულია თქვენი ფაილების დაბრუნების ინსტრუქცია.
მონაცემების დაშიფვრის შემდეგ, მსხვერპლის საქმე ცუდადაა. ის ან უნდა შეეგუოს ფაილების სამუდამოდ დაკარგვას, ან კიდევ გადაუხადოს კიბერ გამომძალველებს მოთხოვნილი თანხა. თუ მსხვერპლი თანხის გადახდას გადაწყვეტს, ამისთვის უნდა მიჰყვეს ინსტრუქციას. ინსტრუქციები საკმაოდ მრავალფეროვანია, თუმცა ყველა მათგანის დაყოფა შეიძლება სამ ძირითად საფეხურად:
- როდესაც გამომძალველი პროგრამა შიფრავს თქვენს ფაილებს, ის ამავე დროს აგენერირებს საიდუმლო გასაღების შემცველ ფაილს და ინახავს მას თქვენსავე კომპიუტერზე.
- თქვენ თანხის გადახდასთან ერთად, მითითებულ მისამართზე აგზავნით საიდუმლო გასაღების შემცველ ფაილსაც.
- გამომძალველები იღებენ ამ ფაილს, ამოწმებენ მას თავიანთ ბაზაში და გიგზავნიან გაშიფვრისთვის საჭირო გასაღებს.
თუ გაგიმართლათ, ანუ თუ გამომძალველები ჯერ კიდევ აქცევენ ყურადღებას თავიანთ ვირუსს, ან რაიმე შეცდომის გამო შიფრაცია ჯერ არ გაუფუჭებიათ, მაშინ მიიღებთ გაშიფვრისთვის საჭირო გასაღებს ან ხელსაწყოს რომელიც ამ საქმეს თავისით გააკეთებს. ეს სერიოზული ბიზნესია – უახლესი გამომძალველი პროგრამები ფასდაკლებასაც კი სთავაზობენ მსხვერპლს, თუ ისინი თავიან მეგობრებს დააინფიცირებენ.
ძირითადი პრობლემა კი ისაა, რომ ამ პროცესში არანაირი გარანტია არ არსებობს: გამომძალველები ან გამოგზავნიან საჭირო გასაღებს, ან არა. არც თუ იშვიათად მსხვერპლს საქმე აქვს რიგით თაღლითთან, რომელსაც საერთოდ არ ფიქრობს გასაღების გაგზავნას. ზოგჯერ, ასეთი გასაღები საერთოდ არ არსებობს, არ არის დაგენერირებული ან დაკარგულია. ხშირად, გამომძალველებს სამართალდამცავი ორგანოები აპატიმრებენ და მათთან ერთად უჩინარდება თქვენთვის ასე საჭირო საიდუმლო გასაღები. არც ის არის გამორიცხული, გამომძალველები შეშინდნენ და მიიმალონ. სწორედ ამიტომ, გამომძალველებისთვის თანხის გადახდა უაღრესად სარისკო ნაბიჯია.
ალბათ უკეთესი იქნებოდა, რისკი რომ ნაკლები იყოს.
გასაღების მიღება ე.წ. ჭკვიანი კონტრაქტის საფუძველზე
თანამედროვე გამომძალველი პროგრამების უმეტესობა უსაფრთხო გადახდებისთვის იყენებს კრიპტოვალუტას, მაგალითად ბიტკოინს. კრიპტოვალუტების არსებობა სამართალდამცავებისთვის თავის ტკივილია, მაგრამ მისი პოპულარობიდან გამომდინარე ნაკლებად სავარაუდოა ისინი გაქრნენ. უფრო მოსალოდნელია გამომძალველმა პროგრამებმა ევოლუცია განიცადონ და უსაფრთხო გადახდების გამოყენებით შედარებით „საიმედო“ გახდნენ.
როდესაც მსხვერპლი იხდის თანხას, მაგრამ სანაცვლოდ არ იღებს გასაღებს – ის კარგავს ფაილებსაც და თანხასაც. ჭკვიან გამომძალველს შეუძლია, მტკიცებულების სახით შემოგთავაზოთ რამდენიმე შემთხვევით შერჩეული ფაილის გაშიფვრა, მაგრამ ამის შემდეგაც კი არ არსებობს გარანტია, რომ ის გასაღებს გამოგიგზავნით.
ამ პრობლემის გადაჭრის გზა არის პირობითი გადახდები. თანხის პირდაპირ გაგზავნის ნაცვლად, მსხვერპლს შეუძლია გამოიყენოს კრიპტოვალუტის მახასიათებელი, რომელიც საშუალებას იძლევა თანხა არ მიუვიდეს ოპერატორს თუ კი ის არ გასცემს გასაღებს. უფრო კონკრეტულად კი, დაინტერესებულ გამომძალველს შეუძლია გადარიცხვა აწარმოოს ე.წ. ჭკვიანი კონტრაქტის სკრიპტის მეშვეობით, მაგალითად ეთერეუმის სისტემაში, რაც უზრუნველყოფს შემდეგს:
„გადახდილი თანხა დაჯდება გამომძალველი პროგრამის ოპერატორის ანგარიშზე, მაშინ და მხოლოდ მაშინ, როდესაც გამომძალველი პროგრამის ავტორი გახსნის მას, ანუ იგივე ბლოკჩეინში დაპოსტავს ფაილების გაშიფვრისთვის საჭირო გასაღებს“.
ამ მეთოდს ნულოვანი ცოდნის პირობით გადახდა ეწოდება. იდეის ავტორია გრეგორი მაქსველი და მისი პრაქტიკული დემონსტრირება პირველად მოახდინა ჟან ბოუიმ (Sean Bowe), რომელიც ZCash გუნდის წევრია. იდეა მოკლედ ასე გამოიყურება: იქმნება გაშიფვრის გასაღები k რომელიმე კონკრეტული K მნიშვნელობისთვის, რომელიც მსხვერპლის კომპიუტერში გენერირდება. ასეთ დროს იოლია ჭკვიანური კონტრაქტის დადება: ის ვინც თანხა უნდა მიიღოს, წარმოადგენს გაშიფვრისთვის საჭირო ისეთ k გასაღებს, რომ შესრულდეს პირობა – K=SHA256(k). ამის გაკეთება კი ეთერეუმის პლათფორმაზე მარტივად შეიძლება.
შესაძლოა საჭირო გახდეს იმის დამტკიცება, რომ k ნამდვილად არის გაშიფვრისთვის საჭირო გასაღები და გაშიფრული ფაილები მართებულ მონაცემებს შეიცავენ. ამ პრობლემის მოგვარების რამდენიმე გზა არსებობს. ერთ-ერთია კომპლექსური ნულოვანი ცოდნის მტკიცებულების ტექნიკა (მაგ. zkSNARKs ან ZKBoo), როდესაც აუცილებელი მტკიცებულება გენერირდება მხარეთა დიალოგის გარეშე. თუმცა ეს ყველაფერი გამომძალველი პროგრამების ავტორთა ცოდნის დონეს აღემატება, რომლებსაც ზოგჯერ საბაზო RSA შიფრის სათანადოდ გამოყენებაც კი უჭირთ .
„ავტონომიური“ გამომძალველი პროგრამები
დეშიფრაციის ვერიფიცირების შესაძლებლობა კლიენტების (მსხვერპლის) კმაყოფილების დონეს მნიშვნელოვნად ამაღლებს, თუმცა თავად გამომძალველი პროგრამის დეველოპერისთვის თითქმის არაფერს ცვლის. ამასთანავე, მსგავსი იდეების იმპლემენტაცია არსებითად გაზრდის ვირუსის კოდის კომპლექსურობას. ბუნებრივია, ვირუსების შემქმნელები ასეთ რამეზე უარს იტყვიან და მხარს დაუჭერენ მხოლოდ იმ იდეებს, რომლებიც მათ აშკარა უპირატესობებს სთავაზობს. დეველოპერებისთვის ცალსახად მომგებიანი იდეის განხორციელების დრო მისი პრაქტიკაში გატარების სირთულიდან გამომდინარე, ჯერ არ დამდგარა, თუმცა თავად იდეა მარტივია: შეიქმნას ისეთი გამომძალველი პროგრამა რომელსაც ოპერატორი არ დასჭირდება.
ჩვენ ზევით აღვნიშნეთ, რომ მესამე საფეხურზე ვირუსის ოპერატორი მსხვერპლს უგზავნის დეშიფრაციისთვის საჭირო გასაღებს. ეს ნაბიჯი ყველაზე სახიფათოა ოპერატორისთვის, რადგან ისინი მსხვერპლს პირდაპირ უკავშირდებიან ინტერნეტის მეშვეობით და ამასთან ინახავენ დიდი რაოდენობით გასაღებებს. წარმოიდგინეთ რამდენად მომგებიანი იქნებოდა ამ საფეხურის საჭიროება საერთოდ რომ გამოეთიშათ ვირუსის დეველოპერებს.
პრაქტიკაში ამისთვის საჭიროა, ან სანდო მესამე პირის არსებობა, ან კიდევ გამომძალველი პროგრამის უნარი – თავად მოახდინოს მის მიერ შიფრირებული ფაილების დეშიფრაცია თანხის გადახდის შემდეგ. ეს აზრი წინააღმდეგობაში მოდის თავის თავთან, რადგან მისი განხორციელებისთვის აუცილებელი იქნება მსხვერპლის კომპიუტერშივე ინახებოდეს დეშიფრაციის გასაღები. აქ კი უკვე ის პრობლემა იჩენს თავს, რომ მსხვერპლს შეუძლია თავად მიაგნოს ამ გასაღებს საკუთარ კომპიუტერში, მოახდინოს ფაილების დეშიფრაცია და არაფერი გადაუხადოს გამომძალველს.
რა მოხდება იმ შემთხვევაში, თუ მსხვერპლს არ შეეძლება საკუთარი კომპიუტერი დაჰაკოს?
ეს ერთი შეხედვით გიჟური იდეა, საკმაოდ რეალურია და გულისხმობს პროგრამების გაშვებისთვის უსაფრთხო გარემოს შექმნას. ეს იდეა განხორციელებულია როგორც Intel-ის SGX, ისე ARM-ის TrustZone ტექნოლოგიის მეშვეობით და თანამედროვე პროცესორების უმეტესობაში გვხვდება. ეს სისტემა მომხმარებელს საშუალებას აძლევს შექმნას „უსაფრთხო ანკლავები“: ისეთი პროგრამული გარემო, რომელსაც ვერ მიწვდება ვერცერთი სხვა პირი. SGX ტექნოლოგია ახდენს თითოეული ანკლავის იზოლაციას დანარჩენი ანკლავებისგან, რაც პრაქტიკულად შეუძლებელს ხდის მათში არსებული საიდუმლოებების ხელყოფას.
თეორიულად, შესაძლებელია ისეთი გამომძალველი პროგრამის შექმნა, რომელიც თავისი დეშიფრაციის გასაღებს დააგენერირებს და შეინახავს ერთ-ერთ ასეთ უსაფრთხო ანკლავში. მასზე წვდომის საშუალებას კი მსხვერპლს მისცემს მხოლოდ მაშინ, როდესაც ის წარმოადგენს სპეციალურ მისამართზე გადახდის დამადასტურებელ საბუთს.
ამ მეთოდის დიდებულება იმაშია, რომ მესამე მხარეს არ სჭირდება გადახდის დადასტურება და ოპერატორების არსებობის აუცილებლობა ქრება. თანხის გადახდის შემდეგ, მსხვერპლს შეუძლია წარმოადგინოს SGX ანკლავი მასთან დაკავშირებულ ბლოკჩეინთან ერთად. თუ ბლოკჩეინის ფრაგმენტი საკმარისი ძალისაა (hashpower) და სპეციფიკურ მისამართზე გადახდის ვალიდურობა დასტურდება, მაშინ ანკლავს შეუძლია გასცეს გასაღები.
კარგი სიახლე ისაა, რომ Intel-ცა და ARM-იც სერიოზულ რესურსებს ხარჯავენ, რათა აცილებულ იქნას მსგავსი უნებართვო მიმართვები დაცულ არეებში. ვირუსის დეველოპერებს SGX ანკლავების შესაქმნელად სჭირდებათ Intel-ის სპეციალური სერთიფიკატი და ძალიან საეჭვოა Intel-ის კორპორაციამ გამომძალველებთან თანამშრომლობა გააჩაღოს. ამიტომ, ვირუსის დეველოპერებს რჩებათ ორი ვარიანტი: ან უნდა მოიპარონ სპეციალური სერთიფიკატი ლეგიტიმური, ინტელის სერთიფიცირებული დეველოპერისგან ან კიდევ ანკლავებში აღმოაჩინონ ე.წ. ნულ დღიანი (0-Day) სისუსტე. ამ ორი ვარიანტიდან ნებისმიერის განხორციელება ფაქტიურად 0-ის ტოლია, ამიტომ შეიძლება ითქვას ასეთი მაღალგანვითარებული გამომძალველი პროგრამის შექმნის საფრთხე არ არსებობს, ყოველ შემთხვევაში ჯერჯერობით მაინც. ჯერჯერობითო ვამბობთ, რადგან კრიპტოგრაფიის განვითარებასთან ერთად შეიძლება შეიქმნას პროგრამების ისეთი სისტემა, რომელიც უსაფრთხო გარემოს შექმნის hardware მოწყობილობების გარეშე. დღეს ზოგი მათგანი სრულიად არაპრაქტიკულია, ფუჭდება, ან საერთოდ არ მუშაობს.
დასასრულ შევნიშნავთ, რომ როგორც კომპანიებისთვის, ისე ინდივიდუალური მომხმარებლებისთვის – გამომძალველი პროგრამები – ერთ-ერთი ყველაზე სახიფათო ვირუსებია, მიუხედავად იმისა, რომ დღესდღეობით ისინი თავიანთი შესაძლებლობების მხოლოდ მცირე ნაწილს იყენებენ, რეალურად კი დიდი პოტენციალი გააჩნიათ. მომავალი გვიჩვენებს, რამდენად მოახერხებენ ვირუსების დეველოპერები ამ პოტენციალის გამოყენებას.