На конференции Build 2018 разработчики Microsoft сделали интересное объявление: скоро в Excel появится поддержка кастомной функциональности JavaScript. Таким образом, пользователи смогут создавать собственные формулы, которые буду сохраняться в общей базе формул. Затем такие формулы можно будет вставлять и использовать в таблицах Excel, причем работать с ними будет JavaScript интерпретатор, а не движок самого Excel.
Пока поддержка такой кастомной функциональности JavaScript не реализована в стабильных релизах и доступна лишь пользователям Developer Preview для Windows и Mac, а также в Excel Online. Чтобы опробовать новинку, пользователь должен быть участником программы Office Insiders.
Эксперты по информационной безопасности восприняли данный анонс по-своему. Сначала интернет заполонили шутки на тему «что может пойти не так?», а спустя всего пару дней после объявления, специалисты и вовсе продемонстрировали, что при помощи JavaScript функциональности в Excel можно будет, к примеру, внедрить майнера. В частности, работающий proof-of-concept уже создал Чейз Дарраман (Chase Dardaman).
GOT IT! #coinhive #Excel #Microsoft #Malware pic.twitter.com/QvHkgnGFkQ
— Chase Dardaman (@CharlesDardaman) May 8, 2018
Дардаман объяснил журналистам издания Bleeping Computer, что в настоящее время кастомная JavaScript функциональность работает следующим образом. При создании новой формулы создаются три файла, хранящиеся на сервере: файл JS, содержащий кастомное уравнение, файл HTML, отвечающий за загрузку ваших JavaScript файлов, а также файл конфигурации JSON. Также понадобится создать локальный файл XML, который будет играть роль манифеста.
Во время задействования такого уравнения, Excel, в сущности, создает скрытый браузер, который подгружает необходимые файлы, а затем выполняет кастомные JavaScript функции. Исследователь пишет, что ему не составило труда создать собственную «формулу», которая загружает в скрытый браузер приложения майнер CoinHive. При этом специалист подчеркнул, что ранее никогда не работал с Excel и его макросами в таком ключе, но справился с задачей всего за час.
На иллюстрации ниже видно, что в результате скрытый майнер, работающий в Microsoft Excel Web Content, во время тестов нагрузил CPU тестовой машины на 206%.
Подробный отчет о проделанной работе и создании PoC-эксплоита специалист опубликовал в своем блоге. Там он пишет, что пока данная функциональность находится в стадии тестирования и о массовых атаках речи идти не может, однако со временем кастомная JavaScript функциональность выйдет из беты, и тогда злоумышленники определенно не оставят это нововведение без внимания.