Специалисты компании Sygnia в ходе расследования инцидента, получившего название Operation Highland, обнаружили, что группа Velvet Ant, связанная с Китаем, проникла в сегмент сети, не имеющий прямого выхода в интернет, и оставалась незамеченной почти десять лет. Самые ранние артефакты атаки датируются 2016 годом. Злоумышленники не использовали прямой путь к цели, а выстроили многоступенчатую цепочку компрометации, пройдя через внешние узлы и IT-инфраструктуру.
Описание
Velvet Ant - это постоянная угроза, которую Sygnia отслеживает по нескольким расследованиям. Ранее группа уже была замечена в злоупотреблении устройствами F5 BIG-IP и устаревшей инфраструктурой Windows для долгосрочного закрепления в системах. Позднее аналитики зафиксировали эксплуатацию уязвимости CVE-2024-20399 (проблема нулевого дня в Cisco NX-OS) для развертывания гибридного бэкдора VELVETSHELL непосредственно на коммутаторах Cisco Nexus. Общая черта всех этих инцидентов: при обнаружении Velvet Ant переходит на менее контролируемые участки инфраструктуры и восстанавливает присутствие с новой точки.
Операция Highland отличается ключевой деталью: целевая сеть не имела прямого подключения к глобальной сети. Атакующим пришлось специально организовать доступ через несколько промежуточных этапов. Итоговый отчёт Sygnia детально описывает весь путь - от первоначального взлома серверов с выходом в интернет до глубокого закрепления в изолированной сети критической инфраструктуры.
В ходе отчёта Sygnia установила, что группа модифицировала PAM-модули (модули аутентификации, которые управляют проверкой паролей) и OpenSSH-бинарные файлы на множестве хостов. Злоумышленники фактически взяли под контроль весь стек аутентификации. Было обнаружено девять различных вариантов библиотеки pam_unix.so, каждый из которых собран в отдельной среде компиляции. Столь высокий уровень усилий указывает на хорошо ресурсно обеспеченную и тщательно спланированную операцию.
Измененные SSH-бинарные файлы включали специальный флаг -d, который позволял отключать собственное логирование учетных данных во время работы. Это давало возможность активно управлять цифровыми следами и не оставлять улик при выполнении команд. Подобная операционная дисциплина - отличительный признак опытного противника.
Процесс устранения угрозы оказался необычайно рискованным, поскольку злоумышленник изменил компоненты, критически важные для удаленного доступа и администрирования. Вмешательство в PAM и OpenSSH означает, что стандартные методы очистки могли заблокировать администраторам доступ к серверам. Sygnia подчеркивает: восстановление доверия к системе аутентификации требовало специальной лабораторной проверки и пошагового тестирования, чтобы не нарушить работу производства с нулевым временем простоя.
Атака прошла три стадии. На первом этапе Velvet Ant закрепилась на интернет-серверах с помощью модифицированной версии GS-Netcat (утилиты для шифрованного реверсного соединения через релейную сеть). Бинарный файл маскировался под систему аудита, а для автозагрузки использовались юнит-файлы systemd или скрипты SysVinit. Параллельно разворачивался SOCKS5-прокси на Perl, который позволял маршрутизировать трафик через скомпрометированные машины.
На втором этапе злоумышленники использовали Nginx и FastCGI. Они изменяли конфигурацию веб-сервера так, чтобы HTTP-запросы перенаправлялись на внутренний сервер, который через FastCGI-обёртку запускал бинарный файл uptime. Этот файл устанавливал SSH-соединение с целевым устройством в изолированной сети, передавая параметры из POST-запроса. Таким образом, атакующим не требовалось прямое подключение к сегменту критической инфраструктуры - всё выполнялось через цепочку HTTP-запросов.
Третий этап - подмена модулей аутентификации. Злоумышленники заменили pam_unix.so на модифицированные версии, которые либо пропускали проверку по жёстко заданному паролю бэкдора, либо перехватывали учётные данные легитимных пользователей. В некоторых вариантах пароль хранился в зашифрованном виде, а логи записывались в скрытый файл /usr/sbin/.ssh.log. Кроме того, были скомпрометированы бинарные файлы SSH и SSHD: они перехватывали учётные данные и записывали все команды, вводимые в оболочке (кейлоггинг). Для сокрытия использовалась маскировка процессов под стандартные системные потоки, а также изменение временных меток создаваемых файлов.
Дополнительно злоумышленники добавляли свои открытые ключи в authorised_keys, обеспечивая третий уровень постоянного доступа, не зависящий от модифицированных бинарников.
Выводы Sygnia неутешительны: Velvet Ant не полагается на единичный механизм закрепления. Каждый раз, когда один путь блокируется, группа переходит на другой. В случае с Highland атакующие встроились в сам процесс аутентификации, что делает обнаружение стандартными средствами практически невозможным. Инцидент демонстрирует, что в высокочувствительных средах, особенно изолированных, необходима проактивная охота за угрозами, которая проверяет не известные сигнатуры, а аномалии в поведении инфраструктурных компонентов. Восстановление после такой атаки требует не просто удаления вредоносных файлов, а тщательного восстановления доверия ко всем механизмам входа, с обязательным планом отката и запасными каналами доступа.
Индикаторы компрометации
SHA1
- 007a36c97931ad85d35a60dd671a31c1821b816d
- 025ad7030e4e0eeff5eea27492bd5ed76600b855
- 03f0c472684fcbbda92e1db907b9678358cd308f
- 06bc3759103e2d46a977ba7919130bc2797b4ea9
- 06c351bb15aa55fabe967c860f81bee3e38a9190
- 06c9a35010455685c92ec3ea1fd16c612932abfc
- 08807d3ba3988dd18387f51cf9a3046f28539a7b
- 09362336d9a9db78d3854f5d9e81ffc49c3c2422
- 0a2508f4cf0077839cffb9613fe1e9bbdd1757db
- 0a29ec317ec131c6b9017d5aae39c73638687dbc
- 0a6d81765f0730dab60732e33dfe2e6ae5ca83f6
- 0abff2814d0506852309cc0cdcfefe1f2ce6472e
- 0bb31f38aad8f50ee60b87c6b99175775061eb00
- 0c000e75a3b0ff4e23573563bc21ba5454487ca8
- 0c52e883fd6e54a3defa1f54bcd5b6769bb4811d
- 0f0bd4b14a54dfdbce71e764c5173d4818a987a1
- 0f98bc0593ee828dc40f2344b9e5d66ddd683d36
- 11ecdda6af7594a1b2967f69b4acc2e7c6e61bb6
- 1222cc3326043094732b3b8ac233a1f26aec9506
- 12455ccc57f436a6b4f88d82057be3c86261ef76
- 12c310d12ccfc9d67b1204ce262c6b4e4ad712ba
- 139a2f5b5b57dc453ee0fa68f3cf3b5d9e6d52e7
- 1594a9b09bd597822976d763cf322f29fda48c76
- 17fc53c84e02bf448753f125506dc7e9dde992a0
- 1823063d75e8332edaff02945406e022b34daf25
- 1845f41c04e275aabfd75b90f36fe94d34776fb4
- 1850f695b0b0524aab4ed076aff71f23228bc1fa
- 18be6f1e19f67a374deac08b6d99de89d7eae476
- 19eeef95eedf279702c51756bb5f87bf62f7aac3
- 1aa86a14b0b48785dd19007db783318180141c88
- 1b76aac3241e6d9de08c58b55d5b8564004d72ea
- 1b88f918b3f0d57994911f126234813f639c8df9
- 1cebe53c09d177e71c7c4512c572111211e63119
- 1d9d970d63d2c71f9287ec5cdc70024b0e459463
- 1e769545b1ea0563a26b23b1404ca8559d56eb4a
- 20294b79ffa74149809bf97998b5155b85d8d816
- 20b6575aba8f922dfd969636a4492b26eae3eb31
- 212eb46c94d78c872a8e1ad2e5f1ea255ef349d3
- 215cf7c98b09a3c28a709c81b6eb4a0838df87b5
- 22065d320c7adf1bace2dbef2911e9c78cc81093
- 23110eb6dfb7a6daa9050de51776e75ebd88b5b7
- 2579c84889999c5621b7c710ef430830c9890ded
- 25c35b5136f562c6ab0ba5c0fa7e9d87841ae7e8
- 268cb40b51e31f53deaccf1f785a8f3b77b72a89
- 279d5fdb74c486c6c583e50427f5dc5edc8a962b
- 293652eb0e13da031ec46b09480f9f36cf193912
- 295b7ad7963b2b014649dc8d53c9d5b737303e7c
- 2987bb592eafe9407250a8260d47fcbfd214dc91
- 2c91a633922168dbe4a6e09f3381813cc0e3bd75
- 2e74f0836600f6602259921c8be49ec8b2365b1b
- 2fe816b0e0309786aed9cc9e85798bd77bb89e9d
- 3243f52d0f781efd1c662a9fc00ea2e3c214f1b6
- 33bd36eb1433a6f29355629f376ada11bbf29915
- 33caecb847a4188b8e5256128b03cec69425d828
- 33ee9af6abfdf446c204a897b4daf14a637b90bf
- 3503eeca5f06227823c12079758bea8fcb2f3f51
- 353a85b4650cf25541ce33c74b9873157ca70bae
- 360807cc57de190bf72855d7d23666dfdff51a01
- 367b8e6d7c27e580b7309b86cd6386d56874b22f
- 379036e237280981413675a50d16433e862c04d4
- 38097ea379dd1a69898397a80d29131e03c7dffd
- 381ef86334cc828c41171176ad608e0ce004724f
- 390ffc1419623e3693dc522431f0b37489d80bb6
- 3cff35a35c7e5754704a1f5fe7d12b81213ce3fa
- 3e397ddfe3a566bce12ca592a3178cb7181662a2
- 3f162127dbe65f1c5e588cf361544d7c58596fba
- 3f94c44e987ac7fff5e52d90d06315828dbfff8d
- 40f9f7feb26a677e15cb3b46a3f8c1896b1df120
- 42271d3d763c4b2a2167efc7e7904a934141a0fd
- 42a1e3a1f2a1e99331ddfde47fa827182b85c815
- 4300a4541cc6c613ee2d22875bbc0c64b88e0459
- 439f10b51b0c9228076bc57d9594b4b8921bcba5
- 43bc82901982749f641834824904991f3dec0055
- 43c0e3d18207352f3837c44b05926893b9c95950
- 44323a64e2e4e07bad06d215dff0df9146068cbe
- 4710cb810a81eddaf5922a3ac74c9362025652f9
- 4b501b9d378b767a93188e6d2530041049760e7d
- 4d709e2a6fd0a80f591bb445f881867af24fac17
- 4e8e8b236b9c2d58276b975a6b03dc40bbe81a8d
- 4f22cd43bcaa782616381d12fb59c357ee81882a
- 4f45ecee0a58b6fc5dde067d89fccc1f8da689f8
- 5056ab1eba38e69d9ab11ef905a91b38489d0d1f
- 54fba7ce71aa9afd4786c75cadff2f67e1be5f2c
- 55ed4efb98c0fe1f6860dc83cc00509934b5f100
- 579338b446bcfd12402c8f4a6fa510304fab1dae
- 57da18aef76edabd69a66652e5fd9470fb91861f
- 585d8aa9c548566efffbbde208a907be6e3a5920
- 588448b1e73c171ee1065cc492659f4ce41ad249
- 58f4c005f34617f020662ba6193310e7d6c48c8e
- 5b51a7bcb55a01437fc5359cf728ccbb4c077f0a
- 5b7c3cc163e4e358dfa0cc3cf0f252ed2e308801
- 5db9f4100e849fec34e29d7beaaf8824a4e7191d
- 5fd3423d61321155b1ed99f38629b19afc29bb07
- 60738b9c66032ecb0183e763082ebdc1f34a6752
- 60bde8cc14e72d976e8ed9a2708e9988e0e3a842
- 6260c7e12f67bb4cd2fadd9e537d7d7297f3e6df
- 63d01027ab5b164f84e25aec4f7d7640849e8e43
- 63f003bdc0c0bf8c601993df4292a05ee482ba0d
- 64aad84c2a10f11e46b4799d69a25909ce10c053
- 654f86dc5e85d7ed9857bd423112c3bb075204df
- 6715cc03b5f12271e89af185f0a815add6dfcc3b
- 6a1b15a82e312eaefa1138654869eee23bb722c1
- 6a75fe9e56769638dbc8e70d8e26b97a3b721b9d
- 6ab248f1061ccacefe6420f7ad6ff17c40ea1128
- 6adc0232614390470d317bc58991470b20b95c93
- 6b3b69ee9dd18c03f5727ad491862457fb6bb72e
- 6be50e0f9efb8ae4be149a263ca4d101bd7a5223
- 6cfdf1fd353a23c3a27cf5f95f685af6669e8869
- 6e065be2128a61081d735da90eba785ee74c1915
- 6e9669056e5a50e651e997af8a5a400bd6526aae
- 70494f5241b65c0108c3075c162d62f1b7e9c5ed
- 70ae0be53777de5a7d2e508b6ec0b7fd9a260e0c
- 711255963f74084ed42991e8b4d725a18b2af19b
- 715c8babdf9842d30b684e098d79b6e989c79392
- 7248ebaf1add5a2b8ef9daa1d33fd8038e61c83b
- 73c7424aa1441cbc895cdc7ebe1a6b0735819ef4
- 7424f3bd6c0325737c8e8c95f5868845468945a1
- 744fd4c35a8e5c5fd6398a0217ff2e2dbad6b3c5
- 74eced016aec25dcd6cba084fcb23657b8c6f799
- 75073d0293cc2cf336f49851464c13049db57bce
- 752b5b3e3e3d799c4933437a037a42cf6efe5fec
- 759995e71d085c863549a5ce910081b2d950ab13
- 75ddebaf08c7708ef4c1fccb6ceecb01281bfe1d
- 774eb7a6867ce05dd20bae1a1c8d35b940625b43
- 789cb4aadeb77a102897d7a563be2718da20a400
- 78eaf5e1db5ccd997f9643bddb41fbd33be3c85a
- 7922646ff41b64af06e9a4f171871d5037051c2c
- 7954d9bd6b1d25fe6887c3c8a01fe0d4f3bba633
- 7a5cc8fa1489c8a46933f38b7965e262da2ec336
- 7b6528ba313b885200e2a3acd8a13d5dfec5d8b3
- 7b898caca13a57d159e1d7f7aeb519866aaf01a5
- 7bd2c374ed0fc6657b1886b716bc44349d8eb854
- 8009de46a4697d6bbb6c5f99673f57ecc03f78f0
- 80512e9a227983655343c5c477fabea623e0a600
- 81ec69f205ce54896cb0d1fac76946a8d6587f02
- 822d8b016d075c3c03847bbd8d12c75dda091b6f
- 82ad01492e600ffecae1e86cc857cb2e3204a09d
- 83591f54bee2dc008144b855855d328cc73260b4
- 83bec8a1e7fa63d9d0980df220b5e18a52ca27c1
- 840c35cc6311a16582e3985cd72e7c39f9e52b84
- 842c04b5269871f16034ce330dd3b63df9afd716
- 8633f631fb60debb4de2ec05ec1bcf91fcf1cc0c
- 86ed10ecfd21579b17f4e2b0739dbafd8ef4a402
- 8729fbd8eeb25f6c1c3184cc426a32d9713954c1
- 889a2e46ed81b02ce6f2d166490217b82b81cd8e
- 892dccbb27ebf0e0f0915d0b634e6df410e383c9
- 898a17fde4d8f20298065ea400bc0e1165f6998b
- 89c76694569089a73edee4518fd8915f20686baa
- 8a07f64a78ca6a826a08131e9ec2bd72737b2e7c
- 8a0a500e8abf7a48a55afc534b7a7fd8762913a8
- 8ca116c80c13a3e90f4b61423227e07603230ca2
- 8e2764a9aa0ea974a1035f2b431397e07defd700
- 8e49dfb6f80f02f1f08a5423697e938354ed890b
- 8e87ff89c161467b305ea66f88a1e51fa13f4cbb
- 8f4c8db4d69be51b702f134eeda08c11edcd2de1
- 9117a95bf9ec3ceff86c919bd29ac5efadf512ea
- 917b601348bd0ba12c27165bf62bd73aa61ab1b8
- 931e04f300003ac2c54d498c087ba3bbcee5ce47
- 93c58f3f77817d8556ade66d679405daf34372de
- 93deae36b34854bba3c26485a22a81d3dc26995c
- 94a05fa1cc13c22e2896878a751645ac3d4563cd
- 94f7970ecfa41b35835ca82e6938d52bdb19a9f2
- 951aed96ccb614cf5223dd7b0105a3ef031f5466
- 954407ab6fc1fa5d67dd2d14451ea9c6bd9fad01
- 967fda1d9587f6cdd8b1412a0cae914934cd0064
- 97d7ea4c8946f37f35744800d224dfbae50c9647
- 988c95f1e7a919f3b4542efce3df831c4e6efb24
- 9a184f33a7966dcf6740befb2289701c15ecced7
- 9a29f5082cf9d77b81c2c4a9cba5b328691f05d1
- 9a6ea73f1443684c4d0530e8f8c98b567bd73396
- 9afb4f103ef0847ffc73f01eeceff5d872827549
- 9c5f9f25dfbbf22b7332e5b898dfecaa4c62dd97
- 9e5db650455b8c096be06356058e86fd573757db
- 9fb45030994d307625eac140de8144ee42f7ac74
- a111b8652d83b52d1514d6cf7c20cbf4658785c0
- a12e88fc5febf11e4c855c4c8cd430875cc0b52b
- a1ab6e8855598054db761b704ec469cc3b325b46
- a402f00314c395c9606b624992f43d7cafc90e28
- a44efe89dd9971964c7d6b2b544931f32249bcc5
- a465a5e6ac86631d6882352d610dd2d62396c34c
- a4c4248afe337949573462a25a88e2267a2be9cd
- a64cb840c66f0cc67b4a844322ef8343a7162d2a
- a7ca096d4341e306f1e24a4db3d0dc4abf59bc85
- aa6ea7b3bb583d68b0eb57beecf656cc2947bead
- ab03eff55d47e17efa0c7f26425e761559e41fad
- ab3e1fc3590793fee9fa92104db5b3b8bc36bea8
- abf1d677a290633fdce4f1ee0d4e8d315c3e5cb2
- ac2c0bfa7020141b64a1dd7480847284095b416b
- ac7c7e96a013e241dc59e4a09bee5dde03734c81
- add2f1a827ccbd325721d216150d06ae9ed270f3
- ae48e37df6cbe04b8160bc2d1fd9006c8edb886a
- aeb11b8da17d76a7bb78078cbd84f1d70bef97be
- af3ee8baa6664481bf994ecba4a6e3163b7ee190
- af9a1ea3e0acc3b11cda97ed312fc71a468e2698
- afd778f2498d8de201d08fbd531c24a8f08b1530
- b25162588b3b0c657c92f267539e0bdf2398507d
- b33bbb52819b49b6f3eb05f4b87622b5e67f1567
- b42c14f78f577b6d3f69901ca971e4165087075a
- b43f13bd02f18eb7039f2533d3ae8733bead5269
- b457edb0430a917fad94a7cca3c3902d8c73ea9b
- b5b5b0ff388af861cfd61f59240ab7c9acbc6527
- b73092052574a7c285d080210cdc50bbad520ffb
- b9d59639eee9c7ff3174f68d02b062430201d04a
- bab796f41026cb3fe5fed5b13414ff10026a6902
- bc024a5b27748f94f64108ec0bdb44c6f001de3d
- bcdcb151701435ab6cf8530c7c457072d1865f1b
- bfc7a7e50abcd74c0d8475d287086dfbad896bbd
- c0b2bff17e6409872687fccf9aaba425542ff4a4
- c24714c3ac72806c84ca20dd03790317a4a55688
- c2821261c635cb352ada7d420af5caead862cb8b
- c312a9ef8815d7a7cd04a29a18474121df7e8ee6
- c421edffbef5038732c289974985c5bec7ce123b
- c5e68487e7ed2190215511e3f7a55ad676dce170
- c61cb5ced6cc034993754fe4b4b696ae92bc3ff3
- c69bfdfddf46b66fa3073122da934e178ed93b34
- c6a1636467f88551d48d082ec64dad9fb3b2adcf
- c7075d97eb19a88587ab1aad9bcbff9400265fff
- c75eb9c08bd40bdf3c6702cfbc555e313a61500b
- c7dddb24e718dab01bec9c17afd316762771ccf6
- c8c984b25433b73612a2b7709786016eee456134
- c9a01b2737521c0238cd6cb23803ccb9e5d464bd
- cba2414aa5fa05d1a19a4a6f86cf5440ce773525
- cc8fa0675d6e5474f734140c73d3b6b88c712836
- ccb6495048437ba5bd169387de18a0ecf2478c78
- ccb85c9d86fd6cecac7d17f7068508bcbe3b5d57
- ce6e200789b3206ff7e49293fe25d2fde6c8249b
- cf258b425adcf608a3d4b25d9e5ab418cce9d6de
- cf4dcf6904db9b43223c94b60d4702b3d2bd0c30
- cffc656cd7851f78948400ea888b6f6297b5aa00
- d1c1fc330f98d7a2175daeba69ada83d2e585e8e
- d28b7c9e97d35b8ef89e171dd934dd8820aaa809
- d5362fd06e9dae0388c2da490eec8418e45b110b
- d5d0edd0763d5612661d38a21d824a9603b39b2a
- d6d07438d0a79ade32c8b7e565c6a8c07fc54663
- d754de2a8cda1523798d70f4eb2aa29e267cb07f
- da7be35ed254ce87a20086e8f1704acac5bc99d1
- da8210e1d93f1386ee9d4690f52b161442497c04
- db878b7951870b6aacc6804ea986644f3e3fddef
- de580bb8ae19fa5dc3a1075081817a92654bf75a
- dea9c58c9aa9768f22435b3228964efaab53d6d6
- df13f1ff9c13d20ee7fcf50547b77cb4c0f224fb
- dfa8854f35f1f4cdcf29142cee2705ba1d62054b
- e6c76571df7e0a21a5fb6df68a049d5ab703f1e8
- e7544c2fc4a04200a2352283004c1872aec124e1
- e7745349cb3910f771b7e4f394537cc22a354d58
- e7be99f2ca5149118ad349c4baca2a958d8ae434
- e7d9632c5bd5c06bcbcbf3b291cf17851a9721eb
- e8575b1bb359b1d426d1e027a334b17f5f8840ee
- e92e0c0b6427a1f52759778334333c98d4fe6f5d
- eab300b33c7130bb67d6449252d1bda2b13775db
- ead9ad14986cb3107049bdf0ffbd64294627bd95
- eb76603d827bdc111602fa5b3250fead1fe57009
- ebdc0d253b466eb3ea7cfdb5aef578bf3cd9e844
- ebf683e82ef2e295f16ced5026842052d64920de
- ebfa141715aaceac5d2b899950f9ce19d516121b
- ecd0549816aefd8dc4e62b09cfdf471493f2fc3a
- ed2013874172a5be173e713c6f5ea26e9d451d24
- eec9e409759e03426ec4fc194e5b34eb853bd0ac
- efe7e534d5f89f39ca02474719e84a65ddb88c65
- f07baa3f70ea87268839ac550b187ad7161700e6
- f0fe8a7e260b1dbf5e735179451f78091e5ddc2f
- f1edde0ee5a20c86d1689659e077b0448b5b2c9a
- f22f2e1429fd8c8332aa350477e64bcba46e28b9
- f279b0c5bcd53eeb15d4bf158980f66c0299f4eb
- f29f82ce5dff9e65fe26f6daa122411f34b0bd25
- f31980fe1a2e8b086e92b6285157a78cb1c7f031
- f31d49bcac48e2cad9e4daa2ec0d71b97af31a5e
- f438226f6bb439a1fc65360c1e33dd1cdf00307a
- f4c1eed86ceefe872760c8a23c8c48b7f2f0d19d
- f5cc4488f2438f0062cc729ee1c895fe66d0fed4
- f6d392687241e43c6bf3641ff0d4808fca4ac356
- f78f1ae20b690648fd65b05bfedde2c9f7e46fcb
- f888dd514bd01d226d7f9edef389d28749df4040
- f90ac0af06ae4dcc97af5330fec3a6d8d7a01d33
- f9ee3ee78d7cf3d9a589d4b268a4dabc85d0bb11
- fa7c0fcc20381171a2d5cb4186e13bc51fccc0f7
- fb6e2334527a5764d71a2351ecb0703cd5bee59f
- fbceebfcaada31b09035d759bb2255fc590d86ff
- fcf45b484b52faea92f2fd1b12f6074dab7ac938
- fda8f760a22ce8a314a0cf44875434d0527b889c
- feb15b3dcf9019e638295ca94ddfc35df15a4cd8
- ff1ae2619047b981e6f7f3f08a9954b7141f1f44
- ff1de73ebb1bf3f872f94c194007338dac83ee99