Введение
Повышение осведомленности работников в области информационной безопасности и поиск способов оперативного сбора информации об инцидентах (или иных подозрительных событиях) прямо от работников может завести безопасника к созданию бота.
Бота можно сделать для Telegram, Whatsapp, написать свой сайтик, написать приложение для VK, написать приложение для иного часто используемого приложения работниками. В данном примере рассмотрим бота созданного через Microsoft Power virtual agents для Microsoft Teams.
Поехали
На одном из воркшопов от Microsoft меня заинтересовали возможностью написать бота без кода.
Пока ведущий рассказывал что это такое, я за 20 минут написал зачаток бота для сбора инцидентов. Не сложно подумал я.
Создание пустого бота
На самом деле то, что было написано за 20 минут, это была чисто пара вопросов и отправка письма на группу рассылки в которой состоят безопасники. Для создания инцидента этого мало. Давайте рассмотрим, что в итоге получилось.
Первое что делаем, запускаем Powerva:
Создаем пустого бота с названием..... Тут я не придумал ничего короче чтобы везде вмещалось в интерфейсе как "Инцидент ИБ":
На какие темы по замыслу Microsoft пустые боты по умолчанию умеют общаться:
Как видим, в конце не выделены 2 темы которые реализованы собственно для целей сбора сообщений о подозрительных событиях и предложений по доработке бота.
Структура темы "инцидент ИБ"
Для начала необходимо придумать фразы по которым бот поймет, что собеседник желает создать инцидент:
Если встретилось слово, бот должен переспросить так ли он понял собеседника:
В данном случае помимо ответов "Да" и "Нет" я сразу добавил возможность эскалации (передача общения "живому" безопаснику):
В случае если же работник выбирает ответ "Да", то бот начинает задавать необходимые вопросы для регистрации инцидента:
В целом остается открытым вопрос: нужно ли пользователю задавать много вопросов, вдруг передумает создавать инцидент.
Получив необходимые ответы, бот должен обогатить полученную информацию иными данными чтобы не мучать дальше собеседника вопросами, для этого Microsoft предлагает разработать так называемый поток Power Virtual Agents. Получаем информацию о собеседнике через обращение к информации в Ofiice 365 так:
Данный поток который я назвал "User_get info from office365" делает следующее: по идентификатору пользователя как понимаю в Azure AD получает его псевдоним, адрес почты, отдел, должность из Office 365. По идее можно запрашивать телефон, адрес и кучу другой ненужной информации. Почему она не нужна, да потому что мы хотим создать инцидент и та система где мы будем создавать инцидент по сути сама должна по псевдониму либо учетке подтянуть эту информацию из самой системы управления инцидентами. Структура потока "User_get info from office365":
Как видно все невероятно просто.
После того как бот получил информацию о пользователе, можно создавать сам инцидент. Создать инцидент можно теми способами, которые принимает ваша система управления инцидентами. Писать взаимодействие по API в Power Virtual Agents это платно вроде бы как я понял, да и сложно. В моем случае Naumen Service desk умеет читать письма в почтовом ящике, поэтому моя интеграция выглядит именно так.
Создаем новый поток Power Virtual Agents который принимает всю полученную информацию ботом и отправляет письмо:
Структура потока "Создать инцидент":
Как видим все очень просто: письмо улетает на почту и в системе Naumen Service desk создается инцидент.
На прощание сообщаем собеседнику, что "полученная информация очень важна для нас":
Первый блин комом
Теперь бота нужно опубликовать, публикуем:
Натыкаемся на первые грабли - на инциденты полученные привычным существующим способом. В инцидентах работники жалуются, что в Microsoft Teams появилось подозрительное приложение:
Да, мы натренировали работников - они оперативно обо всем подозрительном нас уведомляют, это радует.
Вместо приветственного сообщения которое вы видели на первых скриншотах изначально было другое, и после публикации бота, бот сам начинает чат с некоторыми работниками компании, как выбирались работники и почему так происходит не удалось разобраться. Вроде как для начала чата достаточно просто кликнуть иконку, то есть не требуется ему писать что-то типа "привет бот".
Я написал новость в корпоративной социальной сети и сделал на нее ссылку в новом приветственном сообщении бота:
Как помните была еще тема для общения "Предложения по доработке бота", которая тоже принесла свои плоды:
Что дальше?
По идее, возможность создания инцидента должна быть лишь как часть одного большого корпоративного бота который может уметь: создавать заявку на отпуск, редактировать смены, согласовывать что-нибудь, получать информацию о меню столовой и т.д., а разработкой такого бота должен заниматься не безопасник.
Остановимся на следующем, такого бота нужно через Microsoft Teams setup policy опубликовать в левом меню Microsoft Teams всем работникам компании чтобы все работники могли оперативно сообщить об инциденте - собственно это то, для чего бот и затевался:
Ну и на последок необходимо обновить документы и учебные курсы по информационной безопасности информацией о том, что бот это так же один из способов для создания инцидента.
Постскриптум
Если интересно как мы управляем уязвимостями вам сюда.