Агрессивное внедрение ИИ в продукты Microsoft, геополитическая напряженность, череда ИБ-инцидентов у гиганта из Редмонда подталкивают многие организации по всему миру к переходу на open source альтернативы Windows и Office. Для замены последнего очень популярны пакеты OpenOffice и его ответвление LibreOffice. Они доступны на всех основных платформах, включая Linux, обладают сопоставимой с MS Office функциональностью и поставляются с комфортными для крупных компаний лицензиями на использование.
Из-за сходства с MS Office риски, возникающие при использовании этих пакетов, тоже схожи: уязвимости ПО или небезопасные настройки могут приводить к выполнению вредоносного кода на компьютере или незаметно направлять пользователя по фишинговым ссылкам. Угроза не гипотетическая — вредоносные документы в файлах .odt и в других документах «открытых» форматов встречаются на практике. Чтобы снизить эти риски, немецкое Федеральное управление по информационной безопасности (BSI) выпустило публичные рекомендации по безопасным настройкам LibreOffice. Мы решили подсветить самые важные моменты при установке LibreOffice в организациях.
Принципы настройки
Советы ниже пригодятся для безопасной настройки LibreOffice на Linux, MacOS и Windows при их использовании в управляемой корпоративной среде (через групповые политики и другие инструменты централизованного контроля). Советы касаются компонентов Writer, Calc, Impress, Base, Math и Draw для пакета линейки 7.2.х. Настройки рекомендованы с учетом таких соображений:
- пользователь должен принимать минимальное число решений, влияющих на безопасность;
- функциональность приложения не должна существенно снижаться;
- при этом ненужные функции должны быть деактивированы для уменьшения поверхности атаки;
- по возможности нужно отключать передачу данных из продукта производителю;
- нужно избегать внешних облачных сервисов, если они не являются необходимыми в бизнес-процессах организации.
Хранение конфигурации
Настройки LibreOffice могут изменяться администратором или самим пользователям. Администраторские начальные настройки хранятся в папке LibreOffice. На всех платформах применяются настройки в виде XML-файлов (settings.xml), но также они могут дополнительно храниться в платформенном формате (реестр в Windows, dconf в Linux). Для администрирования средних и больших организаций предпочтительнее XML.
Если какую-то настройку нужно запретить изменять пользователю, в администраторских настройках ее помечают как окончательную (finalized).
Для примера приведем фрагмент настроек, отключающих сохранение данных автора документа (настройка RemovePersonaLinfoOnSaving в группе org.openoffice.Office.Common/Security/Scripting) и запрещающих изменять эту настройку:
<item oor:path="/org.openoffice.Office.Common/Security/Scripting">
<prop about:name="RemovePersonalInfoOnSaving" about:finalized="false" about:op="fuse" oor:type="xs:boolean">
<value>true</value>
</prop>
</item>
Папки для административных настроек (в версии 7.2) приведены ниже:
- Linux: /opt/libreoffice7.2/share/registry/res
- MacOS: /Applications/LibreOffice.app/Contents/Resources/registry/res
- Windows: C:\Program Files\LibreOffice\share\registry\res
Настройки, которые надо изменить
Многие настройки LibreOffice сделаны безопасными по умолчанию. Но в этом подразделе мы сосредоточимся на тех настройках, которые нужно ужесточить.
Исполнение макросов. По умолчанию выполняются любые подписанные макросы, так что требуется ужесточение настройки до максимального уровня, чтобы выполнялись только макросы из доверенных папок. В группе org.openoffice.Office.Common/Security/Scripting для настройки MacroSecurityLevel следует установить значение 3:
<prop over:name="MacroSecurityLevel" over:finalized="true" over:op="fuse" over:type="xs:int">
<value>3</value>
</prop>
Чтобы вообще отключить макросы, можно установить значение true с пометкой finalized для опции DisableMacrosExecution из той же группы.
Доверенные папки. По умолчанию LibreOffice сам пополняет список доверенных папок, анализируя активность пользователя. В результате туда часто попадают папки вроде Downloads. Чтобы четко описать места хранения доверенных документов, нужно указать их в опции SecureURL. Список может быть пустым.
<item oor:path="/org.openoffice.Office.Common/Security/Scripting ear:type="oor:string-list">
<plug about:name="SecureURL" about:finalized="true" about:op="fuse"/>
</item>
Загрузка внешних изображений. В документ могут быть внедрены изображения из внешних источников. Это создает значительные риски фишинга и эксплуатации уязвимостей, поэтому нужно эту опцию отключить: установить в группе /org.openoffice.Office.Common/Security/Scripting для настройки BlockUntrustedRefererLinks значение true с режимом finalized.
Обновление данных по ссылкам. Контент по ссылкам, подгружаемый в Calc, тоже может быть вредоносным, поэтому его обновление должно быть заблокировано установкой 1+finalized для опции Link из группы /org.openoffice.Office.Calc/Content/Update.
Аналогичная настройка в Writer почему-то имеет другие числовые значения и в ней блокировка достигается установкой 0+finalized для опции Link в группе /org.openoffice.Office.Writer/Content/Update.
Экзотические файлы. Чтобы отключить загрузку документов Abiword, Hangul Office, StarOffice XML и других нерелевантных форматов, нужно установить значение 0 для опции LoadExoticFileFormats из группы /org.openoffice.Office.Common/Security
Дополнительно можно заблокировать любой из более 100 поддерживаемых форматов файлов, установив для опции Enabled значение false+finalized для любого формата из группы
/org.openoffice.TypeDetection.Filter/Filters/org.openoffice.TypeDetection.Filter:Filter[‘NAME’]
При этом нужно заменить NAME на имя блокируемого формата.
Системная аутентификация. Приложения LibreOffice могут автоматически обращаться к внешним URL с учетными данными текущего пользователя, потенциально приводя к их утечке. Чтобы отключить это поведение, нужно задать пустой список в опции AuthenticateUsingSystemCredentials:
<item oor:path="/org.openoffice.Office.Common/Passwords">
<prop oor:name="AuthenticateUsingSystemCredentials" oor:finalized="true" over:op="fuse" ear:type="oor:string-list"/>
</item>
Установка расширений. Рекомендовано отключить их установку пользователем и добавлять расширения только централизованно, через полномочия администратора: в группе /org.openoffice.Office.ExtensionManager/ExtensionSecurity установить для DisableExtensionInstallation значение true+finalized.
Там же нужно централизовать и удаление расширений, отключив возможность сделать это самостоятельно: настроить DisableExtensionRemoval со значением true+finalized.
Обновления. Приложения LibreOffice самостоятельно проверяют наличие обновлений и предлагают пользователю их установить. Если в организации управление обновлениями и патчами централизовано, эту опцию можно отключить: в группе /org.openoffice.Office.Jobs/Jobs/org.openoffice.Office.Jobs:Job[‘UpdateCheck’]/Arguments установить для свойства AutoCheckEnabled значение false+finalized.
Установка шрифтов, языковых пакетов, СУБД (только Linux). Хотя эти дополнения кажутся невинными, для безопасности автоматическую установку стоит отключить: в группе /org.openoffice.Office.Common/PackageKit установить значение false+finalized для опций EnableFontInstallation, EnableLangpackInstallation и EnableBaseInstallation.
Отключение телеметрии. Установите значение false+finalized для опций CollectUsageInformation и CrashReport из группы /org.openoffice.Office.Common/Misc.
Сертификаты для подписи документов (только Linux). По умолчанию можно выбрать любые папки для базы NSS, хранящей сертификаты, что небезопасно и может приводить к утечкам сертификатов из неконтролируемых местоположений. Администратор должен указать конкретное хранилище, предусмотренное организацией, c помощью опции CertDir или оставить его пустым:
<item oor:path="/org.openoffice.Office.Common/Security/Scripting">
<prop over:name="CertDir" over:op="fuse" over:type="xs:string"/>
</item>
Удаление личных данных (данных автора документа). Если распространение документа нельзя контролировать, данные авторов в нем часто требуется скрыть. Чтобы Libreoffice делал это при сохранении документа, добавляем настройку RemovePersonalInfoOnSaving (true+finalized) в группу /org.openoffice.Office.Common/Security/Scripting.
Этот режим затрудняет совместную работу над документами, поскольку сложнее найти автора изменений. Поэтому он подходит не для всех ролей в организации.
Одновременно с ним BSI рекомендует отключить сохранение полных PGP-ключей в подписанных документах, поскольку они тоже содержат персональные данные автора: установить для MinimalKeyExport значение true+finalized в группе /org.openoffice.Office.Common/Security/OpenPGP.
Настройки, которые надо зафиксировать
Эти настройки изначально выставлены безопасными, но надо запретить их изменять, добавив к ним атрибут finalized.
Имя группы | Имя настройки | Значение |
/org.openoffice.Inet/Settings | ooInetProxyType | 1 |
/org.openoffice.Office.Common/Security/Scripting | HyperlinksWithCtrlClick | true |
/org.openoffice.Office.Security/Hyperlinks | Open | 1 |
/org.openoffice.Office.Common/Security/Scripting | CheckDocumentEvents | true |
/org.openoffice.Office.Common/Passwords | UseStorage | False |
/org.openoffice.Office.Common/Passwords | TrySystemCredentialsFirst | false |
/org.openoffice.Office.Jobs/Jobs/org.openoffice.Office.Jobs:Job[‘UpdateCheck’]/Arguments | ExtendedUserAgent | false |
Другие слои защиты
На любой платформе пользователи могут столкнуться с целевыми кибератаками и вредоносными документами, поэтому безопасные настройки ОС и офисного пакета должны быть дополнены полноценным набором мер эшелонированной защиты:
- безопасная многофакторная аутентификация;
- централизованное управление правами доступа;
- обязательное использование EDR на всех рабочих компьютерах и серверах;
- централизованный мониторинг событий безопасности в сети при помощи SIEM, а лучше — решений класса XDR.