OceanLotus: macOS සඳහා අනිෂ්ට මෘදුකාංග යාවත්කාලීන කිරීම

2019 මාර්තු මාසයේදී, OceanLotus සයිබර් සමූහයෙන් MacOS අනිෂ්ට මෘදුකාංගවල නව සාම්පලයක් ජනප්‍රිය සබැඳි ස්කෑනිං සේවාවක් වන VirusTotal වෙත උඩුගත කරන ලදී. backdoor executable ගොනුවට අප අධ්‍යයනය කළ macOS අනිෂ්ට මෘදුකාංගයේ පෙර අනුවාදයට සමාන හැකියාවන් ඇත, නමුත් එහි ව්‍යුහය වෙනස් වී ඇති අතර එය හඳුනා ගැනීම වඩාත් අපහසු වී ඇත. අවාසනාවකට, මෙම නියැදිය හා සම්බන්ධ බිංදුවක් සොයා ගැනීමට අපට නොහැකි විය, එබැවින් අපි තවමත් ආසාදන දෛශිකය නොදනිමු.

අපි මෑතකදී පළ කළෙමු OceanLotus ගැන post සහ ක්‍රියාකරුවන් ස්ථීරභාවය ලබා දීමට, කේත ක්‍රියාත්මක කිරීම වේගවත් කිරීමට සහ Windows පද්ධති මත අඩිපාර අවම කිරීමට උත්සාහ කරන්නේ කෙසේද. මෙම සයිබර් සමූහයේ macOS සඳහා සංරචකයක් ද ඇති බව දන්නා කරුණකි. මෙම සටහන පෙර අනුවාදයට සාපේක්ෂව macOS සඳහා වන අනිෂ්ට මෘදුකාංගයේ නවතම අනුවාදයේ වෙනස්කම් විස්තර කරයි (Trend Micro විසින් විස්තර කරන ලදී), සහ IDA Hex-Rays API භාවිතයෙන් විශ්ලේෂණ අතරතුර ඔබට නූල් විකේතනය ස්වයංක්‍රීය කළ හැකි ආකාරය විස්තර කරයි.

OceanLotus: macOS සඳහා අනිෂ්ට මෘදුකාංග යාවත්කාලීන කිරීම

විශ්ලේෂණය

ඊළඟ කොටස් තුන SHA-1 හෑෂ් සමඟ නියැදියක විශ්ලේෂණය විස්තර කරයි E615632C9998E4D3E5ACD8851864ED09B02C77D2. ගොනුව හැඳින්වේ ෆ්ලෑෂ් ලයිට්, ESET ප්‍රති-වයිරස නිෂ්පාදන එය OSX/OceanLotus.D ලෙස හඳුනා ගනී.

ප්‍රති-නිදොස්කරණය සහ වැලිපිල්ල ආරක්ෂාව

සියලුම macOS OceanLotus ද්විමය මෙන්, නියැදිය UPX සමඟ ඇසුරුම් කර ඇත, නමුත් බොහෝ පැකේජ හඳුනාගැනීමේ මෙවලම් එය එසේ හඳුනා නොගනී. මෙයට බොහෝ විට “UPX” තන්තුවේ පැවැත්ම මත රඳා පවතින අත්සනක් අඩංගු වන නිසා විය හැකිය, ඊට අමතරව, Mach-O අත්සන් අඩු පොදු වන අතර නිතර යාවත්කාලීන නොවේ. මෙම විශේෂාංගය ස්ථිතික හඳුනාගැනීම අපහසු කරයි. සිත්ගන්නා කරුණ නම්, ඇසුරුම් කිරීමෙන් පසු, ඇතුල්වීමේ ස්ථානය කොටසේ ආරම්භයේ ය __cfstring කොටසේ .TEXT. පහත රූපයේ දැක්වෙන පරිදි මෙම කොටසෙහි ධජ ගුණාංග ඇත.

OceanLotus: macOS සඳහා අනිෂ්ට මෘදුකාංග යාවත්කාලීන කිරීම
රූපය 1. MACH-O __cfstring කොටසේ ගුණාංග

රූප සටහන 2 හි පෙන්වා ඇති පරිදි, කොටසේ කේත ස්ථාන __cfstring කේතය තන්තු ලෙස පෙන්වීමෙන් සමහර විසුරුවා හැරීමේ මෙවලම් රැවටීමට ඔබට ඉඩ සලසයි.

OceanLotus: macOS සඳහා අනිෂ්ට මෘදුකාංග යාවත්කාලීන කිරීම
රූපය 2. දත්ත ලෙස IDA විසින් අනාවරණය කරගත් පසු දොර කේතය

