Может ли быть уязвимость в дизайне, контенте и CSS и разбор такой уязвимости(?) на Госуслугах
- понедельник, 20 ноября 2023 г. в 00:00:19
Кажется, что уязвимость - штука техническая, но на Госуслугах есть интересная комбинация уязвимостей (ну или, скажем, черт, особенностей) в сфере CSS, дизайна, юзабилити, которые мошенники используют в социальной инженерии.
Узнал я про это из вот этого ролика на ютубе - https://www.youtube.com/watch?v=53fsKnQimL4 . Смотрел фоном, не ожидая чего-то интересного, но в момент, когда я услышал, как жертва атаки видит телефон мошенника на официальном сайте Госуслуг, с правильным адресом, с валидным сертификатом я не поверил своим ушам и понял, что это уже интересно... А за открытие уязвимости мы должны благодарить неизвестного мошенника, "сотрудника клиентской службы сотового оператора" или "службы безопасности сбербанка", ну вы понимаете.
Атака начинается обычным способом, как и всегда. Звонок, представляются, например, сотрудником мобильного оператора и говорят, что нужно подтвердить владельца телефона через госуслуги. Ввести код подтверждения из SMS. (Да, конечно, этого делать нельзя, но все-таки, постоянно какая-то часть людей ведется на это). Узнав код, быстро "захватывают" ЛК в госуслугах и меняют пароль. Однако, это не вся атака. Они развивают успех - смеются и говорят - "Ха-ха! Мы вас обманули!". Очень странное поведение... Человек смущен и напуган, тут же в панике лезет на госуслуги и ожидаемо не может войти. Окей, он пытается восстановить пароль и видит (тоже ожидаемое) сообщение, что его аккаунт заблокирован за подозрительную активность, обратитесь на номер такой-то.
Этот номер - номер мошенников. И текст сообщения от них же. Но сайт госуслуг - настоящий! Адрес верный. Сертификат валидный. Как же так? На самом деле, если просто спокойно и без паники посмотреть на картинку, то за 15 секунд все понятно (наверняка, вы разгадали сразу). Этот текст - просто текст пользовательского вопроса для восстановления доступа. А дальше жертва звонит по номеру "с госуслуг" и уже более доверяет (она же сама увидела его на госуслугах, значит, официальный номер, по этому номеру - настоящие сотрудники госуслуг) и дальше ее разводят уже смелее. Сайт госуслуг используются (абьюзится) для повышения доверия к номеру телефона мошенника. Можно разместить свой текст на госуслугах. Только для отдельного пользователя, только если он "дурак", но все-таки можно!
Никакой технической уязвимости нет. Человек сам дал код, они просто вошли, сменили пароль и поставили свой вопрос для восстановления доступа. Система работает строго по документации, как и должна.
Но при этом - текст написан жирным шрифтом, он "доминирует" на странице, он совпадает с ожиданиями (страхами) пользователя. Немного некрасиво, что это "сообщение о блокировке" идет после слов "Контрольный вопрос", но напомню - что человек напуган, дезориентирован и этот небольшой абсурд вполне логичное продолжение того абсурда, в который он попал (если он вообще его прочитает).
Кроме того, как программист, я вполне мог бы дофантазировать, что код, который должен выдать текст контрольного вопроса, при блокировке аккаунта выдает такое вот сообщение. Некрасиво? Да. Ожидаем ли мы, что на госуслугах что-то может быть как-то некрасиво? Да вполне!
Что еще сделали Госуслуги чтобы "помочь" мошенникам? Этот номер выглядит как обычный номер сотового. Мы не ожидаем увидеть на госуслугах такой номер. Мы ожидаем что-нибудь вроде 8-800-.... Номер настораживает... Как же сделать, чтобы "клиент" позвонил на такой подозрительный номер, а не на какой-нибудь официальный 8-800-... ? А это за мошенников сделали госуслуги! Там нет на виду номера, куда позвонить. Чтобы до него добраться надо нажать в подвале "Контакты", пролистать разделы "Популярные вопросы", "Все вопросы", "Центры обслуживания", "Работа с порталом", "Спросите Робота Макса" и только потом будет раздел "другие способы связи", и он закрыт, откроется только если нажать на него. В общем, все сделано чтобы отсеивать неприятных бабок, и чтобы неприятные бабки не мешали работать красивым девушкам из службы поддержки.
Если что, телефонные номера госуслуг для связи (под спойлером, а то бабки найдут):
Бесплатный номер по России: 8 800 100–70–10
Для звонков из‑за границы: +7 495 727–47–47
Для мобильных телефонов: 115
Как посмотреть. Вообще, я люблю красивые технические уязвимости, или когда сочетание двух фич (каждая безопасна и полезна сама по себе) создает уязвимость. Я писал сложные эксплойты на срыв стека, делал clickjacking, XSS и CSRF - и мне немного неприятно признавать, что вот тут все так просто... Но ведь работает!
Конечно, можно возразить, что пользователь - сам дурак (а вы, простите, для кого делаете систему? Реальные люди - они такие, да). Но по сути, достигнутый эффект - пользователь звонит на номер мошенника, полагая, что это номер госуслуг, подкрепляя доверие через известный адрес сайта и валидный сертификат. Как взломщик этого достиг, через cross-site-scripting, через DNS Spoofing и криптографическую атаку и выпуск фейкового, но валидного сертификата - неважно. Мошенник достиг своей цели.
И да, это срабатывает не на всех пользователей. Только на самых неграмотных или самых впечатлительных, склонных к манипулированию, теряющих трезвость ума в стрессовой ситуации.
Но я считаю важным тут то, что мы можем понимать эту проблему, признавать ее как проблему, разрабатывать пользовательские интерфейсы с учетом этих рисков и тогда количество "сами виноватых" пользователей будет меньше.
1. Сайт без технических уязвимостей вполне может быть использован для атаки на пользователя методом социальной инженерии
2. Страница, прекрасно работающая в штатном режиме (забыл пароль, хочу сбросить) может быть не очень удачной в нештатной ситуации (злоумышленник получил доступ к аккаунту)
3. Шрифты, фон, оформление - могут иметь значение! Представьте текст "Ваш аккаунт заблокирован" шрифтом комик-санс. Никто при всем желании не подумает, что это в самом деле от администрации. Но если комик-санс это не слишком подходит для реального применения, то какой-нибудь италик, стилизованный под рукописный текст - вполне себе дает сигнал, что это пользовательский текст, а не строгое казенное системное сообщение.
4. Любите и поддерживайте ваших пользователей, особенно, если Вы для них - важны и опасны (как аккаунт в госуслугах). Не скрывайте свою поддержку от них. Не полюбите их Вы - их окружат вниманием, любовью и заботой мошенники.