infostealer-malware-threadfluent-code-obfuscation

მრავალსაფეხურიანი Infostealer მავნე პროგრამული უზრუნველყოფის პაკეტის ანალიზი

სარჩევი

აუცილებლად წასაკითხი პოსტები

საინტერესო უახლესი პოსტები

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

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

შაბლონი: Infostealer-ის მავნე პროგრამა და კოდის დაბინდვა

რა არის Infostealer მავნე პროგრამა?

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

ThreadFluent Infostealer მავნე პროგრამის დაფარვის ფენები

1. სამმაგი დაშიფვრა

დაბნელების პროცესი იწყება მძიმედ დაშიფრული დატვირთვით, რომელიც ჩაშენებულია fluent.py ფაილი. საწყისი კოდირებისა და გაშიფვრის პროცესი შეიძლება შეჯამდეს შემდეგნაირად:

encoded_data = base64_module.b64decode("... BASE-6 with encrypted payload, IV and RSA-encrypted keys…”); # … Sequential decryption: ChaCha20, Blowfish and AES … encrypted_payload = AES_Cipher.new(aes_key, AES_Cipher.MODE_CBC, iv=aes_iv).decrypt(encrypted_payload[16:]) final_payload = unpad_function(encrypted_payload, AES_Cipher.block_size) exec( zlib_module.decompress(bz2_module.decompress(final_payload)) ) 

ეს დაბნელების პროცესი მოიცავს:

  • შეკუმშვისgzip-ისა და bzip-ის გამოყენება.
  • სიმეტრიული შიფრაციაჯაჭვური დაშიფვრა ChaCha20-ის, Blowfish-ის და AES-ის გამოყენებით.
  • ასიმეტრიული დაშიფვრაRSA გამოიყენება სიმეტრიული გასაღებების დაშიფვრისთვის.

შედეგი კოდირებულია Base64-ში და ჩასმულია როგორც კოდირებული_მონაცემებითითოეული იტერაცია წინაზეა დაფუძნებული და ქმნის ჩადგმულ დაშიფვრის სტრუქტურას, რაც უკიდურესად ართულებს ფაქტობრივი დატვირთვის აღმოჩენას უკუინჟინერიის გარეშე.

 

2. Gzip დეკომპრესია

ბევრ შუალედურ ეტაპზე, მავნე პროგრამა იყენებს მარტივ, მაგრამ ეფექტურ დაბნევის მეთოდს: Gzip შეკუმშვას Base64 კოდირებასთან ერთად. 

import base64, zlib; eval(zlib.decompress(base64.b64decode(<STR>).decode('utf-8')) 

ეს ტექნიკა უზრუნველყოფს, რომ დაბნელებული დატვირთვა დამალული დარჩეს მთელ ეტაპებზე.

3. კოდის კონკატენაცია და დინამიური კომპილაცია

ბოლო ფენა გულისხმობს დაბნეული დატვირთვის დაყოფას მრავალ ცვლადზე, რომლებიც დინამიურად გაერთიანებულია და დეკოდირდება შესრულების დროს:

import base64, zlib  FEQXCBDOZKHVIhT = '...' # ....(111 other variables with base-64 encoded values) ...  zZytWuvuEdBXSrO =   eval(<FEQXCBDOZKHVIhT' encoded with '\x>) +   eval(<next variable, encoded>) +   eval( ' zlib.decompress(base64.b64decode(<VAR>)).decode('utf-8') ') + ...  eval(compile(base64.b64decode(eval(zZytWuvuEdBXSrO)).decode('utf-8'), ‘<app>', 'exec')) 

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

ამ დაბნელების ტექნიკის გაერთიანებით, infostealer მავნე პროგრამა in ძაფების ნაკადი თავს არიდებს აღმოჩენას, რაც წარმოაჩენს მის კრიტიკულ როლს კოდის დაბინდვა თანამედროვე კიბერშეტევებში.

ThreadFluent-ის მრავალსაფეხურიანი შეტევის ჯაჭვი

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

infostealer-malware-code-obfuscation- threadfluent

ეტაპი 0: კოდის საწყისი შესრულება

შესასვლელი წერტილი არის __init__.py ფაილი, რომელიც იწყებს დაბნეული დატვირთვის შესრულებას fluent.pyეს ფაილი იყენებს მრავალშრიან ობსუკაციას (როგორც აღწერილია 1–3 ნაბიჯებში) პირველი ეტაპის წვეთურის შესაქმნელად:

import os,threading def main():     if os.name == 'nt':         from . import fluent         fluent.main()          thread = threading.Thread(target=main , daemon=True) thread.start() 

ეტაპი 1: საწყისი წვეთოვანი

პირველი dropper, დებფუსკუსის შემდეგ, ჩამოტვირთავს და ჩადებს დამატებით მავნე კოდს, puts.py, GitHub-ის საცავიდან წითურიანი წვივები-1337/repuests (გაფრთხილება: პოტენციურად მავნე კოდი აქ). 

ჩამწოვი ჩანერგავს puts.py პოპულარული ადგილობრივი ინსტალაციისთვის მოითხოვს ბიბლიოთეკა, მისი მოდიფიცირება __init__.py ფაილი დეობსაკაციის გასაშვებად და შემდეგი ეტაპის შესასრულებლად. ეს დეობსაკაცია გულისხმობს ობსუქციის ფენების მრავალი გამოყენების შებრუნებას 1 ... 3.

ეტაპი 2: მეორე დროპერი

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

ეტაპი 3: საბოლოო ინფორმაციის მოპარვა

საბოლოო ეტაპი არის სრულად ფუნქციონალური ინფორმაციის მოპარვის მოწყობილობა, რომელიც იყენებს მოწინავე თავის არიდების ტექნიკას:

  • ანტიანალიზის ფუნქციები:
    • აღმოაჩენს ანტიმავნე ინსტრუმენტებს და წყვეტს მუშაობას, თუ აღმოაჩენს შავ სიაში შეტანილ პროცესებს, IP მისამართებს, ჰოსტის სახელებს ან ვირტუალურ გარემოს.
  • მონაცემთა ექსფილტრაცია:
    • აგროვებს ამომწურავ ინფორმაციას. მოიცავს IP მისამართს, Mac მისამართს, VPN მონაცემებს, ბრაუზერის ქუქი-ფაილებს/ისტორიას, საკრედიტო ბარათის მონაცემებს და კრიპტო საფულის ავტორიზაციის მონაცემებს და სხვა ინფორმაციას, მათ შორის ეკრანის ანაბეჭდს.
    • მოპარულ მონაცემებს (დაშიფრულს) აგზავნის Telegram-ის არხის საშუალებით, აქ ნაჩვენები შაბლონის გამოყენებით: 
infostealer-malware-code-obfuscation- threadfluent

დებფუსკაციის სტრატეგია

მსგავსი პაკეტების გასაანალიზებლად, მკვლევარებმა სისტემატურად უნდა შეცვალონ მათი დაბნელების ფენები:

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

ამ ანალიზის გასამარტივებლად აუცილებელია ავტომატიზირებული ხელსაწყოები და sandboxed გარემო.

 

გსურთ მეტი გაიგოთ საფრთხეების რეალურ დროში ასწრების შესახებ?

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

საფრთხის შემსრულებელი

როგორც ჩანს, პაკეტი გამოქვეყნდა ორი PyPI ანგარიშიდან, აბირჰოსაინ10 მდე ანომილანო785, ამჟამად ამოღებულია. 

არსებობს (ამჟამად აქტიური) GitHub ანგარიში სახელწოდებით აბირჰოსაინ10, რაც შესაძლოა კამპანიასთან იყოს დაკავშირებული. წითურიანი-ბარძაყები-1337 ასევე ანალიზის პროცესშია GitHub-ის მომხმარებელი, რომელიც ფლობს მე-2 და მე-3 ეტაპის დატვირთვების ჩამოსატვირთად გამოყენებულ რეპოზიტორს.

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

დასკვნა: კოდის დამალვის როლი მავნე პროგრამების ევოლუციაში

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

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

როგორ შეუშალა Xygeni-ს MEW სისტემამ ხელი მავნე threadfluent პაკეტის წარმოებაში მოხვედრას

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

  • სტატიკური ანალიზის მეშვეობით აღმოჩენა
    MEW შენიშნეს ძაფების ნაკადი-ის დამალული კოდი, საეჭვო ნიშნების პოვნა, როგორიცაა ფენიანი დაშიფვრა და უჩვეულო დამოკიდებულების აქტივობა.
  • შესრულების დროს ხელმისაწვდომობის შეფასება
     სისტემამ აღმოაჩინა, რომ პაკეტის კოდი შეიძლებოდა გაშვებულიყო გამოყენების დროს, რაც მას სერიოზულ საფრთხედ მონიშნავდა მისი რეალურად გაშვების გარეშე.
  • CI/CD Pipeline დაცვის
    MEW დაბლოკილია ძაფების ნაკადი რეალურ დროში, ხელს უშლიდა მის ჩართვას აწყობაში და წარმოებაში მოხვედრას. ის დეველოპერებს უგზავნიდა ქმედით შეტყობინებებს, რაც ძვირფას დროს ზოგავდა.
  • საფრთხის დაზვერვის გაზიარება
    Xygeni-მ სწრაფად აცნობა პაკეტის შესახებ PyPI-ს და თავისი აღმოჩენები გაუზიარა თავის გლობალურ უსაფრთხოების ქსელს, რითაც შეაჩერა მისი შემდგომი გავრცელება.

დაჭერით ძაფების ნაკადი ადრეულ ეტაპზე, Xygeni-ის MEW სისტემამ უზრუნველყო, რომ მავნე კოდი არ აზიანებდა პროგრამული უზრუნველყოფის მიწოდების ჯაჭვებს ან CI/CD workflows.

დაიცავი შენი CI/CD Pipelines უფასოდ

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

ლუის როდრიგესის სურათი

ლუის როდრიგესი

ლუის როდრიგესი ფიზიკოსიაcist + მათემატიკოსი და CISსპ. ამჟამად Xygeni Security-ის თანადამფუძნებელი და ტექნიკური დირექტორია. მას პროგრამული უზრუნველყოფის უსაფრთხოების სფეროში 20 წელზე მეტი გამოცდილება აქვს და მონაწილეობდა ისეთ პროექტებში, როგორიცაა SAST მდე SCAამჟამად ის ფოკუსირებულია software supply chain security.

დანიელ მარტინის სურათი

დანიელ მარტინი

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

sca-tools-software-composition-analysis-tools
თქვენი პროგრამული უზრუნველყოფის რისკების პრიორიტეტიზაცია, გამოსწორება და დაცვა
მიიღეთ თქვენი უფასო ანგარიში.
საკრედიტო ბარათი არ არის საჭირო.

უზრუნველყავით თქვენი პროგრამული უზრუნველყოფის შემუშავება და მიწოდება

Xygeni Product Suite-თან ერთად