Pull to refresh

Comments 35

HTTP toolkit (он по непонятным мне причинам не доступен в РФ без VPN).

1 апреля Генпрокуратуре не понравилась страница How to Debug Any CORS Error, 3 апреля она внесена в реестр, ну и соответственно блокируется доступ ко всему домену, раз HTTPS.

О, всю ветку потерли... Если что там поверх сайта был попап с разными заявлениями и призывами, что не относятся к теме cors и разработки.

Деньги мне в принципе не нужны

так что я попросил просто начислить мне побольше бонусов, ведь я сам пользуюсь их сервисом.

Это как, бонусы не за деньги приобретаются?

За деньги конечно :) Суть была в том, что взлом был сделан не с целью извлечения выгоды, а "по приколу"

Илья, а почему в названии статьи Мы?

Везде по тексту я.

Фраза какая то крылатая была, очень похожая на заголовок статьи. Там было "мы" :)

Запомнилось из "Аквариума" Виктора Суворова: когда разговариваете с человеком один на один (вербуете), не стоит говорить "мы", т.к. это звучит зловеще. Кто эти неизвестные "мы"? Человек подсознательно не доверяет тому, кого не знает и не видит перед собой. Надо всякий раз говорить "я". Например не "мы вам предлагаем работать на нас", а "я вам предлагаю работать на меня".

Поэтому давно подмечаю, что какие-нибудь фрилансеры или недокомпании на своих сайтах всегда говорят "мы", хотя очевидно, что за этим стоит всего лишь один человек. Видимо хотят придать себе солидности, выдать себя за корпорацию.

Запомнилось из отечественного кинематографа, что когда разговариваете с человеком один на один, не стоит говорить "мы", он начнет ругаться и говорить "Кто мы-то? К кому ты обращаешься во множественном числе - я здесь один!".

Ну, допустим, на сервере проверяется валидность мапа модель-тариф, переданного с клиента, и этот фордж теперь заткнули. Но осталась штука гораздо более полезная и крутая - подфорджить lat/long, чтобы можно было удаленно запустить от своего аккаунта поездку на самокате на другом конце города - например, организовав для своего ребенка поездку из школы домой. Как бороться с этим, кроме как проверять подмену сертификата и не работать под угрозой митм вообще?

Ну, проверкой сертификата тут не обойтись, ведь я могу поставить свой сертификат как root certificate и все будут ему доверять, хотя похожий сервис шеринга уже реализовал защиту от такого. Над обходом этого как раз сейчас работаю :)
По поводу lat/long - клиент постоянно отправляет запросы в которых узнает наличие самокатов рядом с определенными координатами и если вдруг, клиент зашел в приложение и запросил самокаты рядом с домом в Москве, а потом берет самокат в Ярославле, это немного подозрительно.

удаленно запустить от своего аккаунта поездку на самокате на другом конце города — например, организовав для своего ребенка поездку из школы домой. Как бороться с этим
А может больше смысла добавить это фичей, чем бороться? В убере и прочих такси было очень удобно вызвать такси не к себе, а к (жене / ребенку / родителям) что бы они ими воспользовались без лишнего гимороя с (оплатой / разбирательством с сервисом) или даже в принципе без смартфона (просто с кнопочным телефоном)?

А почему "было"? Что случилось с Убером?

Давно не пользовались, поэтому не стали употреблять настоящее время на всякий случай, ибо не уверены осталась ли там эта фича.

Предполагаю что логика в том, что после окончания аренды Вы обязаны сфотографировать самокат (то, как Вы его припарковали) для подтверждения того что он целый и что Вы припарковали его правильно. В противном случае (в случае неправильной парковки) будете платить 500 руюлей штрафа.

А как можно сфотографировать самокат, который находится в другом конце города? (Сфотографировать любой другой это не решение проблемы).

Справедливости ради (насчет штрафа) расскажу положительную историю про Whoosh: столкнулся в Сочи. Был день России в Сочи и олимпийский парк на дневное время закрыли для самокатов. Вечером открыли и самокаты можно было брать, но внутренние парковки (внутри самого парка) на карте не появились, только снаружи, но попасть туда не получалось, т.к. забор мешал (можно было пройти по надземному переходу и перетащить, но самокат тяжелый). В итоге запарковал максимально близко к парковке, программа сразу предупредила что будет штраф, написал в поддержку и через 3 минуты мне ответили чтобы я не переживал, они проверили, убедились что я прав и поставили пометку в базе что все норм и штрафа не будет.

Сфотографировать любой другой это не решение проблемы
Но зато это отличное объяснение, почему делать фото самоката это по большому счету карго-культ. Там ведь даже не требуется снимать так, что бы серийник был виден. Можно раздолбать самокат в мясо, взять любой другой, сфоткать его и на этом всё — свободен и чист.

Ну тут тоже скорее всего есть хитрости:

