Кламав обнаруживает троянов
Я только что отсканировал мою систему и clamav
обнаружил несколько подозрительных файлов:
File: .cahe/mozilla/firefox/jqxk4r44.default/cache2/entries/750B6E2F1286....
Status: PUA.Win.Exploit.CVE_2012_1461-1
File: .cahe/mozilla/firefox/jqxk4r44.default/cache2/entries/F099C33HJ45J....
Status: PUA.Win.Exploit.CVE_2012_1461-1
File: .config/libreoffice/4/user/basic/Standard/Module1.xba
Status: PUA.Doc.Tool.LibreOfficeMacro-2
File: Downloads/nodejs/node-v8.9.4-linux-x64/lib/node_modules/imurmurhash/imurmurhash.min.js
Status: PUA.Win.Trojan.Xored-1
Насколько вероятно, что эти файлы представляют собой реальные угрозы / трояны?
3 ответа
PUA.Win.Exploit.CVE_2012_1461-1
- PUA означает "потенциальное нежелательное применение". PUA - это не вирусы, это заявление clamav о том, что существует приложение, которое они считают "нежелательным", поскольку в Windows было доказано, что этот файл или расширение злоупотребляли
- Выигрыш как вторая часть означает, что это уведомление, связанное с Windows.
- У clamav есть опция не сканировать PUA.
Мой вывод: не о чем беспокоиться.
Это оставляет...
PUA.Doc.Tool.LibreOfficeMacro-2
.config/libreoffice/4/user/basic/Standard/Module1.xba
имеет расширение поездки на клаве. Они верят xba
Визуальные базовые макросы считаются "нежелательными". См. Clamtk сообщает об этих файлах LibreOffice как о возможных угрозах. Они в безопасности? для более полного списка, ответов и комментариев.
ClamAV - общеизвестно ошибочная программа: основывать ваши сканирования и предупреждения на Windows, а затем применять их к Linux не работает и никогда не будет работать.
Когда вы видите уведомление, подобное этому, и вы действительно уверены, что clamav - это инструмент, который нужно использовать, следующий шаг - проверить со вторым источником: например, загрузить файл на сайт, такой как virustotal, или использовать программное обеспечение 2nd virusscan вместе с clamav (где, когда оба претендуют на одну и ту же проблему, вы исследуете и в противном случае считаете их ложными срабатываниями).
Но я бы вообще отказался от clamav и следовал бы методу, основанному на Linux: используйте debsum (ссылка на man-страницу), чтобы проверить пакеты (ссылка на howto).
И когда вы действительно параноик (здесь на вас смотрит панда) используйте все вышеперечисленное;)
Я бы не стал так легкомысленно отмахиваться от этого предупреждения, оно гласит: PUA
Module1.xba: PUA.Doc.Tool.LibreOfficeMacro-2 FOUND
dotjoshjohnson.xml-2.5.1: PUA.Win.Trojan.Xored-1 FOUND
ms-azuretools.vscode-docker-1.8.1: PUA.Win.Trojan.Xored-1 НАЙДЕН загрузчик
файлов-PUA.Win.Adware.Qjwmonkey-6892535-0 НАЙДЕН
BouncyCastle.Crypto.dll: PUA.Win.Adware.Qjwmonkey-6892535-0 НАЙДЕН
BouncyCastle.Crypto.dll: PUA.Win.Adware.Qjwmonkey-6892535-0 НАЙДЕН
jquery-ui.min.js: PUA.Win.Trojan.Generic-6888382-0 НАЙДЕН
Итак, ИМХО, вы можете отклонить макрос LibreOffice, потому что он определяет, что это макрос свободного офиса, хотя я все равно могу удалить их, мне нужно будет проверить его и посмотреть, использую ли я его. загрузчик файлов и рекламное ПО - это просто ерунда, но потенциальный риск. Остальные беспокоят меня, потому что они распознаются как троян. Теперь причина, по которой у меня есть некоторые опасения, заключается в следующем:
: # ifconfig |grep inet
inet 10.0.0.58 маска сети 255.0.0.0 широковещательная рассылка 10.255.255.255
inet6 xxx prefixlen 64 scopeid 0x20
inet 127.0.0.1 маска сети 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
Теперь у меня суриката в качестве IDS, и смотрю на fast.log
11.12.2020-11:42:30.052835 [] [1:2025331:3] ET POLICY Возможный внешний домен поиска IP, обнаруженный в SNI (ipinfo.io) [] [Классификация: Обнаружен сетевой троян] [Приоритет: 1] {TCP} 10.0.0.58:56692 -> 216.239.36.21:443
Проверка whois на 216.239.36.21 показывает, что это сервер Google, однако мы не знаем, является ли это службой Google, клиентом облачных служб или скомпрометированным сервером. При переходе на сайт выясняется, что он находится на сервере контента, потому что он 404s, попытка перейти на HTTPS показывает, что он не может обеспечить безопасное соединение. Глядя глубже, файл, похоже, не предоставляется пакетом.
dpkg -S /usr/share/javascript/jquery-ui/jquery-ui.min.js
libjs-jquery-ui: /usr/share/javascript/jquery-ui/jquery-ui.min.js
На данный момент это пограничный случай, потому что есть пакет, который его предоставляет, глядя на пакет, он показывает, что он установлен из архивов Ubuntu.
Политика apt-cache libjs-jquery-uilibjs-jquery-ui: Установлено: 1.12.1+dfsg-5 Кандидат: 1.12.1+dfsg-5 Таблица версий:*** 1.12.1+dfsg-5 500500 /universe amd64 Пакеты 500 http://us.archive.ubuntu.com/ubuntu focushttp://us.archive.ubuntu.com/ubuntu focus/universe i386 Пакеты 100 /var/lib/dpkg/status
Теперь я могу удалить пакет и переустановить его, снова просканировать и посмотреть, не поступает ли он из репозитория. Если из репозитория, то я бы больше склонялся к ложному срабатыванию. В противном случае, если это не из репозитория, я бы больше склонялся к потенциальной угрозе.
Глядя глубже на то, как это могло попасть в систему, я впервые смотрю на свой брандмауэр.
Chain OUTPUT (policy DROP)
target prot opt source destination
KUBE-SERVICES all -- anywhere anywhere ctstate NEW /* kubernetes service portals */
KUBE-FIREWALL all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT udp -- anywhere anywhere udp dpt:443
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT udp -- anywhere anywhere udp dpt:80
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:8080
ACCEPT tcp -- anywhere anywhere tcp dpt:http-alt
ACCEPT udp -- anywhere anywhere udp dpt:8443
ACCEPT tcp -- anywhere anywhere tcp dpt:8443
ACCEPT tcp -- anywhere anywhere tcp dpt:67
ACCEPT udp -- anywhere anywhere udp dpt:bootps
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:whois
ACCEPT udp -- anywhere anywhere udp dpt:43
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere
Chain INPUT (policy DROP)
target prot opt source destination
KUBE-SERVICES all -- anywhere anywhere ctstate NEW /* kubernetes service portals */
KUBE-EXTERNAL-SERVICES all -- anywhere anywhere ctstate NEW /* kubernetes externally-visible service portals */
KUBE-FIREWALL all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
Подтверждено сканированием Kali, которое показывает, что все порты отфильтрованы, поэтому я знаю, что угроза не могла проникнуть в мою систему из какого-либо источника, кроме одной из программ, которым был разрешен доступ к моей системе. Теперь Chrome и Firefox работают в пользовательском пространстве, поэтому у них не должно быть доступа к этому местоположению файла. Это оставляет за apt доступ к порту HTTPS. Тем не менее, моей первой задачей будет перемещение файла в другое место для его хранения, обычно создание копии для его документирования, затем удаление/переустановка пакета и проверка его повторного запуска.
Здесь я бы задокументировал весь процесс, связанные с ним IP-адреса и причины, по которым я принял те или иные решения. Это стандартная процедура документирования скомпрометированной системы. В SOC вы можете захотеть сделать образ всего диска на этом этапе, поскольку я достаточно уверен в своих других мерах безопасности, я собираюсь продолжить и отслеживать систему на предмет дальнейших признаков взлома.
Теперь у меня возникли проблемы с появлением системных ошибок, поэтому я начинаю больше склоняться к очистке всей системы и перезагрузке с нуля после тщательного резервного копирования и имею в виду сторону Windows и Linux.
Теперь, если бы у меня был активный SIEM, я, вероятно, сопоставил бы различные предупреждения журнала безопасности за пределами базового уровня, отсортировал бы IE по общности от базового уровня и сопоставил бы подобное событие безопасности из журнала IDS с журналами сервера. Я бы пошел дальше, если бы мне платили за изучение этого вопроса, но это моя рабочая станция, и я могу обойтись без одной или двух функций, чтобы просто не копаться так глубоко.
Итак, продолжая утверждение выше, я тогда
apt remove libjs-jquery-ui
тогда
clamscan -r --bell --infected --detect-pua=yes --scan-elf=yes --scan-mail=yes --algorithmic-detection=yes --scan-pe=yes --scan-ole2=yes --scan-pdf=yes --scan-html=yes --scan-archive=yes --max-filesize=20000000 --max-scansize=20000000 /usr/share/javascript/
----------- SCAN SUMMARY -----------
Known viruses: 8964095
Engine version: 0.102.4
Scanned directories: 1619
Scanned files: 2733
Infected files: 0
Data scanned: 140.98 MB
Data read: 38.02 MB (ratio 3.71:1)
Time: 53.914 sec (0 m 53 s)
затем
rm -rf /directoriesToOtherFilesListedAsTrojan/
Два каталога, в которых были другие файлы JS, поэтому я снова запущу все сканирование и посмотрю, прекратятся ли предупреждения во время сканирования. Это были плагины, поэтому я просто удалил весь каталог, но если бы они были в системных местах, я бы, вероятно, удалил их так же, как я сделал с jquery.
Теперь пришло время установить его снова и пересканировать:
apt install libjs-jquery-ui
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
gir1.2-ges-1.0 libges-1.0-0 python-matplotlib-data python3-cycler python3-kiwisolver
Use 'sudo apt autoremove' to remove them.
Suggested packages:
libjs-jquery-ui-docs
The following NEW packages will be installed:
libjs-jquery-ui
0 upgraded, 1 newly installed, 0 to remove and 17 not upgraded
clamscan -r --bell --infected --detect-pua=yes --scan-elf=yes --scan-mail=yes --algorithmic-detection=yes --scan-pe=yes --scan-ole2=yes --scan-pdf=yes --scan-html=yes --scan-archive=yes --max-filesize=20000000 --max-scansize=20000000 /usr/share/javascript/
/usr/share/javascript/jquery-ui/jquery-ui.min.js: PUA.Win.Trojan.Generic-6888382-0 FOUND
----------- SCAN SUMMARY -----------
Known viruses: 8964095
Engine version: 0.102.4
Scanned directories: 1628
Scanned files: 3050
Infected files: 1
Data scanned: 146.57 MB
Data read: 39.68 MB (ratio 3.69:1)
Time: 55.278 sec (0 m 55 s)
Таким образом, это ясно показывает, что указанная здесь библиотека взята из репозитория Ubuntu, теперь я могу получить инструмент статического анализа кода, я буду использовать линтер, чтобы увидеть, есть ли что-то ужасно очевидное, результат:
eslint usr/share/javascript/jquery-ui/jquery-ui.min.js|grep -v "Отсутствует точка с запятой"
/usr/share/javascript/jquery-ui/jquery-ui.min.js
1:47 error 'define' is not defined no-undef
1:58 error 'define' is not defined no-undef
1:93 error 'jQuery' is not defined no-undef
1:4240 error Empty block statement no-empty
1:16358 error Unnecessary escape character: \+ no-useless-escape
1:16360 error Unnecessary escape character: \- no-useless-escape
1:25753 error 'undefined' is defined but never used no-unused-vars
1:26638 error Unnecessary escape character: \- no-useless-escape
1:26888 error Unnecessary escape character: \% no-useless-escape
1:26912 error Unnecessary escape character: \% no-useless-escape
1:26936 error Unnecessary escape character: \% no-useless-escape
1:27495 error Unnecessary escape character: \% no-useless-escape
1:27519 error Unnecessary escape character: \% no-useless-escape
2:1 error Expected indentation of 1 tab but found 0 indent
2:1864 error Empty block statement no-empty
2:2023 error Empty block statement no-empty
3:1 error Expected indentation of 1 tab but found 0 indent
3:36 error Unnecessary escape character: \/ no-useless-escape
3:22586 error Unnecessary escape character: \- no-useless-escape
3:22588 error Unnecessary escape character: \[ no-useless-escape
3:22603 error Unnecessary escape character: \^ no-useless-escape
3:31806 error Unnecessary escape character: \- no-useless-escape
3:31808 error Unnecessary escape character: \[ no-useless-escape
3:31823 error Unnecessary escape character: \^ no-useless-escape
4:1 error Expected indentation of 1 tab but found 0 indent
4:16597 error Unnecessary escape character: \- no-useless-escape
4:27742 error Empty block statement no-empty
5:11073 error Empty block statement no-empty
5:11243 error Unnecessary escape character: \- no-useless-escape
5:22972 error Unnecessary escape character: \- no-useless-escape
5:23036 error Unnecessary escape character: \- no-useless-escape
5:25812 error Unnecessary escape character: \- no-useless-escape
5:25866 error Unnecessary escape character: \- no-useless-escape
6:1 error Expected indentation of 1 tab but found 0 indent
7:1 error Expected indentation of 1 tab but found 0 indent
9:7372 error Unnecessary escape character: \- no-useless-escape
10:1 error Expected indentation of 1 tab but found 0 indent
10:996 error 'Globalize' is not defined no-undef
10:1171 error 'Globalize' is not defined no-undef
10:3398 error Empty block statement no-empty
10:3460 error Empty block statement no-empty
10:7130 error Unnecessary escape character: \/ no-useless-escape
10:7139 error Unnecessary escape character: \[ no-useless-escape
10:7143 error Unnecessary escape character: \^ no-useless-escape
10:10481 error Expected a conditional expression and instead saw an assignment no-cond-assign
10:20588 error Expected a conditional expression and instead saw an assignment no-cond-assign
✖ 1167 problems (1167 errors, 0 warnings)
1127 errors, 0 warnings potentially fixable with the `--fix` option.
Я бы запустил опцию исправления и посмотрел, поможет ли это вообще, но это не исправит обнаружение.
Это показывает следующее
cat usr/share/javascript/jquery-ui/jquery-ui.min.js |tail -n1 -c100
tooltipClass&&tooltipData.tooltip.addClass(this.options.tooltipClass),tooltipData}});$.ui.tooltip});root@master-node
Проблема здесь в том, что во всем файле js было удалено все форматирование, чтобы попытаться запутать код, одно это должно быть причиной для удаления файла, а не для его использования. Я собираюсь дать команде Ubuntu презумпцию сомнения и просто предположу, что это ложное срабатывание, поскольку линтер показывает распространенные проблемы с низким приоритетом. Одним из примеров является экранирование, это очень распространено, поскольку оно используется в регулярном выражении для обозначения диапазона, такого как [a-zA-Z], насколько мне известно, это специальный символ в выражении регулярного выражения, и люди часто экранируют его, чтобы быть уверенным.
Один файл был помечен как PUA, просто загрузите этот файл на virustotal.com, чтобы лучше понять, что может произойти. Virustotal сканирует множество движков, поэтому, если файл подозрительный, он, скорее всего, будет четко виден.