Академический Документы
Профессиональный Документы
Культура Документы
Преобразование данных в
универсальный формат
Задачи
Часть 1. Нормализация метки времени в файле журнала.
Часть 2. Нормализация метки времени в файле журнала Apache Часть
3. Подготовка файла журнала в Security Onion
Необходимые ресурсы
• Виртуальная машина рабочей станции CyberOps
• Виртуальная машина Security Onion
Файл журнала выше был создан приложением X. В этом файле важно следующее.
o Столбцы разделены запятыми или символом |. Таким образом, этот файл состоит из пяти
столбцов.
o Третий столбец содержит метки времени в формате Unix Epoch.
o Файл содержит дополнительную строку в конце. Это сыграет важную роль далее в данной
лабораторной работе.
Предположим, для анализа журнала необходимо преобразовать метки времени в формат Human
Readable. Выполните следующие действия, чтобы вручную выполнить преобразование с помощью
AWK.
a. Запустите ВМ CyberOps Workstation и затем запустите окно терминала.
b. С помощью команды cd измените текущий каталог на /home/analyst/lab.support.files/. Здесь
хранится копия показанного выше файла.
[analyst@secOps ~]$ cd ./lab.support.files/
[analyst@secOps lab.support.files]$ ls -l
total 580
-rw-r--r-- 1 analyst analyst 649 Jun 28 18:34 apache_in_epoch.log -rw-
r--r-- 1 analyst analyst 126 Jun 28 11:13 applicationX_in_epoch.log
drwxr-xr-x 4 analyst analyst 4096 Aug 7 15:29 attack_scripts -rw-r--r--
1 analyst analyst 102 Jul 20 09:37 confidential.txt
<output omitted>
[analyst@secOps lab.support.files]$
Эта команда представляет собой сценарий AWK. Он может показаться сложным. Основная
структура вышеприведенного сценария AWK выглядит следующим образом.
• FS = OFS = “|” определяет, что разделителем полей будет символ вертикальной черты (|).
Текстовые файлы могут использовать различные разделители полей. Данный оператор
позволяет пользователю определять, какой символ используется в качестве разделителя
полей в текущем текстовом файле.
d. Хотя вывод результата на экран полезен для поиска и устранения неполадок сценария, но
аналитику, скорее всего, потребуется сохранить выходные данные в текстовом файле.
Перенаправьте выходные данные этого сценария в файл с именем applicationX_in_human.log,
чтобы сохранить их в файл.
[analyst@secOps lab.support.files]$ awk 'BEGIN {FS=OFS="|"}{$3=strftime("%c",$3)}
{print}' applicationX_in_epoch.log > applicationX_in_human.log
[analyst@secOps lab.support.files]$
Этот файл журнала Apache содержит шесть записей, которые зарегистрировали события,
связанные с веб-сервером Apache. Каждая запись содержит семь полей. Поля разделяются
пробелами.
o В первом столбце указан адрес IPv4 (198.51.100.213) веб-клиента, отправившего данный
запрос.
o Второй и третий столбцы не используются, и для замены отсутствующего значения
применяется символ «–».
o Четвертый столбец содержит метку времени в формате Unix Epoch, например [1219071600].
o Пятый столбец содержит текст с подробными сведениями о событии, включая URL-адреса и
параметры веб-запроса. Все шесть записей являются сообщениями HTTP GET. Поскольку эти
сообщения содержат пробелы, все поле заключено в кавычки. O
o Седьмой столбец содержит размер ответа данному клиенту (в байтах), например 12846.
Аналогично части 1 здесь будет создан сценарий для преобразования метки времени из формата
Epoch в формат Human Readable.
a. На терминале ВМ CyberOps Workstation копия файла журнала Apache apache_in_epoch.log
хранится в каталоге /home/analyst/lab.support.files.
b. Используйте сценарий awk для преобразования поля метки времени в формат human readable.
Обратите внимание, что команда содержит тот же сценарий, который использовался ранее, но с
некоторыми корректировками для поля метки времени и имени файла.
[analyst@secOps lab.support.files]$ awk 'BEGIN {FS=OFS=" "}{$4=strftime("%c",$4)}
{print}' /home/analyst/lab.support.files/apache_in_epoch.log
Смог ли этот сценарий правильно преобразовать метки времени? Опишите выходные данные.
Перед тем как продолжить, подумайте об этих выходных данных сценария. Можете ли вы определить,
что послужило причиной неправильных выходных данных? Ошибка сценария? Какие важные различия
существуют между файлами applicationX_in_epoch.log и apache_in_epoch.log?
Cisco и/или ее дочерние компании. Все права защищены.
Конфиденциальная информация корпорации Cisco Стр. 5 из 12 www.netacad.com
Лабораторная работа. Преобразование данных в универсальный формат
c. Для того чтобы устранить эту проблему, необходимо удалить квадратные скобки из поля метки
времени до начала преобразования. Настройте сценарий, добавив перед преобразованием два
действия, как показано ниже.
[analyst@secOps lab.support.files]$ awk 'BEGIN {FS=OFS=" "} {gsub(/\[|\]/,"",
$4)}{print}{$4=strftime("%c",$4)}{print}' apache_in_epoch.log
Обратите внимание, что после определения пробела в качестве разделителя с помощью
{FS=OFS=” “} добавлена операция с регулярным выражением для поиска и замены квадратных
скобок пустой строкой, которое приводит к эффективному удалению квадратных скобок, которые
присутствуют в поле метки времени. Второе действие выводит на экран измененные строки, что
позволяет выполнить преобразование.
• gsub() — это внутренняя функция AWK, используемая для поиска и замены строк. В
приведенном выше сценарии gsub() получила три параметра, разделенные запятыми,
описанные ниже.
• «» обозначает отсутствие символов или пустую строку. Этот параметр указывает gsub(), на
что надо заменить найденные символы «[» и «]». Путем замены «[» и «]» на «» gsub()
удаляет из строки символы «[» и «]».
• $4 говорит gsub(), что нужно обработать только четвертый столбец текущей строки,
столбец метки времени.
Примечание. Интерпретация регулярных выражений — это тема экзамена SECOPS. Регулярные
выражения будут рассмотрены более подробно в другой лабораторной работе в этой главе. При
желании вы можете найти учебные курсы в Интернете.
d. На терминале ВМ CyberOps Workstation выполните скорректированный сценарий следующим
образом.
[analyst@secOps lab.support.files]$ awk 'BEGIN {FS=OFS=" "}{gsub(/\[|\]/,"",
$4)}{print}{$4=strftime("%c",$4)}{print}' apache_in_epoch.log
Смог ли сценарий правильно преобразовать метки времени в этот раз? Опишите выходные
данные.
b. Также можно щелкнуть правой кнопкой мыши Desktop (Рабочий стол) > Open Terminal Here
(Открыть терминал здесь), как показано на следующем снимке экрана.
a. Журналы Snort можно найти в каталоге /nsm/sensor_data /. Измените текущий каталог следующим
образом.
analyst@SecOnion:/nsm/bro/logs/current$ cd /nsm/sensor_data
analyst@SecOnion:/nsm/sensor_data$
b. Для того чтобы просмотреть все файлы журнала, создаваемые Snort, используйте команду ls -l.
analyst@SecOnion:/nsm/sensor_data$ ls -l total 16
drwxrwxr-x 7 sguil sguil 4096 Jun 19 23:16 seconion-eth0
drwxrwxr-x 7 sguil sguil 4096 Jun 19 23:16 seconion-eth1
drwxrwxr-x 7 sguil sguil 4096 Jun 19 23:16 seconion-eth2
drwxrwxr-x 5 sguil sguil 4096 Jun 19 23:08 seconion-eth3
analyst@SecOnion:/nsm/sensor_data$
c. Обратите внимание, что Security Onion разделяет файлы с разными интерфейсами. Поскольку у
образа ВМ Security Onion четыре интерфейса, сохраняются четыре каталога. Используйте
команду ls –l seconion-eth0 для просмотра списка файлов, созданных интерфейсом ethernet 0.
analyst@SecOnion:/nsm/sensor_data$ ls -l seconion-eth0/
total 52 drwxrwxr-x 2 sguil sguil 4096 Jun 19 23:09 argus
drwxrwxr-x 10 sguil sguil 4096 Jul 7 12:09 dailylogs
drwxrwxr-x 2 sguil sguil 4096 Jun 19 23:08 portscans
drwxrwxr-x 2 sguil sguil 4096 Jun 19 23:08 sancp drwxr-xr-x
2 sguil sguil 4096 Jul 7 12:12 snort-1 -rw-r--r-- 1 sguil
sguil 27566 Jul 7 12:12 snort-1.stats -rw-r--r-- 1 root
root 0 Jun 19 23:08 snort.stats
analyst@SecOnion:/nsm/sensor_data$
Обратите внимание, что этот каталог также содержит журналы, используемые дополнительными
инструментами, такими как OSSEC, Pulledpork, Sphinx и Squert.
b. Уделите некоторое время для поиска в Google информации об этих дополнительных инструментах и
ответьте на следующие вопросы.
Для каждого из перечисленных выше инструментов опишите его функции, значение и положение в
рабочем процессе анализа обеспечения безопасности.
Security Onion використовує OSSEC як систему виявлення вторгнень в систему (HIDS). OSSEC
контролює та захищає Security Onion сам, і ви можете додати агенти OSSEC для контролю інших
хостів у вашій мережі.
Squert - це веб-додаток, який використовується для запиту та перегляду даних про події, що
зберігаються в базі даних Sguil (як правило, дані попередження IDS). Squert - це візуальний
інструмент, який намагається надати додатковий контекст подіям за допомогою використання
метаданих, подання часових рядів та зважених та логічно згрупованих наборів результатів.
Security Onion використовує PulledPork, щоб завантажувати нові підписи та обробляти їх у
встановлений список створених користувачем конфігурацій. У розподіленому середовищі Security
Onion вам потрібно лише змінити файл конфігурації на сервері, і сценарій оновлення правил
синхронізується з підписами з Сервера.