ios security and hacking

13
Взлом и защита iOS-приложений

Upload: julia-lyakhova

Post on 21-Jun-2015

596 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: IOS security and hacking

Взлом и защита iOS-приложений

Page 2: IOS security and hacking

Hacking and securing iOS Applications 15 февраля 2013 г.

You take the blue pill, the story ends, you wake up in your bed and believe whatever

you want to believe. You take the red pill, you stay in Wonderland, and I show you

how deep the rabbit hole goes.

Page 3: IOS security and hacking

System

Hacking and securing iOS Applications 15 февраля 2013 г.

Page 4: IOS security and hacking

Applications

Hacking and securing iOS Applications 15 февраля 2013 г.

Page 5: IOS security and hacking

Network

Hacking and securing iOS Applications 15 февраля 2013 г.

Page 6: IOS security and hacking

Hacking and securing iOS Applications 15 февраля 2013 г.

Page 7: IOS security and hacking

System

Applications

Network

Hacking and securing iOS Applications 15 февраля 2013 г.

Page 8: IOS security and hacking

Hacking and securing iOS Applications 15 февраля 2013 г.

Page 9: IOS security and hacking

включать в шифрование дополнительный элемент, который не может быть получен из памяти устройства — пароль, который знает/помнит только пользователь

хранение данных вне девайса само по себе не гарантирует их безопасность

добавлять проверки на стороне сервера ответ сервера не должен быть BOOL, лучше если это будет объект,

который можно провалидировать на стороне клиента

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

вести логи происходящего не хранить дешифрованные данные на диске, хранить в памяти, даже если

файлы удаляются, они могут быть восстановлены критичные данные не должны «зависать» в синглтонах в открытом виде

всё время работы приложения

Архитектура

Hacking and securing iOS Applications 15 февраля 2013 г.

Page 10: IOS security and hacking

не пользоваться стандартными решениями (хранение в User keychain) для полей с важными данными отключать автокоррекцию (сохранение

данных отключено по умолчанию для полей с паролем и чисто цифровых полей)

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

не называть критичные методы понятными названиями использовать С/С++ в критических классах (не использовать переменные

Objective-C, а вручную аллоцировать память, не хранить указатели в instance variables, очищать память, после того как данные больше не нужны)

использовать static inline functions использовать VACUUM для баз SQLite, но это может быть долго, для

быстрого удаления можно использовать сначала UPDATE + ZEROBLOB, а потом DELETE

чтобы обезопасить от скриншотов нужно использовать [UIApplication sharedApplication].keyWindow.hidden = YES; (applicationWillResignActive + applicationDidEnterBackground)

можно отслеживать флаг дебаггинга и блокировать работу приложения (но это можно обойти)

дополнительно: валидация адресного пространства, stripping binary, проверки на джейлбрейк

Code standards&Best practices

Hacking and securing iOS Applications 15 февраля 2013 г.

Page 11: IOS security and hacking

использовать Common Crypto

использовать PKCS5_PBKDF2_HMAC_SHA1 — стр. 253-255 (с солью или без — в зависимости от того нужно ли ограничить шифрование конкретным девайсом или иметь возможность использовать шифрованные данные на разных устройствах)

Geo encryption

server-side keys

Библиотеки

Hacking and securing iOS Applications 15 февраля 2013 г.

Page 12: IOS security and hacking

redsn0w — джейлбрейк ldid — подписание приложений Cycript — javascript умеющий манипулировать Objective-C приложениями openSSH — терминальное подключение к девайсу по сети. iProxy — общение с девайсами про протоколу usbmux (специальный

протокол, схожий с TCP, позволяет устанавливать соединения по определенным портам)

class-dump-z — утилита для извлечения информации из Objective-C приложений (классы, методы)

Вспомогательные инструменты

Hacking and securing iOS Applications 15 февраля 2013 г.

Page 13: IOS security and hacking

Hacking and securing iOS Applications 15 февраля 2013 г.