Обхід захисту сайтів за допомогою SQL-ін’єкцій та захист від них

Суть і основні закономірності несанкціонованого доступу до бази даних сайту. Дослідження та обґрунтування можливостей, а також основи використання SQL-ін’єкцій. Способи захисту від несанкціонованого вторгнення. Оцінка головних переваг і недоліків POD.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык украинский
Дата добавления 28.11.2020
Размер файла 267,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Луцький національний технічний університет

Обхід захисту сайтів за допомогою SQL-ін'єкцій та захист від них

Костючко Сергій Миколайович,

к.т.н.

Сахнюк Андрій Анатолійович,

магістр

Мельник Катерина Вікторівна,

к.т.н., доцент

Анотація

Костючко С.М., Сахнюк А.А., Мельник К.В. Обхід захисту сайтів за допомогою SQL-ін'єкцій та захист від них

У статті розкрито суть несанкціонованого доступу до бази даних сайту; можливості та основи використання SQL-ін'єкцій; способи захисту від несанкціонованого вторгнення; переваги та недоліки POD.

Ключові слова: SQL-ін'єкція, база даних, сайт, PDO.

Аннотация

Костючко С.Н., Сахнюк А.А., Мельник К.В. Обход защиты сайтов с помощью SQL-инъекций и защита от них

В статье раскрыта суть несанкционированного доступа к базе данных сайта; возможности и основы использования SQL-инъекций; способы защиты от несанкционированного вторжения; преимущества и недостатки POD.

Ключевые слова: SQL-инъекция, база данных, сайт, PDO.

Abstract

Kostiuchko S.M., Sahniuk A.A., Melnyk K.V. Bypass site protection by means SQL injections and protection against them. The article reveals the essence of unauthorized access to the web-site database; possibilities of using SQL-injections; ways to protect against unauthorized intrusion; POD advantages and disadvantages.

Keywords: SQL injection, database, site, PDO.

Основна частина

Постановка проблеми.

Через різні вразливості веб-серверів і нескладні процедури, атаки на веб-сервери зросли, в основному за рахунок впровадження сценаріїв ASP або PHP. Атаки з використанням SQL ін'єкцій стали основним напрямком, в той час як процес компіляції веб-сервера переважає в сценарії, ігноруючи явище тестування безпеки програмного коду, що призводить до великої кількості надання інтерактивних лазівок в роботі на веб-сервері. Зловмисники можуть використовувати сервер, конфігурувати базу даних дефектів і розробляти структуру незаконних запитів за допомогою програм або сценаріїв вторгнення на сервер, отримувати дозволи адміністратора веб-сайту і отримувати відповідний контент баз даних. Виклад основного матеріалу й обґрунтування отриманих результатів.

Ін'єкція SQL - це вразливість веб-безпеки, яка дозволяє зловмиснику втручатися у запити, які подає програма до своєї бази даних. Як правило, зловмисник дозволяє переглядати дані, які вони зазвичай не можуть отримати. Це може включати дані, що належать іншим користувачам, або будь-які інші дані, до яких сама програма може отримати доступ. У багатьох випадках зловмисник може змінювати або видаляти ці дані, викликаючи постійні зміни у змісті чи поведінці програми.

У деяких ситуаціях існує можливість застосувати атаку ін'єкцій SQL, щоб поставити під загрозу базовий сервер чи іншу інфраструктуру.

Успішна атака ін'єкцій SQL може призвести до несанкціонованого доступу до конфіденційних даних, таких як паролі, дані кредитної картки або особиста інформація користувача.

В дослідженні було перевірено роботу підриву логіки програми за допомогою ін'єкцій SQL, де є можливість змінити запит, задля перешкоджання логіки програми, але також існує велика різноманітність і інших вразливих ситуацій, атак та методів ін'єкцій SQL, які виникають у різних ситуаціях. Деякі поширені приклади введення SQL включають:

• Отримання прихованих даних, де можна змінити SQL-запит, щоб повернути додаткові результати.

• UNION-атаки, де можливо отримати дані з різних таблиць баз даних.

• Вивчення бази даних, де можливо отримати інформацію про версію та структуру бази даних.

• Сліпа ін'єкція SQL, коли результати запиту, яким керує зловмисник, не відповідають результатам програми.

Підрив логіки програми

Розглянемо програму, яка дозволяє користувачам входити з іменем користувача та паролем. Якщо користувач подає ім'я користувача Andrew та пароль 123456, програма перевіряє облікові дані, виконуючи наступний SQL-запит:

SELECT * FROM accounts WHERE username = 'andrew' AND password = '123456'

Якщо запит повертає реквізити користувача, то реєстрація успішна. В іншому випадку реєстрація не відбудеться.

Якщо, наприклад, в поле паролю Ввести знак «' «може виникнути помилка, яка надасть нам потрібну інформацію про базу даних чи про файли сайту. Наприклад, як зображено на рисунку нижче.

Рис. 1. Помилка при відмові в реєстрації користувача

Для перевірки можливості використання SQL коду в полі реєстрації можна в полі password ввести 123456' and 1=1#. Після вводу в разі незахищеності системи реєстрація пройде успішно. Вид запиту після вводу пароля:

SELECT * FROM accounts WHERE username = 'andrew' AND password = '123456' and 1=1#'

Щоб перейти на відповідний аккаунт наприклад andrew, але пароль нам не відомий можна використати or замість and після чого запит буде мати вигляд:

SELECT * FROM accounts WHERE username = 'andrew' OR password = '123456' or 1=1#'

Також існує можливість ввійти, як будь-який користувач, без пароля просто за допомогою поля username. Наприклад, введення імені користувача admin'# та порожнього пароля призводить до наступного запиту:

SELECT * FROM accounts WHERE username = 'admin'# AND password = 'aaaaaa'

Цей запит повертає користувача, ім'я користувача якого є, admin і успішно входить в систему. Так як після 'admin' стоїть знак коментаря #, то все, що йде після нього, буде ігноруватись. Тому запит в дійсності буде таким:

SELECT * FROM accounts WHERE username = 'admin'#

Підрив логіки програми з більш складнішим захистом.

Візьмем більш складну систему яка блокує різні символи крім букв. Тоді при вводі будь-якого знаку буде видаватись така помилка:

Рис. 2. Помилка при вводі на стороні клієнта

Дана помилка відбувається тільки на стороні клієнта, і до серверу запит не відправляється, тому даним способом доступ до бази не буде отримано. Але, якщо будуть введені коректні символи, то зв'язок з базою відбудеться хоча б, щоб перевірити параметри авторизації. На даному етапі можна скористатися програмою Burp Suite та переглянути які пакети надсилаються:

Рис. 3. Інтерфейс програми Burp Suite

Дана програма може «притримати» пакети, які вже вийшли з клієнта, а попередня помилка не буде завадою для отримання доступу до бази. В цій програмі також можливо дещо підправити відправлені дані, а саме переправити пароль на вже відомий код 123456' or 1=1#.

Рис. 4. Деякі можливості програмного продукту Burp Suite

несанкціонований сайт вторгнення

Виявлення вразливості ін'єкцій SQL

Більшість уразливостей ін'єкцій SQL можна швидко та надійно знайти за допомогою веб-сканера вразливості Burp Suite.

Ін'єкцію SQL можна виявити вручну за допомогою систематичного набору тестів проти кожної точки входу в програму. Зазвичай це стосується:

- Подання символу єдиної цитати та пошуку помилок чи інших аномалій.

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

- Посилають логічні умови, такі, як OR 1=1 і OR 1=2, і шукаємо відмінності у відповідях додатка чи сайту.

- Подання корисних навантажень, призначених для запуску затримок у часі при виконанні в межах SQLапиту, та пошуку відмінностей у часі, необхідному для відповіді.

- Подання корисних навантажень OAST, призначених для запуску позадіапазонної мережевої взаємодії при виконанні в рамках SQLапиту, а також для моніторингу будь-яких результуючих взаємодій.

Введення SQL в різні частини запиту

Більшість уразливостей для введення SQL виникає в WHERE пункті SELECT запиту. Цей тип ін'єкції SQL, як правило, добре зрозумілий досвідченим тестерам.

Але вразливості введення SQL можуть в принципі виникати в будь-якому місці в межах запиту та в різних типах запитів. Найбільш поширені інші місця, де виникає ін'єкція SQL, це:

- У UPDATE висловлюваннях, в межах оновлених значень або WHERE пункту.

- У INSERT висловлюваннях у межах вставлених значень.

- У SELECT висловлюваннях, в межах назви таблиці чи стовпця.

- У SELECT заявах, у межах ORDER BY.

