Telegram Web Link
iPhone 12 mini — 699$
iPhone 12 — 799 $

Ура, есть 5G, но использовать его вы, конечно же, не сможете.
А еще из iPhone 12 Pro можно сделать скальпель.
Инструменты для реверса Android-приложений

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

⚡️ javadecompilers позволит декомпилировать apk или jar файлы онлайн (иногда правда отваливается или приходится ждать пока подойдет очередь);
⚡️ jadx – декомпелятор dex -> java. Пожалуй, сейчас единственный более менее живой инструмент в этой нише;
⚡️ bytecodeviewer – тоже самое что и jadx, правда непонятно поддерживается ли на данный момент;
⚡️ wireshark – бесплатный анализатор сетевых пакетов с открытым исходным кодом.

Конечно же, инструментов для реверса много. Но, на мой взгляд, не все из них действительно заслуживают внимания, тем более на начальном этапе 😎
Довелось мне тут поковыряться в ios-ном коде. Что я могу сказать…

Apple – ты пиздец.
Реверс-инжиниринг и Право

Сейчас информационная безопасность мобильных приложений набрала обороты. Я давно в этой сфере и четко вижу изменения в индустрии. Раньше вакансий по реверсу приложений и днем с огнем было не сыскать. Теперь же их становится все больше. Компании предлагают за такие услуги лучшие условия и готовы бороться за кадры. Забавно, но сейчас быть реверсером приложений может быть даже выгоднее, чем их разработчиком 😊

Для меня удивительно, что на моем канале набралось столько людей, которым все это интересно. Раньше мне казалось что 200 человек – это предел. Но с тем как растет интерес, многие забывают об ответственности. Сейчас объясню о чем я.

Большинство контрактов которые заключаются на реверс/аудит приложений конкретной компании никогда не будут содержать слово “реверс”. Это слово аккуратно заменяется на “тестирование”. Уже догадываетесь о чем я?

Реверс – это весьма серая сфера, но многие даже не задумываются о ее законности. Ревес, любая декомпиляция и нарушение целостности конечного пакета приложения, даже с согласия его автора – это не законно. А все потому что автор приложения – на самом деле не является его настоящим владельцем. А Apple и Google имеют все права на то, чтобы заблочить вас на всех своих площадках и выписать любой штраф – это написано в их лицензиях, с которой вы соглашаетесь, когда регистрируетесь на Develop-площадках. Правда всегда есть оговорки, поэтому я сделаю небольшую сноску чтобы вы понимали что к чему.

Реверс-инжиниринг и Российское право, когда он незаконен:

🔥 Если вы получили доступ к приложению неправомерно (торрент, скачали на форуме);
🔥 Если цель реверс-инжиниринга изучить продукт конкурента для разработки своего собственного;
🔥 Отсутствие документации или тз к реверс-инжинирингу;
🔥 Любая другая причина, потому что нефиг лезть.

Помимо этого почти все приложения крупных компаний также имеют лицензионное соглашение с пользователем примерно такого содержания:

“Запрещается декомпилировать, дизассемблировать, модифицировать или выполнять производные работы, основанные на ПО, целиком или частично за исключением случаев, предусмотренных применимым законодательством.”

Скажу честно, в России еще не было громких дел в данном направлении. Но за рубежом – достаточно. Это связано с тем что Российское право весьма размытое, особенно когда оно касается авторского права и работы с ПО и ЭВМ. Однако это и не хорошо, потому что реверсера за уши могут притянуть за что угодно. А потом бегай по судам и доказывай что ты не верблюд. К тому же, будет куда печальнее если вы по незнанию расскажете публично, а что такого интересного вы нашли в инстаграме и фейсбуке, когда его разреверсили, это взлетит и дойдет до компаний, и вам потом запретят въезд в EC и Америку 😁

Be safe 💔
Как думаете, мне уже пора начинать бороться за права реверсеров? 🤣
У МТС опять фейл. Если кратко, то у чувака украли паспортные данные, пришли в МТС, показали справку о потере паспорта из паспортного стола и попросили перевыпустить симку. В итоге злоумышленник получил доступ ко всем учеткам и успел увести инстаграм. Благо парень быстро это просек и побежал ругаться в ближайший салон МТС.

Винить тут на самом деле некого, потому что сотрудник МТС, который перевыпустил симку действовал в рамках правил, а в условиях жесткой конкуренции между провайдерами компании вынуждены становиться “удобными”. Так что это не первый и далеко не последний подобный случай.
Тру стори: однажды я обновила Android Studio и все работало. (Это не так, если что)
Ребят, ну шо такое. Опять нашла довольно крупный продукт, по которому даже дефолтным proguard-ом не прошлись. Это же просто, смотрите:

Уан. minifyEnabled true
Ту. Читаем тысячи статей или официальную документацию
Фри. Настраиваем под свой проект proguard rules

Не будьте как “те, кого нельзя называть”. Берегите свой труд от лишних глаз.
Самоизоляция довела меня до того, что я теперь хочу домашнюю грядку. Полезла искать в интернеты и нашла забавные штуки. Это типа умные грядки.

Я вот, например, никогда ничего особо не выращивала. Был у меня как-то кактус Федор, но Федора почти сразу же забрала моя мама, потому что по ее словам: “я недостойно с ним обращалась” и так я осталась одна. Но с тех пор прошло много лет, думаю теперь моего IQ должно хватить чтобы вырастить какой-нибудь салатик.

Короче, умные грядки – это очень прикольно, там все идет сразу набором. То есть просто засыпаешь семена, засовываешь в эту штуку и все растет само. Однако мне стало интересно, есть ли такие же штуки, но с приложением. Типа оно тебе говорит когда все это дело надо поливать, а может влажность недостаточная или свет слишком яркий и типа уровень топовости твоего салатика и тд. Что-то вроде ксяомовского чайника, только грядка.

Вы только представьте, грядка-тамагочи! И что-то я не нашла ничего такого 😩

Если вы видели – киньте мне, плиз. Я в активном поиске.
Как создавать безопасные приложения

Несколько правил, пробежавшись по которым вы сделаете свое приложение максимально безопасным:

🔥 Безопасная связь между приложениями
• Неявные интеты. Стоит относится к ним с осторожностью, потому что на такой вид интентов может отреагировать любое приложение, установленное у пользователя.
• Разрешения на уровне подписи. Так можно проверить, что приложения, получающие доступ к данным, подписаны с использованием того же ключа подписи.
• Неэкспортируемый контент. Если вы не собираетесь отправлять данные из своего приложения в другие приложения, явно запретите другим приложениям доступ к вашему ContentProvider в манифесте с помощью
android:exported=false
.

🔥 Безопасное сетевое взаимодействие
Для любого типа сетевого взаимодействия нужно использовать HTTPS c проверкой сертификата. Не забудьте добавить networkSecurityConfig.

🔥 Аутентификация высокого уровня
Конфиденциальная информация может быть защищена с помощью многофакторной аутентификации, надежного управления сессией и таймаутами. Также важно настроить расширенную авторизацию с поддержкой таких инструментов, как веб-токены OAuth 2.0 или JSON.

🔥 Правильный набор пермишенов
Приложение должно запрашивать только минимальное количество разрешений, необходимых для правильной работы. Например, если приложение требует создания контакта для приложения контактов, делегирует ответственность за создание контакта приложению контактов, которому уже предоставлено соответствующее разрешение WRITE_CONTACTS.

🔥 Безопасное хранение данных
Криптография – это самый эффективный способ обеспечить безопасность данных. Используйте соответствующий механизм шифрования при работе с данными.
• Чтобы добиться большей безопасности при хранении ключей, используйте систему Android Keystore.
• Храните все личные данные пользователя во внутренней памяти устройства, которая изолирована от других приложений. А когда пользователь решит удалить приложение, устройство удалит и все файлы, сохраненные приложением во внутренней памяти. Советую изучить работу EncryptedFile и почитать вот эту статью.
• Если вашему приложению требуется доступ только к определенному каталогу во внешнем хранилище устройства, используйте доступ к выделенным каталогам, чтобы ограничить доступ вашего приложения к внешнему хранилищу устройства.
• Если файл не содержит частной или конфиденциальной информации, но представляет ценность для пользователя только в вашем приложении, сохраните файл в каталоге для конкретного приложения во внешнем хранилище.
• Храните в файлах кеша только не конфиденциальные данные. Для кэшей размером более 1МБ используйте getExternalCacheDir(); в противном случае используйте getCacheDir().
• Используйте SharedPreferences в приватном режиме. Более того, следует использовать для большей безопасности EncryptedSharedPreferences, который автоматически шифрует ключи и значения.

🔥 Регулярно обновляйте зависимости!

🔥 Сжимайте, смешивайте и оптимизируйте код с помощью R8
С его помощью вы можете удалять неиспользуемые классы/поля/методы/атрибуты/зависимости/ресурсы, а также обфусцировать и оптимизировать код.

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

Тут ко мне знакомые опять пришли, говорят, хотели сделать мобильное приложение (android/ios) и им контора из интернета насчитала миллион. Составляющие приложения: новостная лента, запись к специалисту и пуши. Ну то есть звучит не слишком сложно.

Откуда же тут миллион? 🤷‍♀️ Давайте разберемся.

Оценка приложения, вообще, довольно субъективное дело и существенно зависит от того, кто конкретно будет его разрабатывать: компания, фрилансер, стартаперы и тд. Но чаще всего в качестве оценки всегда выступает время, которое будет потрачено на разработку.

Но проблема заключается в том, что посчитать сколько времени уйдет на разработку иногда бывает довольно сложно, особенно если перед разработчиком встает какая-то новая задача. Попробуйте заказать видеоредактор у разработчика, который уже выполнял эту задачу и у того, кто будет делать это впервые.

Сложность приложения существенно влияет на его оценку

Нужно сразу же понять, простое это приложение, которое не требует особых усилий, или же сложное, которое требует исследований и опыта. Помимо этого, есть еще корпоративные приложения, которые, как правило, являются целой системой и игры, они вообще относятся к отдельной категории, которая требует особых навыков.

Простые приложения

Простое приложение имеет небольшое количеств экранов, обычно от 1 до 3, может потребоваться интеграция API для получения данных с серверов. Такое приложение может разработать один разработчик или небольшая команда примерно от 1 дня до 3 месяцев. Обычно 1 день приравнивают к 8 рабочим часам, так что самая минимальная стоимость простого приложения – это 8 часов времени разработчика.

Общее кол-во часов * Почасовая ставка = Стоимость разработки

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

Условно, если за большие деньги вы будете предоставлять посредственный сервис – к вам не вернутся и вас не посоветуют, а могут и очень сильно разозлиться. Вам это ни к чему.

💸 8 х $10 = $80 – одностраничное приложение с webView;

💸 8 х $30 = $240 – нативных экран с простым дизайном и интеграцией API (списки, фильтры и тд);

💸 8 х $80 = $640 – сложный экран с индивидуальным дизайном и интеграцией API (например, чат, где сразу несколько функций, но экран один)

Сложные приложения

Тут уже больше экранов, может быть 8 или 10. Для каждой страницы требуется интеграция API. Несколько экранов имеют более сложный дизайн, может быть работа с геолокаций, платежами и тд.

Корпоративные приложения

Обычно более 10 экранов, есть сложные функции и повышенные требования к безопасности, что ведет к множественным вызовам API, интеграция дополнительных фреймворков. Придется плотно коммуницировать с дизайнерами и аналитиками.

Тут можете посмотреть пример оценки приложения телеграм

Я бы посоветовала, прежде чем приступать к оценке приложения, получить о нем максимальную информацию, утвердить документацию и сроки (а они могут быть сжатыми). И всегда помнить, что работа сверх 8 часов в день стоить дороже, тк это ваше личное время, которое вы должны тратить на себя, на свою семью и на отдых.

Теперь вы знаете, как самостоятельно оценить свое приложение и вас никто не обманет 😉
Все любят SSL-пиннинг. Или нет?

Наверно, каждый Android-разработчик знает, что такое SSL-пиннинг. Но для новеньких, я все таки сделаю небольшую сноску:

По-умолчанию, устанавливая SSL соединение по протоколу HTTPS, клиент проверяет сертификат сервера по двум пунктам:

⚡️ Что цепочку SSL сертификата можно проследить от Вашего личного SSL сертификата через промежуточные и до корневого сертификата доверенного центра сертификации

⚡️ Что Ваш SSL сертификат соответствует запрошенному имени хоста

Лично я сталкивалась с этой задачей о-очень часто, тк работаю в специфической сфере и поддерживаю безопасность мобильных приложений. Данный вид защиты необходим для того чтобы бороться с распространенным видом атаки на ваше приложение, которая называется MITM (Man in the middle), она направлена на «прослушку» или изменение трафика между двумя узлами (клиентом и сервером). Другими словами, когда клиент подключается к серверу, он на самом деле имеет дело с хакером, и наоборот.

Способы реализации SSL-пиннинга в Android

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

🔥 С помощью TrustManager

🔥 Network Security Configuration

🔥 OkHttp и CertificatePinner

🔥 Pinning c Retrofit (Настроить так же просто, как и OkHttpClient, тк Retrofit – это фактически надстройка поверх OkHttp)

Все это, конечно, замечательно, но не стоит забывать и о минусах

Например, допустимость внесения изменений снижается. После внедрения SSL-сертификата в код приложения, изменить его уже не так просто. Каждый раз изменяя SSL-сертификат, вам нужно будет выпускать обновление приложения, запускать его на Google Play и молиться, что пользователи его установят. Собственно, поэтому многие отказываются от этого вида защиты. Так что изначально учитывайте специфику вашего приложения и процессов разработки. Выход из этой ситуации – заказать SSL-сертификат на максимальный срок действия в три года, тогда вам не придется делать это слишком часто.
Я пересмотрела все серии Рика и Морти, We Bare Bears, ОВЫ Самурая Кеншина, Акиру и осталась без вариантов, что смотреть дальше 😫

Буду благодарна, если накидаете хороших вариантов в @mother_paradisecurity_bot
Подписчики прислали в личку статьи с пестрыми заголовками, типа: *Смартфоны на Android 7.1.1 и старше не смогут открывать сайты уже в 2021 году*.

Такая информация появилась буквально день назад и связана с тем, что сертификационный центр Let’s Encrypt, занимающийся выдачей сертификатов криптографии для TLS-шифрования, объявил о переходе на создание подписей с использованием только собственного корневого сертификата.

Это приведет к тому, что каждый третий работающий на Android смартфон, не сможет открыть большинство интернет-ресурсов. Проблема вызвана тем, корневой сертификат Let's Encrypt может быть распознан системой не младше Android 7.1.1.

По статистике, доля устройств с такой ОС составляет не более 66,2% от общего числа. Так что остальные 33,8% владельцев устройств столкнутся с тем, что попытка открыть большинство интернет-порталов будет вызывать ошибку.

Звучит как та еще страшилка, верно? Прям хочется начать брызгать слюной и махать руками 🤯🤯🤯

На самом деле, нужно просто расслабиться и получать удовольствие. Во-первых, если вам так не хочется обновлять свой Android, то просто начнете использовать в качестве браузера Firefox, тк он пока что единственный браузер, который полагается на свой собственный список корневых сертификатов.

А если вас это не устраивает – просто обновите, наконец, устройство! Что нужно еще такого придумать, чтобы мне, наконец, не приходилось поддерживать Android 4.4 на проде?? 🤦‍♀️
Что может быть лучше, чем хорошая конференция в этот пасмурный грустный ноябрь? 💦🍁

В этом году я уже выступала на Mobius. На новый, осенний сезон, я уже присоединилась к Программному Комитету и теперь знаю, как скрупулезно готовятся доклады! Поверьте, такое пропускать нельзя 😉

Сейчас в топе онлайн конференции, сами знаете почему. Но онлайн конференция очень отличается от того, что происходит обычно в оффлайне. И если вы ищите хорошую онлайн конференцию – то это точно про Mobius.

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

В этом сезоне будут:

❗️Кирилл Розов, автор канала Android Broadcast, с которым мы частенько залипаем на тему того, как лучше вести каналы про разработку

❗️Артур Василов, с которым я когда-то вообще училась в универе, а ныне разработчик в Яндексе

❗️Евгений Мацюк, мой коллега, действующий GDE

❗️Алексей Набережный, его то вы наверно точно знаете, он у меня частенько публикуется

❗️Михаил Емельянов, он как раз курировал мой доклад в прошлом сезоне

Кстати, вот промокод от меня: paradiSEcurity2020JRG
Теперь вас и двухфакторка не спасет. Если честно, ситуация очень неприятная. Увели крупный канал Reddit с помощью троянца, замаскированного под видеоредактор Filmora.
Ну что, кто смотрит Mobius?
​​Россия для грустных, Android – для очень грустных 💦💦💦

Да, большая часть вирусов распространяется именно через Google Play. Как же так происходит?

На самом деле большинство людей заблуждаются, что если приложение установлено напрямую из Google Play или AppStore, то оно проверенное и не может быть вирусом. К сожалению, это не так.

Могу только сказать, что за последние пять лет Google Play очень сильно эволюционировал в плане анализа и отбора приложений. Более того, его защита будет более мощной даже чем у AppStore. Например, вывести приложение в топ в AppStore с помощью накрученных инсталлов, лайков и комментариев все еще можно (если осторожно), а вот чтобы провернуть такой фокус с Google Play – вам придется сильно постараться и вы рискуете в этом случае не только самим приложением, но и своей личной учеткой, а также всеми связанными с ней учетками.

Но этого все еще не достаточно. Android уже долгое время остается самой популярной мобильной системой и желающих поживиться на этом – превеликое множество.

Вот интересный отчет, который подробно раскрывает тему, откуда на вашем девайсе могут появиться вредоносы.
2025/07/03 23:00:50
Back to Top
HTML Embed Code: