Comments 17
Странно, что такие приложения для крупных компаний не тестируются…
Разработку приложений в украинских компаниях, в целях экономии, зачастую выполняет один разработчик, а тяга маркетинга компаний к «играм с кнопочками» не позволяет сосредоточиться на качестве и безопасности.
Также, сервисы приложений жестко привязаны к 1С, в котором крутится не только бухгалтерия, но и товарооборот, и логистика.
Также, сервисы приложений жестко привязаны к 1С, в котором крутится не только бухгалтерия, но и товарооборот, и логистика.
Да, все так. Я 3 года назад создал приложение для одной из украинских страховых компаний. Ни дизайна, ни технического ревью архитектуры, ни-че-го. Я тянул на себе все, включая написание веб-серисов для приложения на 1С8. На вопрос «так и будем пробрасывать реальный сервер наружу в проде?» получил ответ «а что не так? конечно!». SSL буквально заставил поднять и настроить, это заняло примерно месяц с их стороны. В моем договоре был указан период в 6 месяцев, в течение которых я не могу заниматься разработкой аналогичного продукта для конкурентов. После окончания проекта отдал все исходники и попросил в случае чего сразу меня дергать, мне хотелось, чтобы продукт становился лучше. Прошло 3 года, версия не обновилась, появились креши на новых версиях iOS, админский аккаунт у меня до сих пор остался. Надо сказать, что такие косяки характерны для любого приложения украинских компаний, к сожалению.
Что бы получить доступ к содержимому https запросов, помимо настроек прокси, в свойствах подключения смартфона, нужно дополнительно установить доверенный сертификат, который генерирует программа.
Могу заблуждаться, но разве после какой-то версии Андроида https-трафик с приложений без пересборки .apk оных не перестал быть виден?
Тоже когда-то разрабатывал приложение для дополнительной верификации пользователя через sms.
На один и тот же номер телефона, с одного IP можно «заказать» сколько угодно СМСне совсем понимаю, как это поможет сделать брутфорс? Обычно в таких приложениях стандартный алгоритм: есть определенный временной интервал между повторными отправками sms; код каждый раз генерируется заново; при проверке, после нескольких неудачных попыток сбрасывается и высылается повторно. Да и обычно временное окно, в течение которого можно провалидировать код после авторизации по логину и паролю тоже сильно ограничено — несколько минут. Еще часто системы рейт-лимитов могут не торчать наружу, система продолжает принимать от вас запросы, но на самом деле уже внесла вас в черный список и просто выдает какой-то стандартный ответ.
перехватить логин/пароль или нужный http заголовок совсем не проблема— как вы перехватите логин/пароль другого пользователя, траффик же шифруется https?
Единственное в чем виноват разработчик приложения, это в том, что не сделал certificate pinning. Все остальное это проблемы серверной части.
Pinning — защита от скрипт-киддисов, которые повторяют шаги по туториалам с кулхацкеских форумов. На деле же, он снимается в несколько строк шелл-скрипта. Даже реверсер-любитель снимет его без каких-либо усилий и точно так же разберёт трафик.
Снимет с чего? Речь ведь идет об мобильном приложении и возможности украсть чужой аккоунт. Certificate pinning исключает MITM атаки, доступа к установленной программе или телефону у злоумышлинника нету, а подбор пин кода это проблемы сервера.
А если есть физический доступ к телефону жертвы, никакая защита не поможет.
А если есть физический доступ к телефону жертвы, никакая защита не поможет.
Ну, украсть данные аккаунта в 2019-м году через MitM мне вообще не видится возможным в серьёзном ПО. Pinning здесь играет не последнюю роль, да.
Но большинство утечек идёт именно через проблемы сервера, как вы и говорите. А чтобы его исследовать, достаточно расковырять API на локальном устройстве и найти косяки, которых обычно предостаточно. Здесь то и не помогут никакие пиннинги.
Но большинство утечек идёт именно через проблемы сервера, как вы и говорите. А чтобы его исследовать, достаточно расковырять API на локальном устройстве и найти косяки, которых обычно предостаточно. Здесь то и не помогут никакие пиннинги.
Имхо, certificate pinning предназначен для решения достаточно специфичных проблем. Но его применение для защиты от уязвимостей в API может нанести больше вреда, чем пользы. Остановит ли он исследователя, который решил посмотреть на приложение (особенно, если это первые разы)? Вполне возможно. Остановит ли это злоумышленника, который собирается получать финансовую выгоду? Сомневаюсь, обход таких вещей — его «работа». В итоге получается защита от статьи на Хабре или где-то еще, а не от реального взлома.
При нормальной защите логика работы приложения не должна быть секретом. Ограничен должен быть только доступ к данным типа ключей, логинов и тд., что делается средствами мобильной ОС. При физическом доступе к устройству жертвы, защиты не может существовать, вопрос только в цене.
Возможно я не до конца понимаю смысла этого решения, может вы мне объясните. Чем бы это спасло? Ведь при пиннинге приватную часть сертифката нужно хранить в приложении. Откуда его не составит проблем вытащить любого пользователю. Даже на iOS это можно сделать, мы пробовали на очень известных апках) Насколько я понимаю, имея приватный ключ сертификата вы банально можете расшифровать весь трафик, идущий на сервера. Наверное, я, конечно, что-то не учитывую, не вглублся в этот момент.
При пиннинге в апликации хранится паблик ключ или даже хешь ключа сервера. С помощью него проверяется действительно ли сервер это ваш сервер, а не фейк сервер злооумышленника который с помощью него например пытается получать данные логинов и тд. Особенно это опасно в паблик WiFi сетях где можно подменять DNS и перенаправлять траффик на левые сервера.
К шифрованию трафика это не имеет никакого отношения. Этим занимается https и там ключи динамические.
К шифрованию трафика это не имеет никакого отношения. Этим занимается https и там ключи динамические.
Sign up to leave a comment.
Разработчик, помни — трафик твоего приложения смотрят