Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МиСЗИвКС_Курсовая работа_Архангельский М.В. БСТ2154.docx
Скачиваний:
2
Добавлен:
21.03.2025
Размер:
741.85 Кб
Скачать

Заключение

В ходе выполнения курсовой работы была достигнута основная цель — углубление знаний в области информационной безопасности с акцентом на изучение антивирусных систем и межсетевых экранов. Практическая и теоретическая части работы позволили систематизировать понимание современных механизмов защиты данных, а также оценить их роль в противодействии киберугрозам.

Важным результатом исследования стало подтверждение гипотезы о том, что эффективная защита информационных систем требует комплексного подхода. Антивирусное ПО, как инструмент для обнаружения и нейтрализации вредоносных программ, дополняется функционалом межсетевых экранов, которые контролируют сетевой трафик и блокируют несанкционированный доступ.

Особую ценность имел практический этап: моделирование угроз и тестирование защитных механизмов в контролируемой среде. Это не только закрепило теоретические знания, но и продемонстрировало, насколько критически важны регулярное обновление баз сигнатур антивирусов и своевременная настройка правил фильтрации в межсетевых экранах.

В процессе выполнения задания на курсовую работу было разработано приложение, которое проверяет наличие соединения с интернетом, а также работу антивируса и межсетевого экрана.

В качестве среды разработки выбран терминал операционной системы Astra Linux, а язык программирования – Bash. В данной среде разработаны детализированные алгоритмы для различных модулей, предназначенных для мониторинга работы антивирусных программ и межсетевых экранов. Также был спроектирован пользовательский интерфейс приложения в виде меню выбора модулей.

Список использованных источников

1. Валади, Дж. 100% самоучитель Linux / Дж. Валади. - М.: Технолоджи-3000, 2022. — 336 c. 2. Водолазкий, В.В. Путь к Linux. Учебный курс / В.В. Водолазкий. - М.: СПб: Питер; Издание 3-е, 2021. — 400 c. 3. Кирх, О. LINUX для профессионалов. Руководство администратора сети / О. Кирх. — М.: СПб: Питер, 2017. — 368 c. 4. Колисниченко, Д.Н. Linux. Полное руководство / Д.Н. Колисниченко, Аллен, Питер В.. - М.: СПб: Наука и Техника, 2017. — 784 c.

5. Колисниченко, Д.Н. Самоучитель Linux. Установка, настройка, использование / Д.Н. Колисниченко. - М.: СПб: Наука и техника; Издание 5-е, стер., 2018. — 368 c.

6. Скловская, С.Л. Команды Linux. Справочник / С.Л. Скловская. - М.: СПб: ДиаСофт; Издание 2-е, перераб. и доп., 2022. — 720 c.

Приложения

Листинг 1. Программный код модуля проверки наличия соединения с Интернетом.

#!/bin/bash

# Отправляем один пакет с таймаутом 1 секунда и скрываем вывод

ping -c 1 -W 1 8.8.8.8

# Проверяем код возврата команды ping

if [ $? -eq 0 ]; then

echo "Интернет соединение активно"

else

echo "Отсутствует интернет соединение"

fi

Листинг 2. Программный код модуля проверки наличия МЭ и АВ.

#!/bin/bash

# Проверка фаервола UFW

check_ufw() {

echo -e "\n=== Проверка фаервола ==="

if dpkg -l ufw 2>/dev/null | grep -q '^ii'; then

echo "UFW установлен"

if systemctl is-active ufw >/dev/null; then

echo "UFW активен"

echo "Текущий статус:"

sudo ufw status | grep 'Status'

else

echo "UFW установлен, но служба не активна"

fi

else

echo "UFW не установлен"

fi

}

# Проверка Kaspersky Endpoint Security

check_kaspersky() {

echo -e "\n=== Проверка Kaspersky ==="

local kesl_path="/opt/kaspersky/kesl/bin/kesl-control"

if [ -f "$kesl_path" ]; then

echo "Kaspersky обнаружен"

if systemctl is-active kesl >/dev/null; then

echo "Служба Kaspersky активна"

else

echo "Служба Kaspersky не активна"

fi

else

echo "Kaspersky не обнаружен"

fi

}

# Проверка других антивирусов (только по пакетам)

check_other_av() {

echo -e "\n=== Проверка других антивирусов ==="

local found=0

declare -A antivirus=(

["ClamAV"]="clamav-daemon"

["Sophos"]="sav-protect"

["Comodo"]="cmdavd"

["ESET"]="ees"

["McAfee"]="mfeespd"

)

for av in "${!antivirus[@]}"; do

pkg=${antivirus[$av]}

if dpkg -l $pkg 2>/dev/null | grep -q '^ii'; then

echo "$av обнаружен (пакет: $pkg)"

found=1

if systemctl is-active $pkg >/dev/null 2>&1; then

echo "Служба активна"

else

echo "Служба не активна"

fi

fi

done

if [ $found -eq 0 ]; then

echo "Другие антивирусы не обнаружены"

fi

}

# Главная функция

main() {

check_ufw

check_kaspersky

check_other_av

}

# Запуск

main

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

#!/bin/bash

# Проверка базовой функциональности правил UFW

# Параметры теста

TEST_PORT=34567

TIMEOUT=2

TEST_IP=127.0.0.1

# Функция проверки доступности порта

