- •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-портала
- •Висновок
2.3. Конфігурація аутентифікації користувача в ос
Авторизованих користувачів, які можуть конфігурувати систему і запускати різні сервіси, зазвичай дуже мало. Проте користувачів, які можуть мати доступ до публічного web-серверу, може бути як необмежена кількість, так і деяка обмежена підмножина Інтернет-співтовариства. Для забезпечення політики безпеки web-адміністратор повинен конфігурувати систему для аутентифікації користувачів, яким дозволений вхід, вимагаючи надання доказу своїй ідентифікації. Навіть якщо web-сервер вирішує не аутентифікований доступ до більшості сервісів, адміністрування і інші типи спеціалізованого доступу повинні бути обмежені певними персонами або ролями.
Конфігурація комп'ютера для аутентифікації зазвичай включає конфігурацію ОС, firmware і програм на сервері, таких як ПО, яке реалізує мережевий сервіс. У спеціальних випадках для сайтів з високим ризиком або що зберігають важливі дані можна також застосовувати апаратуру для аутентифікації, наприклад, токени або пристрої з одноразовими паролями. Використання аутентифікаційних механізмів, в яких аутентифікаційна інформація є перевикористовуваною (наприклад, паролі) і передається в явному вигляді по мережі, не рекомендується, тому що інформація може бути перехоплена і задіяна таким, що атакує для підробки під аутентифікаційного користувача.
Для гарантії того, що відповідна аутентифікація користувача виконується, необхідно виконати наступні кроки:
Видалити або заборонити невживані акаунты і групи, створені за умовчанням. Конфігурація ОС за умовчанням часто включає акаунт guest (як з паролем, так і без), акаунти рівня адміністратора або root, пов'язані з локальними і мережевими сервісами. Імена і паролі цих акаунтів добре відомі. Видаленню або забороні непотрібних акаунтів запобігає їх використання для проникнення, включаючи акаунти guest, на комп'ютерах, що містять чутливу інформацію. Якщо існує вимога залишити акаунт або групу guest, слід обмежити їх доступ і змінити пароль відповідно до політики для паролів в організації. Для акаунтів за умовчанням, які необхідно залишити, слід змінити імена (де можливо, особливо для акаунтів рівня адміністратора або root) і паролі відповідно до політики для паролів. Слід пам'ятати, що імена акаунтів і паролі за умовчанням добре відомі зловмисникам.
Заборонити не інтерактивні акаунти. Заборонити акаунти (і пов'язані з ними паролі), які повинні існувати, але не вимагають інтерактивного входу. Для Unix-систем заборонити вхідний shell або надати вхідний shell з функціональністю NULL (/bin/false).
Створити групи користувачів. Прив'язати користувачів до відповідних груп і призначати права групам. Даний підхід переважніше, чим призначати права індивідуальним користувачам.
Створити акаунти користувачів. Визначити, хто авторизований використовувати кожен комп'ютер і його сервіси. Створити тільки необхідні акаунти. Не допускати використання акаунтів, що розділяються.
Перевірити політику для паролів в організації. Встановити паролі акаунтів відповідним чином. Дана політика повинна розглядати наступне:
довжина – мінімальна довжина паролів;
складність – необхідні символи. Необхідні паролі містять букви як верхнього, так і нижнего регістрів і, принаймі, один неалфавітний символ;
термін використання – як довго можна не змінювати пароль. Вимагати від користувачів періодично змінювати паролі. Пароль рівня адміністратора або root повинен змінюватися кожні 30–120 днів. Пароль користувача також повинен періодично змінюватися. Цей період визначається завдовжки і складністю пароля у поєднанні з чутливістю інформації, що захищається ним;
перевикористовування – чи може пароль перевикористовуватися. Деякі користувачі намагаються обійти вимогу застарівання пароля, змінюючи пароль на той, який вони вже використали до цього. Потрібно по можливості гарантувати, що користувач не може змінити пароль простим додаванням “передбачуваних” символів до свого початкового пароля. Наприклад, початковий пароль був “mysecret”, а змінений – “mysecret1” або “1mysecret”;
авторство – кому дозволено змінювати або встановлювати заново паролі і якого типу доказ потрібний перед початком будь-яких змін.
Конфігурувати комп'ютери для заборони входу після невеликого числа невдалих спроб. Слід пам'ятати, що може бути відносне легко дістати доступ для неавторизованого користувача до комп'ютера, використовуючи автоматичні програмні засоби, які перебирають всі паролі. Щоб ОС не надавала таку можливість, її слід конфігурувати, таким чином, коли вона заборонятиме вхід після трьох невдалих спроб. Зазвичай акаунт блокується на певний час (наприклад, 30 хвилин) або до тих пір, поки користувач з відповідними повноваженнями не активує його.
Це приклад ситуації, коли від web-адміністратора вимагається ухвалення рішення про баланс між безпекою і зручністю. Реалізація даної можливості може допомогти запобігти деяким типам атак, але може також дозволити зловмисникові виконати невдалі спроби входу для недопущення доступу користувача, тобто виконати DoS-атаку для конкретного користувача.
Невдалі спроби мережевого входу не повинні забороняти вхід з консолі користувача і тим більше адміністратора. Відмітимо також, що всі невдалі спроби по мережі або з консолі повинні реєструватися. Також, якщо віддалене адміністрування не передбачене, слід заборонити можливість входу по мережі акаунтам рівня адміністратора або root.
Інсталювати і конфігурувати інші механізми безпеки для посилення аутентифікації. Якщо інформація на web-сервері вимагає цього – розглянути використання інших аутентифікаційних механізмів, таких як токени, сертифікати клієнта і сервера або системи одноразових паролів. Хоча вони можуть бути дорожчими і важчими в реалізації, це, можливо, виправдається в деяких випадках. Коли використовуються подібні механізми аутентифікації і пристрою, політика організації повинна бути переглянута і в ній відбитий якнайкращий спосіб їх застосування.
Створювати і поширювати звіти про використання акаунтів користувачів. Для того, щоб гарантувати, що всі невживані акаунти віддаляються своєчасно, важливо встановити в організації систему, яка створює звіти про призначені для користувача акаунтах, що включають інформацію, необхідну для визначення того, чи винен акаунт залишатися активним. Ці звіти повинні розповсюджуватися відповідним користувачам і персоналу, що управляє, для визначення індивідуумів, яким не потрібніше мати акаунт.
Як наголошувалося раніше, порушник, використовуючи мережеві сніфери, може легко перехопити перевикористовувані паролі, передавані по мережі в явному вигляді. Замість цього слід використовувати менш уразливі технології аутентифікації і шифрування, такі як SSH і SSL/TLS.
