Кламав обнаруживает троянов

Я только что отсканировал мою систему и 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 сканирует множество движков, поэтому, если файл подозрительный, он, скорее всего, будет четко виден.

Другие вопросы по тегам