Вы находитесь на странице: 1из 11

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

КЫРГЫЗСКОЙ РЕСПУБЛИКИ
КЫРГЫЗСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ им. И.Раззакова

ИНСТИТУТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

Кафедра: Программное обеспечение компьютерных систем

ОТЧЕТ
По Лабораторной работе №1
Дисциплина: Проектирование и обеспечение безопасности ПО 2

Выполнил: студент группы ПИ-2-21


Байташев Бекназар
Проверила: Ашымова А.Ж.

Бишкек 2023
Hacksplaining представляет собой онлайн-платформу, нацеленную на
обучение безопасности веб-приложений, включая методы защиты от угроз,
таких как SQL-инъекции. Она предлагает набор задач и обучающих
материалов для помощи в освоении навыков по обеспечению безопасности
веб-приложений. Чтобы решить задачу на Hacksplaining, следуйте
следующим шагам:
1. Зарегистрируйтесь или войдите в аккаунт на Hacksplaining, если это
необходимо.
2. Выберите интересующую вас задачу из представленного списка.
3. Внимательно изучите постановку задачи и связанные с ней
инструкции. Задачи на Hacksplaining разработаны для обучения и
проверки ваших навыков, поэтому важно полностью понимать, какую
уязвимость необходимо выявить и как это сделать.
4. Применяйте ваши знания об уязвимостях и безопасности в
приложениях для того, чтобы попытаться эксплуатировать уязвимость
в данной задаче. В случае SQL-инъекций, например, попробуйте
вводить специальные символы и конструкции SQL, чтобы получить
доступ к данным, которые не предназначены для просмотра.
5. После решения задачи следуйте инструкциям на Hacksplaining для
завершения. Это может включать отправку ответа или демонстрацию
эксплойта, если это требуется.
Для начала работы на платформе необходимо зарегистрироваться.
SQL-инъекция — это метод атаки на веб-приложение, при котором
злоумышленник вводит вредоносный SQL-код в поле ввода,
предназначенное для ввода учетных данных, таких как почта и пароль.
Начнем с базовой инъекции, введя "пароль' ". Результат данной атаки
отражен на рисунке 1 в логе.
Figure 1
Ниже на рисунке 2 можем увидеть введенный пользователем пароль
в код SQL.
Figure 2
Такое поведение в журнале свидетельствует о возможной уязвимости
программы для инъекций в код. На рисунке 3 демонстрируется ввод
инъекции ' OR 1=1- - в поле для пароля. Это типичная полезная нагрузка
инъекции, которая может сработать в некоторых случаях. Двойной дефис
используется для закомментирования остальной части SQL-запроса.
Figure 3
Теперь обратим внимание на результат инъекции, представленный на
рисунке 4. Мы успешно получили доступ к приложению, не нуждаясь в
угадывании пароля, используя SQL-инъекцию с вводом ' OR 1=1- - в
соответствующем поле.

Figure 4
Ввод базовой инъекции ' OR 1=1- - успешно сработал, в результате
чего получили доступ к приложению.

С помощью этого раздела игры я понял, как работает SQL-инъекция. Далее, я


изучил раздел "Как защититься от SQL-инъекции?" и понял, какие меры
можно принять для защиты от данного типа атак.
Защитные меры включают в себя:
1. Всегда использовать параметризованные инструкции, где это
возможно, так как они являются основной защитой от внедрения SQL-
инъекций.
2. Использование ORM (объектно-реляционное отображение).
3. Экранирование специальных символов входных строковых данных.
4. Очистка входных данных перед использованием.
5. Применение хэширования к паролям.
6. Соблюдение принципа наименьших привилегий.
7. Использование аутентификации третьей стороны.
Также в разделе был предложен мини-тест для проверки знаний.

Figure 5

Figure 6
Рисунок 7

На рисунке выше продемонстрирована атака SQL-инъекцией

Модель нарушителя:

Тип нарушителя Вид Мотив Уровень Квалификация Реализуемые угрозы


нарушителя доступа и ресурсы
нарушителя
Антропогенные Внутренний. Месть или Физический Владеет Изменение данных,
нарушители Сотрудник случайное доступ к знаниями в подрыв целостности
непреднамеренное системе, сфере ИТ и SQL.
действие доступ к
сети
организации
Антропогенные Внешний. Доступ к Доступ к Средние знания Несанкционированный
нарушители Простой конфиденциальной открытой в сфере ИТ. доступ, изменение
посетитель информации информации Имеет готовый данных, подрыв
сайта на сайте инструмент целостности
(эксплойт) SQL
Антропогенные Продвинутый Финансовая выгода. Доступ к Высшие знания Несанкционированный
нарушители хакер Политические, открытой в сфере ИТ. доступ, изменение
идеологические информации Владеет SQL. данных, подрыв
мотивы. на сайте. Имеет целостности
множество
готовых
инструментов по
SQL инъекциям

Межсайтовый скриптинг (XSS) представляет собой один из наиболее


распространенных методов атаки на веб-сайты, который позволяет
злоумышленнику внедрять произвольные фрагменты JavaScript на веб-
страницу, когда другие пользователи ее посещают.
XSS является распространенной и публично известной уязвимостью
безопасности, которая входит в стандартный набор инструментов каждого
хакера. Риски, связанные с XSS, зависят от чувствительности данных,
обрабатываемых на сайте. Злоумышленники могут использовать XSS для
распространения атак на популярных социальных платформах, перехвата
сеансов, кражи личных данных, проведения атак типа "отказ в
обслуживании", финансового мошенничества и других злонамеренных
действий.
Для защиты от атак XSS необходимо принимать следующие меры:
Использовать параметризованные запросы, чтобы избежать внедрения
JavaScript через динамические данные.
Применять ORM (объектно-реляционное отображение) для более безопасной
работы с базой данных.
Экранировать специальные символы входных строковых данных перед
отображением на странице.
Очищать входные данные перед использованием для устранения
потенциальных уязвимостей.
Хешировать пароли пользователей для обеспечения безопасности их
хранения.
Применять принцип наименьших привилегий, ограничивая доступ
пользователя к минимально необходимым функциям.
Реализовывать аутентификацию третьей стороны для дополнительного
уровня безопасности.
Экранирование динамического контента представляет собой процесс замены
специальных символов входных данных кодированными символами HTML,
что предотвращает выполнение вредоносного кода JavaScript в браузере.
Кроме того, ограничение возможных значений для конкретных
динамических элементов данных и применение политики безопасности
контента помогают усилить защиту от XSS-атак.
Мы заходим в приложение, целью которого является демонстрация
уязвимости XSS. Следуя инструкциям, мы изменяем сообщение в
приложении, вставляя вредоносный скрипт. Эта демонстрация показывает,
как злоумышленник может внедрить свой собственный код в сообщение, и
при недостаточной защите приложения пользователь может стать жертвой
этой атаки.

Figure 7
На рисунке 8 явно показан случай CSS , когда злоумышленник изменил
часть кода и поставил случайное изображение.

Figure 8
На рисунке 9 показан случай, когда злоумышленник может изменить скрипт
жаваскрипт кода и написать в код свое сообщение, тогда на экране
пользователю будет отображаться измененный злоумышленником
сообщение.

Figure 9
Рисунок 1

Вывод
В лабораторной работе рассмотрены два случая атаки и способы защиты от
них.

Вам также может понравиться