Skip to content

Latest commit

 

History

History
91 lines (67 loc) · 10.2 KB

8_scenario_work.md

File metadata and controls

91 lines (67 loc) · 10.2 KB

8. Запись и воспроизведение сценариев

Запись и воспроизведение сценариев являются неотъемлемыми частями работы с инструментом. Процессы записи и воспроизведения инициируются выполнением соответствующих команд: natch record и natch replay соответственно. Обратите внимание, что обе команды необходимо запускать из рабочей директории проекта.

Командная строка для запуска эмулятора формируется на лету, используя файл с опциями (qemu_opts.ini), при необходимости, в него можно вносить изменения. Подробнее про этот файл можно узнать в разделе Интерактивный режим создания проекта.

Под записью сценария понимается работа с объектом оценки внутри виртуальной машины, где все действия записываются в некий журнал с целью многократного автоматического воспроизведения в дальнейшем. Выполнение команды natch record влечет запись одного сценария.

В рамках одного проекта можно создавать несколько сценариев, то есть выполнить команду natch record несколько раз, используя разные названия сценариев. Это может быть полезно, если, например, ваш объект оценки может быть запущен либо использован разными способами, или в образе имеется несколько объектов оценки. В таких ситуациях нет необходимости создавать каждый раз новый проект.

Записать сценарий можно с помощью команды natch record -s <name>, где <name> -- название сценария. Обратите внимание, что при указании уже существующего имени, сценарий будет перезаписан. Сценарии располагаются в отдельных папках с указанными пользователем названиями. В каждую такую папку после записи помещаются все необходимые для работы сценария файлы -- конфигурационный файл для помеченных данных, журнал, оверлей, логи сетевых взаимодействий и т.д.

На этапе записи существует важный момент -- необходимо сохранить состояние машины (сделать снапшот) перед тем, как будет произведена работа непосредственно с объектом оценки. Это необходимо для того, чтобы воспроизводить сценарий с момента сохранения снапшота. В противном случае воспроизводиться будет все, включая загрузку операционной системы, толку от этого не много, а воспроизвести такой сценарий если и получится, то понадобится очень много времени. Поэтому имеет смысл максимально ограничить полезные действия. Сохранение состояния машины делается в консоли Natch с помощью команды:

savevm <name>

Где <name> название вашего снапшота. Снапшотов в процессе работы можно делать несколько и запоминать их не нужно, посмотреть список сохраненных снапшотов можно с помощью команды natch info (подробнее про natch info), а также на этапе воспроизведения будет показан список сохраненных снапшотов.

Завершить работу с эмулятором можно любым удобным способом: ввести команду q/quit в консоли Natch, просто закрыть окно эмулятора или "выключить компьютер" средствами гостевой ОС. Сценарий записан, можно переходить к определению источников пометки и воспроизведению.

Когда сценарий записан, можно переходить к этапу воспроизведения, на котором анализируется все что происходило в системе и собираются логи. Но сначала следует определить источники пометки. Подробнее об источниках в разделе Определение источников пометки. Определяются они в конфигурационном файле для помеченных данных, отредактировать который можно с помощью команды natch edit taint.

Воспроизведение выполняется с помощью команды natch replay. Чтобы не попасть в ситуацию, когда сценарий записан, воспроизведение запущено, а про источники пометки забыли -- предусмотрена проверка конфигурационного файла taint.cfg. Если в нем не будет зафиксировано изменений, перед воспроизведением будет отображено текущее состояние пометок и последует вопрос действительно ли вы хотите продолжить. Если вы точно уверены, что изменять конфигурационный файл вам не надо, можно использовать параметр команды --no-check, который сразу же запустит воспроизведение, минуя проверку.

Помимо этого, команда natch replay имеет ряд других необязательных параметров (подробнее про natch replay).

Запускать воспроизведение можно без параметров -- natch replay. В связи с тем, что сценариев в проекте может быть несколько, при выполнении команды ситуация может разворачиваться несколькими способами:

  • У нас один сценарий и один снапшот. В этом случае воспроизведение запустится и отработает без участия пользователя.
  • У нас один сценарий и несколько снапшотов. Сценарий будет выбран по умолчанию, а для загрузки нужного снапшота нужно будет выбрать его из меню (с помощью стрелочек и клавиши Enter).
  • У нас несколько сценариев и один снапшот (для выбранного сценария). Для выбора сценария будет отображено меню с доступными сценариями, снапшот загрузится автоматически.
  • У нас несколько сценариев и несколько снапшотов (для выбранного сценария). В обоих случаях будет отображено меню.

Например, во время записи был создан сценарий с названием sample, в процессе работы был сохранен снапшот с именем state, конфигурационный файл taint.cfg не нуждается в корректировке. Запустить воспроизведение с этого момента можно с помощью команды с параметрами:

natch replay -s sample -S state --no-check

На этапе воспроизведения, кроме выбора сценария и снапшота, от пользователя больше ничего не требуется, только дождаться завершения работы эмулятора и формирования архива *.tar.zst с результатами анализа.

Здесь же будет выведена статистика пометок. Если вдруг вы увидели во всех графах нули, значит в вашем сценарии ничего не пометилось, и следует проверить источники пометок в соответствующем сценарии (natch edit taint), а так же удостовериться, что работа с помеченными данными была после того как был сделан снапшот системы.