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
410
«(Не)Безопасность 101» — Григорий Джанелидзе, Mosdroid
AvitoTech
March 20, 2018
Tweet
Share
More Decks by AvitoTech
See All by AvitoTech
Один кликстрим на все бэкенды. Дмитрий Хасанов (Авито)
avitotech
0
700
«Масштабируемая архитектура фронтенда» — Роман Дворнов, Avito
avitotech
0
1k
Атомарные SPA — Александр Китов, Альфа-Банк
avitotech
0
1.4k
Моделирование пользовательских предпочтений в мультимодальных данных. Hady W. Lauw, Максим Ткаченко (Singapore Management University)
avitotech
0
330
Кластеризация волатильных объявлений с помощью EM-алгоритма — Василий Лексин (Avito)
avitotech
0
340
«CI процессы в Android разработке Avito», Сергей Пинчук, Avito
avitotech
0
370
Кластеризация волатильных объявлений с помощью EM-алгоритма — Василий Лексин (Avito)
avitotech
0
75
Аналитическое хранилище Avito.ru — от больших к очень большим данным — Артем Данилов (Avito)
avitotech
1
4.6k
Кросс-продуктовые эффекты, или как мы оценивали вклад «Электричек» — Екатерина Лосева (Туту.ру)
avitotech
0
4.4k
Other Decks in Programming
See All in Programming
PicoRubyと暮らす、シェアハウスハック
ryosk7
0
220
PHPカンファレンス 2024|共創を加速するための若手の技術挑戦
weddingpark
0
140
ecspresso, ecschedule, lambroll を PipeCDプラグインとして動かしてみた (プロトタイプ) / Running ecspresso, ecschedule, and lambroll as PipeCD Plugins (prototype)
tkikuc
2
1.9k
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
seike460
PRO
0
240
責務を分離するための例外設計 - PHPカンファレンス 2024
kajitack
9
2.4k
AHC041解説
terryu16
0
400
ある日突然あなたが管理しているサーバーにDDoSが来たらどうなるでしょう?知ってるようで何も知らなかったDDoS攻撃と対策 #phpcon.2024
akase244
2
7.7k
歴史と現在から考えるスケーラブルなソフトウェア開発のプラクティス
i10416
0
300
Scaling your build logic
antalmonori
1
100
“あなた” の開発を支援する AI エージェント Bedrock Engineer / introducing-bedrock-engineer
gawa
4
260
AppRouterを用いた大規模サービス開発におけるディレクトリ構成の変遷と問題点
eiganken
1
450
Запуск 1С:УХ в крупном энтерпрайзе: мечта и реальность ПМа
lamodatech
0
960
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
328
21k
Become a Pro
speakerdeck
PRO
26
5.1k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
3
180
Producing Creativity
orderedlist
PRO
343
39k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
The Cult of Friendly URLs
andyhume
78
6.1k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
30
2.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
19
2.3k
Practical Orchestrator
shlominoach
186
10k
We Have a Design System, Now What?
morganepeng
51
7.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