ක්‍රියාත්මක වූ පසු, ද්විමය මඟින් ප්‍රති-නිදොස්කරණයක් ලෙස නූලක් නිර්මාණය කරයි, එහි එකම අරමුණ නිදොස්කරණයක් තිබේද යන්න අඛණ්ඩව පරීක්ෂා කිරීමයි. මෙම ප්රවාහය සඳහා:

- ඕනෑම නිදොස්කරණයක් ඉවත් කිරීමට උත්සාහ කරයි, ඇමතීම ptrace с PT_DENY_ATTACH ඉල්ලීම් පරාමිතියක් ලෙස
- ශ්‍රිතයක් ඇමතීමෙන් සමහර සුවිශේෂී වරායන් විවෘත දැයි පරීක්ෂා කරයි task_get_exception_ports
- පහත රූපයේ දැක්වෙන පරිදි, ධජයේ පැවැත්ම පරීක්ෂා කිරීම මගින් නිදොස්කරණය සම්බන්ධ වී ඇත්දැයි පරීක්ෂා කරයි P_TRACED වත්මන් ක්රියාවලිය තුළ

OceanLotus: macOS සඳහා අනිෂ්ට මෘදුකාංග යාවත්කාලීන කිරීම
රූපය 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 පර්යේෂණයෙන් පසු backdoor commands වෙනස් වී නැතත්, අපි තවත් වෙනස් කිරීම් කිහිපයක් දුටුවෙමු. මෙම නියැදියේ භාවිතා කරන ලද 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 සේවාදායකය වෙත යවන ලද පළමු පැකට්ටුවේ පහත වගුවේ ඇති විධානයන් මගින් එකතු කරන ලද සියලුම දත්ත ඇතුළුව ධාරක යන්ත්‍රය පිළිබඳ වැඩි විස්තර අඩංගු වේ.

OceanLotus: macOS සඳහා අනිෂ්ට මෘදුකාංග යාවත්කාලීන කිරීම

මෙම වින්‍යාස වෙනස් කිරීමට අමතරව, නියැදිය ජාල පෙරීම සඳහා පුස්තකාලයක් භාවිතා නොකරයි libcurl, නමුත් බාහිර පුස්තකාලයක්. එය සොයා ගැනීමට, පිටුපස දොර යතුර සමඟ AES-256-CBC භාවිතයෙන් වත්මන් නාමාවලියෙහි ඇති සෑම ගොනුවක්ම විකේතනය කිරීමට උත්සාහ කරයි. gFjMXBgyXWULmVVVzyxy, බිංදු වලින් පිරවූ. සෑම ගොනුවක්ම විකේතනය කර සුරකිනු ලැබේ /tmp/store, සහ එය පුස්තකාලයක් ලෙස පැටවීමේ උත්සාහයක් ශ්‍රිතය භාවිතයෙන් සිදු කෙරේ dlopen. විකේතනය කිරීමේ උත්සාහයක් සාර්ථක ඇමතුමකට හේතු වූ විට dlopen, backdoor exported functions exports 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, කේතය root ලෙස ධාවනය කරන්නේ නම් හෝ ~/Library/SmartCardsServices/Technology/PlugIns/drivers/snippets.ecgML අනෙකුත් සියලුම අවස්ථා වලදී. ගොනුව සාමාන්යයෙන් කාර්යය භාවිතයෙන් සැඟවී ඇත _කොඩි, එහි කාලමුද්‍රාව විධානය භාවිතයෙන් වෙනස් වේ touch –t අහඹු අගයක් සමඟ.

තන්තු විකේතනය කිරීම

පෙර විකල්පයන් මෙන්, තන්තු AES-256-CBC භාවිතයෙන් සංකේතනය කර ඇත (ෂඩාස්රාකාර යතුර: 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92 ශුන්‍ය වලින් පිරවූ අතර IV ශුන්‍ය වලින් පුරවා ඇත) ශ්‍රිතය හරහා CCCrypt. යතුර පෙර අනුවාද වලින් වෙනස් වී ඇත, නමුත් සමූහය තවමත් එකම string encryption algorithm භාවිතා කරන බැවින්, විකේතනය ස්වයංක්‍රීය කළ හැක. මෙම පෝස්ටයට අමතරව, අපි ද්විමය ගොනුවේ ඇති තන්තු විකේතනය කිරීමට Hex-Rays API භාවිතා කරන IDA ස්ක්‍රිප්ට් එකක් නිකුත් කරන්නෙමු. OceanLotus හි අනාගත විශ්ලේෂණයට සහ අපට තවමත් ලබා ගැනීමට නොහැකි වූ පවතින සාම්පල විශ්ලේෂණයට මෙම ස්ක්‍රිප්ට් උපකාර විය හැක. ස්ක්‍රිප්ට් එක ශ්‍රිතයකට ලබා දුන් තර්ක ලබා ගැනීම සඳහා විශ්වීය ක්‍රමයක් මත පදනම් වේ. අතිරේකව, එය පරාමිති පැවරුම් බලයි. ශ්‍රිත තර්ක ලැයිස්තුවක් ලබා ගැනීමට ක්‍රමය නැවත භාවිතා කළ හැකි අතර පසුව එය ආපසු ඇමතුම වෙත යොමු කළ හැක.

