Как стать автором
Обновить

Комментарии 38

Новый виток в теме антивирусов — система «антихакер». То есть автоматизированная система анализа безопасности… Шикарная идея! Вы — молодец.
Вам бы добавить какой-нибудь флажок, если у приложения нет проблем. А то скачал свое, проанализировал… и долго искал где же репорт. А сервис оказывается просто уязвимостей не нашел.
И еще — категорически необходимо ввести подтверждение владения приложением до начала работы с ним. Мне не очень нравится, если кто-то будет с помощью вашего сервиса качать напрямую билды из гугл плея и анализировать их на проблемы, я бы предпочел, чтобы это была информация только для меня. Для подтверждения можно, например, отправлять ссылку на контактный адрес, указанный в профиле разработчика на гугл плей.
если ни кто не нашел проблем в вашем приложении, это еще не значит, что их там нет.
Это безусловно, только как это относится к моему комментарию?
Вам бы добавить какой-нибудь флажок, если у приложения нет проблем.
могут быть флажки о проблемах, может не быть флажков о проблемах. флажок «нет проблем» это вранье, что уже само по себе проблема.
Хорошо, давайте назовем этот флажок «проблем не найдено». Все же наличие флажка в принципе — хоть какая-то индикация
ок, принято. спасибо.
а чем использование этого инструмента принципиально отличается от ситуации, когда человек скачивает опубликованное приложение и реверсит вручную?

Pro версия, кстати, позволяет через api сканировать дистрибутив приложения перед релизом, и делать автоматическую нотификацию( с результатами анализа) по почте, по факту выхода новой версии приложения.
Отличается тем, что в сервисе достаточно одну кнопку нажать. Злоупотребление нельзя исключить, но можно хотя бы усложнить.
если я свое приложение проверяю но на google play и в appstore его нет и не будет
(iOS версия использует Enterprise-сертификат для установки на все девайсы где нужно быть)
то как мне быть?
залить в гугл плей фейковое приложение с тем же id?

кстати проверка показала что все нормально не смотря на то что вообще то пока что и ключи доступа к AWS и Parse в коде и «интересные» URL'ы… только все это — константами в коде.

