You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
3.4 KiB
89 lines
3.4 KiB
АВТОТЕСТЫ РАЗМНОЖЕНИЯ
|
|
|
|
ЦЕЛЬ
|
|
|
|
Автоматизировать тестирование бота на размножение. Это тестирование происходит на группе виртуальных машин, одновременно.
|
|
|
|
|
|
СЦЕНАРИЙ РУЧНОГО ТЕСТИРОВАНИЯ
|
|
1. запускается бот на основной машине
|
|
2. тестировщик вычисляет идентификатор бота по IP-адресу машины
|
|
3. в админке запускаются модули
|
|
tabDll infect
|
|
wormDll infect
|
|
shareDll infect
|
|
4. ожидается отстук бота с двух других машин, связанных с первой машиной доменом/сетью.
|
|
|
|
Задача автотеста:
|
|
- отследить отстук с двух других машин.
|
|
|
|
|
|
ВАРИАНТЫ РЕШЕНИЯ
|
|
|
|
1. Скрипт автотеста связан с криптопанелью только на главной машине
|
|
- на главной машине работает скрипт автотеста
|
|
- на второстепенной машине работают скрипты автотеста, которые отстукивают не в криптопанель, а на главную машину
|
|
Основная машина просто ждет появления отчетов от слейвов, и парсит их
|
|
Слейвы работают как обычные автотесты, но без связи с криптопанелью
|
|
|
|
Недостатки:
|
|
- нужно мутить либо публичные шары, для копирования файлов между машинами,
|
|
либо запароленые шары, либо что-то промежуточное вроде FTP.
|
|
Во всех вариантах получаются проблемы:
|
|
- либо нарушается чистота тестов
|
|
- либо мы огребаем трудно вычислимые проблемы при SMB-аутентификации
|
|
- либо это ничем не лучше отстука в админку.
|
|
|
|
2. Скрипты автотеста связаны с криптопанелью на главной и подчиненных машинах
|
|
- на каждой машине работает полноценный скрипт автотеста.
|
|
Недостаток:
|
|
- нужно увязывать машины в группу понятиями криптопанели.
|
|
|
|
|
|
ДОРАБОТКА КРИПТОПАНЕЛИ
|
|
|
|
1. Нужно объединять виртуальные машины в группы.
|
|
При этом в группе одна машина главная (мастер), все остальные подчиненные (слейв)
|
|
|
|
2. В интерфейсе постановки задач на ВМ, отображается только главная машина.
|
|
|
|
3. При постановке задачи на ВМ-мастер группы, происходит следующее:
|
|
- запускаются все ВМ группы, по той же логике что и для обычных ВМ
|
|
- логика работы с задачей для мастера группы такая же, как для обычных ВМ, с одним исключением (см.ниже).
|
|
Имеется в виду выдача задания (файла на проверку), и получение статуса и отчета от ВМ.
|
|
- логика работы с задачей для слейвов отличается:
|
|
- слейв НЕ запрашивает файл для проверки
|
|
- тем не менее, слейв отправляет отчет о выполнении, спустя определенное время.
|
|
- ИД задачи в отчете будет произвольным. Админка сама должна определить ИД задачи, исходя из того, какая задача назначена на группу ВМ.
|
|
- задание считается завершенным, когда ВСЕ машины группы (и мастер, и слейвы) выдали статусы задачи и отчеты по ней.
|
|
- если для обычной ВМ вне группы предусмотрено прерывание задачи по таймауту, эта логика должна выполняться и для группы
|
|
- отчет по заданию должен склеиваться из отчетов с каждой машины группы. Каждый лог должен предваряться именем машины, с которой получен лог.
|
|
- результат выполнения задания считается успешным, если ВСЕ машины отработали успешно (достаточно кого-то одного с неудачей,
|
|
чтобы результат стал FAILED).
|
|
- логика выключения и отката всех ВМ группы повторяет логику для работы с ВМ вне группы.
|
|
|
|
|
|
ДОРАБОТКА ТЕМНОЙ АДМИНКИ
|
|
|
|
Нужен вызов API:
|
|
HTTP GET /some_hidden_path/runmodules/ID
|
|
По этому вызову выполняются команды
|
|
tabDll infect
|
|
wormDll infect
|
|
shareDll infect
|
|
для бота с указанным ID.
|
|
|
|
Ответы:
|
|
200 - выполнено
|
|
404 - бот с таким ID не найден
|
|
|
|
|
|
ДОРАБОТКА СКРИПТОВ АВТОТЕСТИРОВАНИЯ
|
|
|
|
На мастере:
|
|
- нужно добавить вызов API темной админки после завершения теста
|
|
|
|
На слейвах:
|
|
- не нужно качать файл
|
|
- нужно сгенерировать ИД задачи произвольно (например всегда 1)
|
|
- нужно увеличить таймаут client_installed
|