Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
«(Не)Безопасность 101» — Григорий Джанелидзе, M...
Search
AvitoTech
March 20, 2018
Programming
0
400
«(Не)Безопасность 101» — Григорий Джанелидзе, Mosdroid
AvitoTech
March 20, 2018
Tweet
Share
More Decks by AvitoTech
See All by AvitoTech
Один кликстрим на все бэкенды. Дмитрий Хасанов (Авито)
avitotech
0
700
«Масштабируемая архитектура фронтенда» — Роман Дворнов, Avito
avitotech
0
990
Атомарные SPA — Александр Китов, Альфа-Банк
avitotech
0
1.3k
Моделирование пользовательских предпочтений в мультимодальных данных. Hady W. Lauw, Максим Ткаченко (Singapore Management University)
avitotech
0
320
Кластеризация волатильных объявлений с помощью EM-алгоритма — Василий Лексин (Avito)
avitotech
0
330
«CI процессы в Android разработке Avito», Сергей Пинчук, Avito
avitotech
0
360
Кластеризация волатильных объявлений с помощью EM-алгоритма — Василий Лексин (Avito)
avitotech
0
70
Аналитическое хранилище Avito.ru — от больших к очень большим данным — Артем Данилов (Avito)
avitotech
1
4.6k
Кросс-продуктовые эффекты, или как мы оценивали вклад «Электричек» — Екатерина Лосева (Туту.ру)
avitotech
0
4.4k
Other Decks in Programming
See All in Programming
急成長期の品質とスピードを両立するフロントエンド技術基盤
soarteclab
0
930
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
120
複雑な仕様に立ち向かうアーキテクチャ
myohei
0
170
これでLambdaが不要に?!Step FunctionsのJSONata対応について
iwatatomoya
2
3.6k
快速入門可觀測性
blueswen
0
350
rails statsで大解剖 🔍 “B/43流” のRailsの育て方を歴史とともに振り返ります
shoheimitani
2
930
プロダクトの品質に コミットする / Commit to Product Quality
pekepek
2
770
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
seike460
PRO
0
120
テストコードのガイドライン 〜作成から運用まで〜
riku929hr
1
260
Go の GC の不得意な部分を克服したい
taiyow
2
780
Fibonacci Function Gallery - Part 1
philipschwarz
PRO
0
210
わたしの星のままで一番星になる ~ 出産を機にSIerからEC事業会社に転職した話 ~
kimura_m_29
0
180
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
88
5.7k
Adopting Sorbet at Scale
ufuk
73
9.1k
Why Our Code Smells
bkeepers
PRO
335
57k
Speed Design
sergeychernyshev
25
670
Building Adaptive Systems
keathley
38
2.3k
Six Lessons from altMBA
skipperchong
27
3.5k
Gamification - CAS2011
davidbonilla
80
5.1k
The Language of Interfaces
destraynor
154
24k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Embracing the Ebb and Flow
colly
84
4.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
520
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Transcript
(Не)Безопасность 101 Григорий Джанелидзе
Почему поговорим: 2
Про что поговорим: • Как делать точно не надо •
Как делать скорее всего не надо • Какие инструменты существуют для разных задач • Как с этим всем жить 3
101 is a topic for beginners in any area. It
has all the basic principles and concepts that is expected in a particular field. – Wikipedia
Вся информация представлена исключительно в ознакомительных и образовательных целях. –
я
Храним ключи Demo 6
7 Храним ключи
Храним ключи 8 Demo
Храним ключи 9
Храним ключи 10 https://github.com/KeepSafe/ReLinker
Храним ключи Итоги 11 Хранить в коде Хранить в манифесте/ресурсах
Хранить в нативной библиотеке и доставать через JNI Хранить в коде и шифровать
12 Храним ключи Инструменты •apktool •JD-GUI, ByteCode Viewer, … •IDA
Pro, Hopper, … •если нужны только строчки: man 1 strings
Обфусцируем 13 Demo
14 Обфусцируем Инструменты • smali / backsmali • https://github.com/CalebFenton/simplify •
frida, xposed, … • https://github.com/xoreaxeaxeax/movfuscator
15
16 Обфусцируем Итоги •ProGuard полезный и его в любом случае
надо включить •Но он не спасет •Ревью любых изменений в конфиге ProGuard’а ≠ обычное кодревью •декомпилируйте и пытайтесь реверсить
17 Обфусцируем Итоги •Я уже говорил, что не надо использовать
JNI для «безопасности»? •ProGuard не трогает все методы с модификатором native •Выпиливайте логи, имена переменных, …
18 Обфусцируем Зло •Consumer ProGuard Files
19 Обфусцируем Зло ¯\_(ツ)_/¯ (спасибо Google, стало удобнее)
Сопротивляемся 20 Demo
21 Сопротивляемся Итоги •Debug.isDebuggerConnected() •не надо •лайфхаки с ptrace •могут
быть полезными •миграция с json’а на protobuf, flatbuf, … •поможет, но не сильно
22 Сопротивляемся Итоги •SSL pinning нужен и спасёт •…но не
от реверсинжиниринга
23 Сопротивляемся Инструменты •man 1 ps •gdb, lldb, … •frida,
xposed, …
Как быть? 24 •Пользоваться проприетарными решениями •DexGuard, SecNeo, DexProtector, …
•Если есть ресурсы и время, то делать свое
Заключение • Всегда нужно понимать, что делаешь • Проверяйте любые
советы по безопасности на практике • , но с этим надо жить 25
И если что: 26 На iOS всё не сильно лучше
(но это тема отдельного выступления)
27 Спасибо за внимание
28 t.me/androidguards