Захист сайту від SQL-ін'єкцій

Так як ми вже визначили, що SQL-ін'єкції дуже небезпечні тому потрібно мати надійний захист від даних атак. Тому одним з виходів використовувати PHP Data Objects або PDO. PDO (PHP Data Objects) - рівень абстракції для запитів вашої бази даних і є приголомшливою альтернативою MySQLi, оскільки він підтримує 12 різних драйверів баз даних. MySQL - це найпопулярніша база даних. Вона також дуже добре поєднується з PHP, саме тому ця пара технологій добре підтримується у світі PHP.

Якщо фактично знаєте, що єдиною базою даних SQL, якими ви користуєтесь, є або MySQL, або MariaDB, слід вибрати PDO.

Існує думка, що головна перевага PDO полягає в тому, що він переноситься з бази даних в базу даних але насправді це не є так. Насправді, дуже рідко приймається рішення щодо переключення баз даних на конкретний проект, а саме для компаній середнього рівня дана перевага є недоречною. Незважаючи на це, зазвичай, як правило, вважають за краще дотримуватися поточної технології, яка використовується, якщо тільки немає обґрунтованих причин втрачати значну кількість часу та грошей для переносу.

Справжня перевага PDO полягає в тому, що використовується практично подібний API для будь - якої з безлічі баз даних, які він підтримує, тому вам не потрібно вивчати нову для кожної. Названі параметри також, безсумнівно, є величезною перевагою для PDO, оскільки ви можете повторно використовувати однакові значення в різних місцях запитів. На жаль, ви не можете використовувати одні і ті ж названі параметри не один раз із вимкненим режимом емуляції.

Робота підготовлених заявок PDO

Для простішого пояснення, підготовлені заяви PDO працюють так:

1. Підготуйте SQLапит із порожніми значеннями, як заповнювачі або знаком питання, або ім'ям змінної з двокрапкою, що передує йому, для кожного значення.

2. Прив'яжіть значення або змінні до заповнювачів

3. Виконувати запит одночасно.

Недоліки PDO

Однак при використанні визначених виразів спільно з PDO необхідно знати деякі нюанси, щоб уникнути неприємних ситуацій. Наприклад, в MySQL клієнта деякі запити, складені за допомогою визначених виразів, тому не можуть бути виконані, а так само вони не використовують кеш, що може уповільнити роботу вашого web-додатка.

Гарантована безпека при використанні визначених виразів звучить добре, але розробники не повинні приймати PDO і інші види абстракції, зумовлені вираженням, як абсолютний захист від злому. Будь-які вхідні дані повинні перевірятися, PDO - додаткова лінія оборони. Це розширення не закриває все безліч вразливостей, за допомогою яких може бути завдано шкоди вашій інформації, але в той же час, PDO непогано справляється з питанням запобігання SQL ін'єкцій.

Висновки та перспективи подальшого дослідження.

Отже, SQL-ін'єкції дуже небезпечні для незахищеної системи, так це є найпопулярніший спосіб взлому, і не є дуже складним для розуміння і використання. Тому навіть недосвідчений зловмисник може отримати доступ до бази даних. Байдуже ставлення до захисту від даних атак може призвести до катастрофічних наслідків.

Для надійного захисту використовуйте різні технології захисту, як приклад, технологію PDO, яка захистить від SQL ін'єкцій і дозволить використовувати чистий шар абстракції з бази даних, що забезпечить вам майбутню гнучкість у разі зміни баз даних.

Список бібліографіного опису

1. Addison Berry, Angela Byron, Bruno De Bondt. Using Drupal (2nd Edition). - O'Reilly. 2012. - 500p.

2. Al-Darwish, N.: Page Gen: An Effective Scheme for Ddynamic Generation of Web Pages. Information and Software Technology 45 (10), 15 July 2003, Pages 651-662

3. Cynthia McCourt. Drupal: The Guide to Plainning and Building Websites. - Wrox. 2011. - 504 p.

4. Douglas Vernon Denny. Drupal 7 Webform Cookbook. - Packt Publishing. 2012. - 276 p.

5. FabienPotencier. TemplatingEnginesin PHP (переклад), Templatingenginesin PHP - Follow-Up (переклад)

6. Jennifer Hodgdon. A Programmer's Guide to Drupal. - O'Reilly. 2012. - 114p.

7. Ric Shreves, Brice Dunwoodie. Drupal 7 Bible. - Wiley. 2011. - 768 p.

8. Smarty 3.1.29 Released - 2015.

9. Trevor James. Migrating to Drupal 7. - Packt Publishing. 2012. - 158p.

10. http://anton.shevchuk.name/php/php-template-engin/

11. https://drudesk.com.ua/blog/funktsionalni-mozhlyvosti-twig

12. ZhangZhuo, The SQL injection attack technology and preventive measures research, 2-4 2007.01.

13. ZhouWenYu, Based on preventing SQL injection network security technology analysis and application, 43-50 2010.06.

14. Xiaozhu The SQL; 1; injection into holes of ASP too mystierious full contact, 2005.01.

References

1. Addison Berry, Angela Byron, Bruno De Bondt. Using Drupal (2nd Edition). - O'Reilly. 2012. - 500p.

2. Al-Darwish, N.: Page Gen: An Effective Scheme for Ddynamic Generation of Web Pages. Information and Software Technology 45 (10), 15 July 2003, Pages 651-662

3. Cynthia McCourt. Drupal: The Guide to Plainning and Building Websites. - Wrox. 2011. - 504 p.

4. Douglas Vernon Denny. Drupal 7 Webform Cookbook. - Packt Publishing. 2012. - 276 p.

5. FabienPotencier. TemplatingEnginesin PHP (переклад), Templatingenginesin PHP - Follow-Up (переклад)

6. Jennifer Hodgdon. A Programmer's Guide to Drupal. - O'Reilly. 2012. - 114p.

7. Ric Shreves, Brice Dunwoodie. Drupal 7 Bible. - Wiley. 2011. - 768 p.

8. Smarty 3.1.29 Released - 2015.

9. Trevor James. Migrating to Drupal 7. - Packt Publishing. 2012. - 158p.

10. http://anton.shevchuk.name/php/php-template-engin/

11. https://drudesk.com.ua/blog/funktsionalni-mozhlyvosti-twig

12. ZhangZhuo, The SQL injection attack technology and preventive measures research, 2-4 2007.01.

13. ZhouWenYu, Based on preventing SQL injection network security technology analysis and application, 43-50 2010.06.

14. Xiaozhu The SQL; 1; injection into holes of ASP too mystierious full contact, 2005.01.

Размещено на Allbest.ru

...

