
- •Введение
- •Принципы функционирования межсетевых экранов и антивирусного программного обеспечения
- •Разработка модуля проверки наличия мэ и ав
- •Разработка модуля проверки работоспособности межсетевого экрана
- •Разработка модуля проверки работоспособности антивирусного по
- •Разработка модуля вывода результатов работы приложения
- •Заключение
- •Список использованных источников
- •Приложения
Заключение
В ходе выполнения курсовой работы была достигнута основная цель — углубление знаний в области информационной безопасности с акцентом на изучение антивирусных систем и межсетевых экранов. Практическая и теоретическая части работы позволили систематизировать понимание современных механизмов защиты данных, а также оценить их роль в противодействии киберугрозам.
Важным результатом исследования стало подтверждение гипотезы о том, что эффективная защита информационных систем требует комплексного подхода. Антивирусное ПО, как инструмент для обнаружения и нейтрализации вредоносных программ, дополняется функционалом межсетевых экранов, которые контролируют сетевой трафик и блокируют несанкционированный доступ.
Особую ценность имел практический этап: моделирование угроз и тестирование защитных механизмов в контролируемой среде. Это не только закрепило теоретические знания, но и продемонстрировало, насколько критически важны регулярное обновление баз сигнатур антивирусов и своевременная настройка правил фильтрации в межсетевых экранах.
В процессе выполнения задания на курсовую работу было разработано приложение, которое проверяет наличие соединения с интернетом, а также работу антивируса и межсетевого экрана.
В качестве среды разработки выбран терминал операционной системы 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