Сегодня мы рассмотрим особенности централизованной настройки параметров безопасности среды Java SE на компьютерах компании с помощью групповых политик Windows. Данные политики должны не допустить загрузку и выполнение на компьютерах компании недоверенных Java-аплетов и объектов ActiveX.
Основные требования к групповой политике управлениями параметрами безопасности Java
- Политика должна применяться только к машинам, на которых установлена Java 6 или Java 7
- У пользователей должна остаться возможность просмотра текущих настроек в панели управления Java
- Текущие конфигурационные файлы Java должны храниться на контролерах домена и реплицироваться между ними
- Необходимо создать как минимум 2 политики: одна должна полностью блокировать Java в браузерах, вторая – запрещает запуск неподписанных апплетов.
WMI фильтр для отбора компьютеров с установленной Java
Чтобы групповая политика управления Java применялись только к компьютерам с установленной средой Java, создадим специальный WMI фильтр (подробнее про WMI фильтрацию в групповых политиках).
Для этого откроем консоль управления групповыми политик (Group Policy Management Console) и в разделе WMI Filters создадим новый WMI фильтр с именем Java SE 7 Computers. В качестве описания укажите что-то вроде «Для политик, требующих фильтрации компьютеров с установленным Java SE 7», а в качестве запроса воспользуйтесь таким WMI WQL выражением:
Select * From win32_Directory where (name="c:\\Program Files\\Java\\jre7" or name="c:\\Program Files (x86)\\Java\\jre7")

Этот фильтр через WMI опрашивает систему и если в каталогах Program Files (x86 и x64) есть папка Java\jre7, то политика для таких компьютеров будет применена.
По аналогии нужно создать WMI фильтр для Java версии 6 (ищем каталог jre6)
Создаем конфигурационные файлы Java
Наша задача – создать две политики безопасности Java. Одна – полностью запрещает выполнение Java в браузерах, вторая – настраивает ряд параметров безопасности Java .
Для хранения конфигурационных файлов Java в каталоге sysvol на контроллере домена (например, \\winitpro.ru\sysvol\winitpro.ru\scripts\Java) создадим две папки:
- Java7Restrict – содержит конфигурационные файлы, настраивающие особые параметры безопасности Java
- Java7Block – каталог для конфиг файлов блокировки Java в браузерах
Для настройки параметров Jave SE нам понадобится файл deployment.config. В этом конфигурационном файле с помощью опции deployment.system.config указывается путь к файлу deployment.properties, определяющему параметры Java для всех пользователей системы (этот файл должен находится в каталоге %windir%\Sun\Java\Deployment\deployment.config и по умолчанию при установке не создается). Путь может быть указан в виде URL (HTTP или HTTPS) или же UNC пути к файлу deployment.properties. Чтобы у пользователей не загружались индивидуальные настройки Java необходимо указать, deployment.system.config.mandatory=true .
Файл deployment.config для политики Java7Restrict может быть таким:
deployment.system.config=file\://winitpro.ru/SYSVOL/winitpro.ru/scripts/Java/Java7Restrict/deployment.properties deployment.system.config.mandatory=true
Файл deployment.properties может выглядеть так (предполагаем, что уровень безопасности Java должен быть установлен на Very High, остальные настройки безопасности Java блокируем)
deployment.security.level.locked
deployment.security.askgrantdialog.notinca=false
deployment.security.askgrantdialog.notinca.locked
deployment.security.notinca.warning=true
deployment.security.notinca.warning.locked
Создадим в каталоге \\winitpro.ru\sysvol\winitpro.ru\scripts\Java\Java7Restrict Файлы с указанным содержимым.
Создадим конфигурационные файлы и для политики, блокирующей Java во всех браузерах. Для этого в файле deployment.properties нужно добавить строки
deployment.webjava.enabled.locked
Создание групповых политик управления параметрами Java
Перейдем непосредственно к созданию групповых политик, распространяющих настройки безопасности Java на компьютеры организации.
Создадим новый объект GPO (политику) с именем Java7Restrict.
С помощью GPP (Group Policy Preferences) нам необходимо создать на компьютерах пользователей каталог, в котором будут храниться конфигурационные файлы с настройками Java. Для этого в разделе GPO Computer Configuration –> Preferences –> Windows Settings –> Folders создадим новый элемент с параметрами:
- Action: Create
- Path: %WinDir%\Sun\Java\Deployment
Далее нужно скопировать на компьютер пользователя конфигурационный файл deployment.config. Для этого в разделе GPO Computer Configuration –> Preferences –> Windows Settings –> Files создадим новую запись с параметрами:
- Action: Replace
- Source file: \\winitpro.ru\sysvol\winitpro.ru\scripts\Java\Java7Restrict\deployment.config
- Destination file: %windir%\Sun\Java\Deployment\deployment.config.
Осталось в свойствах политики в качестве WMI фильтра выбрать созданный нами ранее фильтр Java SE 7 Computers и прилинковать (назначить) политику на нужный контейнер (OU).
После применения политик на компьютерах пользователей откройте панель управления Java (Java Control Panel) и убедитесь, что уровень безопасности Java установлена в Very High, а все остальные опции пользователем для редактирования недоступны.
Если пользователь попытается загрузить самоподписанный апплет, или апплет, подписанный сертификатом, который отсутствует в списке доверенных, появится окно с предупреждением.
The publisher cannot be verified by a trusted source. Code will be treated as unsigned.CertificateExeption: Your security configuration will not allow granting permission to self signed certificates.
Создайте аналогично вторую политику Java7Deny, которая полностью блокирует Java в браузерах. После применения политики при попытке запустить Java апплет в любом браузере появится сообщение:
Your security settings have blocked a self-signed application from running.
Наличие множества серьёзных проблем с безопасностью Java-апплетов, большое количество 0day-уязвимостей и эксплойтов для Java – реалии сегодняшнего дня. Поэтому администраторам сети и службам ИБ необходимо обращать пристальное внимание на вопросы обеспечения безопасности среды Java. В рамках большой сети проще всего это реализовать с помощью групповых политик Windows.
Спасибо за информацию!