Перейти к содержанию
WindXpForre

Уязвимость во Flash'е или кто думает о нашей безопасности

Recommended Posts

WindXpForre

Не моё - взято на Хабре.

"Теплым зимним вечером сидел я за компьютером и решил расслабиться, поиграв на пианино. Так как не фортепьяно, не синтезатора у меня нет, я, воспользовавшись поиском, начал искать онлайн пианино с примерами для обычной клавиатуры QWERTY.

Поиск привел меня на страницу форума, где было предложено множество онлайн сервисов. Перейдя по одной из них и поиграв вдоволь, я открыл новую вкладку и начал писать адрес нужного сайта. Каково было мое удивление, когда при вводе адреса я услышал звуки фортепьяно.

Не поверив, попытался еще что-нибудь набрать и снова услышал звук. Начал разбираться из какой программы идет звук, ведь ту страницу с пианино я закрыл, а страница с форумом осталась. Методом тыка, закрыв несколько вкладок, был найден источник звуков. Им оказалось Flash пианино ZebraKeys, размещенное в сообщении на форуме.

Поняв, что это серьёзная уязвимость. Начал пробовать в других браузерах (до этого было в Oper'е).

Проверка показала:

Mozilla — звук издавался во всех вкладках, в том числе, когда фокус находится просто на странице;

Chrome — только в текущей вкладке и когда фокус находится в любом Flash приложении на этой странице;

IE 9 — только в текущей вкладке, в том числе, когда фокус находится просто на странице.

Так как данная уязвимость может привести к перехвату личных данных, в том числе паролей, были написаны письма компаниям Opera, Mozilla (в Mozilla Security Bug Bounty Program) и Adobe. Так как английским в разговорной форме не владею, воспользовался Google Translate.

В течение суток, первой ответила Opera, поблагодарив за найденную ошибку и исправив её в короткое время, причем переключив меня на русскоговорящего сотрудника, чтобы было легче донести мысли.

Теперь приложения Flash получают клавиатурные нажатия, только когда какое-нибудь Flash приложение находится в фокусе, даже в другой вкладке. Разделить по вкладкам, как в Chrome нельзя, так как у Chrome отдельные процессы на каждую вкладку.

Mozilla ответила позднее, сказав, что повторить у них не получается, опишите какая ОС и плагины установлены. Ответив, что ОС Windows и такие-то плагины, ждал дальше ответа, и с удивлением услышал опять, не удается повторить проблему. Написав им еще раз, что ОС Windows, а не Linux и не Mac OS, наконец-то услышал ответ от Mozilla, что да, повторить удалось, мы пробовали на других ОС, попробовали на Windows и услышали звук. Поблагодарив за моё упорство и найденную ошибку, также написали, что баг известный (привели ссылку) и данную проблему уже решают. То есть 3000$ на синтезатор по программе Mozilla Security Bug Bounty Program мне не видать. Написав им, что сообщение о уязвимости могли и сами написать, задним числом. К слову, прошло чуть меньше месяца и в новом Mozilla 9 данная уязвимость присутствует и можно «поиграть на пианино прямо в строке адреса».

Adobe до сих пор не ответила, хотя я написал на, с трудом найденный в интернете адрес, support [] adobe.com Возможно его и не существует, но и на сайте без регистрации форма для отправки чего-либо не найдена.

Итоги

Уязвимость в том или ином роде есть во всех браузерах на Windows, так как Flash на этой ОС использует Windows API, вместо того, чтобы получать клавиатурные события через Browser Plugin API (NPAPI). Есть способ заблокировать чтение клавиш для всех flash приложений, но невозможно это сделать для отдельных приложений. То есть или все flash приложения будут читать клавиатуру, или не будет ни один (спасибо за данные разъяснения сотруднику Opera).

P.S. На той страничке форума есть прекрасное пианино, которое будет интересно для людей, владеющих десятипальцевым методом печати, так как там можно открыть одновременно примеры мелодий (какую клавишу на обычной клавиатуре нажать) и само пианино. Очень удобно. Также в их группе на FaceBook есть много других примеров".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

  • Сообщения

    • Ego Dekker
      Домашние антивирусы для Windows были обновлены до версии 17.2.8.
    • demkd
    • santy
      demkd, а где сохраняется информация о количестве используемых ядер? в settings.ini? Не увидел там новый параметр при изменения параметра производительности в доп. настройках.
    • demkd
      ---------------------------------------------------------
       4.99.1
      ---------------------------------------------------------
       o Это обновление добавляет поддержку многоядерных процессоров.

       o В меню Настройки->Дополнительные настройки добавлена возможность указать количество рабочих потоков
         для функций:
           o Создание файла сверки                                        (нельзя прервать)
           o Создание образа автозапуска                                  (нельзя прервать)
           o Загрузка производителя [F3]                                  (доступно прерывание функции по ESC)
           o Проверка по базе проверенных файлов [F4]                     (доступно прерывание функции по ESC)
           o Проверка ЭЦП [F6]                                            (доступно прерывание функции по ESC)
           o Проверка по базе критериев [Alt+F7]                          (доступно прерывание функции по ESC)
           o Фильтрация по базе критериев [Ctrl+F7]                       (доступно прерывание функции по ESC)
           o Проверка списка по выбранному критерию                       (доступно прерывание функции по ESC)
           o Проверить весь список на вирусы                              (доступно прерывание функции по ESC)
           o Добавить хэши всех проверенных файлов в базу проверенных     (доступно прерывание функции по ESC)
           o Добавить хэши исполняемых файлов каталога в базу проверенных (доступно прерывание функции по ESC)
         Значение 0 задает количество потоков равным количеству ядер процессора (включая виртуальные), виртуальные ядра
         могут ускорить процесс на лишние 30%.
         Как сказывается использование E-ядер неизвестно, но скорее всего ощутимой разницы с P ядрами не будет,
         поэтому на новых интелах + NVME SSD сокращение времени исполнения функций скорее всего будет огромным.
         При подключении к удаленной системе для серверной части uVS количество потоков всегда равно количеству ядер (включая виртуальные).
         Для клиентской части действует заданное в настройках значение.
         Для системного диска на базе SSD время выполнение функции уменьшается многократно (для 4-х ядерных процессоров вплоть до 4x на SATA SDD),
         для современных конфигов может иметь смысл задание большего числа потоков чем количество ядер у процессора (допустимый максимум - 128).
         Для HDD все гораздо хуже, время проверки немного сокращается (10-20%), однако когда часть файлов находится
         в кэше системы (т.е. в оперативной памяти) разница будет существенной и для HDD.
         Конечно все это верно лишь для процессоров с более чем 1 ядром.
         (!) Прерывание функции по клавише ESC недоступно для удаленных систем.

       o Другие функции, которые можно прервать по ESC:
         o Проверить все НЕПРОВЕРЕННЫЕ файлы на VirusTotal.com
         o Проверить все НЕПРОВЕРЕННЫЕ ИЗВЕСТНЫЕ файлы на VirusTotal.com
         o Проверить НЕПРОВЕРЕННЫЕ файлы в текущей категории на VirusTotal.com (c учетом фильтра)
         o Проверить все НЕПРОВЕРЕННЫЕ файлы на virusscan.Jotti.org
         o Проверить все НЕПРОВЕРЕННЫЕ ИЗВЕСТНЫЕ файлы на virusscan.Jotti.org
         o Проверить НЕПРОВЕРЕННЫЕ файлы в текущей категории на virusscan.Jotti.org (с учетом фильтра)
         o Проверить хэш файла по базе проверенных файлов
         o Добавить в список->Все исполняемые файлы в системных каталогах не старше указанной даты

       o Обновлен функционал окна "История процессов и задач".
         Добавлена информация о текущем состоянии задач зарегистрированных в системном планировщике заданий.
         Добавлена новая кнопка "С момента запуска системы", которая переключает режим отображения истории.
         Если кнопка нажата то история отображается только с момента запуска системы, все что было раньше не попадает в список.
         Если кнопка отжата то отображается вся доступная история процессов и задач,
         что может быть полезно для выявления зловредной активности непосредственно перед перезагрузкой системы.
         Для каждой задачи по двойному щелчку левой кнопки мыши можно просмотреть XML описание задачи.
         Теперь фильтрующий поиск работает на все колонки активного списка одновременно, поддерживается
         фильтрация и списка процессов и списка задач, в зависимости от того какой список активен.
         Фильтрующий поиск применяется на результат работы родительского фильтра.
         Горячая клавиша Backspace больше не влияет на родительский фильтр, для отката уровня родительского
         фильтра используйте клавиши ESC (если строковый фильтр пуст) или Alt+Up (откат со сбросом строкового фильтра).
         (см. подробнее в файле Doc\История процессов и задач.txt)
         (!) Только для Vista и старше.
         (!) Только для активных и удаленных систем.

       o Включение отслеживания процессов и задач теперь увеличивает системный журнал до 50mb,
         отключение возвращает размер по умолчанию.

       o Новая скриптовая команда: deltskname полное_имя_задачи
         Удалить задачу с указанным именем.
         Имя задачи должно начинаться с символа "\", например: \Task
         Допустимо указывать каталоги например: \Microsoft\Задача
         (!) Только для Vista и старше.

       o Возвращено отображение цифровых процентов в заголовке окна, поскольку в некоторых системах графическое отображение
         прогресса выглядит не очень наглядно.

       o В окно выбора каталога/файла добавлен фильтрующий поиск (по обоим спискам одновременно если это выбор файла).
         В окне изменились горячие клавиши:
          o \ - перейти к выбору диска
          o DEL - удалить каталог/файл (с подтверждением)
          o ESC - очистить фильтр, если фильтр пуст то закрыть окно.   
          o Backspace - удалить последний символ фильтра
          o Alt+Вверх - перейти в родительский каталог

       o Функция создания образа автозапуска теперь не использует базы проверенных файлов и все проверенные файлы ДО создания
         образа теряют статус "проверенный". Т.е. в образе статус проверенный имеют лишь файлы прошедшие проверку ЭЦП.

       o Поскольку AutoHotkey используется зловредами то теперь все его актуальные версии выявляются под любым именем по F3 или
         при создании образа автозапуска и получают статус подозрительного файла.
         Соответствующие имени файла скрипты автозапуска добавляются в список автоматически и тоже получают статус подозрительных файлов.
         Содержимое скрипта доступно в окне информации ahk файла.

       o Введены новы лимиты на количество элементов в списке автозапуска для x64 версий в списке может быть до 1 млн. файлов,
         для x86 до 150 тысяч файлов. (Обычно в образе менее 10 тысяч файлов)

       o Оптимизированы функции сортировки, фильтрации и вывода списка.

       o В категории HOSTS добавлен фильтрующий поиск по 2 первым колонкам одновременно.
         Сортировки в этой категории нет, записи представлены в порядке следования в оригинальных файлах.
         Первыми идут записи из HOSTS, что лежит по прописанному в реестре пути, если путь отличается от пути по умолчанию
         то дальше идут записи HOSTS из \Windows\System32\drivers\etc, далее записи из HOSTS.ICS.
         В этой категории теперь работает горячая клавиша DEL.

       o Найдена ошибка в Windows API из-за которой для некоторых файлов не отображался производитель и другая информация о версии файла.
         Сам Windows для таких файлов не отображает случайные параметры на вкладке "Подробно" в свойствах файла.
         Ошибку удалось обойти и теперь в окне информации о файле отображаются все значимые параметры для всех исполняемых файлов.

       o Улучшен альтернативный режим сканирования процессов. (ctrl+p)

       o В контекстное меню окна информации о файле добавлен поиск по имени подписавшего файл.

       o Удалена скриптовая команда EXEC32 за бесполезностью.

       o Из настроек основного списка удален обычный поиск за бесполезностью.

       o Добавлен вывод предупреждения в лог при обнаружении вируса в списке при загрузке производителя и сигнатур про F3.

       o Исправлена и улучшена функция вывода результата исполнения консольных приложений.
         Теперь вывод осуществляется в реальном времени с поддержкой отображения динамического текста в последней строке.
         Проблема с кодировкой для старых систем решена.
         Добавлено время выполнения приложения.

       o Результат выполнения команды gpudpate теперь отображается в логе.

       o Сообщение об отсутствии пользовательского реестра в каталоге "All users"/ProgramData больше не выводится.

       o Немного дополнена документация.

       o Исправлена ошибка из-за которой вместо обычной x64 версии для старых систем запускалась x64v версия.

       o Исправлено ошибочное сообщение в логе при исполнении 44 твика.

       o Исправлена ошибка при сохранении истории задач в образ и при передаче данных из удаленной системы.

       o Исправлена и оптимизирована функция проверки списка по выбранному критерию.

       o Исправлена ошибка с растущим временем отката операции по Ctrl+Z при работе с образом.

       o Исправлена ошибка при определении параметров *OperatingSystemVersion для 64-х битного исполняемого файла.

       o Исправлена ошибка с неправильным откатом операции по HOSTS при работе с образом.

       o Исправлена ошибка подписи образа автозапуска удаленной системы (появилась в v4.15.4)

       o Исправлена функция Добавить в список->Все исполняемые файлы в системных каталогах не старше указанной даты

       o Исправлены мелкие интерфейсные ошибки.
       
    • PR55.RP55
      Предлагаю добавить удаление по критерию поиска. На примере темы: https://forum.kasperskyclub.ru/topic/463829-ne-poluchaetsja-udalit-virus/ т.е. у нас есть переменные и постоянные... данные. На основе постоянных данных создаётся критерий поиска и скрипт по нему отработает. В принципе  можно пользователю кинуть поисковый критерий в виде файла > Прогнать список по поиску > Удалить найденное. Но как это всё объяснять.
×