Безопасность telegram ботов

Безопасность telegram ботов


У статьи имеется презентация по ссылке:

http://infosecurity-forum.ru/files/230418/Presentations/Day2/Mosharov.pdf

Для чего создаются корпоративные боты?

-Создание заявок
-Согласование заявок
-Бронирование переговорок
-Администрирование серверов

...

Или проще говоря - для автоматизации любой рутины

Как они создаются?

-На коленке

Потому что много кода и знаний не потребуется

По итогу имеем кучу проблем с авторизацией, аутентификацией, предоставляем удобный интерфейс для бэкдоров и OS Commanding (последнее в случае с админами, которые пишут своих ботов для управления серверами)

Итак, стандартный процесс, который наблюдается у большинства стартапов

  1. Решили, чем будет заниматься бот.
  2. Написали код
  3. Код упал, узнали про WebHook'и и вернулись к вопросу архитектуры
  4. Выбрали WebHook'и, как способ получения сообщений от телеграмма и начали плясать с распределением сообщений по нодам, которые уже обрабатывают события
  5. Выкусили с авторизацией и морей других проблем

Немного подробнее про уязвимости и атаки

Вариантов забирать сообщения с серверов телеграмма 2 - Long polling и webhooks

Long Polling


+[Безопасность] Ничего наружу не торчит. Сами запрашиваем информацию
+[Безопасность] При соединении с тем же токеном из другого кода словим ошибку, которая фактически может означать утечку токена

-Не маштабируется
-Тонна запросов без ответа, что может не понравится хостингам

Webhooks

+Маштабируемость, так как телеграмм сам присылает нам события
+Хостингам такое будет вполне себе нравиться

-[Безопасность] Выставляем наружу хук (теперь надо проверять откуда пришли данные)
-[Безопасность] При утечке токена вэбхук могут сменить. Нам надо это проверять

Думайте сами, выбирайте сами, но проверять не забывайте

Фишинг

Уже часто стало встречаться в телеграмме, что народ регистрирует похожие имена

Как вариант - можно регистрировать их первыми и в description указывать реальное имя бота

Пример @somesecurity_testing_bot

Угон токена

Токен бота можно угнать через аккаунт, создавший бота (атаки на сим/восстановить из резервной копии icloud и тд)

Также разработчики грешат тем, что выкладывают захардкоженные токены в коде в гитхаб (поищите по "import telebot" в gist.github.com)

Выносите токены из кода..

Аутентификация и авторизация

У некоторых ботов можно наблюдать её полное отсутствие, у других же она делится на OAuth и просто сверка номера телефона со своей таблицей прав

Интересно причем, как некоторые доверяют тому телефону, который послал им пользователь. Фактически никакой проверки что пользователь послал свой номер не происходит и мы запросто можем прикрепить чужой контакт и от его имени совершать действия, которые разрешает тому контакту бот.

А в случае с OAuth авторизацией многие грешат тем, что не отзывают auth-code или access-token..

Отзыв учетных записей

Контроль уволенных сотрудников тема для многих организаций больная. Им присылают уведомления на личную почту, их не удаляют из различных систем, их же не удаляют из ботов. В итоге уволенные сотрудники продолжают согласовывать заявки и отправлять людей в отпуска..

Также встречается у ботов баг с "демо режимом".
Суть следующая

Есть продакшн бот и тестовый. Так как оба они скорее всего будут использовать одну базу, то можно войти в тестовом и пользоваться на боевом


Всем спасибо, пишите безопасно




Report Page