Куда я попал?
SECURITM это система для корпоративных служб информационной безопасности, которая автоматизирует ключевые процессы управления: контроль соответствия требованиям, управление рисками, учет активов, планирование работ, задачи, технические уязвимости, опросы и т.д.
SECURITM помогает построить и управлять ИСПДн, КИИ, ГИС, СМИБ/СУИБ, банковскими системами защиты.
А еще SECURITM это место для обмена опытом в рамках сообщества служб безопасности.
 

Контроль целостности файла hosts

Цель: предотвращение подделки злоумышленником доменных имен.

hosts - файл в OС, содержащий базу данных доменных имен и используемый при их трансляции в сетевые адреса узлов. Запрос к этому файлу имеет приоритет перед обращением к DNS-серверам. Подробнее о файле hosts
Расположение для ОС Windows: %WinDir%\System32\Drivers\Etc
Возможно несанкционированное изменение содержимого файла, что может привести к подделке IP адресов для локальных и публичных узлов (фарминг).
Необходимо контролировать целостность файлов hosts в инфраструктуре. Для этого осуществлять их регулярный аудит на всех ПК/Серверах и автоматически уведомлять подразделение по информационной безопасности об изменениях в файлах hosts.
Возможны следующие варианты реализации защитной меры:
  1. С использованием сканера уязвимостей
  2. С использованием ПО для контроля целостности
  3. Скриптом (пример реализации в комментариях)
    В заметке приведен пример скрипта для контроля файлов hosts
Инструкция
При поступлении уведомления об изменениях в файле hosts необходимо:
  1. Проанализировать изменения
  2. Если изменения носят вредоносный характер:
    1. Провести антивирусную проверку хоста
    2. Выявить источник изменений
    3. Удалить изменения или заменить файл hosts на типовой
  3. Если изменения сделаны для обеспечения рабочего процесса - добавить изменение в исключения чтобы убрать ложные сработки в будущем.
Рекомендации к заполнению карточки:
  • Создать шаблон регулярной задачи по контролю изменений файла hosts;
  • Создать эталонный файл и прикрепить его в заметке к защитной мере. 
Классификация
Тип
Техническая ? Технические (логические) меры Технологические решения, реализуемые для снижения вероятности реализации рисков безопасности.
Детективная ? Детективные меры Применяются для выявления вредоносных действий, нарушений и инцидентов. Не останавливают и не смягчают попытки вторжения, но сообщают о них.
Реализация
Автоматически
Периодичность
Ежедневно
Ответственный
Не определено
Инструменты
Не определено

Исполнение требований

SWIFT Customer Security Controls Framework v2022:
2 - 2.3 System Hardening
2.3 System Hardening

Связанные риски

Риск Угроза Уязвимость Тип актива Связи
Заражение вредоносным программным обеспечением из-за возможности подмены информации об IP адресах (фарминг) в ОС Windows
Доступность Конфиденциальность Отказ в обслуживании Повышение привилегий Раскрытие информации Целостность Искажение
Заражение вредоносным программным обеспечением
Доступность Конфиденциальность Отказ в обслуживании Повышение привилегий Раскрытие информации Целостность Искажение
Возможность подмены информации об IP адресах (фарминг) ОС Windows 2
Раскрытие ключей (паролей) доступа из-за возможности подмены информации об IP адресах (фарминг) в ОС Windows
Конфиденциальность Повышение привилегий Раскрытие информации Подмена пользователя
Раскрытие ключей (паролей) доступа
Конфиденциальность Повышение привилегий Раскрытие информации Подмена пользователя
Возможность подмены информации об IP адресах (фарминг) ОС Windows 2

Комментарии 1

1 год назад
Пример поиска несанкционированных записей в файле hosts на ПК Windows через скрипт 
@echo off

set "exclude=127.0.0.1 *.exclude-site1.com,127.0.0.1 *exclude-site2.com"

if not "%~1" == "" set "exclude=%~1"

set "hosts=%SystemRoot%\System32\drivers\etc\hosts"
if not exist "%hosts%" echo Error, "%hosts%" file not exists! & exit /b 1

call :excludes "%exclude%"

for /f "eol=# tokens=*" %%a in ('type "%hosts%"') do for /f "tokens=1,2" %%b in ("%%a") do if not "%%b" == "" if not "%%c" == "" ^
if not defined _excl^|%%b_%%c^| echo %%b %%c

exit /b 0

:excludes
if "%~1" == "" exit /b
for /f "tokens=1* delims=," %%a in ("%~1") do for /f "tokens=1,2" %%c in ("%%a") do (
	set "_excl|%%c_%%d|=1"
	call :excludes "%%b"
)
exit /b