ශ්‍රිත මූලාකෘතිය දැන ගැනීම විසන්ධි විය, ස්ක්‍රිප්ටය මෙම ශ්‍රිතයේ සියලුම හරස් යොමු කිරීම්, සියලු තර්ක සොයා ගනී, පසුව දත්ත විකේතනය කර හරස් යොමු ලිපිනයේ ප්‍රකාශයක් තුළ සරල පෙළ තබයි. ස්ක්‍රිප්ට් එක නිවැරදිව ක්‍රියා කිරීම සඳහා, එය base64 විකේතන ශ්‍රිතය මඟින් භාවිතා කරන අභිරුචි හෝඩියට සැකසිය යුතු අතර, යතුරේ දිග අඩංගු ගෝලීය විචල්‍යයක් අර්ථ දැක්විය යුතුය (මෙම අවස්ථාවේදී DWORD, රූපය 4 බලන්න).

OceanLotus: macOS සඳහා අනිෂ්ට මෘදුකාංග යාවත්කාලීන කිරීම
රූපය 4. ගෝලීය විචල්‍ය key_len අර්ථ දැක්වීම

ක්‍රියාකාරී කවුළුව තුළ, ඔබට විකේතන ශ්‍රිතය දකුණු-ක්ලික් කර "උපුටා ගැනීම සහ විසංකේතනය කරන්න" ක්ලික් කරන්න. ස්ක්‍රිප්ටය රූප සටහන 5 හි පෙන්වා ඇති පරිදි විකේතනය කළ රේඛා අදහස් දැක්වීම්වල තැබිය යුතුය.

OceanLotus: macOS සඳහා අනිෂ්ට මෘදුකාංග යාවත්කාලීන කිරීම
රූපය 5. විකේතනය කළ පෙළ අදහස් දැක්වීම්වල තබා ඇත

මේ ආකාරයෙන් විකේතනය කරන ලද නූල් IDA කවුළුව තුළ පහසුවෙන් එකට තබා ඇත xrefs මෙම කාර්යය සඳහා රූප සටහන 6 හි පෙන්වා ඇත.

OceanLotus: macOS සඳහා අනිෂ්ට මෘදුකාංග යාවත්කාලීන කිරීම
රූපය 6. Xrefs to f_decrypt ශ්‍රිතය

අවසාන පිටපත සොයාගත හැකිය ගිතුබ් ගබඩාව.

නිගමනය

දැනටමත් සඳහන් කර ඇති පරිදි, OceanLotus නිරන්තරයෙන් එහි මෙවලම් කට්ටලය වැඩිදියුණු කිරීම සහ යාවත්කාලීන කිරීම සිදු කරයි. මෙම අවස්ථාවේදී, සයිබර් සමූහය මැක් පරිශීලකයින් සමඟ වැඩ කිරීමට අනිෂ්ට මෘදුකාංග වැඩිදියුණු කර ඇත. කේතය බොහෝ වෙනස් වී නැත, නමුත් බොහෝ Mac භාවිතා කරන්නන් ආරක්ෂක නිෂ්පාදන නොසලකා හරින බැවින්, අනිෂ්ට මෘදුකාංග හඳුනා ගැනීමෙන් ආරක්ෂා කිරීම ද්විතියික වැදගත්කමකි.

ESET නිෂ්පාදන පර්යේෂණය කරන විට දැනටමත් මෙම ගොනුව අනාවරණය කරගෙන තිබුණි. C&C සන්නිවේදනය සඳහා භාවිතා කරන ජාල පුස්තකාලය දැන් තැටියේ සංකේතනය කර ඇති නිසා, ප්‍රහාරකයන් විසින් භාවිතා කරන නිවැරදි ජාල ප්‍රොටෝකෝලය තවමත් නොදනී.

සම්මුතියේ දර්ශක

සම්මුතියේ දර්ශක මෙන්ම MITER ATT&CK ගුණාංග ද පවතී GitHub.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න