Файл: Paul Troncone and Carl AlbingCybersecurity Ops with bashAttack, Defend, and Analyze from the.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.01.2024
Просмотров: 456
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
254 Часть IV • Администрирование систем обеспечения безопасности
Выводы
Важнейшим.аспектом.обеспечения.безопасности.системы.является.создание.поль- зователей.и.пользовательских.групп.и.управление.их.полномочиями..Старайтесь.
следовать.принципу.наименьших.привилегий.и.назначать.пользователям.только.
те.права,.которые.необходимы.для.выполнения.назначенных.им.заданий.
В.следующей.главе.мы.рассмотрим,.как.вносить.записи.в.журналы.Linux.и.Windows,.
чтобы.с.помощью.этих.записей.фиксировать.ошибки.и.другую.полезную.инфор- мацию.
Упражнения
1.. Напишите.команду.Linux,.которая.создаст.пользователя.
mwilson
.с.паролем.
magic
2.. Напишите.команду.Linux.для.создания.группы.пользователей.
marketing
3.. Напишите.команду.Linux,.которая.дает.группе.
marketing
.права.на.чтение/за- пись.файла.
poster.jpg
4.. Напишите.команду.Windows.для.создания.пользователя.
frogers
.с.паролем.
neighbor hood
5.. Напишите.команду.Windows,.которая.дает.пользователю.
tjones
.максимальные.
права.доступа.к.файлу.
lyrics.txt
6.. Напишите.сценарий.bash.для.автоматического.запуска.правильной.команды.
user
/
group
/
permission
.в.зависимости.от.операционной.системы,.в.которой.она.
выполняется..Например,.пользовательская.команда,.такая.как.
create jsmith
,.
автоматически.обнаружит.ОС.и.выполнит.
useradd
-m jsmith
,.если.это.Linux,.
и.
net user jsmith//add
,.если.это.Windows.
Чтобы.просмотреть.дополнительные.ресурсы.и.получить.ответы.на.эти.вопросы,.
зайдите.на.сайт.
https://www.rapidcyberops.com/
18
Добавление записей в журнал
При.написании.сценариев.может.потребоваться.создать.в.журнале.записи.для.
важных.событий..И.Windows,.и.Linux.предоставляют.простые.механизмы.записи.
в.соответствующие.системы.регистрации..Хорошая.запись.в.журнале.имеет.сле- дующие.характеристики.
В.ней.используется.согласованная.терминология.и.грамматика.
Она.предоставляет.контекст.(указывающий,.кто,.где.и.когда).
Конкретно.описывает,.что.произошло.
Используемые команды
В.этой.главе.мы.рассмотрим.команды.
eventcreate
.и.
logger eventcreate
Команда.
eventcreate
.используется.в.среде.Windows.для.создания.записей.в.жур- нале.событий.
Общие параметры команды
/d
.—.подробно.описать.событие.
/id
.—.числовой.идентификатор.события.
/l
.—.имя.журнала.событий,.в.который.необходимо.внести.запись.
/so
.—.источник.события.
/t
.—.тип.события.
256 Часть IV • Администрирование систем обеспечения безопасности logger
Команда.
logger
.используется.во.многих.дистрибутивах.Linux.для.записи.событий.
в.системный.журнал.
Общие параметры команды
-s
.—.одновременно.записать.событие.в.stderr.
-t
.—.пометить.событие.указанным.значением.
Запись событий в журнал Windows
Команда.
eventcreate
.предназначена.для.создания.записей.в.журнале.событий.
Windows..Чтобы.ее.можно.было.использовать,.необходимо.предоставить.ей.не- которые.данные.
Идентификатор.события.(
/id
).—.номер.для.идентификации.события..Допусти- мо.любое.число.от.1.до.1000.
Тип.события.(
/t
).—.категория,.которая.наилучшим.образом.описывает.событие..
Допускаются.следующие.параметры:
y
ERROR
;
y
WARNING
;
y
INFORMATION
y
SUCCESSAUDIT
;
y
FAILUREAUDIT
Имя.журнала.событий.(
/l
).—.имя.журнала,.в.который.необходимо.внести.за- пись..Допустимы.следующие.параметры:
y
APPLICATION
;
y
SYSTEM
Источник.события.(
/so
).—.имя.приложения,.генерирующего.событие..Допу- стима.любая.строка.
Описание.(
/d
).—.характеристика.события..Допустима.любая.строка.
Вот,.например,.запуск.из.Git.Bash:
$ eventcreate //ID 200 //L APPLICATION //T INFORMATION //SO "Cybersecurity Ops"
//D "This is an event"
SUCCESS: An event of type 'INFORMATION' was created in the 'APPLICATION'
log with 'Cybersecurity Ops' as the source.
Глава 18. Добавление записей в журнал 257
После.того.как.событие.записано,.можно.запустить.
wevtutil
,.чтобы.увидеть.по- следнюю.запись.в.журнале.
APPLICATION
:
$ wevtutil qe APPLICATION //c:1 //rd:true
This is an event
С.помощью.параметра.
/s
,.позволяющего.указать.имя.удаленного.хоста.или.IP- адрес,.вы.можете.записывать.события.в.журналы.удаленной.системы.Windows..
Параметр.
/u
.применяется.для.указания.имени.пользователя.в.удаленной.системе,.
а.параметр.
/p
.—.для.указания.пароля.пользователя.
Создание журналов Linux
Команда.
logger
.предназначена.для.записи.событий.в.системный.журнал.Linux..
Эти.события.обычно.хранятся.в.файле.
/var/log/messages
,.но.указанный.путь.мо- жет.отличаться.в.зависимости.от.дистрибутива.Linux.
Чтобы.записать.запись.в.журнал,.напишите.следующее:
logger 'This is an event'
Вы.можете.использовать.команду.
tail
,.чтобы.увидеть.запись.сразу.после.ее.фи- ксации:
$ tail -n 1 /var/log/messages
Nov 30 12:07:55 kali root: This is an event
Можно.записать.вывод.прямо.из.команды,.передав.их.в.
logger
..Это.может.быть.
особенно.полезно.для.сбора.выходных.данных.или.сообщений.об.ошибках,.гене- рируемых.автоматизированными.задачами,.такими.как.задания.cron.
258 Часть IV • Администрирование систем обеспечения безопасности
Выводы
Как.Windows,.так.и.Linux.предоставляют.простые.в.использовании.механизмы.за- писи.сообщений.в.журнал..Обязательно.используйте.их.для.сбора.важных.событий.
и.информации,.генерируемых.сценариями.
Далее.мы.рассмотрим.инструмент.для.мониторинга.доступности.сетевых.устройств.
Упражнения
1.. Напишите.команду.для.добавления.события.в.журнал.событий.приложения.
Windows.с.идентификатором.события.450,.типом.информации.и.описанием.
«Упражнение.главы.18».
2.. Напишите.команду.для.добавления.события.«Упражнение.главы.18».в.журнал.
Linux.
3.. Напишите.сценарий,.который.принимает.запись.журнала.в.качестве.аргумен- та.и,.в.зависимости.от.используемой.операционной.системы,.автоматически.
запускает.
logger
.или.
eventcreate
..Для.определения.операционной.системы.
используйте.файл.
osdetect.sh
.из.примера.2.3.
Чтобы.просмотреть.дополнительные.ресурсы.и.получить.ответы.на.эти.вопросы,.
зайдите.на.сайт.
https://www.rapidcyberops.com/
19
Инструмент: мониторинг доступности системы
Одной.из.важнейших.задач.любого.IT-администратора.является.поддержание.
доступности.систем..В.этой.главе.мы.создадим.сценарий,.который.использует.
команду.
ping
.для.отправки.предупреждения,.если.указанная.система.становится.
недоступной..Перечислим.требования.к.этому.сценарию:
читать.файл,.содержащий.IP-адреса.или.имена.хостов;
проверять.связи.с.каждым.перечисленным.в.файле.устройством;
уведомлять.пользователя,.если.устройство.не.отвечает.на.ping-запрос.
Используемые команды
В.этой.главе.мы.рассмотрим.команду.
ping
,.с.помощью.которой.проведем.тестиро- вание.удаленной.системы.
ping
Чтобы.определить,.доступна.ли.удаленная.система,.команда.
ping
.использует.про- токол.управления.Интернетом.и.обмена.сообщениями.(ICMP)..Он.изначально.до- ступен.как.в.Linux,.так.и.в.Windows,.но.между.протоколами.в.обеих.системах.есть.
небольшие.различия..Обратите.внимание:.если.вы.для.запуска.
ping
.применяете.
Git.Bash,.будет.использована.версия.протокола.для.Windows.
Трафик IMCP может быть заблокирован сетевыми брандмауэрами и другими устройствами. Если вы пингуете устройство и оно не отвечает, это не обязательно означает, что устройство недоступно; возможно, просто включена фильтрация пакетов ICMP.
260 Часть IV • Администрирование систем обеспечения безопасности
Общие параметры команды
-c
.(Linux).—.количество.отправляемых.в.удаленную.систему.запросов.ping.
-n
.(Windows).—.количество.отправляемых.в.удаленную.систему.запросов.ping.
-W
.(Linux).—.время.ожидания.ответа.в.секундах.
-w
.(Windows).—.время.ожидания.ответа.в.миллисекундах.
Пример команды
Для.однократной.проверки.связи.узла.192.168.0.11.нужно.выполнить.следующее:
$ ping -n 1 192.168.0.11
Pinging 192.168.0.11 with 32 bytes of data:
Reply from 192.168.0.11: bytes=32 time<1ms TTL=128
Ping statistics for 192.168.0.11:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
Реализация
В.примере.19.1.подробно.описано,.как.можно.использовать.bash.и.команду.
ping для.создания.постоянно.обновляемой.панели.мониторинга,.которая.предупредит.
вас,.если.система.перестанет.быть.доступной.
Пример 19.1. pingmonitor.sh
#!/bin/bash -
#
# Bash и кибербезопасность
# pingmonitor.sh
#
# Описание:
# Проверка связи для мониторинга доступности хоста
#
# Использование:
# pingmonitor.sh
#
#
#
while true do clear echo 'Cybersecurity Ops System Monitor'
echo 'Status: Scanning ...'
Глава 19. Инструмент: мониторинг доступности системы 261
echo '-----------------------------------------'
while read -r ipadd do ipadd=$(echo "$ipadd" | sed 's/\r//')
ping -n 1 "$ipadd" | egrep '(Destination host unreachable|100%)' &> /dev/null
if (( "$?" == 0 ))
then tput setaf 1
echo "Host $ipadd not found - $(date)" | tee -a monitorlog.txt
tput setaf 7
fi done < "$1"
echo ""
echo "Done."
for ((i="$2"; i > 0; i--))
do tput cup 1 0
echo "Status: Next scan in $i seconds"
sleep 1
done done
.Удаление.разрывов.строк.после.чтения.поля.из.файла.в.Windows.
.Однократная.проверка.связи.с.хостом..
grep
.применяется.для.поиска.в.выводе.
команды.
ping
.фраз.
Destination host unreachable
.(Целевой.хост.недоступен).или.
100
%
.—.это.означает,.что.хост.не.найден..Поскольку.используется.
ping
-n
,.этот.
сценарий.настроен.для.выполнения.в.операционной.системе.Windows..Для.вы- полнения.сценария.в.Linux.укажите.
ping
-c
.Проверка,.завершила.ли.команда.
grep
.работу.с.кодом.состояния.
0
:.это.означает,.
что.были.обнаружены.строки.с.ошибками.и.хост.не.ответил.на.запрос.
ping
.Установка.красного.цвета.шрифта.для.важного.текста.
.Уведомление.пользователя.о.том,.что.хост.не.найден,.и.добавление.сообщения.
в.файл.
monitorlog.txt
.Запуск.обратного.отсчета.времени.до.начала.следующего.сканирования.
.Перемещение.курсора.в.строку.1,.столбец.0.
Чтобы.запустить.
pingmonitor.sh
,.предоставьте.ему.файл,.содержащий.список.
IP-адресов.или.имен.хостов.(по.одному.на.строку).и.время.задержки.между.ска- нированиями.в.секундах:
$ ./pingmonitor.sh monitor.txt 60
Cybersecurity Ops System Monitor
262 Часть IV • Администрирование систем обеспечения безопасности
Status: Next scan in 5 seconds
\--------------------------------------------
Host 192.168.0.110 not found - Tue, Nov 6, 2018 3:17:59 PM
Host 192.168.0.115 not found - Tue, Nov 6, 2018 3:18:02 PM
Done.
Если.вы.хотите,.чтобы.сканирование.выполнялось.быстрее.или.медленнее,.можете.до- бавить.параметр.
-w/W
,.определяющий,.как.долго.команда.
ping
.станет.ожидать.ответа.
Выводы
Команда.
ping
.обеспечивает.простой.и.эффективный.способ.контроля.доступности.
сетевого.устройства..Следует.отметить,.что.протокол.ping.может.быть.заблокирован.
в.сетевых.или.хост-брандмауэрах,.и.из-за.этого.его.надежность.не.очень.высока..
Если.один.пакет.ping.не.прошел,.это.еще.не.означает,.что.устройство.отключилось..
Чтобы.проверить,.работает.устройство.или.нет,.вы.можете.попытаться.создать.TCP- соединение.с.устройством.и.посмотреть,.отвечает.ли.оно..Это.действие.особенно.
полезно,.если.вы.знаете,.что.система.является.сервером.с.открытым.TCP-портом.
В.следующей.главе.мы.разработаем.инструмент.для.создания.списка.программ,.
работающих.в.системах.внутри.сети.
Упражнения
1.. Сохраните.текущий.список.с.отмеченными.датами.и.временем.успешного.об- ращения.к.каждой.системе.
2.. Добавьте.аргумент,.в.котором.можно.указать.диапазон.отслеживаемых.IP- адресов.
3.. Если.система.становится.недоступной,.отправьте.сообщение.по.электронной.
почте.на.указанный.адрес.
Чтобы.просмотреть.дополнительные.ресурсы.и.получить.ответы.на.эти.вопросы,.
зайдите.на.сайт.
https://www.rapidcyberops.com/
20
Инструмент: проверка установленного программного обеспечения
Для.обеспечения.безопасности.сети.очень.важно.знать,.какое.программное.обе- спечение.у.вас.установлено..Эта.информация.не.только.позволит.вам.лучше.
понимать.текущую.ситуацию,.но.и.может.использоваться.для.внедрения.более.
совершенных.средств.управления.безопасностью,.например,.белых.списков.про- грамм.(application.whitelisting)..Определив.имеющееся.программное.обеспече- ние,.вы.можете.сформировать.белый.список.программ..Все.программы,.которые.
не.добавлены.в.белый.список,.например.вредоносные.программы,.выполняться.
не.будут.
Дополнительные сведения о белом списке программ для Windows можно получить в документации корпорации Microsoft по адресу http://bit.ly/2YpG6lz.
Для Linux см. статью Security Enhanced Linux (https://github.com/SELinuxProject).
В.этой.главе.мы.разрабатываем.сценарий.
softinv.sh
,.чтобы.получить.список.про- граммного.обеспечения,.установленного.в.конкретной.системе,.для.последующего.
агрегирования.и.анализа..Вот.требования.к.этому.сценарию:
обнаружение.используемой.операционной.системы;
выполнение.соответствующих.команд.для.отображения.списка.установленного.
программного.обеспечения;
сохранение.списка.установленного.программного.обеспечения.в.текстовом.
файле;
имя.файла.должно.быть.сформировано.таким.образом:.
hostname_softinv.txt
,.
где.
hostname
.—.это.имя.системы,.в.которой.был.запущен.сценарий.
264 Часть IV • Администрирование систем обеспечения безопасности
Используемые команды
Для.выяснения.того,.какое.программное.обеспечение.установлено.в.системе,.
предназначены.команды.
apt
,.
dpkg
,.
wmic
.и.
yum
..Инструмент,.который.будет.для.это- го.использован,.определяется.не.только.операционной.системой.—.Windows.или.
Linux,.но.и.дистрибутивом.установленной.Linux,.например,.Ubuntu.или.Red.Hat.
apt
Advanced.Packaging.Tool.(APT).есть.во.многих.дистрибутивах.Linux..Он.позволяет.
устанавливать.пакеты.программного.обеспечения.и.управлять.ими.
Общие параметры команды
Install
.—.установить.указанный.пакет.программного.обеспечения.
Update
.—.синхронизировать.список.пакетов.с.последними.версиями.
List
.—.вывести.список.программных.пакетов.
Remove
.—.удалить.указанный.пакет.программного.обеспечения.
Пример команды
Отобразить.список.всех.пакетов.программного.обеспечения,.установленных.в.си- стеме,.можно.с.помощью.такой.команды:
apt list --installed dpkg
Как.и.
apt
,.
dpkg
.используется.для.установки.пакетов.программного.обеспечения.
и.управления.ими.в.дистрибутивах.Linux.на.основе.Debian.
Общие параметры команды
-i
.—.установить.пакет.
-l
.—.вывести.список.пакетов.
-r
.—.удалить.пакет.
Пример команды
Отобразить.список.всех.пакетов.программного.обеспечения,.установленных.в.си- стеме,.можно.с.помощью.следующей.команды:
dpkg -l
Глава 20. Инструмент: проверка установленного программного обеспечения 265
wmic
WMIC.(Windows.Management.Instrumentation.Command).применяется.для.
получения.сведений.об.оборудовании.и.системе,.управления.процессами.и.их.
компонентами,.а.также.изменения.настроек.с.использованием.возможностей.
инструментария.управления.Windows.(Windows.Management.Instrumentation,.
WMI)..В.этой.главе.мы.сосредоточимся.на.аспектах.управления.пакетами.
wmic
,.
но.для.получения.дополнительной.информации.о.других.функциях.см..докумен- тацию.Microsoft.(
http://bit.ly/2uteyxV
).
Общие параметры команды
Process
.—.управление.текущими.процессами.
Product
.—.управление.установочными.пакетами.
Пример команды
Отобразить.список.программного.обеспечения,.установленного.в.системе,.можно.
с.помощью.следующей.команды:
$ wmic product get name,version //format:csv yum
Yellowdog.Update.Modified.(YUM).—.открытый.консольный.менеджер.пакетов.
для.дистрибутивов.Linux,.основанных.на.пакетах.формата.RPM..Команда.
yum позволяет.облегчить.работу.с.обновлениями.дистрибутивов,.отслеживая.взаимо- зависимости.между.пакетами..При.наличии.только.RPM.вы.можете.получить.
информацию.с.помощью.команды.
rpm
-qa
,.но.YUM.—.это.оболочка.для.RPM.более.
высокого.уровня.
Общие параметры команды
Install
.—.установить.указанный.пакет.программного.обеспечения.
List
.—.вывести.список.программных.пакетов.
Remove
.—.удалить.указанный.пакет.программного.обеспечения.
Пример команды
Отобразить.список.всех.пакетов.программного.обеспечения,.установленных.в.си- стеме,.можно.с.помощью.следующей.команды:
yum list installed