Как остановить контейнер Docker и записать его state при внешнем вторжении?
Есть контейнер Docker, в нём развёрнуто web-приложение, взаимодействующее с пользователями. Некоторая логика приложения может прогнозировать поведение, похожее на вторжение в контур системы, и способна в последний момент запустить system().
Вопросов несолько:
— Что запустить в последний момент? Интересует дамп всех возможных важных параметров: $ last, открытые порты, запущенные приложения, последние access-log'и Nginx'а и т.п.
— Как убить собственный контейнер с вызовом методов оповещения о нештатной ситуации?
У тебя какое-то противоречие в задании. Сначала нам сообщается что есть "некая логика"
которая прогнозирует вторжение.
И тут-же ты спрашиваешь что пойти и куда посмотреть. Ну во первых твоя логика уже знает о триггерах безопасности.
А во вторых нужно просто логгировать сетевые события. В идеале - писать трафик. Если это веб-сервер
- то писать тело request-responce. И логи потом уже смотреть после смерти. Post-mortem.
humoured, я не могу обсуждать с тобой твою идею в таких условиях ограниченных знаний. Я считаю что ты занимаешся фигнёй. Если приложение САМО знает когда его атакуют - оно делает syscall exit() и прекращает свою работу. Но мне дальше непонятно как ты это увязываешь с SLA, непрерностью оказания услуг и прочее. Что скажешь бизнесу? Что приложение сделало себе сепукку потому что испугалось. Мне это непонятно. Я считаю что есть два зла. Одно зло - это ничего не делать в ответ на подозрительные действия. Другое зло - это чуть что - пускать себя в ребут. Это не услоуга. Это какая-то каша-размазня получается. Какой толк от приложения если любой мамкин хакер его в ребут пускает?