check_port() {

nc -z -w $TIMEOUT $TEST_IP $1 >/dev/null 2>&1

return $?

}

# 1. Проверка блокировки случайного порта

echo "Тестирование блокировки порта $TEST_PORT..."

if check_port $TEST_PORT; then

echo "ОШИБКА: Порт $TEST_PORT доступен, но должен быть заблокирован!"

exit 1

fi

# 2. Проверка разрешенного порта (SSH по умолчанию)

DEFAULT_PORT=22

echo "Тестирование разрешенного порта $DEFAULT_PORT..."

if ! check_port $DEFAULT_PORT; then

echo "ОШИБКА: Порт $DEFAULT_PORT недоступен, но должен быть открыт!"

exit 1

fi

# 3. Проверка наличия правила для SSH

if ! ufw status | grep -qw $DEFAULT_PORT; then

echo "ПРЕДУПРЕЖДЕНИЕ: Правило для порта $DEFAULT_PORT не найдено"

fi

echo "Тест пройден: Базовые функции фильтрации работают"

exit 0

Листинг 4. Программный код модуля проверки работоспособности антивирусного ПО.

#!/bin/bash

# Настройки

TEST_DIR="/tmp"

TEST_FILE="${TEST_DIR}/eicar_test_$(date +%s).tmp"

EICAR='X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*'

KESL_BIN="/opt/kaspersky/kesl/bin/kesl-control"

LOG_FILE="/tmp/kesl_scan.log"

# Создаем тестовый файл

echo "${EICAR}" > "${TEST_FILE}" || {

echo "Ошибка создания файла: ${TEST_FILE}"

exit 1

}

echo "Тестовый файл создан: ${TEST_FILE}"

# Выполняем сканирование

echo "Запуск сканирования..."

"${KESL_BIN}" --scan-file "${TEST_FILE}" > "${LOG_FILE}" 2>&1

SCAN_RESULT=$?

# Анализ результатов

DETECTED=0

# 1. Проверка кода возврата (12 = угроза обнаружена)

if [ $SCAN_RESULT -eq 12 ]; then

echo "[Успех] Код возврата: угроза обнаружена"

DETECTED=1

fi

# 2. Проверка логов сканирования

if grep -q "EICAR-Test-File" "${LOG_FILE}"; then

echo "[Успех] Найдено в логах сканирования"

DETECTED=1

fi

# 3. Проверка карантина

if "${KESL_BIN}" --get-quarantine-list 2>/dev/null | grep -q "eicar_test_"; then

echo "[Успех] Файл в карантине"

DETECTED=1

fi

# 4. Проверка физического наличия файла

if [ ! -f "${TEST_FILE}" ]; then

echo "[Заметка] Файл был удален"

DETECTED=1

fi

# Финализация

if [ $DETECTED -eq 1 ]; then

echo "Тест пройден: угроза обнаружена"

# Автоматически удаляем файл только при успешном обнаружении

[ -f "${TEST_FILE}" ] && rm -f "${TEST_FILE}"

rm -f "${LOG_FILE}"

exit 0

else

echo -e "\n[Ошибка] Угроза не обнаружена!"

echo "Файл сохранен для анализа: ${TEST_FILE}"

echo "Лог сканирования: ${LOG_FILE}"

exit 1

fi

Листинг 5. Программный код модуля вывода результатов работы приложения

#!/bin/bash

# Определяем путь к директории со скриптами

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

# Функции для запуска скриптов

run_pingtest() {

echo "=== Запуск pingtest.sh ==="

"$SCRIPT_DIR/pingtest.sh"

echo "=========================="

}

run_nali4ie() {

echo "=== Запуск nali4ie.sh ==="

"$SCRIPT_DIR/nali4ie.sh"

echo "========================"

}

run_proverka_firewall() {

echo "=== Запуск proverka_firewall.sh ==="

"$SCRIPT_DIR/proverka_firewall.sh"

echo "================================"

}

run_rabota_antivirusa() {

echo "=== Запуск rabota_antivirusa.sh ==="

"$SCRIPT_DIR/rabota_antivirusa.sh"

echo "================================"

}

run_all() {

run_pingtest

run_nali4ie

run_proverka_firewall

run_rabota_antivirusa

}

# Функция отображения меню

show_menu() {

clear

echo "┌==============================================┐"

echo "│ МЕНЮ СКРИПТОВ │"

echo "├─────────────────────────────────────┤"

echo "│ 1. Модуль проверки наличия соединения с Интернетом │"

echo "│ 2. Модуль проверки наличия МЭ и АВ │"

echo "│ 3. Модуль проверки работоспособности межсетевого экрана │"

echo "│ 4. Модуль проверки работоспособности антивирусного ПО │"

echo "│ 5. Модуль вывода результатов работы приложения │"

echo "│ 0. Выход │"

echo "└─────────────────────────────────────┘"

}

# Основной цикл

while true; do

show_menu

read -p "Выберите действие [0-5]: " choice

case $choice in

1) run_pingtest ;;

2) run_nali4ie ;;

3) run_proverka_firewall ;;

4) run_rabota_antivirusa ;;

5) run_all ;;

0) exit 0 ;;

*) echo "Неверный выбор! Используйте цифры 0-5";;

esac

read -p "Нажмите Enter чтобы продолжить..."

done