Карібов Руслан Азмірович

Державний ВУЗ "Національний гірничий університет", Україна

Дослідження захисту Java технології у веб-браузерах

ВСТУП

Аплети використовуються для надання динамічного характеру Web-документа. Класичним прикладом використання java-аплетів є надання статичним картинкам певних ефектів (падаючого снігу, руху хвиль по поверхні води і т.п.), а також різні способи анімації динамічно задаються текстових написів.
Інші мови компілюються в об'єктний код для конкретної операційної системи і процесора. Тому, наприклад, скомпилированное для Windows програма не може працювати на Macintosh. На відміну від них, Java не залежить від платформи, оскільки він створює проміжний код (bytecode - байт-код, який не залежить від конкретного процесора. Віртуальна машина Java (JVM - Java Virtual Machine) потім конвертує байт-код в машинний код, який розуміє процесор на даній конкретній системі.

Захист Java-технології

Найбільш уразливими з точки зору безпеки компонентом Java-технології є аплети, оскільки їх може використовувати будь-який клієнт, який зовсім не зобов'язаний знати правила "техніки безпеки при роботі з цими невеликими програмами. Саме тому аплетів для передбачені самі жорсткі методи захисту. Хоча різні браузери та програми перегляду аплетів можуть по-різному захищати інформацію користувача від нападу, але в загальному випадку аплету має бути заборонено наступне:

-читати, змінювати, видаляти і перейменовувати локальні файли;

-створювати локальні директорії і читати їх вміст;

-перевіряти існування і параметри певного файлу;

-здійснювати доступ по мережі до віддаленого комп ’ ютера;

-отримувати список мережевих сеансів зв'язку, які встановлює локальний комп'ютер з іншими комп'ютерами;

-відкривати нові вікна без повідомлення користувача (це необхідно для запобігання "емуляції" аплет інших програм);

-отримувати відомості про користувача або його домашньої директорії;

-створювати потоки, які не перераховані в ThreadGroup (клас, керуючий виконанням потоків різних частин програми) цього аплету, і керувати ними;

-отримувати доступ до ThreadGroup іншого аплету;

-визначати свої об'єкти Class-Loader (Завантажувач Java-об'єктів) і SecurityManager (Диспетчер безпеки для аплетів);

-переобозначать системні об'єкти ContentHandlerFactory, SocketImplFactory і URLStreamHandler-Factory (ці класи управляють мережевий роботою Java);

-отримувати доступ до будь-якої упаковці, що відрізняється від стандартних;

-визначати класи, які входять до локальну упаковку.

Ці правила забезпечують наступні компоненти Java-технології;

-Віртуальний Java-процесор, який постійно контролює свій стан;

-Диспетчер безпеки (SecurityManager), контролює і блокуючий небезпечні дії аплетів.

У класі SecurityManager перелічені методи, які використовуються системою для контролю дій аплету в залежності від характеристик навколишнього середовища. Програма, яка застосовується для перегляду аплету, створює підклас SecurityManager, який і реалізує необхідну політику безпеки. Посилання на цей SecurityManager записується в об'єкті System.

Ще один механізм безпеки вбудований в завантажувач аплетів і програм (ClassLoader). Браузер перевизначають цей клас і реалізує свої власні правила роботи з мережевими протоколами. Одна з основних функцій завантажувача об'єктів - розділення простору імен різних аплетів і операційної системи, що дозволяє уникнути їх взаємного впливу.

Інша, не менш важлива функція завантажувача – верифікація байт-кодів, тобто перевірка правильності отриманого елемента Java-програми і його цілісності. У процесі верифікації з'ясовується наступне:

-чи відповідає версія отриманого блоку версіями інших елементів системи;

-збережений чи формат байт виконуваного-коду;

-чи відповідає програма специфікації конкретного віртуального Java-процесора;

-чи може виникнути переповнення або вичерпання стеку.

Метою такої перевірки є виявлення неправильного використання непрямої адресації, яке може призвести до порушення в роботі віртуального процесора, і перевірка цілісності аплету. Цей механізм забезпечує захист і надійну роботу розподіленої програми, що дозволяє не завантажувати в браузер всю Java-програму цілком, а довантажувати її невеликими блоками по мірі необхідності.
Сам віртуальний Java-процесор також має вбудовані механізми захисту від нападу. Найбільш уразливими з точки зору безпеки компонентом Java-технології є аплети, оскільки їх може використовувати будь-який клієнт, який зовсім не зобов'язаний знати правила "техніки безпеки при роботі з цими невеликими програмами. Саме тому аплетів для передбачені самі жорсткі методи захисту.

ВИСНОВКИ

Підводячи підсумок, можна констатувати, що в міру зростання масштабів використання мобільних кодів все більше уваги приділятиметься атакам на основі зловмисних java-аплетів.

 

ПЕРЕЛІК ЛІТЕРАТУРИ:

1. Глушаков С. В., Бабенко М. И., Тесленко Н. С. Секреты хакера. Атака и защита. Учебный курс. – АСТ Москва, 2008. – 544 с.: ил.

2. Гаевский А. Ю., Романовский В. А. Создание Web-страниц и Web-сайтов. HTML и JavaScript    СПб., БХВ-Петербург – 2008. – 427 с.: ил.