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

Резервное копирование и архивирование конфигураций сетевого оборудования

Цель: сохранение возможности быстрого восстановления конфигурации сетевого оборудования (при сбросе, сбое или замене оборудования).

С заданной периодичностью со всего сетевого оборудования (коммутаторов и маршрутизаторов) собирается текущая конфигурация.
Пример реализации для оборудования Cisco - в заметке.
Собираются:
  1. Конфигурация (show running-config view full)
  2. Таблицы соединений с другим коммутационным оборудованием (show cdp neighbors detail)
  3. Таблицы розданных IP по DHCP (show ip dhcp binding)
  4. Таблицы подключенных MAC адресов (show mac address-table)
Глубина хранения архивных версий: N лет.
Место хранения резервных копий: XXX.
Примечание: доступ к месту хранения скрипта и резервных копий должен быть ограничен.

Проверка работоспособности защитной меры:
  1. Проверить, что список проверяемых коммутаторов соответствует актуальному
  2. Проверить, что подключения проходят успешно (смотреть логи отработки скрипта);
  3. Проверить, что конфигурации собираются успешно (проверить каталог с результатами).
Рекомендации к заполнению карточки:
  • Описать методологию выполнения, хранения и проверки резервных копий конфигураций;
  • Добавить шаблон регулярной задачи на выполнение и проверку резервных копий конфигураций;
  • Если ведется реестр скриптов - привязать соответствующий скрипт к карточке как инструмент.
Область действия: Вся организация
Классификация
Тип
Восстановительная ?
Реализация
Автоматически
Периодичность
Еженедельно
Ответственный
Не определено
Инструменты
Не определено

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

Приказ ФСТЭК России № 21 от 18.02.2013 "Состав и содержание мер по обеспечению безопасности персональных данных, необходимых для обеспечения каждого из уровней защищенности персональных данных":
ОЦЛ.3 ОЦЛ.3 Обеспечение возможности восстановления программного обеспечения, включая программное обеспечение средств защиты информации, при возникновении нештатных ситуаций
ГОСТ Р № ИСО/МЭК 27001-2021 от 01.01.2022 "Информационная технология. Методы и средства обеспечения безопасности. Системы менеджмента информационной безопасности. Требования - Приложение А":
A.12.3.1
A.12.3.1 Резервное копирование информации 
Мера обеспечения информационной безопасности: В соответствии с политикой резервирования следует регулярно создавать и проверять резервные копии информации, программного обеспечения и образов системы 
CIS Critical Security Controls v7.1 (SANS Top 20):
CSC 10.1 CSC 10.1 Ensure Regular Automated BackUps
Ensure that all system data is automatically backed up on a regular basis.
Приказ ФСТЭК России № 17 от 11.02.2013 "Требования о защите информации, не составляющей государственную тайну, содержащейся в государственных информационных системах":
ОЦЛ.3 ОЦЛ.3 Обеспечение возможности восстановления программного обеспечения, включая программное обеспечение средств защиты информации, при возникновении нештатных ситуаций
SWIFT Customer Security Controls Framework v2022:
2 - 2.3 System Hardening
2.3 System Hardening
Приказ ФСТЭК России № 31 от 14.03.2014 "Состав мер защиты информации и их базовые наборы для соответствующего класса защищенности автоматизированной системы управления":
ОДТ.6 ОДТ.6 Обеспечение возможности восстановления программного обеспечения при нештатных ситуациях
ДНС.5 ДНС.5 Обеспечение возможности восстановления информационной (автоматизированной) системы в случае возникновения нештатных ситуаций
NIST Cybersecurity Framework (EN):
PR.IP-4 PR.IP-4: Backups of information are conducted, maintained, and tested
Приказ ФСТЭК России № 239 от 25.12.2017 "Состав мер по обеспечению безопасности для значимого объекта соответствующей категории значимости":
ДНС.5 ДНС.5 Обеспечение возможности восстановления информационной (автоматизированной) системы в случае возникновения нештатных ситуаций

Заметки 1

Скрипт архивирования конфигураций Cisco

В файл cisco_ip_list.txt добавить список устройств, в тело скрипта прописать пароль доступа, настроить запуск скрипта по расписанию через Планировщик задач.

# PowerShell
#iex (New-Object Net.WebClient).DownloadString("https://gist.github.com/darkoperator/6152630/raw/c67de4f7cd780ba367cccbc2593f38d18ce6df89/instposhsshdev")
#Get-Command -Module Posh-SSH

$username = "cisco_audit"
$password = "[PAST PASSWORD HERE, USE READ ONLY USER]" | ConvertTo-SecureString -asPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential($username,$password)

#$cred = Get-Credential

$ssh_hosts = Get-Content c:\scripts\Cisco\cisco_ip_list.txt

[array]$bad_hosts = $null

$today = "$((get-date).Year)-$((get-date).month)-$((get-date).day)"
foreach ($ssh_host in $ssh_hosts)
{
    $data_conf = ""
    $data_cdp = ""
    write-output $ssh_host

    if(!($SSHSession = New-SSHSession -ComputerName $ssh_host -AcceptKey -Force -Credential $Cred -Verbose -ErrorAction SilentlyContinue -WarningAction SilentlyContinue))
    {
        write-output "not connected"
        $bad_hosts += $ssh_host
        continue
    }

    $dir = "C:\scripts\Cisco\result\$today\$($ssh_host)"
    if (!(Test-Path $dir))
    {
        mkdir $dir
    }
    else
    {
        #Remove-SSHSession -SessionId 0
        #continue
    }

    $SSH = $SSHSession | New-SSHShellStream

    $SSH.WriteLine( "enable" )
    sleep 1
    $SSH.WriteLine("cisco")
    sleep 1
    $SSH.WriteLine("terminal length 0")
    sleep 1
    $SSH.read()
    
    $SSH.WriteLine("show running-config view full")
    sleep 8
    $data_conf = $SSH.read()
    $data_conf > $dir\config.txt
        
    $SSH.WriteLine("show cdp neighbors detail")
    sleep 1
    $data_cdp = $SSH.read()
    $data_cdp > $dir\cdp.txt

    $SSH.WriteLine("show ip dhcp binding")
    sleep 2
    $data_conf = $SSH.read()
    $data_conf > $dir\dhcp_bind.txt

    $SSH.WriteLine("show mac address-table")
    sleep 2
    $data_conf = $SSH.read()
    $data_conf > $dir\mac.txt

    Remove-SSHSession -SessionId 0
}

Get-SSHSession

$sshSession | Remove-SSHSession

if(Test-Path "c:\scripts\Cisco\result\cisco_ip_list_bad.txt")
{
    rm c:\scripts\Cisco\result\cisco_ip_list_bad.txt
}
$bad_hosts > c:\scripts\Cisco\result\cisco_ip_list_bad.txt