Простой ответ - да, это возможно.
В мире существует два типа вредоносных стандартных офисных документов:
- Вредоносная деятельность на основе макросов
В вашем случае зараженные файлы на основе макросов не так опасны, потому что они представляют собой дополнительные объекты, внедренные в документ и запускаемые пользовательским взаимодействием или некоторыми кодами в вашем приложении, которые автоматически выполняют макрос, поэтому, если у вас нет кода для выполняйте макросы внутри офисных документов, не беспокойтесь об офисных документах, зараженных макросами!
- Использование вредоносной активности
С другой стороны, есть зараженные документы, которые содержат эксплойты, нацеленные на некоторые ошибки или логические функции и т. Д. Эти файлы настолько опасны, поскольку они используют стандартную функцию документов (например, анализатор). Так что если ваш базовый API или движок, который анализирует файлы этого типа, реализует и использует эту функцию, которая использовалась, ваша программа может быть затронута!
Наконец, если вы хотите защитить сервер от заражения этим сценарием, вы должны внедрить или использовать существующие продукты песочницы, которые не позволяют исполняемому файлу что-либо изменить в системе, а также предотвращают сетевую и IO-активность исполняемого файла и для большей безопасности это лучше выполнить процесс разбора на отдельной машине или виртуальной машине, а не непосредственно на главном сервере, и просто вернуть результат на сервер. но в целом решения для песочницы достаточно.
Например, вот список некоторых эксплойтов драйвера Jet, которые были найдены Googling «Microsoft Jet driver Exploit»:
Может быть, этого не произойдет вообще из-за проверок кода, фаззинга, тестирования на проникновение и множества ошибок популярных программ и инструментов экспертами по безопасности перед выпусками, и именно поэтому вы видите гораздо меньше эксплойтов для базового популярного программного обеспечения и инструментов как Jet драйвер, но даже в области безопасности нет ничего абсолютного, и никто не может утверждать, что его продукт безопасен.
В конце концов, это зависит от платформы, которую вы разрабатываете, и от того, насколько важна безопасность для вас и вашего продукта. мой ответ академический и может не произойти. но даже это абсолютно возможно. поэтому вы должны выбрать лучшее решение в зависимости от ваших потребностей и риска;)