Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лаба3

.docx
Скачиваний:
7
Добавлен:
06.09.2023
Размер:
603.54 Кб
Скачать

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра «Комплексная защиты информации»

Лабораторная работа

по курсу «Безопасность систем баз данных»

Лабораторная работа №3

Выполнили:

Студенты 2-го курса

Принял:

Самотуга А.Е.

Омск 2023

Выполнение

Часть 1. Изучить настройки СУБД, которые влияют на безопасность работы с ней

Рисунок 1 Перешли в панель администратора

Рисунок 2 Настроили подключение по ssh

Рисунок 3 Настроили тип ОС

Рисунок 4 Вывели настройки безопасности

Рисунок 5 Установка компонента защиты пароля

Рисунок 6 удаление анонимных пользователей

Рисунок 7 Вывели настройки надежности пароля

Часть 2. Изучить внутренние механизмы защиты БД

Рисунок 8 создали бд и таблицу для шифрованных данных

Рисунок 9 Вставили шифрованные данные

Рисунок 10 Вывели расшифрованные данные

Рисунок 11 Создали таблицу логов

Рисунок 124 Создали триггер до вставки данных

Рисунок 13 Вставили данные в таблице

Текст триггера

CREATE DEFINER = CURRENT_USER TRIGGER `lab3`.`user_BEFORE_INSERT` BEFORE INSERT ON `user` FOR EACH ROW

BEGIN

IF new.Name NOT LIKE 'Admin' THEN

SIGNAL SQLSTATE '45000'

SET message_text = 'Вначале напиши Admin';

end if;

SET new.Age = IF(new.Age IS NULL, 'Age not specified', new.Age);

SET new.Name = IF(new.Name IS NULL, 'Name not specified', new.Name);

IF length(new.Name) > 40 or (new.Age) > 80 THEN

SIGNAL SQLSTATE '45000'

SET message_text = 'Слишком длинное имя или большой возраст.';

end if;

INSERT INTO Logs(`Name`,`Age`,`Phone`,`hobby`,`date`,`oper`,`auth`)

VALUES (new.`Name`,new.`Age`,new.`Phone`,new.`hobby`,NOW(),'Вставка данных',USER());

END

Рисунок 14 создали пользователей и выдали им привелегии

Рисунок 15 проверка работы привелегий

Рисунок 16 Создали представление, в котором только имя и возраст

Рисунок 17 Проверили, что выводятся только имена и возраст

Рисунок 5 Реализовали транзакцию

Рисунок 6 Вывели привилегии созданного в транзакции пользователя

Рисунок 20 Создали хранимую процедуру

Рисунок 7 Вызвали хранимую процедуру

Рисунок 22 Вывели полученные значения

Рисунок 23 Проверили успешное выполнение шифрования процедурой

Текст хранимой процедуры

CREATE DEFINER=`root`@`localhost` PROCEDURE `Crypt_comm_table`(IN Crypt_key VARCHAR(45))

BEGIN

DECLARE C_comm_id INT;

DECLARE C_nick VARCHAR(50);

DECLARE C_comment VARCHAR(50);

DECLARE done INT default 0;

DECLARE Crypt_cursor cursor for SELECT * FROM lab3.comment;

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done =1;

DROP TABLE IF EXISTS lab3.crypto_comm;

CREATE TABLE crypto_comm (

id INT NOT NULL AUTO_INCREMENT,

nick VARBINARY(200) NOT NULL,

`comment` VARBINARY(200) NOT NULL,

PRIMARY KEY (id) )

ENGINE=InnoDB AUTO_INCREMENT=1;

OPEN Crypt_cursor;

REPEAT FETCH Crypt_cursor INTO C_comm_id,C_nick,C_comment;

IF NOT done THEN

INSERT INTO crypto(id,nick,`comment`)

VALUES(C_comm_id,AES_ENCRYPT(C_nick,Crypt_key),AES_ENCRYPT(C_comment,Crypt_key));

END IF;

UNTIL done END REPEAT;

SELECT * FROM crypto_comm;

CLOSE Crypt_cursor;

END

Рисунок 24 Настроили подключение по ssh для админа

Рисунок 25 Включили general_log

2.8 Если поддерживается, попробовать реализовать подключение к серверу БД с использованием сертификатов (необязательно, + 2 доп балла)

Рисунок 268 Настроили подключение с использованием SSL

Рисунок 27 Сообщение об успешном включении SSL

Часть 3 3. Выбрать на свое усмотрение использование какой-либо угрозы БД

Если не проверять входные данные и не подготовить операторы должным образом, вместе с запросом на ваш сервер могут проникнуть ненадежные данные, которые приведут к выполнению вредоносного кода вашим интерпретатором. Это называется инъекцией. Злоумышленник может ввести код (SQL, XXE, OS, LDAP и других типов) в форму на сайте, поэтому важно настроить фильтрацию входящей информации.

Рисунок 28 вставка данных

Рисунок 29 вывод бд

Рисунок 30 проверка уязвимости кода (вставка скрипта)

Рисунок 31 уязвимость не сработала

Вывод

В ходе выполнения данной лабораторной работы мы изучили параметры безопасности MySQL, разграничение доступа с использованием представлений, учетных записей пользователей, а также изучили триггеры, хранимые процедуры, транзакции. Изучили XSS-уязвимость и защитились от нее.

Соседние файлы в предмете Защита баз данных