Как отснифать трафик приложения
Этот вид мониторинга может показаться агрессивным, однако имейте ввиду, что ваш провайдер также хранит эти данные в логах и имеет право продавать информацию на сторону.
Допустим, нужно узнать, какие приложения используются на телефоне. Если вы находитесь в одной Wi-Fi сети с целевым устройством, задача решается очень просто. Достаточно запустить Wireshark и сконфигурировать несколько параметров. Мы будем использовать эту утилиту для расшифровки трафика, зашифрованного при помощи WPA2, и после анализа выясним, какие приложения запущены на телефоне.
Хотя сеть с шифрованием лучше, чем без, разница исчезает, когда злоумышленник и вы находитесь в одной сети. Если кто-то еще знает пароль к Wi-Fi сети, которую вы используете, при помощи WireShark легко выяснить, чем вы занимаетесь сию секунду. Кроме того, злоумышленник может узнать все приложения, запущенные на телефоне, и сосредоточиться на тех, которые потенциально могут быть уязвимыми.
Дешифровка зашифрованных пакетов
Когда в вашей Wi-Fi сети используется шифрование при помощи технологии WPA2, безопасность сессии основана на двух составляющих. Во-первых, пароль, используемый для генерации гораздо более длинного числа (PSK или pre-shared key). Во-вторых, собственно само рукопожатие, происходящее во время установки соединения. Если злоумышленник получает PSK к Wi-Fi и наблюдает, как вы подключаетесь к сети (или на некоторое время сбрасывает ваше соединение), то впоследствии сможет расшифровать ваш Wi-Fi трафик и узнать, чем вы занимаетесь.
Как работает схема
Для реализации атаки необходимо выполнение нескольких условий. Во-первых, нужен пароль. Кроме того, нужно быть рядом с жертвой для перехвата трафика и уметь отключить целевое устройство от сети для повторного подключения. Мы запустим Wireshark, выполним настройки, связанные с дешифровкой Wi-Fi пакетов, добавим PSK и дождемся EAPOL пакетов с целевого устройства, пытающегося подключиться к сети.
Что понадобится
Вам понадобится карта беспроводного сетевого адаптера с режимом мониторинга (беспроводной сети) и смартфон с iOS или Android, подключенный к Wi-Fi, которую вы собираетесь мониторить. Вы можете попрактиковаться на открытой сети, чтобы примерно понимать, какие результаты вы получите, поскольку вначале расшифровка может не сработать. Кроме того, вам нужно знать пароль и имя сети, которую вы хотите мониторить. В этом случае вы сможете вычислить ключ PSK, позволяющий дешифровать трафик в режиме реального времени.
Шаг 1. Загрузка Wireshark и подключение к Wi-Fi сети
Загрузите и установите Wireshark , после чего подключитесь к целевой Wi-Fi сети. Если вы планируете использовать PSK, а не сетевой ключ, нужно сделать вычисления при помощи WPA PSK Generator , поскольку во время перехвата у вас может не быть доступа к интернету (зависит от используемой карты).
После установки откройте Wireshark и взгляните на перечень сетевых интерфейсов. Перед началом перехвата нам понадобится настроить некоторые опции, чтобы карта перехватывала в нужном режиме.
Согласно статистике - в 2020 году мобильные приложения были загружены пользователями более 240 млн раз, и это число продолжает расти.
Разработчики большое внимание уделяют удобству и внешнему виду, однако вопросам безопасности не всегда уделяется должное внимание. Недостаточная защищенность приложения увеличивает репутационные риски для компании-разработчика, а утечка конфиденциальных пользовательских данных негативно сказывается на его деловой репутации.
Большинство современных мобильных приложений построены на клиент-серверной архитектуре. Как правило, клиент функционирует под управлением одной из популярных мобильных ОС – Android или iOS, и обменивается данными с сервером. Использование открытых незащищенных протоколов передачи данных многократно увеличивают риски компрометации передаваемого трафика. Но даже защищенные соединения не всегда дают 100% гарантию надежности сохранности данных.
В данной статье мы познакомимся с инструментом Fiddler, позволяющим перехватывать и анализировать весь трафик между клиентом и сервером. Данный инструмент может помочь выявить уязвимости в процессе клиент-серверного взаимодействия мобильного приложения.
(Если вы уже работали с этим инструментом, делитесь опытом в комментариях)
Подготовительные шаги
Для начала установите Fiddler на ПК или ноутбук. Убедитесь, что ПК/ноутбук и смартфон находятся в одной сети (например, подключив устройства к одному wifi-роутеру). Это условие является обязательным, т.к. устройства не увидят друг друга. Проверить связь между устройствами можно через команду ping.
Настройка Fiddler
Далее, убедитесь, что Fiddler может принимать входящие соединения:
- Откройте Fiddler, далее: Tools → Options, вкладка «Connections»;
- Поставьте флажок «Allow remote computers to connect»;
- Перезапустите Fiddler, чтобы изменения в настройках вступили в силу.
Настройка устройства на базе Android
Убедитесь, что Fiddler запущен и брандмауэр Windows отключен, далее на Android-устройстве выполните шаги:
- Откройте настройки, далее выберите Wi-Fi, затем нажмите на имя подключенной сети и удерживайте, пока не появится всплывающее окно;
- Нажмите «изменить сеть», далее в всплывающем окне разверните пункт «расширенные настройки»;
- Выберите «Вручную» в поле со списком «Прокси-сервер»;
- В поле «Имя хоста прокси-сервера» введите IP-адрес вашего ПК/ноутбука;
- В поле «порт прокси-сервера» введите порт (по умолчанию 8888).
После нажатия на кнопку «Сохранить» весь трафик смартфона должен быть виден в окне Fiddler.
Настройка устройств на базе iOS
Убедитесь, что Fiddler запущен и брандмауэр Windows отключен, далее на iOS-устройстве выполните шаги:
- Откройте Настройки → Wi-Fi;
- Найдите сеть, к которой подключен смартфон, и нажмите на значок «i»;
- Пролистайте вниз, найдите «настройка прокси», далее выберите «Вручную»;
- В поле «Сервер» введите IP-адрес вашего ПК/ноутбука;
- В поле «Порт» введите значение по умолчанию: 8888.
После нажатия на кнопку «Сохранить» весь трафик смартфона должен быть виден в окне Fiddler.
Для Android: скачайте FiddlerRoot certificate, откройте его, установите и задайте имя.
Для iOS: скачайте FiddlerRoot certificate, откройте его, нажмите «разрешить», после чего перейдите в Настройки → Профиль загружен → Установить. Далее в Настройках → Основные → Об этом устройстве → Доверие сертификатам → найдите сертификат и сделайте его доверенным.
Сниффинг сетевых пакетов – один из способов сбора информации о целевой системе без лишних телодвижений.
Пассивное прослушивание является скрытным, эффективным и, как правило, используется на начальной стадии хакерами и пентестерами, собирающими информацию о целевой сети. Однако если вы когда-либо запускали Wireshark от имени суперпользователя, то вероятно сталкивались с предупреждением, поскольку в этом случае ваша система подвергается риску. Запуск программы от имени суперпользователя и последующее компрометирование при помощи уязвимости нулевого дня – реальная угроза, которая существует во время перехвата случайного трафика. Цитата из документации на Wireshark:
«Очень небезопасно запускать Wireshark подобным образом, поскольку все возможные эксплоиты, заточенные под Wireshark, также будут запускаться от имени администратора, и ваша система может оказаться полностью скомпрометированной».
Соответственно, если какой-либо эксплоит под Wireshark уже разработан и известен узкому кругу лиц, то может быть запущен на вашем компьютере от имени суперпользователя в случае, если для Wireshark доступны эти привилегии. Поскольку мы часто сталкиваемся с неопределенностью, при получении разнообразной информации, важно предпринять шаги для минимизации ущерба и возможных неблагоприятных последствий.
Наилучший способ избежать эксплоитов нулевого дня - настроить юзера с правами на использование сетевого адаптера, но без привилегий суперпользователя. Однако вначале при решении этой задачи могут возникнуть некоторые сложности.
Для всех, кто занимается снифффингом пакетов, будет интересно узнать, что в Sniffglue эти функции безопасности используются по умолчанию. Эта утилита является средством пассивной разведки, позволяющая прослушивать трафик в сети без риска оказаться обнаруженным. В отличие от ARP-scan и других утилит, использующих активное сканирование, Sniffglue пассивно слушает без каких-либо действий по генерации трафика, позволяющих раскрыть ваше присутствие.
Один из ключевых методов для реализации безопасного сканирования – песочница, которая встроена внутрь Sniffglue. Само по себе приложение не делает ничего лишнего и, соответственно, оберегает себя от эксплоитов. Sniffglue написан на языке Rust, оптимизирован для использования всех доступных ресурсов процессора во время обработки пакетов, наделен дополнительными мерами безопасности и вполне заслуживает внимания.
Что понадобится
Для работы с Sniffglue нужно установить Rust, поскольку программа написана на этом языке программирования. Рекомендую использовать Kali, Ubuntu или другую систему на базе Debian или Arch Linux. Я попробовал запускать Sniffglue в macOS, но столкнулся с трудностями. Вполне вероятно, что Rust у вас уже установлен, поскольку этот язык программирования предустановлен во многих системах.
Например, в системе со свежим дистрибутивом Kali Linux.
Кроме того, нужно установить библиотеки libseccomp-dev и libpcap-dev, предназначенные для модуля безопасных вычислений и парсинга pcap соответственно.
Шаг 1. Загрузка и установка Sniffglue
Загрузка и запуск Sniffglue осуществляется при помощи менеджера пакетов Cargo (схожим образом Pip предназначен для Python), который появляется по умолчанию после установки Rust. После обновления системы проверьте, установлен ли Cargo, выполнив команду apt install cargo. Должны скомпилироваться множество других пакетов. Затем выполните команду cargo install sniffglue для установки Sniffglue при помощи этого менеджера пакетов или проверьте, установлен Snifglue, что должно произойти после установки Cargo.
Шаг 2. Запуск Cargo
Теперь мы можем либо добавить Sniffglue в список путей или просто зайти в директорию, куда было установлено это приложение, и запустить напрямую. После запуска мы должны получить перечень команд с описанием, что свидетельствует об присутствии и готовности к запуску Sniffglue
Шаг 3. Сниффинг сетевого интерфейса
Приступаем к прослушиванию сетевого интерфейса. Вначале находим имена сетевых карт:
Затем запускаем Sniffglue для сниффинга пакетов на нужном интерфейсе:
В результате прослушивания Ethernet-карты (enp2s0) видные DNS-запросы к сайту Null Byte. Если бы мы подключились к LAN tap или Hak5 Packet Squirrel, то легко могли бы считать любой незашифрованный трафик, проходящий через кабель, к которому у нас есть доступ.
Шаг 4. Сниффинг Wi-Fi в «неразборчивом» режиме
Далее переключаем внимание на беспроводную карту. Вначале, как и в предыдущем шаге, узнаем имя карты:
Всего за несколько секунд прослушивания трафика я узнал об операционной системе, отправляющей запрос, запрашиваемый сайт и даже ответ от сайта, закодированный в HTML. Я даже могу видеть поисковую систему, используемую по умолчанию, для выполнения этого запроса.
Мобильные телефоны все больше используют мобильный трафик. Читайте дальше и мы покажем Вам, как управлять данными.
Конечно, Вы можете покупать трафик дополнительно за деньги, но кто хочет платить? Прежде чем платить за более дорогой тариф или за дополнительный пакет трафика, мы предлагаем несколько хитростей для уменьшения передаваемых данных (и контроля).
Как просмотреть количество передаваемых данных
Прежде всего, Вам нужно проверить сколько данных передается. Если Вы не будете знать, сколько трафика используете, то будет непонятно как нужно поменять структуру потребления данных.
Самый простой способ для проверки использования данных это веб-портал Вашего сотового провайдера. Если Вы никогда не расходуете лимит, то, возможно, стоит перейти на более дешевый тариф. Если Вы никогда не укладываете в отведенный Вам пакет трафика, то Вам, определенно, стоит прочитать статью дальше.
Вы также можете посмотреть статистику потребления данных и на устройстве Android. Перейдите в Настройки -> Передача данных. Вы увидите экран примерно как здесь:
Стоит отметить, что Вы должны будете указать Ваш платежный цикл здесь чтобы точно рассчитать использование данных. Так как Ваши данные сбросятся на первый день нового цикла, не важно, что Вы использовали месяцем раньше, так что результат не исказится.
После достижения лимита мобильный трафик не будет передаваться пока Вы вновь его не включите.
Как контролировать использование данных
Есть два вида потребляемого трафика: когда пользователь использует приложение и знает, что оно работает через интернет, и использование данных в фоновом режиме. При просмотре видео или скачивании новый альбом, Вы потребляете пакет трафика, если Вы используете мобильную передачу данных, а не Wi-Fi Интернет. Очевидно, что для того чтобы использовать меньше данных Вам необходимо остановить потоковое воспроизведение контента и скачивание файлов.
Во-первых, узнать какие приложения потребляют данные
Во-первых, давайте разберемся, какие приложения на самом деле используют много трафика. Перейдите в Настройки -> Передача данных и увидите приложения, использующие данные. Нажмите на одно из них, чтобы увидеть больше информации. Здесь мы видим на обычную передачу данных и работу в фоновом режиме:
Теперь, когда Вы знаете какие приложения используют больше данных Вы знаете что нужно оптимизировать.
Использование экономии трафика в Android Nougat
Для начала, потяните вниз панель уведомлений и нажмите на значок шестеренки, чтобы перейти в меню настроек.
Первое, что нужно сделать, это включить переключатель, который находится справа вверху. Новый значок будет отображаться в строке состояния, а также—слева от остальных иконок данных (Bluetooth и Wi-Fi, сотовая связь и т. д.).
После этого появится списка всех установленных приложений на Вашем телефоне. Используя ползунок рядом с приложениями Вы можете добавлять их в белый список, разрешая фоновую передачу данных.
Стоит иметь в виду, что это распространяется только на мобильный трафик и никак не коснется Wi-Fi соединения.
Ограничить фоновую передачу данных
Если у Вас не Android Nougat, то у Вас есть другие варианты.
Откройте приложение, которое использует много трафика. Посмотрите настройки этого приложения, возможно стоит уменьшить количество уведомлений (например, ВКонтакте) или отключить их полностью. Это отлично скажется не только на потребляемом трафике, но и на разрядке аккумулятора.
Отключить всю фоновую передачу данных
Отключить фоновое обновление приложений
Купить часто используемые приложения (для удаления рекламы)
Часто предлагаются приложения в бесплатной версии с рекламой и платной версии. Дело в том, что реклама не только раздражает, но она также использует трафик. Поэтому, если хотите уменьшить потребление трафика, то можете купить платную версию часто используемого приложения.
Читайте также: