Управляємо настройками Java SE за допомогою групових політик

Сьогодні ми розглянемо особливості централізованої налаштування параметрів безпеки середовища Java SE на комп'ютерах компанії за допомогою групових політик Windows. Дані політики повинні не допустити завантаження і виконання на комп'ютерах компанії недовірених Java-аплетів і об'єктів ActiveX.

Основні вимоги до групової політики управліннями параметрами безпеки Java

  • Політика повинна застосовуватися тільки до машин, на яких встановлена ​​Java 6 або Java 7
  • У користувачів повинна залишитися можливість перегляду поточних налаштувань в панелі управління Java
  • Поточні конфігураційні файли Java повинні зберігатися на контролерів домену та реплицироваться між ними
  • Необхідно створити як мінімум 2 політики: одна повинна повністю блокувати Java в браузерах, друга - забороняє запуск непідписаних аплетів.
Порада. Налаштування рівня безпеки для непідписаних Java-аплетів, додатків Java Web Start і вбудованих додатків JavaFX (які можуть працювати в браузері) з'явилася в Java SE Development Kit 7 Update 10 (JDK 7u10). Завдяки цьому оновленню користувач через Java Control Panel може заборонити запуск будь-якої програми Java в браузері.зміст:

зміст:

  • WMI фільтр для відбору комп'ютерів з встановленою Java
  • Створюємо конфігураційні файли Java
  • Створення групових політик управління параметрами 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 .

Порада. Конфігураційний файл з персональними налаштуваннями Java даного користувача зберігається в його профілі по шляху% USERPROFILE% \ AppData \ LocalLow \ Sun \ Java \ Deployment \ в Windows 7 або% AppData% \ Sun \ Java \ Deployment \ в XP і за замовчуванням пріоритет у цього файлу вище, ніж у системного deployment.properties.

файл 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 = VERY_HIGH
deployment.security.level.locked
deployment.security.askgrantdialog.notinca = false
deployment.security.askgrantdialog.notinca.locked
deployment.security.notinca.warning = true
deployment.security.notinca.warning.lockedПорада. Детальніше зі структурою конфігураційного файлу deployment.properties і його параметрами можна познайомиться на Java.net в документі Deployment Configuration File and Properties або в документації на сайті Oracle (настройка параметром безпеки Java за допомогою конфігураційного файлу описана тут).

Створимо в каталозі \\ winitpro.ru \ sysvol \ winitpro.ru \ scripts \ Java \ Java7Restrict Файли з зазначеним вмістом.

Створимо конфігураційні файли і для політики, яка блокує Java у всіх браузерах. Для цього в файлі deployment.properties потрібно додати рядки

deployment.webjava.enabled = false
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 can not 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 аплет в будь-якому браузері з'явиться повідомлення:

Application Blocked by Security Settings
Your security settings have blocked a self-signed application from running.

Наявність безлічі серйозних проблем з безпекою Java-аплетів, велика кількість 0day-вразливостей і експлойтів для Java - реалії сьогоднішнього дня. Тому адміністраторам мережі та службам ІБ необхідно звертати пильну увагу на питання забезпечення безпеки середовища Java. В рамках великої мережі найпростіше це реалізувати за допомогою групових політик Windows.

Порада. Щоб приховати від користувачів інформацію про необхідність оновити Java, можна скористатися цією порадою. Але потрібно не забувати про необхідність постійного централізованого оновлення Java на всіх комп'ютерах організації. Це дозволить знизити ризики експлуатації вразливостей в застарілих версіях java.