Win32/VirLock е ransomware, който заключва екраните на жертвите, но и действа като паразитен вирус, като заразява и съществуващите файлове на компютрите им. Вирусът е полиморфен, което го прави интересен за анализ. За пръв път наблюдаваме такава комбинация от малуер функции. ЗАБЕЛЕЖКА: Жертвите могат да възстановят своите заразени файлове с помощта на нашия безплатен VirLock Cleaner инструмент за изчистване, достъпен за сваляне на http://www.eset.com/bg/download/utilities/detail/family/264/След публикуването на подробните изследвания от ESET в областта на ransomware TorrentLocker, можем да хвърлим малко повече светлина върху един любопитен нов член от семейството на зловредните кодове, който изнудва заразените потребители.Преди да започнем с анализа на Win32/Virlock обаче, да разясним едно понятие: ransomware. Това е събирателно название за зловредни кодове, които блокират достъпа до файлове на заразено устройство и искат откуп за възстановяването му. В повечето случаи, ransomware или е от тип"LockScreen" или от тип "Filecoder". Когато вирус като Filecoder криптира файлове на хард диска на жертвата, той не заключва екрана, и не пречи на пострадалия да използва компютъра си. Уведомлението за откуп може да се показва по няколко начина - като wallpaper, в текстов файл, или най-често - в обикновен Windows прозорец (това е и методът, използван от Cryptolocker).В някои случаи, ransomware вирусите използват хибриден подход, като криптират файлове и заключват екрана на потребителя като визуализират на заключения екран съобщението за искане на откуп. Пример за това поведение е Android / Simplocker - първият подобрен вирус за Android.През октомври 2014 г. открихме нов, невиждан досега подход - Win32 / VirLock е ransomware, който заключва екрана и след това не само криптира съществуващите файлове, но ги заразява като ги превръща в изпълними файлове. По този начин той действа като паразитен вирус. С други думи - сблъскахме се с първия вирус от този тип, който вече има и възможността да се самовъзпроизвежда. Наблюдавахме редица варианти на кода през изминалия месец. Това показва, че авторът на зловредния софтуер доста се е постарал при създаването му. В действителност, вирусът изглежда малко като злонамерен експеримент и поради полиморфната си природа ни напомня на вируси от ерата DOS, като Whale вируса. Начинът, по който VirLock се имплементира, демонстрира високо ниво на умения за програмиране, но някои от функционалностите му изглеждат нелогични, което е по-озадачаващото.Сега ще ви дадем обща представа за поведението на вируса и ще Ви обясним какво го прави полиморфен.
Win32/VirLock накратко
Файл, който е заразен с VirLock се вгражда в Win32 PE (портабъл изпълним) файл и му се добавя разширение .exe, с изключение на вече изпълнимите (.ехе) файлове. След като се задейства, той декриптира оригиналния файл от бодито си в текущата директория и го отваря. Методите за разкодиране са описани по-нататък в статията. Това поведение ясно го отличава от типичните filecoder-и.След това VirLock се инсталира, като създава две копия с произволно генерирани имена (това не са просто копия - вирусът е полиморфен, така че всяко копие е уникално) в %userprofile% и %allusersprofile% директориите и добавя записи в Run регистрационните ключове под HKCU и HKLM, за да се стартират при зареждане на Windows. Новосъздадените файлове, които вече съдържат само бодито на вируса, се стартират. Последните варианти на VirLock създават и трето копие, което се регистрира като сървис. Този подход служи като прост механизъм за самозащита на малуера - сървиса и файловете се възстановяват, ако бъдат спряни или изтрити.Отделните копия отговарят за изпълнението на действителното зловредно съдържание.Едното се грижи за инфектирането на файлове. Win32 / VirLock търси приемни файлове, обхождайки локални дискове и преносими медии, дори мрежови шеринги, за да се постигне максимална степен на разпространение. Файловете, в които се целят различните версии на вируса, са различни. Списъкът с разширения, които са известни към момента е следния - *.exe, * .doc, * .xls, * .zip, * .rar, * .pdf, * .ppt, * .mdb, * .mp3, * .mpg , * .png, .gif *, * .bmp, * .p12, * .CER, * .psd, * .crt, * .pem, * .pfx, * .p12, * .p7b, * .wma, * .jpg, * .jpeg.Второто копие на заплахата съдържа LockScreen функционалността - с типичните предпазни механизми, като затваряне на explorer.exe, спиране на диспечера на задачите и така нататък и показва следното съобщение за откуп на екрана.


VirLock полиморфизъм
От техническа гледна точка, може би най-интересната част за този зловреден софтуер е, че вирусът е полиморфен, което означава, че бодито му е различно при всеки заразен компютър и всеки път, когато се стартира. Но преди да обясним как се променя кодът, трябва да разгледаме различните слоеве на криптиране, които той използва.Опростеният поток на изпълнение в по-ранните варианти на Win32 / VirLock е представен в следната инфографика:



- Част 1 от кода е разшифрован от XOR stub в началото;
- Част 2 от кода е разшифрован от определена функция в част 1;
- Почти всички функции в кода на вируса (включително част 1 и част 2) са криптирани. Те се разкриптират, изпълняват дейността си и след това повторно се криптират.
И така, какъв точно е полиморфният код? В момента на изпълнение на зловредния софтуер след като част 1 и част 2 са разшифровани, се копира цялото боди в отделен блок на паметта. Запомнете: функциите, които са изпълнявани преди това в паметта и са създали копия са повторно криптирани с различен ключ. Това копие ще се използва за инфектиране на други файлове, със следните модификации за всеки един от тях.Работейки назад през отделните слоеве, копието се криптира отново. Първо, част 2 и заразения файл се криптират, чрез случайно генерирани ключове. Kриптираният хост файл се добавя към копието в паметта и новите криптиращи ключове, адресите на паметта и отместването се записват в кода на част 1, така че да бъде в състояние да се извлече част 2 и оригиналния файл, когато ново копие се стартира.Тогава изменената част 1 се криптира с XOR с произволно генериран DWORD, който се записва на XOR stub в началото.И накрая, XOR stub builder се изгражда на случаен принцип, както е описано по-горе и XOR stub се презаписва с измислени байтове.След всички тези стъпки, ние завършваме с криптирано копие на вируса в паметта и с вградения оригинален файл. След това се записва на твърдия диск на мястото на оригиналния файл. Ако оригиналният документ не е изпълним Win32 PE файл, ".exe" разширението ще бъде добавено към името на файла, след оригиналното разширение и оригиналния файл ще бъде изтрит. Новосъздаденият заразен файл ще има иконата на оригиналния файл.