Інформаційна безпека корпоративних сайтів
Як відомо, однією з можливих причин збоївши в роботи корпоративного сайту компанії може стати уразливість в інформаційній безпеці сайту.
Завдання захисту корпоративного сайту є одному з основних завдань розробників корпоративних сайтів в боротьбі за якість і інформаційну безпеку власних ІТ-ПРОДУКТОВ, тобто розробок ІТ-РЕШЕНІЙ для веба, серед яких корпоративні сайти для компаній-клієнтів - це один з найбільш затребуваних на сьогоднішній день видів розробки.
Будь-яка ІТ-компанія, що професійно займається розробкою корпоративних рішень для веба, обов'язково вирішує задачу забезпечення інформаційної безпеки при розробці корпоративного сайту для компанії-клієнта. У даній статті мова піде про захист від такого поширеного способу злому корпоративних сайтів, як SQL-инъекция. Якщо ви є власником корпоративного сайту, при цьому не маючи належних знань про його захист, ІТ-СПЕЦИАЛІСТИ студії веб-сервера-дизайну Oxigen радять вам з особливою увагою віднестися до фактів, викладених в статті, і до рішення задачі забезпечення безпеки сайту.
Одін з найбільш поширених способів злому веб-сервера сайтів, що працюють з базами даних SQL, - це SQL-инъекция. Даний спосіб заснований на впровадженні в запит довільної SQL-кода. Цей спосіб злому корпоративного сайту компанії може дати можливість що атакує виконати довільний запит до бази даних SQL (наприклад, прочитати вміст будь-яких таблиць, видалити, змінити або додати дані), дістати можливість читання і/або запису локальних файлів і виконання довільних команд на сервері, що атакується.
Подібна ворожа атака на корпоративний сайт компанії може представляти загрозу доступу до інформації об особистих даних клієнтів компанії (номери банківських карт, особиста адреса, номери особистих телефонів і т. д.). SQL-инъекция стає можливою при некоректній обробці вхідних даних, використовуваних в SQL-запросах. Розробник прикладних програм, зокрема програмних модулів (скриптів) для веб-сайтів, що працюють з базами даних, повинен знати про такі уязвімостях і приймати заходи протидії впровадженню SQL-кода.
Ми з вами зараз проведемо самостійний аналіз абстрактного корпоративного сайту шляхом взаємодії з базою даних сайту через SQL-инъекцию.
Отже, допустимий, нам відомо про недостатню фільтрацію параметра id в скрипті site/test. Php.
Звичайний сценарій злому припускає спробу підстановки спецсимволів в уразливому параметрі.
Наприклад так: site/test. Php? Id=12" and 1=1. Успішне виконання даної команди означає практично повну владу хакера над уразливим сайтом. Щоб цього не відбулося потрібно прверіть параметр id перед передачею його SQL-серверу.
Постійні перевірки повідомлень про помилки, з текстом SQL-запроса, в якому відбулася помилка зведе вірогідність SQL-инъекции до мінімуму. Принаймні, ви зможете вчасно подібну атаку. Проте багато що можна зробити, навіть якщо повідомлення про помилки не виводяться взагалі.
Слід взяти до відома той факт, що навіть якщо текст помилки не виводиться, можна все одно однозначно судити про те, відбулася помилка, чи ні (наприклад, запит повернув порожній результат).
Методика атак типу впровадження SQL-кода показує, що основним завданням зломщика корпоративного сайту компанії на першому етапі є пошук скриптів, уразливих для атаки. На даному етапі зловмисником вивчається поведінка програмних скриптів на корпоративному сайті компанії за допомогою маніпулювання вхідними параметрами з метою виявлення їх некоректної поведінки. Використовуються всі можливі параметри:
— Дані передавані методами POST і GET;
— Значення [Http-cookie];
— Http_referer (для скриптів );
— Auth_user і Auth_password (при використанні аутентифікації).
Як правило, маніпуляції зловмисника з вибраним для атаки корпоративним сайтом зводяться до підстановки в параметри запиту символу одинарної (рідше подвійною або зворотною) лапки.
за Некоректну поведінку програмних модулів корпоративного сайту вважається будь-яка поведінка, при якій сторінки, що отримуються до і після підстановки лапок, мають відмінності, але при цьому не виведена сторінка помилки про невірний формат параметрів.
Найбільш приклади некоректної поведінки корпоративних сайтів компаній, що часто зустрічаються:
— на сторінці виводиться повідомлення з вказівкою різних помилок;
— при запиті інформації на корпоративному сайті компанії (наприклад, новини або списку продукції) запрошувані дані не виводяться взагалі, при цьому сторінка відображається і так далі
Також слід враховувати той факт, що на практиці про відомі випадки, коли повідомлення про помилки, через специфіку розмітки сторінки корпоративного сайту компанії, не відображаються в оглядачі, хоча при цьому присутні в її HTML-коде.
Виникає цілком логічне питання: як захистити корпоративний сайт компанії від атак типу впровадження SQL-кода? Для захисту виготовленого корпоративного сайту від даного типу атак необхідно ретельно фільтрувати вхідні параметри, значення яких будуть використані для побудови SQL-запроса. З цим завданням може справитися кваліфікований програміст з достатнім досвідом веб-разработок корпоративних сайтів для компаній-клієнтів.
Слід зазначити, що часто застосування нестандартних рішень для захисту інформації є одним з оптимальних шляхів рішення задачі забезпечення інформаційної безпеки сайту вашої компанії. Наприклад, в ІТ-компанії Oxigen, один з офісів якої розташований в Санкт-Петербурзі, в даний час йде активне впровадження у власної мови програмування для веб-сервера-розробки, Secure Web Instructions (SWI), який в порівнянні із стандартною для інтернету мовою обробки програмних запитів PHP має значно вищі показники стійкості до зломів і швидкості обробки запитів користувачів.
Як показала практика, корпоративні сайти компаній-клієнтів на основі SWI менш уразливі до ворожих атак і при цьому, на даний момент є безпечнішими в порівнянні з корпоративними сайтами компаній на основі PHP. У мові програмування SWI є вбудований захист від SQL-инъекции.
В SWI вбудовані спеціальні засоби фільтрації параметрів, інтелектуально визначальні і відсікаючі "шкідливі" параметри і/або частини параметрів, що дозволяє понизити вірогідність злому сайту, і, як наслідок, не порушити бізнес-процеси компанії, пов'язані з його активною роботою.
Бажаний вам успіху в роботі!
Студія веб-сервера-дизайну Oxigen (Санкт-Петербург),
Олександр Льовіцкий,
Єгор Поляков.