Подобные документы

  • Особливості захисту персональних комп'ютерів від несанкціонованого доступу (НДС). Спеціальне програмне забезпечення захисту інформації. Захист від НСД шляхом запису ключа за логічними межами файла. Процес підготування програми на мові ассемблера.

    курсовая работа [33,3 K], добавлен 08.08.2009

  • Основи безпеки даних в комп'ютерних системах. Розробка програми для забезпечення захисту інформації від несанкціонованого доступу: шифрування та дешифрування даних за допомогою криптографічних алгоритмів RSA та DES. Проблеми і перспективи криптографії.

    дипломная работа [823,1 K], добавлен 11.01.2011

  • Основи безпеки даних в комп'ютерних системах. Канали проникнення та принципи побудови систем захисту. Ідентифікація і аутентифікація користувачів. Захист даних від несанкціонованого доступу. Технічні можливості зловмисника і засоби знімання інформації.

    курс лекций [555,1 K], добавлен 05.12.2010

  • Аналіз існуючих методів несанкціонованого отримання інформації та заходів щодо протидії їм. Детальних огляд їх властивостей і можливостей впровадження на підприємстві. Наслідки недотримання правил захисту інформації від несанкціонованого отримання.

    курсовая работа [36,5 K], добавлен 19.11.2014

  • Призначення програми на мові Асемблера: захист файлів від несанкціонованого копіювання. Існуючі методи для захисту файлів від несанкціонованого доступу. Криптографія, прив'язка до місця розташування на диску, ключова дискета з нестандартним форматом.

    курсовая работа [24,9 K], добавлен 08.08.2009

  • Способи здійснення атак на відмову та пароль. Захист інформації від несанкціонованого доступу та від її витоку в комп'ютерних системах. Використання міжмережевих екранів, системи виявлення вторгнень, засобів аналізу захищеності в комунікаційних системах.

    презентация [300,2 K], добавлен 14.08.2013

  • Проектування, розробка та введення в експлуатацію бази даних для віртуального магазину "MotorUA". Виявлення еквівалентних сущностей. Переклад глобальної ER-моделі в реляційну форму. Розробка механизмів захисту даних від несанкціонованого доступу.

    курсовая работа [857,7 K], добавлен 15.02.2011

  • Визначення функціонального профілю захищеності комп’ютеризованої системи від несанкціонованого доступу і вимог до захищеності інформації від витоку технічними каналами. Вибір та обґрунтування необхідних фізичних та організаційних засобів захисту.

    курсовая работа [2,4 M], добавлен 22.11.2014

  • Захист файлів від несанкціонованого доступу в ОС FreeBSD. Атрибути та права доступу до файлу. Загальні принципи захисту для всіх існуючих варіантів системи. Значення прав доступу для різних типів файлів. Паролі, їх роль у забезпеченні безпеки системи.

    контрольная работа [33,0 K], добавлен 29.06.2010

  • Методи захисту програмного забезпечення та комп’ютера від несанкціонованого доступу. Метод створення програми перевірки доступу за методом Тюрінга. Розробка структури програми, вибір мови програмування, тестування. Інструкція по роботі з програмою.

    курсовая работа [606,7 K], добавлен 06.08.2013

  • Огляд і архітектура обчислювальних мереж, переваги їх використання та обґрунтування вибору. Пошук несправностей в мережах на базі операційної системи Windows, виявлення причин. Особливості методів захисту від несанкціонованого доступу в мережі TCP/IP.

    курсовая работа [2,8 M], добавлен 28.01.2011

  • Детальний опис об'єкту захисту i видів інформації, що опрацьовується i зберігається у банку. Оцінка можливих каналів витоку інформації. Перелік організаційних і технічних заходів на об’єкті. Захист телефонних ліній і екранування виділених приміщень.

    курсовая работа [35,6 K], добавлен 23.12.2010

  • Дослідження криптографічних методів захисту даних від небажаного доступу. Основи безпеки даних в комп'ютерних системах. Класифікаційні складові загроз безпеки інформації. Характеристика алгоритмів симетричного та асиметричного шифрування інформації.

    курсовая работа [245,8 K], добавлен 01.06.2014

  • Обладнання безпровідних мереж. Стандартні і додаткові швидкості в Ethernet: частотний діапазон, швидкість радіо, захисний інтервал. Коротка характеристика головних переваг та недоліків бездротової мережі Wi-Fi. Забезпечення стійкості мережі до злому.

    презентация [355,0 K], добавлен 14.08.2013

  • Аналіз стратегічних умов, які визначають завдання порталу в організації. Характеристика вимог до програмного забезпечення, захисту від несанкціонованого доступу. Дослідження негативних аспектів побудови ділових порталів, помилок в дизайні веб-сторінок.

    реферат [22,9 K], добавлен 22.02.2012

  • Основи проектування мобільного додатку для операційної системи Android з використанням хмарної бази даних Cloud Firestore. Аналіз основних труднощів, які виникають під час розробки додатків. Визначення основних переваг та недоліків хмарних баз даних.

    статья [195,3 K], добавлен 07.02.2018

  • Електронні пристрої перехоплення мовної інформації. Застосування звичайних стетоскопів та способи їх встановлення. УКВ приймач, генератор "Window -1", їх технічні характеристики. Засоби виявлення несанкціонованого підключення до телефонної лінії, захист.

    курсовая работа [910,3 K], добавлен 07.03.2011

  • Огляд можливостей щодо витоку інформації та заходів по його запобіганню. Захист конфіденційної інформації при проведенні переговорів. Планування захисних заходів щодо видів дестабілізуючого впливу. Виявлення несанкціонованого доступу до ресурсів.

    дипломная работа [3,8 M], добавлен 17.11.2014

  • Проблемі захисту інформації. Основні загрози та методи їх рішень. Апаратно-програмні засоби захисту. Використання ідентифікації приводу оптичного накопичувача за характеристиками лазерного диску. Аутентифікація за допомогою ідентифікації лазерного диску.

    курсовая работа [65,2 K], добавлен 01.04.2013

  • Стратегія побудови та забезпечення безпеки мережі Wi-Fi, характеристика стандартних методів її захисту. Сценарії проектування та розгортання мережі, радіообстеження зони її покриття, налаштування, підключення точок доступу та реалізація захисту.

    дипломная работа [2,2 M], добавлен 02.11.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.