27
Я тебя по API вычислю Используем API социальных сервисов для конкурентной разведки. #securitymeetup #mailru

Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

Embed Size (px)

Citation preview

Page 1: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

Я тебя по API вычислюИспользуем API социальных сервисов

для конкурентной разведки.#securitymeetup #mailru

Page 2: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

2

Что же такое API?• API - Application Programming Interface

• API - это интерфейс, предоставляемый приложением, который позволяет использовать функционал этого приложения в своих проектах, не вдаваясь в принципы его работы.

• API является единственным способом взаимодействия с blackbox приложениями.

• Большинство современных социальных сервисов обладают собственным API.

Page 3: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

3

У mail.ru тоже есть свой API :)

Page 4: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

4

Схема работы с API

Page 5: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

5

Схема работы с API (напрямую)

Page 6: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

6

API и Конкурентная Разведка• Конкурентная разведка – сбор различной информации на человека

или организацию.

• Конкурентные разведчики постоянно обращаются к социальным сервисам, как к основным источникам информации.

• Информации там очень много, поэтому зачастую приходится автоматизировать процесс.

• Парсер (Граббер) – скрипт или программа, предназначенная для автоматизированного сбора информации с сайтов.

• Варианты реализации парсера:1. Через API.2. Через эмуляторы браузера.

Page 7: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

7

API или Эмулятор - что выбрать?

• API удобен в использовании, подробно документирован, но очень часто имеет крайне урезанный функционал.

• Эмуляторы умеют ровно столько, сколько умеют обычные пользователи сервиса.

• Очень часто, то, что можно вытащить через эмуляторы, нельзя вытащить через API.

• Бывают частные случаи, когда API предоставляет возможности, недоступные для пользовательского интерфейса сервиса.

Вывод: Если функционала API хватает, то безусловно нужно использовать API.

Page 8: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

8

Немного о геотегах• GeoTagging – процесс добавления географической информации к

всевозможным мультимедийным файлам.

• Почти все современные мобильные устройства поддерживают добавления геотегов к фотографиям в момент съемки.

• Многие социальные сервисы обрабатывают геотеги при заливке фотографии.

Пример обработки фотографии с геотегами контактом:

Page 9: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

9

Пример геотегов в JPEG картинке

Page 10: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

10

Зачем геотеги обычным пользователям?

• Похвастаться перед друзьями своими фотографиями с пруфами в виде координат.

• Удобно для профессиональных фотографов.

• Часто используется для сортировки фотографий в альбомах по месту, где они сделаны.

• Можно лишний раз спалить своё местоположение там, где не надо.

Page 11: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

11

Пример GEO-фейла

А вы помните историю этой картинки? :)

Page 12: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

12

Пример GEO-фейла

Page 13: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

13

API + GEO = Деанонимизация

• Некоторые социальные сервисы позволяют искать фотографии по координатам.

• К таким сервисам относятся: instagram, vkontakte, twitter.

• API обладает более широкими возможностями в плане поиска фотографий, чем интерфейс пользователя.

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

Page 14: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

14

Основная структура парсера

• Идея написать подобный парсер появилась после финала Positive Hack Days 2014.

• В дальнейшем предполагалось использовать его, в основном, для blackbox пентестов.

• В качестве языка программирования был выбран Python.

• Использовался API.

• Работа велась напрямую с API серверами.

Page 15: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

15

Запрос к API на примере «Вконтакте»

https://api.vk.com/method/photos.search?lat=55.740701&long=37.609161&count=100&radius=100&start_time=1400619600&end_time=1400792400

lat – Географическая широта.

long – Географическая долгота.

count – Максимальное количество результатов (максимум 100).

radius – Радиус поиска (в метрах).

start_time - Начальная граница интервала времени (в формате timestamp).

end_time – Конечная граница интервала времени (в формате timestamp).

Page 16: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

16

Ответ API сервера «Вконтакте»

Page 17: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

17

Ответ сервера в читабельном виде

* Красным подчеркнуты поля, которые будут интересовать нас в дальнейшем

Page 18: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

18

Проблемы в процессе реализации

Проблема:• Как сохранить фотки на диске, и не переполнить хард?Решение:• На помощь приходит HTML.

Проблема:• API сервер выдаёт ограниченное количество фоток для

промежутка времени. Решение:• Придётся делить отрезок времени на временные интервалы и

парсить их.

Page 19: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

19

Блок-схема работы парсера

Page 20: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

20

Запуск парсера

Page 21: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

21

Пример работы парсера (Mail.ru)

Page 22: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

22

Следующая цель: Лубянка

Page 23: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

23

Следующая цель: ГосДума

Page 24: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

24

Обращайте внимание на мелочи

Page 25: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

25

Пример деанона :)

Page 26: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

26

Выводы

• API - это просто. Как правило, библиотеки для работы с API хорошо документированы и разобраться в них не составляет особого труда.

• API – это очень мощное оружие для конкурентной разведки.

• Внимательно следите за тем, что вы выкладываете в сеть. Это может быть использовано не в ваших интересах :)

• Даже документированные возможности API могут быть использованы крайне нестандартно, не говоря уже о недокументированных возможностях.

Page 27: Аркадий Литвиненко, Security Meetup 9 апреля, Mail.Ru Group

27

Спасибо за внимание

• twitter.com/BetepO_ok• bitbucket.org/BetepokNoname/photobygeo/