а вы залили iOS приложение? там просто непосредственно исполняемый файл DRM защищен, который пока вне устройства никто публично не научился снимать. Так что анализатор смотрит на все, что есть помимо бинарника, plist, xml,sqlite и прочее.
и iOS и Android версии приложения.
Отслеживание в реал тайме это конечно жесть, за это можно и присесть.
НЛО прилетело и опубликовало эту надпись здесь
Только позвчера задумывался над вопросом, как скачать приложение из AppStore, не имея ни одного устройства Apple. Как раз хотел из одного приложения извлечь информацию как оно к API подключается (его скорее всего токеном закрыли — хотя смысла не вижу, сайт публичный, а я хочу попробовать сделать аналог под Android).
Способа скачать не придумал :(
Если нужно что-то разово качнуть без устройства, то вполне сгодится iTunes.
А как это сделать? Опишите, если не затруднит, в двух словах. Беглый поиск в гугле не нашел, хотя может не там искал.
У меня просто никогда не было ничего от Apple, так что я даже примерно не представляю куда смотреть.
Как реализовать автоматическое скачивание из AppStore, тема для отдельной большой статьи, скажу только что это на порядок более трудоемкая задача, чем «качалка» для Google Play.

Было бы крайне интересно прочитать про это. Ведь и правда, как вы заметили, скачать что-то с Google Play — очень просто, даже «качалка» находится в опенсорсе.
Мне интересна противоположная тема: как защитить взаимодействие своего приложения с сервером? То есть, к примеру, у меня есть сервер, выдающий прогноз погоды, и мобильный клиент, его показывающий. Я не хочу, чтобы кто-либо, кроме моего приложения, мог получать данные с моего сервера.

Единственное, что приходит в голову, это добавлять какую-то чексумму в каждый запрос. Это даёт защиту от простейшего хака через сниффер запросов. Злоумышленник, перехватив запрос, сможет выполнить такой же запрос, но не сможет поменять параметры. Но покопавшись в коде, всегда можно найти алгоритм формирования чексуммы и использовать его для создания произвольного запроса. Обфускация в андроид-приложении слегка усложняет задачу взлома, но не делает ее невозможной. Под ios код шифруется, но теоретически его можно расшифровать как я понял.
Очевидно, что гарантированного решения нет: всё, что может сделать ваше приложение, сможет сделать и злоумышленник, расковыряв и/или изменив его.
Если код выполняется на процессоре, значит в какой-то момент он расшифровывается, значит его возможно расшифровать.
Возможно лишь усложнить взлом.
все верно, но можно сделать «расковыривание» экономически нецелесообразным, например обновляя приложение каждую неделю, используя новый алгоритм обфускации.
И с каждым обновлением прекращая поддержку всех пользователей предыдущих версий?
Отличный план.
зачем? просто выкатывать новую версию и все. Можно новую обфускацию выкатывать с релизом нового функционала. Т.е. чтоб без реверса новый функционал было нельзя повторить.
Также можно при шифровании токена добавлять nonce / timestamp, т.е. привязывать к определенному времени, и если кто-то перехватит, а потом повторит запрос (replay attack), но время запроса не совпадает, то токен не валиден и сервер не ответит.

Мне тоже интересно узнать лучшие способы защиты, кроме обфускации и шифрования.
Кстати, кто знает, подскажите пожалуйста ссылки для поиска уязвимостей в iOS приложениях.

Пара моих небольших замечаний:
1. Почему-то нет авторизации через Facebook для базового варианта (Free Scan).
2. А где собственно Pro-версия? Не демка, а именно если я хочу заплатить денег сразу (и сколько?)?
1. Ей необходимость не очевидна сейчас. Что она дает, кроме возможности зайти еще одним способом?
2. ответил в ЛС, чтоб не нарваться на бан за рекламу
Ну стандартно делают вход через ФБ и Твиттер. Линкед ин вместо ФБ несколько удивил, хотя это, разумеется, ваш выбор.
сделал вход полностью анонимным с долгоиграющей кукой
Имхо, HackApp — неудачное название для такого приложения.
От такого названия веет чем-то другим, а не заявленной функциональностью…
а что бы вы порекомендовали?
Отличная идея и спасибо за полезное приложение.
Стоит еще поработать над интерфейсом отчетов, т.к. пока что не совсем понятно, есть уязвимости или нет, и насколько они критичны.
Например, вот анализ нашего приложения, это хорошо или плохо?
qblx.co/1lOyH7T
qblx.co/1mFlxWh

Желаю успеха проекту, с удовольствием будем пользоваться, если будет развиваться.
Хотелось бы аналогичное для iOS.
Спасибо на добром слове!

>Хотелось бы аналогичное для iOS.
ссылки с itunes тоже работают, анализ базовый тоже проводится.

>это хорошо или плохо?

Если нет вкладки багов, то значит лютых багов не найдено. Рекомендую заглянуть в секцию suspicious files, там частенько можно увидеть то, чего в приложении не нужно.
Отсутствие вкладки багов вводит в заблуждение. Я вот тоже загрузил свое андроид-приложение, а потом долго думал-ходил по другим вкладкам (и даже заглянул в help), чтобы понять все ли хорошо с моим приложением? или, может, сервис поиск уязвимостей лишь для iOS приложений делает?
Я бы вкладку bugs показывал всегда. Но если багов не найдено — показывал бы сообщение, что с приложением все хорошо, багов не найдено.
Как ваш сервис приложения для Android анализирует? Используется описанный в статье, на которую вы ссылаетесь, PlayDrone? Или что-то другое, свое?
Свое, конечно. Моя конструкция на год раньше их исследования появилась. В playdrone «грепают» декомпилированный код, я, помимо этого, ещё изучаю содержимое sqlite баз, xml, смотрю подозрительные файлы. Но вот идея с elasticsearch мне в плане удобства понравилась, сейчас смотрю как её лучше встроить.
А xml перед анализом декодируете? Если на вкладке files качать xml, которые лежат в ресурсах, то они не декодированные.
да, иначе бы данные из manifest не были бы доступны. в Pro версии при просмотре файлов они автоматом декодируются.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории