19 октября 2026 г.
Автор:
Как обнаружить замену SIM-карты на Rust с помощью API Twilio Lookup
Коды OTP (одноразовые пароли) для двухфакторной аутентификации (2FA), отправляемые через SMS, становятся все более важными для защиты доступа к онлайн-аккаунтам. Однако есть существенный нюанс: телефоны уязвимы для атак с подменой SIM-карты (SIM Swap).
При атаке с подменой SIM-карты злоумышленник перехватывает номер мобильного телефона реального абонента, обращаясь к оператору мобильной связи с просьбой привязать этот номер к SIM-карте, находящейся под контролем злоумышленника.
При этом не имеет значения, какой тип SIM-карты у жертвы, поскольку уязвимы как физические SIM-карты, так и более новые eSIM (встроенные SIM-карты).
Когда происходит атака с подменой SIM-карты:
- Жертва теряет контроль над своим номером.
- Злоумышленник может принимать все вызовы и SMS, отправленные на номер телефона жертвы. Это позволяет им получать любые OTP-коды, доставляемые через SMS.
Однако решение есть! Twilio предлагает функцию обнаружения замены SIM-карты через API Lookup, которая снижает последствия атак с подменой SIM-карты.
Цитируя документацию:
Lookup SIM Swap предоставляет достоверные данные, полученные непосредственно от операторов мобильной связи, сообщая вам, была ли SIM-карта, привязанная к номеру мобильного телефона, недавно заменена. Это дает вам уверенность в том, что мобильный канал можно использовать для связи или аутентификации вашего пользователя. Это также поможет вам оценить потенциальный риск того, что номер мобильного телефона и связанная с ним учетная запись пользователя могли быть скомпрометированы.
Это дает вам уверенность в том, что мобильный канал можно использовать для связи или аутентификации вашего пользователя. Это также поможет вам оценить потенциальный риск того, что номер мобильного телефона и связанная с ним учетная запись пользователя могли быть скомпрометированы.
Если это звучит как то, что вам нужно для лучшей защиты ваших пользователей, это руководство для вас! Вы узнаете, как интегрировать обнаружение замены SIM-карты в свои приложения на Rust.
Хотя замена SIM-карты может быть подозрительной, для нее существуют и законные причины. Например: вы потеряли телефон или его украли; вы хотите перенести свой номер к другому оператору; вы купили новый телефон. Учитывая эти причины, трудно программно определить, является ли замена SIM-карты подозрительной или нет. Данные о замене SIM-карты всегда следует использовать как часть более широкого и комплексного анализа. Пожалуйста, помните об этом.
Предварительные требования
Чтобы следовать этому руководству, вам потребуется следующее:
- Установленные Rust и Cargo
- Учетная запись Twilio (бесплатная или платная) с включенной поддержкой SIM swap. Создайте ее сейчас, если у вас ее еще нет.
- Номер мобильного телефона, который вы хотите проверить
- Ваш предпочтительный редактор или IDE для Rust, например Visual Studio Code или Rust Rover
- Некоторый предварительный опыт работы с Rust и командной строкой будет полезен, хотя и не обязателен
Создание проекта Rust
Первое, что нужно сделать, — это создать новый бинарный проект Rust и перейти в каталог нового проекта, выполнив следующие команды:
Скопировать код
Добавление необходимых крейтов
Далее, естественно, нужно добавить крейты, которые потребуются приложению. Их немного, только следующие:
Чтобы добавить их, выполните следующую команду
Крейт
Описание
Они упрощают установку и получение переменных окружения, которые потребуются приложению. Это позволяет хранить учетные данные и конфигурационные данные вне кода Rust.
Это упрощает взаимодействие с API Twilio Lookup v2.
Они упрощают десериализацию ответов от запросов API Lookup, облегчая работу с ними.
Это упрощает написание асинхронного кода.
Скопировать код
Установка необходимых переменных окружения
Приложение использует три переменные окружения. Это ваши Twilio Account SID и Auth Token, а также номер или два мобильных телефона, которые вы хотите проверить на предмет замены SIM-карты.
Чтобы установить их, создайте новый файл с именем .env и вставьте в него приведенный ниже код.
Скопировать код
Затем войдите в свою консоль Twilio, после чего на панели Account Info панели управления учетной записью скопируйте Account SID и Auth Token.
После этого вставьте значения в .env вместо <TWILIO_ACCOUNT_SID> и <TWILIO_AUTH_TOKEN> соответственно.
Написание кода на Rust
Теперь давайте перейдем к основной части руководства и напишем код приложения на Rust. Для этого замените код в src/main.rs на следующий:
Скопировать код
Затем замените <<YOUR PHONE NUMBER>> на номер телефона, который вы хотите проверить.
Код начинается с загрузки переменных из .env в качестве переменных окружения. Затем, вызывая функцию lookup_phone_data(), он ищет детали указанного вами номера телефона, извлекая любые доступные данные о замене SIM-карты (поскольку data_packages содержит DataPackage::SmsPumpingRiskScore). Если данные о замене SIM-карты доступны, он выводит эту информацию. В противном случае он сообщает, что данные о замене SIM-карты недоступны.
Проверка работы приложения
На этом этапе вы готовы использовать приложение для обнаружения потенциальных замен SIM-карт. Для этого вернитесь в терминал и выполните приведенную ниже команду.
Скопировать код
Вы должны увидеть вывод, похожий на приведенный ниже, напечатанный в терминале:
Скопировать код
Помните, что существуют законные причины для замены SIM-карт
Хотя замена SIM-карты может быть подозрительной, существуют и законные причины для замены SIM-карты. Например, вы потеряли телефон или его украли; вы хотите перенести свой номер к другому оператору; вы купили новый телефон. Пожалуйста, помните об этом.
Учитывая эти причины, трудно программно определить, является ли замена SIM-карты подозрительной или нет. Данные о замене SIM-карты всегда следует использовать как часть более широкого и комплексного анализа.
Вот как обнаружить замену SIM-карты на Rust
Благодаря функции обнаружения замены SIM-карты Twilio через API Lookup (и Rustlio), вам нужно сделать совсем немного, чтобы получить данные о замене SIM-карты для номера телефона и проверить, не была ли она недавно заменена.
Сделав это, вы сможете снизить вероятность того, что кто-то потеряет контроль над своим номером или что злоумышленник сможет принимать все вызовы и SMS, отправленные на номер телефона пользователя.
Мне не терпится увидеть, что вы создадите с помощью обнаружения замены SIM-карты!
Мэтью Сеттер — редактор по PHP и Go в команде Twilio Voices. Он также является автором Mezzio Essentials и Deploy with Docker Compose. Вы можете найти его по адресу msetter@twilio.com. Он также есть в LinkedIn и GitHub.






