Агентство кибербезопасности и инфраструктуры США (CISA), Агентство национальной безопасности США (NSA) и Канадский центр кибербезопасности (Cyber Centre) опубликовали совместный отчет об анализе вредоносного программного обеспечения под названием BRICKSTORM. Эксперты пришли к выводу, что это сложный бэкдор, который используют киберпреступники, спонсируемые государством Китая (People’s Republic of China, PRC), для обеспечения долгосрочного доступа к системам жертв.
Описание
Основными целями злоумышленников становятся организации в государственном секторе, сфере услуг и информационных технологий. Вредоносная программа нацелена на платформы виртуализации VMware vSphere, в частности серверы vCenter и хосты ESXi, а также среды Microsoft Windows. После компрометации vSphere злоумышленники получают возможность красть снапшоты виртуальных машин для извлечения учетных данных и создавать скрытые, несанкционированные виртуальные машины.
Технические особенности угрозы
BRICKSTORM представляет собой бэкдор на языке Go в формате исполняемого файла ELF. Все проанализированные образцы позволяют злоумышленникам сохранять скрытый доступ и предоставляют возможности для инициализации, поддержания устойчивости (persistence) и безопасного управления командным центром (C2).
Для обеспечения устойчивости вредоносное ПО использует функцию самонаблюдения. Оно автоматически переустанавливает или перезапускает себя в случае сбоя, что значительно усложняет очистку системы. Коммуникации с командным центром замаскированы под легитимный трафик благодаря использованию нескольких уровней шифрования, включая HTTPS, WebSockets и вложенный TLS. Кроме того, BRICKSTORM применяет DNS-over-HTTPS (DoH) через публичные резолверы, такие как Cloudflare и Google, и имитирует работу веб-сервера.
Основная полезная нагрузка (payload) бэкдора предоставляет злоумышленникам широкий контроль над системой. Они получают интерактивный доступ к командной оболочке, могут просматривать файловую систему, а также загружать, скачивать, создавать и удалять файлы. Некоторые варианты BRICKSTORM также функционируют как SOCKS-прокси, что облегчает перемещение злоумышленников внутри сети и компрометацию дополнительных систем.
Рекомендации по обнаружению и реагированию
CISA, NSA и Cyber Centre настоятельно рекомендуют организациям, особенно в государственном и критическом секторах, использовать предоставленные индикаторы компрометации (IOCs) и правила обнаружения для поиска BRICKSTORM в своих сетях.
Для обнаружения угрозы эксперты опубликовали правила в форматах YARA и Sigma. Правила Sigma предназначены для использования в системах управления информацией и событиями безопасности (SIEM), однако они будут эффективны только при наличии в SIEM логов от vCenter. Также доступны скрипты для сканирования, в том числе сценарий PowerShell от CrowdStrike для выявления незарегистрированных виртуальных машин VMware.
В случае обнаружения BRICKSTORM или подобной активности организациям следует немедленно сообщить об инциденте. Американские организации могут обратиться в операционный центр CISA. Канадским организациям следует связаться с Cyber Centre.
Меры по снижению рисков
Для защиты от подобных атак киберразведка рекомендует ряд упреждающих мер. Прежде всего, необходимо обновить серверы VMware vSphere до последних версий и применить рекомендации по усилению их безопасности. Критически важно обеспечить правильную сегментацию сети, ограничив трафик из демилитаризованной зоны (DMZ) во внутреннюю сеть, и отключить протоколы RDP и SMB из DMZ внутрь.
Следует применять принцип наименьших привилегий для сервисных учетных записей и усилить мониторинг их активности. Кроме того, эксперты рекомендуют заблокировать неавторизованных провайдеров DoH и соответствующий внешний трафик, чтобы снизить риск неконтролируемых коммуникаций.
Индикаторы компрометации
MD5
- 0a4fa52803a389311a9ddc49b7b19138
- 18f895e24fe1181bb559215ff9cf6ce3
- 39111508bfde89ce6e0fe6abe0365552
- 82bf31e7d768e6d4d3bc7c8c8ef2b358
- 8e4c88d00b6eb46229a1ed7001451320
- a02469742f7b0bc9a8ab5e26822b3fa8
- a52e36a70b5e0307cbcaa5fd7c97882c
- dbca28ad420408850a94d5c325183b28
SHA1
- 10d811029f6e5f58cd06143d6353d3b05bc06d0f
- 44a3d3f15ef75d9294345462e1b82272b0d11985
- 97001baaa379bcd83677dca7bc5b8048fdfaaddc
- 9bf4c786ebd68c0181cfe3eb85d2fd202ed12c54
- c3549d4e5e39a11f609fc6fbf5cc1f2c0ec272b4
- de28546ec356c566cd8bca205101a733e9a4a22d
- f639d9404c03af86ce452db5c5e0c528b81dc0d7
- fb11c6caa4ea844942fe97f46d7eb42bc76911ab
SHA256
- 013211c56caaa697914b5b5871e4998d0298902e336e373ebb27b7db30917eaf
- 22c15a32b69116a46eb5d0f2b228cc37cd1b5915a91ec8f38df79d3eed1da26b
- 39b3d8a8aedffc1b40820f205f6a4dc041cd37262880e5030b008175c45b0c46
- 57bd98dbb5a00e54f07ffacda1fea91451a0c0b532cd7d570e98ce2ff741c21d
- 73fe8b8fb4bd7776362fd356fdc189c93cf5d9f6724f6237d829024c10263fe5
- aaf5569c8e349c15028bc3fac09eb982efb06eabac955b705a6d447263658e38
- b3b6a992540da96375e4781afd3052118ad97cfe60ccf004d732f76678f6820a
- f7cda90174b806a34381d5043e89b23ba826abcc89f7abd520060a64475ed506
SHA512
- 4c52caf2e5f114103ed5f60c6add3aa26c741b07869bb66e3c25a1dc290d4a8bf87c42c336e8ac8ebf82d9a9b23eaa18c31f7051a5970a8fe1125a2da890340f
- 5e654776e9c419e11e6f93a452415a601bd9a2079710f1074608570e498a9af37b81bb57c98cb8bb626c5ee4b3e35757d3ae8c1c3717f28d9f3fe7a4cebe0608
- 659205fa2cfa85e484c091cc2e85a7ec4e332b196e423b1f39bafdc8fca33e3db712bbe07afcc091ff26d9b4f641fa9a73f2a66dce9a0ced54ebeb8c2be82a7f
- 65ebf5dfafb8972ffead44271436ec842517cfaaf3d1f1f1237a32d66e1d280943bd3a69f1d539a1b7aca6152e96b29bc822e1047e2243f6aec8959595560147
- 74b4c6f7c7cae07c6f8edf3f2fb1e9206d4f1f9734e8e4784b15d192eec8cd8a4f59078fc0c56dc4ad0856cdd792337b5c92ffd3d2240c8a287a776df4363bba
- 79276523a6a507e3fa1b12b96e09b10a01c783a53d58b9ae7f5780a379431639a80165e81154522649b8e2098e86d1a310efffebe32faafc7b3bc093eec60a64
- 8e29aeb3603ffe307b2d60f7401bd9978bebe8883235eb88052ebf6b9e04ce6bf35667480cedea5712c1e13e8c6dcfb34d5fde0ddca6ca31328de0152509bf8f
- bbe18d32bef66ccfa931468511e8ba55b32943e47a1df1e68bb5c8f8ae97a5bf991201858ae9632fa24df5f6c674b6cb260297a1c11889ca61bda68513f440ce
YARA
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | rule CISA_251165_02 : BRICKSTORM backdoor installs_other_components communicates_with_c2 exfiltrates_data { meta: author = "CISA Code & Media Analysis" incident = "251165" date = "2025-09-29" last_modified = "202051001_1008" actor = "n/a" family = "BRICKSTORM" capabilities = "installs-other-components communicates-with-c2 exfiltrates-data" malware_type = "backdoor" tool_type = "unknown" description = "Detects Go-Based BRICKSTORM backdoor samples" sha256_1 = "aaf5569c8e349c15028bc3fac09eb982efb06eabac955b705a6d447263658e38" strings: $s0 = { 6D 61 69 6E 2E 73 74 61 72 74 4E 65 77 } $s1 = { 6D 61 69 6E 2E 73 65 6C 66 57 61 74 63 68 65 72 } $s2 = { 6D 61 69 6E 2E 73 65 74 53 65 72 76 69 63 65 43 66 67 } $s3 = { 73 6F 63 6B 73 2E 48 61 6E 64 6C 65 53 6F 63 6B 73 52 65 71 75 65 73 74 } $s4 = { 77 65 62 2E 57 65 62 53 65 72 76 69 63 65 } $s5 = { 63 6F 6D 6D 61 6E 64 2E 48 61 6E 64 6C 65 54 54 59 52 65 71 75 65 73 74 } $s6 = { 77 65 62 73 6F 63 6B 65 74 2E 28 2A 57 53 43 6F 6E 6E 65 63 74 6F 72 29 2E 43 6F 6E 6E 65 63 74 } $s7 = { 66 73 2E 28 2A 57 65 62 53 65 72 76 65 72 29 2E 52 75 6E 53 65 72 76 65 72 } $s8 = { 68 74 74 70 73 3A 2F 2F 31 2E 30 2E 30 2E 31 2F 64 6E 73 2D 71 75 65 72 79 } $s9 = { 68 74 74 70 73 3A 2F 2F 31 2E 31 2E 31 2E 31 2F 64 6E 73 2D 71 75 65 72 79 } $s10 = { 68 74 74 70 73 3A 2F 2F 38 2E 38 2E 34 2E 34 2F 64 6E 73 2D 71 75 65 72 79 } $s11 = { 68 74 74 70 73 3A 2F 2F 38 2E 38 2E 38 2E 38 2F 64 6E 73 2D 71 75 65 72 79 } $s12 = { 68 74 74 70 73 3A 2F 2F 39 2E 39 2E 39 2E 39 2F 64 6E 73 2D 71 75 65 72 79 } condition: 8 of them } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | rule CISA_251155_02 : BRICKSTORM backdoor installs_other_components communicates_with_c2 exfiltrates_data { meta: author = "CISA Code & Media Analysis" incident = "251155" date = "2025-09-15" last_modified = "20250916_1511" actor = "n/a" family = "BRICKSTORM" capabilities = "installs-other-components communicates-with-c2 exfiltrates-data" malware_type = "backdoor" tool_type = "unknown" description = "Detects Go-Based BRICKSTORM backdoor samples" sha256_1 = "320a0b5d4900697e125cebb5ff03dee7368f8f087db1c1570b0b62f5a986d759" sha256_1 = "dfac2542a0ee65c474b91d3b352540a24f4e223f1b808b741cfe680263f0ee44" sha256_1 = "b91881cb1aa861138f2063ec130b2b01a8aaf0e3f04921e5cbfc61b09024bf12" sha256_1 = "bfb3ffd46b21b2281374cd60bc756fe2dcc32486dcc156c9bd98f24101145454" strings: $s0 = { 04 30 0F B6 54 04 2C 31 D1 88 4C 04 34 48 FF C0 } $s1 = { 48 83 F8 04 7C E7 48 C7 04 24 } $s2 = { 48 8D 44 24 34 48 89 44 24 08 48 C7 44 24 10 04 } $s3 = { 48 89 44 24 48 48 89 4C 24 50 48 8B 6C 24 38 48 } $s4 = { 48 83 EC 40 48 89 6C 24 38 48 8D 6C 24 38 C7 44 24 } $s5 = { 83 EC 38 48 89 6C 24 30 48 8D 6C 24 30 C6 44 24 } $s6 = { 4C 24 20 48 89 44 24 40 48 89 4C 24 48 48 8B 6C } $s7 = { 64 48 8B 0C 25 F8 FF FF FF 48 3B 61 10 0F 86 81 } $s8 = { 64 48 8B 0C 25 F8 FF FF FF 48 3B 61 10 0F 86 91 } condition: all of them } |
Sigma
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | title: BRICKSTORM Backdoor Activity r2 incident: 251157.r2 tlp: CLEAR id: 329bec83-54bd-405f-a5ab-ba97ec5e6057 status: test description: BRICKSTORM malware is a backdoor with multiple capabilities that theat actors use to set up persistence on exploited systems. references: - https://cloud.google.com/blog/topics/threat-intelligence/brickstorm-espionage-campaign - https://cloud.google.com/blog/topics/threat-intelligence/ivanti-post-exploitation-lateral-movement - https://ctid.mitre.org/blog/2024/05/22/infiltrating-defenses-abusing-vmware-in-mitres-cyber-intrusion/ - https://cybersecuritynews.com/new-brickstorm-stealthy-backdoor/ author: CISA Code & Media Analysis date: 2025-09-29 modified: 2025-09-29 tags: - attack.brickstorm - attack.unc5221 logsource: product: cma detection: keywords_1: - 'vCenter' keywords_2: - 'inventory object' - 'object' keywords_3: - 'clone' - 'destroy' keywords_4: - 'GET' - 'POST' - 'PUT' keywords_5: - 'HTTP/1.1' keywords_6: - '200' keywords_7: - '/rest/com/vmware/cis/session' - '/rest/appliance/access/ssh' keywords_8: - 'User Agent' keywords_9: - 'sed -i' keywords_10: - 'export' - 'echo' keywords_11: - 'vami-lighttp' - '/etc/sysconfig/init' keywords_12: - 'Administrator' keywords_13: - 'Creating local person user' - 'Adding users' - 'Updating local group' - 'Removing principals' - 'Deleting principal' keywords_14: - 'PrincipalManagement' keywords_15: - 'sshd' keywords_16: - 'Postponed keyboard-interactive/pam' keywords_17: - '/bin/vmx' keywords_18: - '-x' keywords_19: - '/vmfs/volumes.vmx' keywords_20: - '2>/dev/null' keywords_21: - '0>/dev/null' keywords_22: - '$parts =' keywords_23: - 'Get-Item -Path' keywords_24: - '"C:\Windows\System32\drivers\etc\hosts":frag*' keywords_25: - '$loader =' keywords_26: - '[IO.File]::ReadAllText' keywords_27: - 'Invoke-Expression $loader' keywords_28: - 'cp' - 'delete' keywords_29: - 'home/vsphere-ui/vcli' - '/opt/vmware/sbin' keywords_30: - 'vami-httpd' keywords_31: - 'testComputer$' keywords_32: - 'ldap-ivanti' keywords_33: - 'https://9.9.9.9/dns-query' - 'https://45.90.28.160/dns-query' - 'https://45.90.30.160/dns-query' - 'https://149.112.112.112/dns-query' - 'https://9.9.9.11/dns-query' - 'https://1.1.1.1/dns-query' - 'https://1.0.0.1/dns-query' - 'https://8.8.8.8/dns-query' - 'https://8.8.4.4/dns-query' - '/home/bin/netmon' - '/home/bin/logd' - '/home/runtime/logd' - '/home/config/logd.spec.cfg' - '/api/file/change-dir' - '/api/file/delete-dir' - '/api/file/delete-file' - '/api/file/mkdir' - '/api/file/list-dir' - '/api/file/rename' - '/api/file/put-file' - '/api/file/get-file' - '/api/file/slice-up' - '/api/file/file-md5' - '/api/file/up' - '/api/file/stat' condition: keywords_1 and keywords_2 and keywords_3 or keywords_4 and keywords_5 and keywords_6 and keywords_7 and keywords_8 or keywords_9 and keywords_10 and keywords_11 or keywords_12 and keywords_13 and keywords_14 or keywords_15 and keywords_16 or keywords_17 and keywords_18 and keywords_19 and keywords_20 and keywords_21 or keywords_22 and keywords_23 and keywords_24 and keywords_25 and keywords_26 and keywords_27 or keywords_28 and keywords_29 and keywords_30 or keywords_31 and keywords_32 or keywords_33 falsepositives: - Rate of FP low-moderate with some strings. - Use this rule in an infected environment/logs. - Analyst may need to make adjustments to the query as required. level: high |