ЗАДАНИЕ
на курсовой проект студенту дневного отделения, группы , специальности 09.02.021 Компьютерные сети
Фамилия, имя, отчество:
Тема курсового проекта: «Методы защиты от SQL инъекций».
В результате выполнения курсового проекта должна быть представлены:
а) пояснительная записка, состоящая из следующих разделов:
Введение
Заключение
Список сокращений
Список использованных источников
б) графическая часть – 1 плакат
в) носитель информации с презентацией курсового проекта и текстом пояснительной записки
Список рекомендуемой литературы:
1. Вишневский А.М. Microsoft SQL Server. Эффективная работа [Текст]: учеб. пособие для вузов. – 3-е изд., перераб. и доп. – СПб: БХВ – Петербург, 2017. – 219с.
2. Ушанов В.К SQL — язык реляционных баз данных [Текст]: учеб. пособие. – Издательство Уральского университета: Екатеринбург, 2016. – 167с.
СОДЕРЖАНИЕ
Введение 1 Общая часть 1.1.1 Теоретические сведения о языке SQL 1.1.2 Основные команды SQL 1.1.3 Программные обеспечения для работы с базами данных 1.2.1 SQL инъекция 1.2.2 Вычисления уязвимости, позволяющая внедрить SQL инъекцию 1.2.3 Варианты взлома сайта с уязвимостью на SQL внедрения 1.2.4 Разбор примера изнутри 2 Практическая часть 2.1 Программное обеспечение Security AppScan Standard 2.1.1 Установка продукта Security AppScan Standard. 2.1.1 Конфигурирование продукта Security AppScan Standard и запуск процедуры сканирования 2.2 Методы защиты для предотвращения SQL инъекций 2.2.1 Правила составления запросов MySQL 2.2.2 Динамическое составление запросов 2.2.3 Идентификаторы и ключевые слова — белые списки 2.2.4 Подготовленные запросы в базе данных 3 Экономическая часть Заключение Список сокращений и пояснений Список использованных источников |
4 6 6 7 9 11 11 13 14 16 16 16 18 25 26 27 28 29 33 35 36 37 |
Данная курсовая работа посвящена SQL (Structured Query Language) инъекциям. Здесь будут рассматриваться методы защиты от данных типов атак.
SQL — простыми словами, это язык программирования структурированных запросов (SQL, Structured Query Language), который используется в качестве эффективного способа сохранения данных, поиска их частей, обновления, извлечения из базы и удаления. Есть много вариантов языка SQL, но у них всех основные команды почти одинаковы. Также существует и много СУБД, но основными из них являются: Microsoft Access, Microsoft SQL Server, MySQL, Oracle SQL, IBM DB2 SQL, PostgreSQL та Sybase Adaptive Server SQL.
SQL как и другие языки программирования имеет свои команды (операторы), с помощью которых отдаются инструкции для выборки данных.
Первый международный стандарт языка SQL был принят в 1989 г. Иногда стандарт SQL1 также называют стандартом ANSI/ISO, и подавляющее большинство доступных на рынке СУБД поддерживают этот стандарт полностью. Однако развитие информационных технологий, связанных с базами данных, и необходимость реализации переносимых приложений потребовали в скором времени доработки и расширения первого стандарта SQL.
В конце 1992 г. был принят новый международный стандарт языка SQL, который называется SQL/92 или SQL2. И он не лишен недостатков, но в то же время является существенно более точным и полным, чем SQL/89. В настоящий момент большинство производителей СУБД внесли изменения в свои продукты так, чтобы они в большей степени удовлетворяли стандарту SQL2.
В 1999 году появился новый стандарт, названный SQL3. Если отличия между стандартами SQL1 и SQL2 во многом были количественными, то стандарт SQL3 соответствует качественным серьезным преобразованиям. В SQL3 введены новые типы данных, при этом предполагается возможность задания сложных структурированных типов данных, которые в большей степени соответствуют объектной ориентации.
Наконец, добавлен раздел, который вводит стандарты на события и триггеры, которые ранее не затрагивались в стандартах, хотя давно уже широко использовались в коммерческих СУБД. В стандарте определены возможности четкой спецификации триггеров как совокупности события и действия.
В конце 2003 года был принят и опубликован новый вариант международного стандарта SQL:2003. В SQL:2003 специфицирован ряд новых и важных свойств, с небольшими модификациями, внесёнными позже в 2008 году.
Целью курсового проекта является изучение особенностей SQL инъекций, а также методам защиты от данных типов атак
В соответствии с поставленной целью необходимо решить следующие задачи:
- рассмотреть основные теоретические сведения о языке SQL;
- рассмотреть программные обеспечения для работы с базами данных;
- изучить уязвимости, позволяющие внедрение SQL инъекций;
- рассмотреть программное обеспечение, позволяющее выполнить тестирование на уязвимость SQL, а также методы защиты от данных типов атак;
- сделать анализ затрат на средства тестирования веб-серверов на уязвимость SQL.
SQL-инъекции были и остаются наиболее критичными уязвимостями приложений. В результате успешной реализации SQL-инъекции злоумышленник может обойти логику работы приложения, получить доступ к конфиденциальной информации, содержащейся в СУБД, а при определенных условиях даже получить полный доступ к серверу, на котором функционирует СУБД. Если при этом учесть, что отдельные приложения интегрированы друг с другом внутри ИС компании, получение НСД к уязвимому приложению позволит злоумышленнику получить контроль над всей информационной системой.
В данном курсовом проекте была рассмотрена SQL уязвимость, а так же методы защиты от данных типов атак.
В практической части было показано как с помощью программного обеспечения Security AppScan Standard протестировать сайт на уязвимость SQL и защитить его в дальнейшем от этой атаки.
В ходе выполнения курсового проекта были решены следующие задачи:
- рассмотрены основные понятия о языке SQL;
- изучены методы выявления уязвимостей SQL;
- подробно рассмотрена SQL инъекция;
- изучены методы защиты от данных типов атак;
- сделан анализ затрат на тестирования веб-серверов для выявления уязвимости.
Таким образом, все поставленные задачи были выполнены, цель достигнута.