Добавил:
У меня есть канал с приколами: t.me/urmipies_garbage Подпишитесь пж-пж!!!! Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
3
Добавлен:
02.09.2026
Размер:
439 Кб
Скачать
Рисунок4 — Схема проверки установки межсетевого экрана
def firewall_working_check():
if subprocess.call(f"ping {BLOCKED_ADDRESS} {'-c' if os.name ==
'posix' else '-n'} 1", shell=True) == 0:
return "Межсетевой экран функционирует правильно"
else:
return "Межсетевой экран функционирует неверно, или не
функционирует"
Листинг4 — Функция проверки работы межсетевого экрана

2.1.4.Проверка работоспособности антивируса

Для проверки работоспособности антивируса используется тестовый
файл EICAR. Функция создаёт тестовый файл, ждёт некоторое время и
проверяет существование файла. Если файл удалён, то это означает, что
антивирус среагировал на файл и переместил его в карантин. Если файл
остался, то это означает, что антивирус работает неправильно. Схема
функции представлена на рисунке 5. Исходный код представлен в листниге
5
11
Рисунок5 — Схема проверки установки антивируса
def antivirus_working_check():
file_name = "EICAR-STANDARD-ANTIVIRUS-TEST-FILE.txt"
with open(file_name, "w") as file:
file.write(r'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-
ANTIVIRUS-TEST-FILE!$H'+r'+H*')
file.close()
time.sleep(5)
if not os.path.isfile(file_name):
return "Антивирус функционирует правильно"
else:
os.remove(file_name)
return "Антивирус функционирует неверно, или не
функционирует"
Листинг5 — Функция проверки работоспособности антивируса
12

2.2.Графический интерфейс

Графический интерфейс приложения написан с использованием
кроссплатформенной библиотеки tkinter. Интерфейс приложения
представлен на рисунке 6
Рисунок6 — Открытое окно приложения
Пользователь может провести выбранные проверки используя
предоставленные кнопки. Частичное исполнение проверок представлено на
рисунке 7
13
Рисунок7 — Открытое окно с частично выполненными проверками
В любой момент пользователь может сохранить результаты проверок
в файл. После сохранения результаты сбрасываются, чтобы избежать
ситуации, что при повторной проверке, будут выведены неверные
результаты.
На рисунке 8 представлено окно приложения со всеми проведёнными
тестами.
14
Рисунок8 — Открытое окно со всеми выполненными проверками

2.2.1.Вызов проверок

Для вызова проверок в интерфейсе представлен набор кнопок, при
нажатии которых вызываются соответствующие проверки. Блок схема
действий при нажатии кнопки представлена на рисунке 9
15
Рисунок9 — Схема работы метода нажатия кнопки
За связь кнопок с командами и передачу результатов команды в
текстовые поля отвечает отдельный класс OptionRow. Исходый код класса
представлен в листинге 8
При нажатии кнопки происходит вызов соответствующей функции, а
текстовое поле рядом с кнопкой получает вывод функции. Также для сбора
информации используется встроенный метод __str__, который представляет
объект как строку вида «Название кнопки: значение текстового поля»
Кнопки объединены в 2 блока - блок проверок межсетевого экрана и
блок проверок антивируса. Для этого в коде основного класса графического
интерфейса представлены функция создания блока (листинг 7), которая
получает название блока, название кнопок и соответствующие этим
кнопкам функции. Пример вызова функции представлен в листинге 6
16
def create_block(self, title, buttons):
block_frame = ttk.LabelFrame(self.main_frame, text=title,
padding=10)
block_frame.pack(fill=tk.X, pady=5, padx=5)
for button in buttons:
row = OptionRow(block_frame, *button)
row.text_var.trace_add("write", lambda *args:
self.update_output_text())
self.options.append(row)
Листинг6 — Функция создания блока с кнопками
create_block("Проверка антивирусного ПО",
[("Проверка наличия антивирусного ПО", antivirus_installed_check),
("Тестирование антивирусного ПО", antivirus_working_check),])
Листинг7 — Пример создания блока
17
class OptionRow:
def __init__(self, parent, name, action):
self.name = name
self.frame = tk.Frame(parent)
self.frame.pack(fill=tk.X, pady=2)
self.action = action
self.text_var = tk.StringVar()
button = ttk.Button(
self.frame,
text=name,
command=lambda: self.text_var.set(action())
)
button.pack(side=tk.LEFT, padx=(0, 10))
entry = ttk.Entry(self.frame, textvariable= self.text_var,
width=30)
entry.pack(side=tk.LEFT, fill=tk.X, expand=True)
def __str__(self):
text_value = self.text_var.get()
return f"{self.name.replace('\n', ' ')}: {text_value if
text_value else 'Не проводилось'}"
Листинг8 — Исходный код класса OptionRow

2.2.2.Вывод результатов, сохранение в файл

Помимо вывода результатов в текстовые поля рядом с кнопками они
так же переносятся в общее поле вывода. Общее текстовое поле обновляется
автоматически, при изменении любого текстового поля (код функции
представлен в листинге 9).
18
def update_output_text(self):
self.output_text.delete(1.0, tk.END)
self.output_text.insert(tk.INSERT, "\n".join([str(option) for
option in self.options]))
Листинг9 — Функция обновления общего текстового поля
При сохранении результатов в файл все результаты сбрасываются.
Схема операции сохранения представлена на рисунке 10. Исходный код
функции представлен в листинге 10
Рисунок10 — Схема сохранения результатов в файл
def save_to_file(self):
with open("security_check_results.txt", "w") as file:
file.write(str(self.output_text.get(1.0, tk.END)))
for option in self.options:
option.text_var.set("")
self.update_output_text()
Листинг10 — Функция сохранения в файл
19

Заключение

В рамках курсового проекта были разработаны и протестированы
специализированные модули, предназначенные для мониторинга
работоспособности ключевых средств защиты компьютера — антивирусного
программного обеспечения и межсетевого экрана. Работа состояла
из двух основных этапов: теоретического исследования принципов
функционирования данных защитных механизмов и их практической
программной реализации для контроля текущего состояния.
Теоретическое изучение позволило глубоко раскрыть принципы
действия и защитные механизмы:
–Межсетевые экраны обеспечивают базовый уровень сетевой
безопасности за счёт фильтрации и контроля сетевого трафика,
блокируя несанкционированный доступ.
–Антивирусные решения защищают систему от вредоносных
программ, используя для их обнаружения сигнатурный и
эвристический анализ.
На основе полученных знаний были разработаны соответствующие
диагностические модули. Практическая реализация программного
обеспечения обеспечивает пользователя инструментом для проверки
наличия и корректной работы средств защиты. Функционал созданного
решения включает:
–Проверку активности интернет-подключения;
–Обнаружение и диагностику состояния межсетевого экрана;
–Проверку факта установки антивирусного программного
обеспечения;
–Тестирование реакции антивируса с использованием тестового
файла EICAR.
20
Соседние файлы в папке Отчет (пдф и исходники тайпст)