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
Статистика уязвимостей Android vs. iOs
Недавно я перешла с Apple Watch Series 3 на Samsung Galaxy Watch. И сейчас расскажу вам свои впечатления.
С Apple Watch я проходила где-то около года и единственное для чего я их использовала (барабанная дробь) - время посмотреть, музыку попереключать, ну и уведомления почитать. Пульс так у меня на них вообще был 30 ударов в минуту. Я один раз посмотрела и на этом мои эксперименты закончились.
Решила перейти на Samsung Watch, так как они больше похожи на стандартные часы, Apple Watch все же не устраивали меня формой. Думала, что будут выполнять те же функции, но оказалось больше. У самсунга есть сопутствующее приложение Samsung Health и часы отлично взаимодействуют с ним. Туда пишется вся статистика, самостоятельно посчитался даже необходимый калораж для ежедневного потребления исходя из моей накопленной активности (каким образом это было сделано, я без понятия, но если судить по сторонним сервисам - посчитано достаточно точно, а это при том что я не вбивала свой рост, вес и уровень активности ручками). Помимо этого еще и отслеживается динамика сна, что тоже очень важно, так как у меня периодически возникают с ним проблемы. Еще и программы есть встроенные, которые позволяют держать тело в тонусе, потратив в день минут двадцать на упражнения. В общем, может тоже самое и было в Apple Watch, но так уж вышло, что Samsung Heath в сопряжении с Samsung Watch оказался куда более юзерфрендли, сам все загрузил, сам все показал, сам все стал отслеживать.
А теперь послушайте как звучит безель при повороте. Очень приятный отзыв. Ммм
Всем доброе утро! Вчера я рассказывала вам, как используются взломанные учетки в инстаграм, а сегодня вы можете почитать о том, как инстаграм взламывают и получаются доступ к его API. Так что утро начинается не с кофе, а с отличной статьи одного хорошего человека:)
Привет, планировала сегодня выпустить длинную статью про внутрянку андроида, но как-то не задалось. И потому решила переключить тему на более лайтовую.

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

Недавно просто рассуждали с друзьями на эту тему. Так в чем же проблема?

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

И многие ли из вас знают как устроены предустановленные приложения? А как работает SystemUI? Что вообще представляет из себя андроид под капотом? Эти вопросы повисли в пространстве и мало кто действительно пытается копнуть чуть глубже. А жаль.
Все знают, что для того чтобы устроиться в крупную it компанию (да даже если не в крупную), нужно пройти страшное и ужасное it-собеседование, где будут ̶в̶а̶с̶ ̶у̶н̶и̶ж̶а̶т̶ь̶ алгоритмы, структуры данных, вопросы по платформе и тд. Многих возмущает именно секция с алгоритмами, мол, зачем вы спрашиваете меня как развернуть LinkedList ведь в реальных задачах я никогда с этим не столкнусь! Зачем вы спрашиваете меня эти непонятные сортировки, когда уже есть готовые функции для этого! Зачем вы задаете мне эти глупые олимпиадные задачки для задротов по алгоритмам! Для чего, почему, зачем, какого черта!!?

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

Вопросы, которые задаются на типичных собеседованиях просто позволяют прощупать вашу базу, потому что собеседующим нужно как-то понять, что вы из их “тусовки” и что вы сможете понимать и работать над задачами, которые вам предоставят в данной компании. Это упорядочивание знаний.

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

За время существования канала меня уже много раз спрашивали о том, как я попала в сферу it, как устроиться программистом, что нужно знать, как готовиться, поэтому я решила собрать все материалы в кучу и предоставить их вам. В основном я буду опираться на Яндекс, так как именно от них у меня накопилось больше всего статей и все таки это большая компания со сложными собеседованиями, которые можно поставить в пример, но по сути, если вы усвоите всю нижеприведенную информацию, проблем с устройством на работу в сфере it у вас быть не должно. Грубо говоря, можете пройти в Яндекс = можете пройти везде.

Так что если вы хотите укрепить свои знания, начать понимать алгоритмы, то изучите данные материалы:

Полезные статьи:
Введение в анализ сложности алгоритмов
Алгоритмы и структуры данных — шпаргалка

Направляю также на небольшой яндекс контест
Там есть 4 задачки, которые очень похожи на задачи с яндекс секций, первая уже решена (чтобы можно было ознакомиться с самой системой).
Контест бесконечный - сроков для решения нет. Можно возвращаться к тренировке в любое время.

Примеры задач так же из яндекса:
12 алгоритмических задач отборочного раунда и их разборы
Какие алгоритмические задачи нужно уметь решать

Немного потренироваться в решении схожих задач, помогут внешние ресурсы:
1. Codeforces
2. Interviewbit
3. Leetcode
4. Hackerrank
5. Topcoder

Теория:
Алгоритмы1
Алгоритмы2
Алгоритм «Палех»
Видео-лекции Стэнфорда - очень доступные и интересные, у них есть курс на Coursera
В наиболее сжатом виде основы
Алгоритмы и структуры данных поиска
Что не так с судоку?
Как часто вы задумываетесь о безопасности установленных приложений? Казалось бы — это же всего лишь небольшая программа, установленная на вашем смартфоне, абсолютно безобидная, и она совершенно точно не может убить кого-то.

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

Вы знаете, большинство людей до сих пор думают что хакеры смотрят на летящие зеленые цифры в мониторе. А еще они думают, что это брутальные аутисты, которые взламывают банки попивая смузи на Бали. И я абсолютно серьезна. Как-то, когда как раз выстрелил биткоин, я встретилась со своей давней знакомой, она, к слову, врач, умная девочка. Она знает, что я программист и работаю в защите и она на полном серьезе спросила меня: как я понимаю эти летящие цифры? И объяснить ей даже что такое for в принципе на данном этапе просто нереально, поэтому я просто перевела тему. Думаю, сейчас люди уже больше понимают, что такое программирование, чем буквально года два назад, потому что оно заполоняет все сферы с бешеной скоростью.

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

Вы здесь вроде умные ребята, как вы думаете, почему примитивное судоку с топорным UI грело ей телефон так, что пальцы можно было обжечь?

Вот именно, судоку то майнило. И самое забавное, вполне законно. Это как раз о том, что следует внимательнее читать пользовательское соглашение. При установке этой игрушки автор спрашивал, хочет ли пользователь смотреть рекламу или позволит майнить на своем устройстве. А кто вообще будет скроллить этот скучный текст, а еще ведь и прочесть его надо, и люди просто тыкают “Да-да-да”, отстань, ведь они хотят скорее добраться до контента. Не важно какими путями. И эта тенденция не устарела и ай-яй-яй-разработчики будут эксплуатировать ее еще долгое время. Всем добра:)
#shkryaba
Я спрашивала вас, интересно ли вам узнать, как работает Android более подробно. И, наконец, добила статью с описанием работы одного из самых главных компонентов системы - SystemUI.
Уже давно лежат тезисы для статьи как сделать приложение безопаснее. Но все не могу собраться с мыслями и написать полноценный текст. После последней публикации меня уже несколько раз попросили дать рекомендации, потому закидываю это сюда. Я обязательно в будущем разберу все это более подробнее, но пока так:)

1. Стратегия запутывания (запутать код с кодом на китайском языке к примеру). Это делается с помощью proguard
2. Предотвращение захвата экрана приложения. А еще можно определять всяки впны и прокси типа

System.getProperty("http.proxyHost");
System.getProperty("http.proxyPort");

3. Не позволять приложению работать с Hook
4. Запретить отладку (тут все просто, нужно чтобы процесс отслеживался родительским процессом. то есть если родительский процесс всегда должен отслеживать дочерний процесс. Присоединение процесса происходит единожды, если же нет - то значит кто-то дебажит) ну и debuggable = false конечно же нужно поставить и android.os.Debug.isDebuggerConnected() проверить
5. Проверить порт. По умолчанию ида к примеру юзает один и тот же порт. Так что мы можем посмотреть использование tcp порта устройства
6. TracerPid проверить
7. Защита подписи приложения
8. NDK как интрумент не только повышения производительности, но и улучшения безопасности
Lifecycle of Android vs iOS
Сегодня поговорим о стандартной безопасности клиент-серверных приложений, которые получают свои json-чики и парсят их во view. Итак, что мы можем сделать чтобы защитить свое клиент-серверное приложение?

Вообще здесь всего два пункта, на которые следует обратить внимание:

1. Идентификация и проверка пользователя как на клиенте, так и на сервере.

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

2. Предотвращение несанкционированного доступа к приложению или его функциям.

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

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

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

Полезный ресурс для защиты вашего клиент-серверного приложения
Думаю запилить статью о том, как работает ProGuard. Оказывается, до сих пор многие бояться даже на него смотреть и в лучшем случае пользуются его дефолтной реализацией.
Этот год выдался довольно интересным. Я многому научилась, многое сделала, разные люди окружали меня, вдохновляли или, наоборот, вызывали отвращение. У меня сформировались более четкие цели на будущее и я очень рада этому, потому что когда нет конкретных целей, любые движения превращаются в мельтешение. Непонятно, что и зачем ты делаешь. Я давно хотела создать канал, но буквально несколько месяцев назад я не могла даже сформулировать, зачем он мне и как я буду его вести. Сейчас же это представление тоже до сих пор формируется. Потому на этот счет я решила спросить вас:)