Основы захвата и расшифровки трафика. Протоколы, модели OSI и DOD, виды трафика.

Привет, начинающий хакер!

Ты наверняка понимаешь, что в сфере информационной безопасности, полезность навыка работы с сетевым трафиком переоценить вряд ли получиться. В связи с этим, прокачке скилухи захвата, анализа и расшифровки трафика стоит уделить какое-то, желательно значительное, время. И конечно, можно было написать какой-нибудь гайд по Wireshark, в котором сказать: нажимай такие-то кнопочки и всё у тебя получиться, но это была бы полная халтура, потому что такой гайд не дал бы основного — понимания самого процесса, а потому перед тем как переходить к практической части вопроса, очень важно разобраться с теоретическими основами. И хоть я уже писал статьи по основам работы сети, вот они, если пропустил:

Основы работы сетей для начинающего хакера. Часть 1. IP, DHCP, NAT, port.

Основы понимания сетей для начинающего хакера. Часть 2. TCP/IP

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

Что такое, вообще, анализ трафика — простыми словами, это процесс понимания того что происходит в сети. Сам процесс анализа, очень условно, можно разделить на несколько стадий. Для простоты я бы выделил две основных стадии: анализ программный (в том числе включает в себя аппаратный) и анализ, так сказать, «человеческий». При этом программный, уже не условно, а вполне конкретно тоже можно разделить на стадии: сбор данных, интерпретация т.е. перевод собранной информации в некий понятный человеку вид и стадия анализа т.е. фильтрация по заданным параметрам. И только после этого начинается анализ «человеческий», его мы делить не будем, в связи с тем, что тут всё ситуативно и зависит от намеченных целей. Ну, а что касается целей, то очень ошибочно будет выделять только какие-то вредоносные цели, это лишь одна из возможных, но далеко не самая распространенная цель, если посмотреть с точки зрения системного администратора, то анализ трафика может понадобиться, например, для определения состояния сети, в том числе определения пропускной способности и выявления виновников перегрузки, выявление вредоносных или небезопасных процессов, ну и т.д.

Теперь, когда ты понимаешь, что такое анализ трафика, можем переходить к обсуждению процесса общения между компьютерами в сети. И, как ты понимаешь, компьютерам, как и людям, было бы очень проблематично общаться, если бы не существовало некоего согласованного набора правил общения. Ну например, если несколько человек приедут на встречу и один будет говорить на английском, второй на китайском, а третий на русском, то найти общий язык вряд ли получиться, а вот если заранее договориться, что все будут говорить на английском, то вероятность найти консенсус сильно возрастёт. Так и с компьютерами — есть согласованные способы обмена данными между компьютерами, при этом каждый из этих способов имеет свой набор правил. Так вот, эти самые способы с наборами правил — называются сетевыми протоколами. В связи с тем, что протоколов существует огромное количество, и многие из них описывают разные стороны одного типа связи, то именно по этому принципу были сформированы стеки протоколов. Некоторые, наиболее распространённые протоколы, я бы рекомендовал тебе запомнить (а остальные, если что, загуглишь): TCP (Transmission Control Protocol — протокол управления передачей), IP (lnternet Protocol — межсетевой протокол), HTTP (Hyper Text Transfer Protocol — это протокол передачи гипертекста), FTP (File Transfer Protocol — это протокол передачи файлов), POP3 (Post Office Protocol — это стандартный протокол почтового соединения), SMTP (Simple Mail Transfer Protocol — протокол, который задает набор правил для передачи почты), DHCP (Dynamic Host Configuration Protocol — протокол динамического конфигурирования хоста).

И для ещё большего понимания сути работы сетевых протоколов, можно выделить наиболее распространенные вопросы которые призваны решать протоколы:

  • Порядок установления соединения между узлами сети, в том числе предварительная информация которой обмениваются узлы перед установкой соединения;
  • Характеристики соединения, в том числе наличие шифрования и порядок обмена ключами;
  • В каком формате будут передаваться данные содержащиеся в пакете? Как эти данные будут обрабатываться принимающим узлом?
  • Как реагировать на ошибки? Например если пакет не достиг адресата или достигал очень долго;
  • Как происходит разрыв соединения? Как уведомить об окончании соединения? Какими данными следует обменяться перед разрывом соединения?

Зачем нужны протоколы, вроде как разобрались, но этого всё равно мало. Прочитав всё это у кого-то мог возникнуть вопрос: а как всё это взаимодействует между собой? Что бы разобраться как узлы сети взаимодействуют между собой нужно изучить сетевые модели. Мы разберем модель OSI и модель DOD.

Модель OSI

Сетевая модель OSI (англ. open systems interconnection basic reference model — Базовая Эталонная Модель Взаимодействия Открытых Систем) — это иерархическая модель состоящая из семи уровней, сформированных в зависимости от функций выполняемых протоколами. Другими словами эта модель необходима, что бы разные сетевые устройства могли взаимодействовать между собой. Именно поэтому понимание этой модели помогает разобраться как происходит передача данных в сети. А, как известно, что бы что-то контролировать нужно, в первую очередь, понимать как это работает.

Модель OSI имеет семь уровней и каждый из этих уровней выполняет определенные функции, давай разберемся поподробнее:

Седьмой уровень — уровень приложений или его ещё называют прикладной уровень — на этом уровне предоставляются средства для доступа пользователей к сетевым ресурсам. Как правило, это единственный уровень, доступный конечным пользователям, поскольку на нем предоставляется интерфейс, на основании которого они осуществляют всю свою деятельность в сети.

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

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

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

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

Второй уровень — канальный уровень — основное назначение — предоставить схему адресации для обозначения физических устройств.

Первый уровень — физический уровень — нижний уровень модели, который определяет метод передачи данных, представленных в двоичном виде, от одного устройства к другому т.е осуществляется физическая передача данных каналами связи. На этом же уровне определяются технические характеристики оборудования. Со стороны компьютера функции физического уровня выполняются сетевым адаптером.

Теперь разберемся как всё это работает. Изначально передача данных по сети начинается на уровне приложений передающей системы. Данные проходят сверху вниз по всем уровням модели OSI до тех пор, пока не достигнут физического уровня, где находится точка, откуда данные отправляются из передающей системы в принимающую. А принимающая система получает данные на своем физическом уровне, откуда данные проходят снизу вверх по всем уровням модели OSI, достигая в конечном итоге уровня приложений. При прохождении данными отправляющих уровней, на каждом уровне к данным добавляется заголовок. Данные вместе с заголовком образуют блок, это называется protocol data unit (PDU) или блок протокольных данных. А когда информация переходит на принимающую сторону и начинает проходить уровни там, то этот заголовок отнимается при прохождении зеркального уровня на принимающей стороне. Это такой способ «общения» протоколов между собой, по умному он называется «инкапсуляция данных».

Модель DOD.

Модель DOD (department of defense) похожа на OSI, только уровней четыре:

Прикладной уровень — соответствует трём верхним уровням модели OSI, и включает протоколы обрабатывающие данные пользователей и управляющие передачей данных между приложениями.

Транспортный уровень — соответствует транспортному уровню модели OSI и включает протоколы, контролирующие целостности передаваемых данных, установку и прекращение соединений.

Межсетевой уровень — соответствует сетевому уровню модели OSI, здесь используются протоколы, предназначенные для маршрутизации передаваемых данных

Уровень сетевого доступа — соответствует канальному и физическому уровням модели OSI и содержит протоколы, предназначенные для физической передачи данных между устройствами сети.

Виды трафика

И напоследок кратенько обсудим какие бывают виды трафика. А их можно выделить три: широковещательный, многоадресный и одноадресный.

Широковещательный (broadcast) — это такой пакет, который посылается во все порты в сетевом сегменте, бывает второго и третьего уровня. На втором уровне в качестве широковещательного резервируется MAC-адрес ff:ff:ff:ff:ff:ff и весь трафик направленный по этому адресу, рассылается всему сегменту сети. На третьем уровне в качестве широковещательного резервируется самый большой из допустимого диапазона IP адресов. Чтоб было понятней: если IP компьютера, например 10.0.1.35, а маска подсети 255.255.255.0 то адрес 10.0.1.255 будет широковещательным.

Многоадресатной (multicast) называется одновременная передача пакета из одного источника в несколько мест назначения. Как правило это нужно чтобы минимизировать использование пропускной способности сети. В этой ситуации получатель пакета просто добавляется к многоадресной группе. Как правило, для многоадресной передачи резервируется IP-адрес в диапазоне от 224.0.0.0 до 239.255.255.255.

Одноадресатный (unicast) пакет передается непосредственно от одного устройства к другому или другими словами по принципу «клиент — сервер».

Ну что, если ты дочитал до этого момента, значит у тебя уже появилось понимание процессов происходящих при передаче данных по сети, и как следствие появились минимальные знания необходимые для анализа и расшифровки трафика. Поэтому не забывай возвращаться к нам, потому что теперь мы можем смело переходить к изучению самого процесса перехвата и расшифровки трафика.

Твой Pul$e.