
- •Содержание
- •Глава 1. Принципы функционирования межсетевых экранов и антивирусного программного обеспечения 6
- •Глава 2. Разработка и описание комплексной системы проверки средств обеспечения безопасности пк 10
- •Введение
- •Глава 1. Принципы функционирования межсетевых экранов и антивирусного программного обеспечения
- •Межсетевые экраны
- •Принципы функционирования межсетевых экранов
- •Виды межсетевых экранов
- •Антивирусное программное обеспечение
- •1.2.1. Принципы функционирования антивирусного программного обеспечения
- •1.2.2. Основные функции антивирусного программного обеспечения
- •Глава 2. Разработка и описание комплексной системы проверки средств обеспечения безопасности пк
- •2.1. Постановка задачи
- •2.2. Описание алгоритмов модулей в виде блок-схем
- •2.3. Программная реализация алгоритмов модулей
- •2.3.1. Модуль для проверки наличия соединения с Интернетом
- •2.3.2. Модуль для проверки наличия межсетевого экрана
- •2.3.3. Модуль для проверки работоспособности межсетевого экрана
- •2.3.4. Модуль для проверки наличия установленного антивирусного программного обеспечения
- •2.3.5. Модуль для проверки работоспособности антивирусного программного обеспечения
- •2.3.6. Модуль для тестирования антивирусного программного обеспечения
- •2.3.7. Модуль для сохранения результатов проверки
- •2.3.8. Модуль для отображения результатов проверки
- •2.3.9. Модуль для завершения работы программы
- •2.3.10. Модуль для добавления результатов
- •2.3.11. Модуль для обработки исключений
- •2.3.12. Модуль для создания тела программы
- •2.3.13. Модуль для создания графического интерфейса программы
- •2.4. Результаты работы программы
- •Заключение
- •Список использованных источников
- •Приложения Приложение а
2.3. Программная реализация алгоритмов модулей
2.3.1. Модуль для проверки наличия соединения с Интернетом
Проверка наличия соединения с Интернетом выполняется при нажатии на кнопку «Проверить подключение к Интернету». Проверка реализуется с использованием команды пинг к IP-адресу 8.8.8.8 (Google DNS) с тайм-аутом в 3000 миллисекунд. Если пинг успешен, в текстовом поле txtInternetStatus выводится сообщение «Соединение с Интернетом установлено». В случае неудачной попытки пинга в том же текстовом поле отображается сообщение «Соединение с Интернетом отсутствует». Исключения, возникающие во время проверки, обрабатываются с помощью метода ExecuteWithExceptionHandling, что предотвращает сбои в работе программы. Для этого выполняется программный код, представленный в листинге 1.
Листинг 1 – Программный код модуля для проверки наличия соединения с Интернетом
private void btnCheckInternetConnection_Click(object sender, EventArgs e)
{
string result = ExecuteWithExceptionHandling(CheckInternetConnectionStatus);
AppendResult(result, txtInternetStatus);
}
private string CheckInternetConnectionStatus()
{
using (var ping = new Ping())
{
PingReply reply = ping.Send("8.8.8.8", 3000);
return reply.Status == IPStatus.Success ? "Соединение с Интернетом установлено." : "Соединение с Интернетом отсутствует.";
}
}
2.3.2. Модуль для проверки наличия межсетевого экрана
Проверка наличия межсетевого экрана выполняется при нажатии на кнопку «Проверить наличие межсетевого экрана». Проверка осуществляется с использованием объекта INetFwProfile, который предоставляет доступ к настройкам межсетевого экрана Windows. Метод GetFirewallProfile запрашивает текущий профиль политики локального межсетевого экрана. Если межсетевой экран включен, в текстовом поле txtFirewall отображается сообщение «Межсетевой экран установлен». В случае, если межсетевой экран отключен или отсутствует, выводится сообщение «Межсетевой экран не установлен». Исключения, возникающие во время выполнения проверки, обрабатываются с помощью метода ExecuteWithExceptionHandling, что предотвращает сбои в работе программы. Для этого выполняется программный код, представленный в листинге 2.
Листинг 2 – Программный код модуля для проверки наличия межсетевого экрана.
private void btnCheckFirewall_Click(object sender, EventArgs e)
{
string result = ExecuteWithExceptionHandling(CheckFirewallStatus);
AppendResult(result, txtFirewall);
}
private string CheckFirewallStatus()
{
INetFwProfile fwProfile = GetFirewallProfile();
return fwProfile != null && fwProfile.FirewallEnabled ? "Межсетевой экран включен." : "Межсетевой экран отключен.";
}
private INetFwProfile GetFirewallProfile()
{
INetFwMgr fwMgr = (INet - FwMgr)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwMgr"));
return fwMgr.LocalPolicy.CurrentProfile;
}
2.3.3. Модуль для проверки работоспособности межсетевого экрана
Проверка работоспособности межсетевого экрана осуществляется при нажатии на кнопку «Проверить работоспособность межсетевого экрана». Проверка выполняется с помощью объекта INetFwPolicy2, предоставляющего доступ к настройкам профилей межсетевого экрана Windows. Метод CheckFirewallOperationalStatus проверяет, включены ли доменный, частный и публичный профили межсетевого экрана, а также разрешены ли исключения для входящих соединений.
Если доменный профиль включен, в результатах проверки выводится «Доменный профиль: Включен», в противном случае — «Доменный профиль: Отключен». Аналогично отображается статус частного и публичного профилей. Также проверяется, разрешены ли исключения для входящих соединений. В случае их разрешения выводится «Исключения для входящих соединений: Разрешены», в противном случае — «Запрещены».
Результат проверки отображается в текстовом поле txtFirewallStatus. Исключения, возникающие во время выполнения проверки, обрабатываются методом ExecuteWithExceptionHandling, предотвращая сбои в работе программы. Для этого выполняется программный код, представленный в листинге 3.
Листинг 3 – Программный код модуля для проверки работоспособности межсетевого экрана.
private void btnCheckFirewallStatus_Click(object sender, EventArgs e)
{
string result = ExecuteWithExceptionHan - dling(CheckFirewallOperationalStatus);
AppendResult(result, txtFirewallStatus);
}
private string CheckFirewallOperationalStatus()
{
Type policyType = Type.GetTypeFromProgID("HNetCfg.FwPolicy2");
INetFwPolicy2 fwPolicy = (INetFwPoli - cy2)Activator.CreateInstance(policyType);
bool isDomainEnabled = fwPoli - cy.FirewallEnabled[NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_DOMAIN];
bool isPrivateEnabled = fwPoli - cy.FirewallEnabled[NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PRIVATE];
bool isPublicEnabled = fwPoli - cy.FirewallEnabled[NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PUBLIC];
bool areExceptionsAllowed = !fwPoli - cy.BlockAllInboundTraffic[NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_DOMAIN] &&
!fwPoli - cy.BlockAllInboundTraffic[NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PRIVATE] &&
!fwPoli - cy.BlockAllInboundTraffic[NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PUBLIC];
return $"Статус межсетевого экрана:\n" +
$"- Доменный профиль: {(isDomainEnabled ? "Включен" : "Отключен")}\n" +
$"- Частный профиль: {(isPrivateEnabled ? "Включен" : "Отключен")}\n" +
$"- Публичный профиль: {(isPublicEnabled ? "Включен" : "Отключен")}\n" +
$"- Исключения для входящих соединений: {(areExceptionsAllowed ? "Разрешены" : "Запрещены")}\n";
}