2019 жылдың наурыз айында OceanLotus кибер тобының macOS зиянды бағдарламасының жаңа үлгісі танымал онлайн сканерлеу қызметіне VirusTotal жүктеп салынды. Backdoor орындалатын файлы біз зерттеген macOS зиянды бағдарламасының алдыңғы нұсқасымен бірдей мүмкіндіктерге ие, бірақ оның құрылымы өзгерді және оны анықтау қиындай түсті. Өкінішке орай, біз осы үлгімен байланысты тамызғышты таба алмадық, сондықтан инфекция таратқышын әлі білмейміз.
Жақында шығардық
Талдау
Келесі үш бөлім SHA-1 хэші бар үлгіні талдауды сипаттайды E615632C9998E4D3E5ACD8851864ED09B02C77D2
. Файл шақырылады фонарь жанды, ESET антивирус өнімдері оны OSX/OceanLotus.D ретінде анықтайды.
Түзетуге қарсы және құм жәшігінен қорғау
Барлық macOS OceanLotus екілік файлдары сияқты, үлгі UPX-мен бумаланған, бірақ пакеттерді сәйкестендіру құралдарының көпшілігі оны мұндай деп танымайды. Мүмкін, оларда негізінен «UPX» жолының болуына байланысты қолтаңба бар, сонымен қатар Mach-O қолтаңбалары сирек кездесетіндіктен және жиі жаңартылмайды. Бұл мүмкіндік статикалық анықтауды қиындатады. Бір қызығы, қаптаманы ашқаннан кейін кіру нүктесі бөлімнің басында болады __cfstring
сегментте .TEXT
. Бұл бөлімде төмендегі суретте көрсетілгендей жалау атрибуттары бар.
Сурет 1. MACH-O __cfstring бөлім атрибуттары
2-суретте көрсетілгендей, бөлімдегі код орындары __cfstring
кодты жолдар ретінде көрсету арқылы кейбір бөлшектеу құралдарын алдауға мүмкіндік береді.
Сурет 2. IDA деректер ретінде анықтаған бэкдор коды
Орындалғаннан кейін екілік жүйе отладкаға қарсы ағынды жасайды, оның жалғыз мақсаты отладчиктің бар-жоғын үнемі тексеру болып табылады. Бұл ағын үшін:
— Қоңырау шалатын кез келген отладчикті ажыратуға тырысады ptrace
с PT_DENY_ATTACH
сұрау параметрі ретінде
- Функцияны шақыру арқылы кейбір эксклюзивті порттардың ашық екенін тексереді task_get_exception_ports
- Төмендегі суретте көрсетілгендей, жалаушаның бар-жоғын тексеру арқылы отладчиктің қосылғанын тексереді P_TRACED
ағымдағы процесте
Сурет 3. sysctl функциясы арқылы отладчик қосылымын тексеру
Егер бақылаушы отладчиктің болуын анықтаса, функция шақырылады exit
. Сонымен қатар, үлгі екі пәрменді орындау арқылы ортаны тексереді:
ioreg -l | grep -e "Manufacturer" и sysctl hw.model
Содан кейін үлгі қайтару мәнін белгілі виртуалдандыру жүйелеріндегі жолдардың қатаң кодталған тізіміне қарсы тексереді: acle, vmware, виртуалды қорап немесе параллельдер. Соңында, келесі пәрмен құрылғының келесі «MBP», «MBA», «MB», «MM», «IM», «MP» және «XS» бірі екенін тексереді. Бұл жүйе моделінің кодтары, мысалы, «MBP» MacBook Pro, «MBA» MacBook Air және т.б.
system_profiler SPHardwareDataType 2>/dev/null | awk '/Boot ROM Version/ {split($0, line, ":");printf("%s", line[2]);}
Негізгі толықтырулар
Trend Micro зерттеулерінен бері бэкдор пәрмендері өзгермегенімен, біз бірнеше басқа өзгертулерді байқадық. Бұл үлгіде пайдаланылған C&C серверлері айтарлықтай жаңа және 22.10.2018/XNUMX/XNUMX күні жасалған.
- daff.faybilodeau[.]com
- sarc.onteagleroad[.]com
- au.charlineopkesston[.]com
Ресурстың URL мекенжайы келесіге өзгерді /dp/B074WC4NHW/ref=gbps_img_m-9_62c3_750e6b35
.
C&C серверіне жіберілген бірінші пакетте төмендегі кестедегі пәрмендер арқылы жиналған барлық деректерді қоса алғанда, негізгі құрылғы туралы қосымша ақпарат бар.
Бұл конфигурация өзгерісіне қосымша, үлгі желіні сүзу үшін кітапхананы пайдаланбайды gFjMXBgyXWULmVVVzyxy
, нөлдермен толтырылған. Әрбір файл шифры шешіледі және басқаша сақталады /tmp/store
, және оны кітапхана ретінде жүктеу әрекеті функция арқылы жасалады dlopen
, бэкдор экспортталған функцияларды шығарады Boriry
и ChadylonV
, олар сервермен желілік байланыс үшін жауап береді. Бізде үлгінің бастапқы орнындағы тамшуыр немесе басқа файлдар жоқ, сондықтан бұл кітапхананы талдау мүмкін емес. Сонымен қатар, компонент шифрланғандықтан, осы жолдарға негізделген YARA ережесі дискідегі файлға сәйкес келмейді.
Жоғарыдағы мақалада сипатталғандай, ол жасайды клиент идентификаторы. Бұл идентификатор келесі пәрмендердің бірінің қайтару мәнінің MD5 хэші болып табылады:
- ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformSerialNumber/ { split($0, line, """); printf("%s", line[4]); }'
- ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, """); printf("%s", line[4]); }'
- ifconfig en0 | awk '/ether /{print $2}'
(MAC мекенжайын алу)
- белгісіз команда («x1ex72x0a
") алдыңғы үлгілерде қолданылған
Хэштеу алдында түбірлік артықшылықтарды көрсету үшін қайтарылатын мәнге «0» немесе «1» қосылады. Бұл клиент идентификаторы ішінде сақталған /Library/Storage/File System/HFS/25cf5d02-e50b-4288-870a-528d56c3cf6e/pivtoken.appex
, егер код түбірлік ретінде іске қосылса немесе барлық басқа жағдайларда ~/Library/SmartCardsServices/Technology/PlugIns/drivers/snippets.ecgML ішінде іске қосылса. Файл әдетте функция арқылы жасырылады touch –t
кездейсоқ мәнмен.
Жолдарды декодтау
Алдыңғы опциялар сияқты, жолдар AES-256-CBC (он алтылық кілт) арқылы шифрланады. 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92
нөлдермен толтырылған, ал IV нөлдермен толтырылған) функциясы арқылы
Функцияның прототипін білу шифрын, сценарий осы функцияның барлық айқас сілтемелерін, барлық аргументтерді табады, содан кейін деректерді шифрдан шығарады және айқас сілтеме мекенжайындағы түсініктеменің ішіне кәдімгі мәтінді орналастырады. Сценарий дұрыс жұмыс істеуі үшін ол base64 декодтау функциясы пайдаланатын теңшелетін алфавитке орнатылуы керек және кілттің ұзындығын қамтитын жаһандық айнымалы мән анықталуы керек (бұл жағдайда DWORD, 4-суретті қараңыз).
Сурет 4. key_len жаһандық айнымалысының анықтамасы
Функция терезесінде шифрды шешу функциясын тінтуірдің оң жақ түймешігімен басып, «Аргументтерді шығарып алу және шифрын ашу» түймесін басуға болады. Сценарий 5-суретте көрсетілгендей шифры шешілген жолдарды түсініктемелерде орналастыруы керек.
Сурет 5. Шифры шешілген мәтін түсініктемелерде орналастырылған
Осылайша шифры шешілген жолдар IDA терезесінде ыңғайлы орналастырылады xrefs бұл функция үшін 6-суретте көрсетілгендей.
Сурет 6. f_decrypt функциясына арналған Xrefs
Соңғы сценарийді мына жерден табуға болады
қорытынды
Жоғарыда айтылғандай, OceanLotus өзінің құралдар жинағын үнемі жетілдіріп, жаңартып отырады. Бұл жолы кибертоп Mac пайдаланушыларымен жұмыс істеу үшін зиянды бағдарламаны жақсартты. Код көп өзгерген жоқ, бірақ көптеген Mac пайдаланушылары қауіпсіздік өнімдерін елемейтіндіктен, зиянды бағдарламаны анықтаудан қорғау екінші маңызды болып табылады.
ESET өнімдері бұл файлды зерттеу кезінде әлдеқашан анықтаған. C&C байланысы үшін пайдаланылатын желілік кітапхана енді дискіде шифрланғандықтан, шабуылдаушылар пайдаланатын нақты желі протоколы әлі белгісіз.
Келісім көрсеткіштері
Ымыра көрсеткіштері, сондай-ақ MITER ATT&CK атрибуттары да қол жетімді
Ақпарат көзі: www.habr.com