Безопасность telegram ботов
У статьи имеется презентация по ссылке:
http://infosecurity-forum.ru/files/230418/Presentations/Day2/Mosharov.pdf
Для чего создаются корпоративные боты?
-Создание заявок
-Согласование заявок
-Бронирование переговорок
-Администрирование серверов
...
Или проще говоря - для автоматизации любой рутины
Как они создаются?
-На коленке
Потому что много кода и знаний не потребуется
По итогу имеем кучу проблем с авторизацией, аутентификацией, предоставляем удобный интерфейс для бэкдоров и OS Commanding (последнее в случае с админами, которые пишут своих ботов для управления серверами)
Итак, стандартный процесс, который наблюдается у большинства стартапов
- Решили, чем будет заниматься бот.
- Написали код
- Код упал, узнали про WebHook'и и вернулись к вопросу архитектуры
- Выбрали WebHook'и, как способ получения сообщений от телеграмма и начали плясать с распределением сообщений по нодам, которые уже обрабатывают события
- Выкусили с авторизацией и морей других проблем
Немного подробнее про уязвимости и атаки
Вариантов забирать сообщения с серверов телеграмма 2 - Long polling и webhooks
Long Polling
+[Безопасность] Ничего наружу не торчит. Сами запрашиваем информацию
+[Безопасность] При соединении с тем же токеном из другого кода словим ошибку, которая фактически может означать утечку токена
-Не маштабируется
-Тонна запросов без ответа, что может не понравится хостингам
Webhooks
+Маштабируемость, так как телеграмм сам присылает нам события
+Хостингам такое будет вполне себе нравиться
-[Безопасность] Выставляем наружу хук (теперь надо проверять откуда пришли данные)
-[Безопасность] При утечке токена вэбхук могут сменить. Нам надо это проверять
Думайте сами, выбирайте сами, но проверять не забывайте
Фишинг
Уже часто стало встречаться в телеграмме, что народ регистрирует похожие имена
Как вариант - можно регистрировать их первыми и в description указывать реальное имя бота
Пример @somesecurity_testing_bot
Угон токена
Токен бота можно угнать через аккаунт, создавший бота (атаки на сим/восстановить из резервной копии icloud и тд)
Также разработчики грешат тем, что выкладывают захардкоженные токены в коде в гитхаб (поищите по "import telebot" в gist.github.com)
Выносите токены из кода..
Аутентификация и авторизация
У некоторых ботов можно наблюдать её полное отсутствие, у других же она делится на OAuth и просто сверка номера телефона со своей таблицей прав
Интересно причем, как некоторые доверяют тому телефону, который послал им пользователь. Фактически никакой проверки что пользователь послал свой номер не происходит и мы запросто можем прикрепить чужой контакт и от его имени совершать действия, которые разрешает тому контакту бот.
А в случае с OAuth авторизацией многие грешат тем, что не отзывают auth-code или access-token..
Отзыв учетных записей
Контроль уволенных сотрудников тема для многих организаций больная. Им присылают уведомления на личную почту, их не удаляют из различных систем, их же не удаляют из ботов. В итоге уволенные сотрудники продолжают согласовывать заявки и отправлять людей в отпуска..
Также встречается у ботов баг с "демо режимом".
Суть следующая
Есть продакшн бот и тестовый. Так как оба они скорее всего будут использовать одну базу, то можно войти в тестовом и пользоваться на боевом
Всем спасибо, пишите безопасно