- •Введение
- •1 Реализация программного обеспечения
- •1.1 Модуль проверки подключения к интернету
- •Модуль проверки установленного по
- •Модуль проверки работоспособности межсетевого экрана
- •1.4 Модуль проверки работоспособности антивируса
- •1.5 Модуль сохранения результатов в файл
- •Заключение
- •Список использованных источников
- •Приложение а
1.4 Модуль проверки работоспособности антивируса
Функция проверки работоспособности антивируса тестирует способность системы обнаружения вредоносного программного обеспечения путём создания тестового файла EICAR. По умолчанию файл создаётся на рабочем столе пользователя с именем "eicar_test.txt", содержащий специальную тестовую строку, которая распознаётся антивирусами как потенциальная угроза. После создания файла функция ожидает 3 секунды, предоставляя антивирусу время для анализа и реакции на потенциальную угрозу. По истечении времени ожидания выполняется проверка состояния тестового файла. По результатам проверки оценивается реакция антивирусной системы. В случае, если файл был удалён, выводится сообщение "Работает (файл удален)", что свидетельствует об активной работе антивируса. Если файл остался на диске, но его содержимое было изменено, выводится сообщение "Работает (файл изменен)". При невозможности доступа к файлу из-за блокировки антивирусом выводится сообщение "Работает (файл заблокирован)". Если файл остался без изменений, выводится сообщение "Не реагирует на угрозы", указывающее на возможные проблемы в работе антивирусной защиты. Блок схема данной функции представлена на рисунке 1.4.1. Работа модуля представлена на рисунках 1.4.2 – 1.4.3. Программный код модуля представлен в листинге 4.
Рисунок 1.4.1 – Блок схема модуля проверки работоспособности антивируса
Рисунок 1.4.2 - Окно проверки работоспособности
Рисунок 1.4.3 – Окно результатов работы программы
Листинг 4 – Программный код модуля проверки работоспособности антивируса
def check_antivirus_working(self):
def task():
self.start_progress()
self.update_status("Проверка работоспособности АВ...")
try:
# Создание тестового EICAR файла
eicar_test_string = r"X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*"
desktop_path = os.path.join(os.path.expanduser('~'), 'Desktop')
test_file_path = os.path.join(desktop_path, 'eicar_test.txt')
# Записываем тестовый файл на рабочий стол
with open(test_file_path, 'w') as f:
f.write(eicar_test_string)
# Даем время антивирусу на реакцию
import time
time.sleep(3)
if os.path.exists(test_file_path):
try:
with open(test_file_path, 'r') as f:
content = f.read()
if content == eicar_test_string:
self.antivirus_working = "Не реагирует на угрозы"
else:
self.antivirus_working = "Работает (файл изменен)"
except PermissionError:
self.antivirus_working = "Работает (файл заблокирован)"
except Exception as e:
self.antivirus_working = f"Ошибка чтения: {str(e)}"
# Пытаемся удалить файл с рабочего стола
try:
os.remove(test_file_path)
except:
pass
else:
self.antivirus_working = "Работает (файл удален)"
except Exception as e:
self.antivirus_working = f"Ошибка проверки: {str(e)}"
self.stop_progress()
self.update_status("Проверка АВ завершена")
self.update_results_table()
threading.Thread(target=task).start()
