- •Введение
- •1 Реализация программного обеспечения
- •1.1 Модуль проверки подключения к интернету
- •Модуль проверки установленного по
- •Модуль проверки работоспособности межсетевого экрана
- •1.4 Модуль проверки работоспособности антивируса
- •1.5 Модуль сохранения результатов в файл
- •Заключение
- •Список использованных источников
- •Приложение а
Модуль проверки работоспособности межсетевого экрана
Функция проверки работоспособности межсетевого экрана проверяет способность системы блокировать потенциально опасные веб-ресурсы путём отправки 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()