1) GPS достаточно точный и будет видно часто что это не тот самокат.

2) Куча сенсоров в самокете, гироскопы, датчики ударов. Думаю что если что-то случится с самокатом - просто посмотрят историю ударов, падений и т.д. И выявят во время аренды это было или нет.

1) Дык достаточно убитый с собой взять, а сфоткать целый.
2) Вряд ли это можно будет предьявить где-то на уровне выше чем «ты че пацан вертай деньги за сломанный самокат», этож не настоящий черный ящик с защитой и вот этим всем.

спуфинг координат для мобилок - это тривиальная задача, не требует никаких особых навыков)

можно было удаленно запустить от своего аккаунта поездку на самокате на другом конце города

Не ясно чем это вредит сервису? Деньги они не теряют, зачем что-то блокировать?

Как бороться с этим, кроме как проверять подмену сертификата и не работать под угрозой митм вообще

Если с этим надо было бы бороться (сервис каким-то образом терял деньги), то никакие проверки на клиенте не помогут. Клиент может делать хоть certificate pinning, но не поможет. Хакер всегда может просто создать свой клиент и посылать API запросы напрямую. Проверки должны быть на бэкенде, но никак lat/lon не проверить, только отсекать необычное поведение, вроде быстрой смены координат.

Центр торгового зала в Ашане - "Не играйте в Покемон Го в машине!". Проверить - можно, если получить от оператора координаты (вышку, к которой подключён клиент). Но будут и такие варианты, как резкие скачки, если уровня сигнала - нет.

Подмена координат может помочь в самой поездке. Есть зоны с ограничениями скорости или с запретом. Вот их и можно обойти.

Насколько я понял, там проверяются координаты самоката, а не юзера. А самокат это уже отдельная железка.

Никак. Тут даже технических скиллов не надо, просто включите режим отладки андроид и введите координаты вручную, будет тоже самое

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

Но осталась штука гораздо более полезная и крутая - подфорджить lat/long

Гораздо более крутая, чем кататься со скидкой 80%? ?

фикс данной уязвимости достаточно прост

Как всегда простое правило - сервер не должен верить ничему на стороне клиента.

Параметр withInsurance у order/make с потрохами выдает о ком идет речь. :) По крайней мере не помню чтобы у остальных такая галка была. В принципе респект им за реакцию, не первый раз слышу о том что у них руководство весьма приземленное.

Ну не то что бы выдаёт, я знаю как минимум 2 сервиса в которых есть страховка

«Подменить сертификат просто, но Android приложения зачастую не очень хотят отправлять данные используя наш сертификат, ведь они ему не доверяют» — что-то я не понял историю с сертификатами. Вы, наверное, имеете дело с прокси HTTPS трафика, когда дополнительный софт открывает шифрованную сессию (end-to-end) с удаленным сервером («по его правилам»), а этот же дополнительный софт открывает вторую закрытую сессию уже с вашим браузером (мобильным приложением). MiTM. И вы устанавливаете в качестве доверенного сертификата в операционную систему именно сертификат этого доп софта.
«Подменить сертификат просто, но Android приложения зачастую не очень хотят отправлять данные используя наш сертификат, ведь они ему не доверяют» — что-то я не понял историю с сертификатами.

Видимо речь про то, что можно сделать так, что сертификату мало быть просто доверенным, мало быть даже системным а надо быть выписанным конкретными CA (возможно — своими) или вообще будет работать только конкретный сертификат.


Правда эту проблему тоже решают — https://habr.com/ru/post/559722/ https://habr.com/ru/post/495682/#comment_21463074

Я вот тоже не уловил сути финта с сертификатами. Сервер не умеет в EMS? Пичаль, но легко фиксится. Сервер не валидирует данные, приходящие с клиента? Тогда можно было просто передавать: начало аренды - 12:20, окончание - 12:21, а самому кататься сутками напролет хоть даже и по дорогому тарифу.

передавать: начало аренды - 12:20, окончание - 12:21, а самому кататься сутками напролет хоть даже и по дорогому тарифу.

Сомневаюсь: наиболее вероятно, окончание конкретной поездки лочит конкретный самокат до начала следующей.

Мне ответили буквально через 10 минут и дали контакт их директора, сказали связаться с ним.

Я изложил суть ему, он выразил мне благодарность

Вроде бы абсолютно адекватная реакция адекватных людей, но в наше время это почему-то все еще вызывает какой-то "шок" что-ли, что люди ответили, не начали орать, не угрожали, не пытались решить на своём уровне (чтобы директор не узнал о косяке), а сразу передали проблему на тот уровень, где её могут решить.

Закрыли одну маленькую лазейку. Лучше напишите статью "Как защититься от подмены сертификата".

Ответ на этот вопрос простой - никак :)

Поставите ssl pin, можно обойти через frida. Поменяете манифест, можно обойти через apk-mitm

Sign up to leave a comment.

Articles