к.т.н., доцент Сагун А.В., Гурін С.С, д.т.н., проф. Кунченко-Харченко В.І., к.т.н., доцент Савельєва Т.В.

Черкаський державний технологічний університет

Механізм захисту автентифікації на web-ресурсі від стороннього кібернетичного впливу

 

         Інтерактивні web-додатки в даний час є важливою частиною інформаційних систем різного призначення. Основною особливістю таких систем є організація автентифікованого доступу до них через інтернет (рис.1).

Рисунок 1 – Топологія інформаційної мережі ПП «Тріст»

 

         Провівши аналіз існуючого web-ресурсу за допомогою утиліти SQLMap [1] були виявлені вразливості ресурсу (рис.1) до SQL ін'єкцій (рис.2).

 

Рисунок 2 – Виявлені вразливості

         Перевіривши в ручному режимі знайдені вразливості захисту автентифікації за допомогою наведеної нижче sql – ін’єкції, було підтверджено існування вразливостей (рис.3).

Рисунок 3 – Тестування вразливостей на web-ресурсі

 

               Ін’єкція виду: SELECT * FROM `members` WHERE name = 'Stas' OR 1 --+ ' AND password ='111' демонструє вразливість за допомогою якої зловмисник може отримати усі данні з бази даних.

            Ін’єкція виду: SELECT * FROM `members` WHERE name = '-1' UNION SELECT 1,@@datadir,3,DATABASE() показує вразливість sql – сервера до UNION - запитів за допомогою яких можна отримати інформацію про кількість стовбців у таблиці (дані які зберігаються у цих стовбцях, дані про назву бази даних, версію sql – серверу та абсолютний шлях до файлу бази даних на сервері).

         В якості засобів попередження, на основі рекомендації, наведених в [2] було запропоновано наступний засіб боротьби з ними:

$name = filter_input(INPUT_GET, 'name', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
$password = filter_input(INPUT_GET, 'password', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);

         Наступний скріпт є методом виправлення, відомим як «екранування символів» [3], та дозволяє виправити іншу виявлену вразливість:

$name = $mysqli->real_escape_string($name);

$password = $mysqli->real_escape_string($password);

         Після внесення змін до коду, розміщеному на web-сервері, вразливості автентифікації та авторизації були ліквідовані, про що свідчать результати роботи допомогою утиліти SQLMap (рис.4).

 

Рисунок 4 – Результати повторного сканування ресурсу утилітою SQLMap

 

         Отже, можна зробити висновок, що застосований при аналізі існуючого web – ресурсу механізм захисту автентифікації від стороннього кібернетичного впливу є дієвим.

        

         Література

1.     SQLMap. Access mode: http://sqlmap.org/

2.     Joe Celko’s. SQL for smartest. Advanced SQL programming. 5th edition. Elsevier. Waltham, USA. 2015, 834 p.

3.     SQL Injection Prevention Cheat Sheet. Access mode: https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet