paradiSEcurity – Telegram
paradiSEcurity
2.07K subscribers
72 photos
6 videos
1 file
143 links
Проблемы разработки, безопасности и жизни
Cтикеры – https://news.1rj.ru/str/addstickers/hackerwomanParadisecurity
Есть вопросы, пиши @mother_paradisecurity_bot
Download Telegram
Как создавать безопасные приложения

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

🔥 Безопасная связь между приложениями
• Неявные интеты. Стоит относится к ним с осторожностью, потому что на такой вид интентов может отреагировать любое приложение, установленное у пользователя.
• Разрешения на уровне подписи. Так можно проверить, что приложения, получающие доступ к данным, подписаны с использованием того же ключа подписи.
• Неэкспортируемый контент. Если вы не собираетесь отправлять данные из своего приложения в другие приложения, явно запретите другим приложениям доступ к вашему 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 уже долгое время остается самой популярной мобильной системой и желающих поживиться на этом – превеликое множество.

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

Вы заметили, что криптовалюта опять растет? Сейчас она на пике и активно развивается. А знаете почему?

DeFi.

Над первыми фрагментами кода работали разработчики со всего мира и в декабре 2017 года был опубликован первый большой DeFi-проект, MakerDAO. Теперь же стейблкоины заполонили почти весь крипто мир, очень удобно, когда мы не привязываемся токену (ETH, BTC) с непонятной волатильностью, а обмениваемся родным “стабильным” долларом.

Приведу простой пример. Вася делает уборку в твоем доме, но платить за работу в BTC никто не хочет, потому что через час валюта может либо упасть, либо снова вырасти. Сейчас же появились многочисленные стейблкоины, которые привязаны к доллару. Когда Вася закончит работу, ты ему заплатишь 10 монет, которые будут эквивалентны 10$ в криптовалюте.

Но что значит это для всего сообщества? Произошел в прямом смысле БУМ. Теперь $ ворвался к разработчикам смартконтрактов, появляются новые инструменты. От пула ликвидности (аналог exchange-валют в банке, только при этом комиссию платят не банку, а людям, которые вложили токены) до полноценных страховых крипто-компаний.

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

Есть и минусы. Тут опять есть «Черный четверг» — аналог хакерской атаки на The DAO, где крипто контракт показал свои слабые места. Технология молодая, стейблкоин может превратиться в тыкву, которую нельзя будет обменять в фиат.

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

У блокчейна если два пути развития. Либо вперед к светлому и свободному будущему, либо “минфин предложил лишать свободы за недекларирование криптовалют”.
This media is not supported in your browser
VIEW IN TELEGRAM
Это уже стадия принятия? 🤣
Стоило мне написать про крипту и ее ломанули этой ночью. Увели $2 млн и атака все еще продолжается.
This media is not supported in your browser
VIEW IN TELEGRAM
Архитектура и Junior-разработчик))) Ну, он хотя бы нашел выход, все мы такими были 😂
Как же это охеренно! Твиттер – американская компания, Трамп – пока еще президент Америки. И они просто пишут под его постами, что информация, которую он публикует – сомнительного характера, а еще и сноски делают с доказательствами этого.
This media is not supported in your browser
VIEW IN TELEGRAM
Забавная штука 😂
Горячие пирожкиии!!! Apple снизили комиссию для разработчиков в App Store с 30% до 15% с 1 января 2021 года.

Их довели своими антимонопольными исками (это только за 2020 год):

⚡️ Epic Games
⚡️ Match Group (владеет Tinder)
⚡️ Telegram
⚡️ Spotify
⚡️ Rakuten
⚡️ Лаборатория Касперского
⚡️ и тд.

Правда фича с 15% комиссии будет доступна только для приложений с выручкой <$1 млн в год. Очень похоже на налог на богатство. Собственно, программу так и назвали – “программой для малого бизнеса”.

К чему это приведет:

💦 Разработчики начнут зарабатывать на 15% больше, поэтому смело смогут покупать себе феррари минуя лизинг

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

💦 Не произойдет ни того ни другого, потому что все мы работаем по найму и цены устанавливает бизнес, а не мы
А вообще, я тут узнала, что приложения с заработком в AppStore меньше $1 млн 98%. Однако эти 98% занимают всего 5% от выручки Apple. Так что выходит, что Apple опять всем утерли нос. Такие дела.