Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа.docx
Скачиваний:
0
Добавлен:
26.04.2026
Размер:
548.34 Кб
Скачать
    1. Модуль проверки работоспособности межсетевого экрана

Функция проверки работоспособности межсетевого экрана проверяет способность системы блокировать потенциально опасные веб-ресурсы путём отправки HTTP-запроса к тестовому URL-адресу. По умолчанию запрос отправляется по адресу "http://malware.testing.google.test/testing/malware/", который предназначен для тестирования систем безопасности. В случае обнаружения блокировки тестового URL выводится сообщение "Работает (обнаружена блокировка)", что свидетельствует об эффективной работе межсетевого экрана. В случае отсутствия блокировки выводится сообщение "Не работает (нет блокировки)", указывающее на необходимость проверки настроек безопасности. Блок схема данной функции представлена на рисунке 1.3.1. Работа модуля представлена на рисунках 1.3.2 – 1.3.3. Программный код модуля представлен в листинге 3.

Рисунок 1.3.1 – Блок схема модуля проверки работоспособности межсетевого экрана

Рисунок 1.3.2 - Окно проверки работоспособности

Рисунок 1.3.3 – Окно результатов работы программы

Листинг 3 – Программный код модуля проверки работоспособности межсетевого экрана

def check_firewall_working(self):

def task():

self.start_progress()

self.update_status("Проверка эффективности МЭ...")

# Самая важная тестовая URL-адрес

test_url = "http://malware.testing.google.test/testing/malware/"

blocked = False

try:

# 1. Устанавливаем статус проверки

self.update_status(f"Проверка тестового URL...")

# 2. Выполняем HTTP-запрос с таймаутом

response = requests.get(test_url, timeout=10, verify=False)

# 3. Анализируем ответ

if response.status_code == 200:

# URL доступен - файрволл не заблокировал

status = "Файрволл не заблокировал URL"

blocked = False

elif response.status_code in [403, 407]:

# Признаки блокировки файрволлом

status = "Доступ заблокирован файрволлом"

blocked = True

else:

# Другие статусы

status = f"Пропущено (статус: {response.status_code})"

blocked = False

except requests.exceptions.ConnectionError:

# Ошибка соединения - вероятно блокировка

status = "Доступ заблокирован (ошибка соединения)"

blocked = True

except requests.exceptions.Timeout:

# Таймаут - возможная блокировка

status = "Таймаут (возможная блокировка)"

blocked = True

except requests.exceptions.HTTPError as e:

# HTTP ошибки

if e.response.status_code in [403, 407]:

status = "Доступ заблокирован файрволлом"

blocked = True

else:

status = f"HTTP ошибка: {e.response.status_code}"

blocked = False

except Exception as e:

# Другие исключения

status = f"Ошибка проверки: {str(e)}"

blocked = False

# Логируем результат

print(f"URL: {test_url} - {status}")

# 4. Анализ результата

if blocked:

self.firewall_working = "Работает (обнаружена блокировка)"

else:

self.firewall_working = "Не работает (нет блокировки)"

self.stop_progress()

self.update_status(f"Проверка завершена: {status}")

self.update_results_table()

threading.Thread(target=task).start()

Соседние файлы в предмете Методы и средства защиты информации в компьютерных сетях