Стилер паролей в антивирусном ПО Avira Free Antivirus

Что если я Вам скажу, что единственной функцией одного из компонентов антивирусного ПО, имеющего доверенную цифровую подпись, является сбор всех Ваших учетных данных сохраненных в популярных Интернет-браузерах? А если я скажу что ему без разницы в чьих интересах их собирать? Наверное подумаете что я брежу. А давайте посмотрим как на самом деле?


Разбираемся

Живет себе и здравствует такая антивирусная компания как Avira GmbH & Co. KG. Выпускает различные продукты связанные с информационной безопасностью. В ассортименте даже есть бесплатные продукты для домашнего использования.

Установим себе интереса ради бесплатную версию, посмотреть что умеет продукт немецких коллег. Пробегаем взглядом по интерфейсу — ничего необычного. Не находим никакого упоминания еще одного из продуктов компании — Avira Password Manager.

А давайте заглянем в компонент с ничем не привлекающим внимание именем »Avira.PWM.NativeMessaging.exe»? Он скомпилирован для платформы .NET и никак не обфусцирован, поэтому загружаем его в dnSpy и свободно изучаем код программы.

Программа консольная и она ожидает команд в стандартном потоке ввода. Главная функция при помощи »Read» считывает данные с потока, проверяет формат и передает команду в функцию »ProcessMessage». Та же, в свою очередь, проверяет что переданная команда является »fetchChromePasswords» или »fetchCredentials» (хотя какая разница если дальнейшее поведение одинаковое?) и тогда начинается самое интересное — вызов функции »RetrieveBrowserCredentials». Интересно даже… что может делать функция с таким именем?

Листинг кода функции ProcessMessage

Да ничего необычного, просто собирает в один список все учетные записи пользователя, сохраненные им при работе с Интернет-браузерами «Chrome», «Opera» (на базе Chromium), «Firefox» и «Edge» (на базе Chromium) и возвращает данные в виде JSON-объекта.

Листинг кода функции RetrieveBrowserCredentials

Ну, а затем выводит собранные данные в консоль:

Снимок экрана командной строки с полученными данными


Суть проблемы


  • Компонент собирает пользовательские учетные данные;
  • Компонент не верифицирует вызывающую программу (например, по наличию у неё цифровой подписи самого производителя);
  • Компонент имеет «доверенную» цифровую подпись и не вызывает подозрение у других производителей антивирусного ПО;
  • Компонент работает как отдельное приложение.

IoC

SHA1: 13c95241e671b98342dba51741fd02621768ecd5.

По данной проблеме был заведен CVE-2020–12680.

Об этой проблеме мною 07.04.2020 было направлено письмо в адрес support@avira.com и info@avira.com с полным описанием. Ответных писем, включая от автоматических систем не поступало. Спустя месяц описываемый компонент всё так же распространяется в дистрибутиве Avira Free Antivirus.

© Habrahabr.ru