- •1. Безпека www-серверів 6
- •2. Безпека ос, що лежить в основі web-сервера 15
- •3. Безпечна інсталяція і конфігурація web-сервера 28
- •4. Безпека програмного середовища 42
- •5. Використання криптографії в захисті www-серверів 45
- •6. Захист web-портала від інформаційних атак 68
- •1. Безпека www-серверів
- •1.1. Короткий опис проблеми
- •1.2. Принципи безпеки веб-серверів
- •1. Слід реалізувати відповідну практику управління безпекою і контроль за функціонуванням системи.
- •2. Слід зробити кроки для гарантування того, що на web-сайті публікується тільки коректний вміст.
- •3. Слід гарантувати захист web-вмісту від неавторизованого доступу або модифікації.
- •4. Слід використовувати активний вміст тільки після ретельного зважування отримуваних при цьому переваг порівняно із збільшенням ризиків.
- •5. Слід використовувати аутентифікацію, засновану на криптографічних технологіях, для забезпечення відповідного захисту чутливих даних.
- •6. Слід гарантувати постійне функціонування системи забезпечення безпеки.
- •1.3. Причини уразливості web-сервера
- •1.4. Планування розгортання web-сервера
- •2. Безпека ос, що лежить в основі web-сервера
- •2.1. Безпечна інсталяція і конфігурація ос
- •2.2. Видалення або заборона непотрібних сервісів і програм
- •2.3. Конфігурація аутентифікації користувача в ос
- •2.4. Управління ресурсами на рівні ос
- •2.6. Використання Appliances для web-сервера
- •2.7. Спеціально посилені (pre-hardened) ос і web-сервери
- •2.7.1. Тестування безпеки операційної системи
- •2.7.2. Список дій для забезпечення безпеки ос, на якій виконується web-сервер
- •2.7.3. Застосування patch-ів і upgrade-ів ос
- •2.7.4. Видалення або заборона непотрібних сервісів і програм, конфігурація аутентифікації користувачів в ос.
- •2.7.5. Тестування безпеки ос
- •3. Безпечна інсталяція і конфігурація web-сервера
- •3.1. Безпечна інсталяція web-сервера
- •3.2. Конфігурація управління доступом
- •3.3. Розмежування доступу для по web-сервера
- •3.4. Управління доступом до директорії вмісту web-сервера
- •Управління впливом web Bots
- •Використання програм перевірки цілісності файлів
- •Список дій для безпечної інсталяції і конфігурації web-сервера
- •3.5. Конфігурація безпечної директорії web-вмісту
- •3.6. Використання програм перевірки цілісності
- •4. Безпека програмного середовища
- •5. Використання криптографії в захисті www-серверів
- •5.1. Асиметрична криптографія
- •5.2. Симетрична криптографія
- •5.3. Дайджести повідомлень
- •5.4. Цифрові підписи
- •5.5. Сертифікати
- •5.6. Забезпечення цілісності даних і призначеної для користувача аутентифікації за допомогою підписів xml
- •5.7. Формування цифрового підпису xml: основні чотири кроки
- •5.8. Перевірка цифрового підпису xml
- •5.9. Шифрування xml
- •5.9.1. Шифрування цілого xml-файла
- •5.9.2. Шифрування окремого елементу
- •5.9.3. Шифрування змісту елементу
- •5.9.4. Обробка шифрування xml
- •5.10. Введення в безпеку Web-сервісів
- •6. Захист web-портала від інформаційних атак
- •6.1. Підсистема розмежування доступу
- •6.2. Підсистема антивірусного захисту
- •6.3. Підсистема контролю цілісності
- •6.4. Підсистема виявлення вторгнень
- •6.5. Підсистема аналізу захищеності
- •6.6. Підсистема криптографічного захисту
- •6.7. Підсистема управління засобами захисту Web-портала
- •Висновок
1. Безпека www-серверів
1.1. Короткий опис проблеми
Публічні веб-сервера продовжують залишатися об'єктами атак хакерів, які хочуть за допомогою цих атак нанести втрату репутації організації або добитися яких-небудь політичних цілей. Хороші заходи захисту можуть захистити сайт від тих неприємностей, які матиме організація у разі успішної атаки на нього. Уразливими операційними системами вважаються всі версії Unix або Windows, які використовується як веб-сервер.
Збиток від атаки. Можливий різний збиток - від простого блокування роботи сервера до заміни його вмісту порнографічним матеріалом, політичними гаслами або видалення груп файлів, а також розміщення на сервері програм-троянських коней.
Як вирішити проблему. Дотримувати всі правила безпеки, описані нижче, і оперативно встановлювати всі виправлення програм, використовуваних на веб-сервері, про які повідомила група комп'ютерної безпеки або виробник програм, .
Оцінка ризику. Публічні веб-сервера зламуються майже щодня; загроза того, що буде здійснена атака на веб-сервер - реальна. Нижче приведені основні правила забезпечення безпеки WWW-сервера:
Розміщення веб-сервера в демілітаризованій зоні (DMZ). Необхідно конфігурувати міжмережевий екран (файpвол) так, щоб він блокував вхідні з'єднання з веб-сервером зі всіма портами, окрім http (порт 80) або https (порт 443).
Видалити всі непотрібні сервіси з веб-сервера, залишивши FTP (але тільки якщо він потрібний насправді) і засіб безпечного підключення в режимі віддаленого терміналу, такий як SSH. Будь-який непотрібний, але залишений сервіс може стати помічником хакера при організації ним атаки.
Відключати всі засоби віддаленого адміністрування, якщо вони не використовують шифрування всіх даних сеансів або одноразових паролів.
Обмежити число людей, що мають повноваження адміністратора або суперкористувача (root).
Протоколювати всі дії користувачів і зберігати системні журнали або в зашифрованій формі на веб-сервері або на іншій машині в інтpанеті.
Проводити регулярні перевірки системних журналів на предмет виявлення підозрілої активності. Слід встановити декілька програм-пасток для виявлення фактів атак сервера (наприклад, пастку для виявлення PHF-атаки). Можна написати програми, які запускаються кожну годину або біля того, які перевіряють цілісність файлу паролів і інших критичних файлів. Якщо така програма виявить зміни в контрольованих файлах, вона повинна посилати лист системному адміністраторові.
Видалити всі непотрібні файли, такі як phf, з директорій, звідки можуть запускатися скрипти (наприклад, з /cgi-bin).
Видалити всі стандартні директорії з документами, які поставляються з веб-серверами, такими як IIS і ExAir.
Встановлювати всі необхідні виправлення програм на веб-сервері, що стосуються безпеки, як тільки про них стає відомо.
Якщо необхідно використовувати графічний інтерфейс на консолі адміністратора веб-сервера, слід видалити команди, які автоматично запускають його за допомогою інформації в .RC-піддиpектоpіях і замість цього створити команду для його ручного запуску. Потім при необхідності можна використовувати графічний інтерфейс, але закривати його негайно ж після того, як будуть проведені необхідні дії. Не варто залишати графічний інтерфейс таким, що працює тривалий період часу.
Якщо машина повинна адмініструватися віддалено, потрібно вимагати, щоб використовувалася програма, що встановлює захищене з'єднання з веб-сервером (наприклад, SSH). Не потрібно дозволяти встановлювати з веб-сервером telnet-з’єдняння або не анонімні ftp-з’єдняння (тобто ті, які вимагають введення імені і пароля) з недовіpених машин. Непогано буде також надати можливість встановлення таких з'єднань лише невеликому числу захищених машин, які знаходяться в місцевому інтpанеті.
Запускати веб-сервер в chroot-pежимі або режимі ізольованої директорії (у цьому режимі ця директорія здається кореневою директорією файлової системи і доступ до директорій файлової системи поза нею неможливий), щоб не можна було дістати доступ до системних файлів.
Використовувати анонімний FTP-сервер (якщо він звичайно потрібний) в режимі ізольованої директорії для директорії, відмінної від директорії, що є коренем документів веб-сервера.
Проводити всі оновлення документів на публічному сервері з інтpанета. Зберігати оригінали веб-сторінок на веб-сервері в інтpанеті і спочатку оновлювати їх на цьому внутрішньому сервері; потім копіювати оновлені веб-сторінки на публічний сервер за допомогою SSL-з’єдняння. Якщо робити це кожну годину, то можна буде уникнути того, що зіпсований вміст сервера буде доступний в Інтернет довгий час.
Періодично сканувати веб-сервер такими засобами, як ISS або nmap, для перевірки відсутності на нім відомих вразливих місць.
Організувати спостереження за з'єднаннями з сервером за допомогою програми виявлення атак (intrusion detection). Конфігурувати цю програму так, щоб вона подавала сигнали тривоги при виявленні спроб застосувати відомі атаки або підозрілих діях з веб-сервером, а також протоколювала такі з'єднання для детального аналізу. Ця інформація зможе згодом допомогти усунути вразливі місця і підсилити систему захисту.
