- •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-портала
- •Висновок
5.9. Шифрування xml
Специфікація шифрування XML задовольняє вимогам конфіденційності XML-повідомлень. Ця специфікація дозволяє реалізувати наступну функціональність:
шифрування цілого XML-файла;
шифрування будь-якого окремого елементу XML-файла;
шифрування тільки змісту XML-файла;
шифрування даних, відмінних від XML (наприклад, малюнка JPG);
шифрування вже зашифрованого елементу (“супер шифрування”).
5.9.1. Шифрування цілого xml-файла
Лістинг 6 - це приклад шифрування цілого XML-файла. При цьому початковий XML-документ не показаний, оскільки він не потрібний, оскільки шифрування XML-файла своїм результатом має таку ж XML-структуру - за винятком зашифрованої величини, ув’язненої в елементі CipherValue.
Лістинг 6
<?xml version='1.0'?> <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/xml"> <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:KeyName>MyKeyIdentifier</ds:KeyName> </ds:KeyInfo> <CipherData> <CipherValue>B457V645B45........</CipherValue> </CipherData> </EncryptedData>
Кореневий елемент EncryptedData несе зашифровані дані разом з такою необхідною інформацією, як алгоритм, використовуваний для шифрування. Цей елемент містить оголошення простору імен шифрування XML (http://www.w3.org/2001/04/xmlenc#) і атрибут MimeType, значення якого рівне text/xml. По цьому атрибуту одержувач цього зашифрованого XML-файла може зрозуміти, що XML-файл був зашифрований, щоб створити структуру EncryptedData.
Перший нащадок кореневого елементу - елемент EncryptionMethod. Цей елемент містить атрибут Algorithm, який визначає алгоритм, використаний при шифруванні. Його значення рівне http://www.w3.org/2001/04/xmlenc#3des-cbc, що визначає алгоритм потрійної DES (Data Encryption Standard, Стандарт шифрування даних).
Елемент ds:KeyInfo той же самий, що і той, який використовувався при застосуванні специфікації “Цифровий підпис XML”. Необхідно відзначити, що цей елемент був запозичений з простору імен цифрового підпису XML.
Елемент EncryptedData містить ще один дочірній елемент - CipherData, у якого у свою чергу є дочірній елемент CipherValue. Цей елемент CipherValue несе зашифрований зміст (зашифровану версію XML-документа). Таким чином, результатом шифрування XML-файла є зміст елементу CipherValue.
5.9.2. Шифрування окремого елементу
Як було сказано вище, структура EncryptedData несе зашифровані дані разом з необхідною інформацією. У основі шифрування одиночного елементу XML-файла лежить аналогічний підхід. Лістинг 7, в якому зашифрований елемент GetSpecialDiscountedBookingForPartners з Лістингу 1 отриманий простій заміною елементом EncryptedData.
Лістинг 7
<?xml version=”1.0”?> <SOAP-ENV:Envelope xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”> <SOAP-ENV:Body> <xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element"> <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:KeyName>MyKeyIdentifier</ds:KeyName> </ds:KeyInfo> <xenc:CipherData> <xenc:CipherValue>B457V645B45........</xenc:CipherValue> </xenc:CipherData> </xenc:EncryptedData> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Порівняємо елемент EncryptedData з Лістингу 6 з елементом EncryptedData з Лістингу 7. Неважко побачити, що є одна відмінність: замість атрибуту MimeType Лістингу 6 в Лістингу 7 з'явився атрибут Type. Значення цього атрибуту рівне http:///www.w3.org/2001/04/xmlenc#Element, що означає, що зашифрований XML-элемент.
Таким чином, при шифруванні елементу XML-файла слід використовувати ідентифікатор http:///www.w3.org/2001/04/xmlenc#Element як значення атрибуту Type. В цьому випадку одержувач зашифрованого XML-файла знатиме, що зашифровані дані повинні інтерпретуватися як XML-елемент в розшифрованій простій текстовій формі.
