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
390
«(Не)Безопасность 101» — Григорий Джанелидзе, Mosdroid
AvitoTech
March 20, 2018
Tweet
Share
More Decks by AvitoTech
See All by AvitoTech
Один кликстрим на все бэкенды. Дмитрий Хасанов (Авито)
avitotech
0
680
«Масштабируемая архитектура фронтенда» — Роман Дворнов, Avito
avitotech
0
960
Атомарные SPA — Александр Китов, Альфа-Банк
avitotech
0
1.3k
Моделирование пользовательских предпочтений в мультимодальных данных. Hady W. Lauw, Максим Ткаченко (Singapore Management University)
avitotech
0
310
Кластеризация волатильных объявлений с помощью EM-алгоритма — Василий Лексин (Avito)
avitotech
0
320
«CI процессы в Android разработке Avito», Сергей Пинчук, Avito
avitotech
0
360
Кластеризация волатильных объявлений с помощью EM-алгоритма — Василий Лексин (Avito)
avitotech
0
68
Аналитическое хранилище Avito.ru — от больших к очень большим данным — Артем Данилов (Avito)
avitotech
1
4.6k
Кросс-продуктовые эффекты, или как мы оценивали вклад «Электричек» — Екатерина Лосева (Туту.ру)
avitotech
0
4.4k
Other Decks in Programming
See All in Programming
Re:proS_案内資料
rect
0
170
/←このスケジュール表に立ち向かう フロントエンド開発戦略 / A front-end development strategy to tackle a single-slash schedule.
nrslib
1
430
Prompt Engineering for Developers @ AWS Community Day Adria 2024
slobodan
0
100
テスト駆動開発✅️
akitoshiga
1
170
レガシーな Android アプリのリアーキテクチャ戦略
oidy
1
160
CSC305 Lecture 09
javiergs
PRO
0
120
Debugging: A Few Things You Should Know
jmatsu
1
130
文化が生産性を作る
jimpei
3
630
Vaporモードを大規模サービスに最速導入して学びを共有する
kazukishimamoto
3
2.1k
ML-прайсинг_на_Lamoda__вошли_и_вышли__приключение_на_20_минут__Слава_Цыганков.pdf
lamodatech
0
400
飲食業界向けマルチプロダクトを実現させる開発体制とリアルな現状
hiroya0601
1
210
watsonx.ai Dojo #3 プロンプトエンジニアリング入門
oniak3ibm
PRO
0
410
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
Designing on Purpose - Digital PM Summit 2013
jponch
114
6.9k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
22k
Build The Right Thing And Hit Your Dates
maggiecrowley
32
2.3k
A Philosophy of Restraint
colly
203
16k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
23k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Embracing the Ebb and Flow
colly
84
4.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Why Our Code Smells
bkeepers
PRO
334
57k
Unsuck your backbone
ammeep
668
57k
Thoughts on Productivity
jonyablonski
67
4.3k
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