17.05.2022 | Эксперты обнаружили 134 уязвимости в обработке скриптов приложениями Word и Acrobat |
Исследователи безопасности разработали инструмент для выявления ошибок в том, как Microsoft Word и Adobe Acrobat обрабатывают JavaScript. Инструмент оказался очень эффективным, поскольку ему удалось обнаружить 134 проблемы, и 59 из них были настолько серьезными, что вендоры даже выпустили исправления. 33 уязвимостям были присвоены идентификаторы CVE, а за 17 даже было заплачено вознаграждение на общую сумму в $22 тыс. Инструмент получил название Cooper по названию используемой им техники «Cooperative mutation». В ходе презентации инструмента на конференции Black Hat Asia в Сингапуре один из его авторов Су Пен из Академии наук КНР пояснил, что приложения наподобие Word и Acrobat принимают входные данные от скриптовых языков. К примеру, Acrobat разрешает JavaScript манипулировать PDF-файлами. Для этого необходимо, чтобы PDF и определял собственные PDF-объекты, и проводил синтаксический анализ JavaScript-кода. Собственные объекты обрабатываются модулями Acrobat, а скрипты – встроенным JavaScript-движком. Перевод осуществляется на «уровне привязки». По словам создателей Cooper, связующий код «склонен к непоследовательной семантике и пробелам в безопасности, что приводит к серьезным уязвимостям». Как пояснил Су, Cooper способен находить эти уязвимости, поскольку используемая им техника cooperative mutation «одновременно модифицирует код скрипта и связанные объекты документа с целью поиска различных путей для связующего кода». Такой подход отличается от других защитных техник для поиска уязвимостей в скриптах. Как сообщается на GitHub-странице инструмента, он содержит три компонента: Кластеризация объекта – вначале Cooper осуществляет синтаксический анализ заданного образца документа с целью извлечения собственных объектов. Для уменьшения пространства поиска объекта Cooper разделяет объекты на разные классы в зависимости от их атрибутов; Вывод о связях – затем Cooper производит большое количество документов, комбинируя разные классы объектов и групп API, и записывает результаты выполнения встроенных скриптов. В зависимости от степени успеха выполнения скрипта и распределения классов объектов инструмент делает вывод о связях между группами API и классами объектов; Мутация, управляемая отношениями – и наконец, Cooper использует выводы о связях для руководства по выбору объекта, генерирования скрипта и мутации объекта. Таким образом, Cooper в некотором роде является сложным инструментом фаззинга. Вывод о связях управляет процессом поиска условий, при которых скрипты, приложения и уровень привязки приводят к нежелательному и/или опасному поведению. |
Проверить безопасность сайта