Русский
Русский
English
Статистика
Реклама

Stp

Исследование сетевого трафика

02.02.2021 18:09:11 | Автор: admin

Специально для будущих студентов курса Network engineer. Basic наш эксперт - Александр Колесников подготовил интересный авторский материал.

Также приглашаем принять участие в открытом онлайн-уроке на тему STP. Что? Зачем? Почему?. Участники урока вместе с экспертом рассмотрят протокол STP, разберут логику его работы, разберут его преимущества и недостатки.


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

Инструментарий и методика исследования

Для разбора трафиков будем использовать следующее программное обеспечение:

Все инструменты не нуждаются в особенно развернутом представлении, так как являются единственными в своем роде бесплатными решениями для работы с трафиком. Первые два tshark и wireshark вообще предоставляются в составе одного и того же решения. Оба инструмента позволяют выполнять запись и разбор трафика с точки зрения статистики, передаваемых данных и структурах протокола.

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

Disclamer: Все файлы трафиков взяты из различных соревнований CTF, все права на задания принадлежат их авторам.

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

  1. Определить количество участников сети;

  2. Определить стек используемых протоколов;

  3. На основании пункта 2 принять решение искать данные по убыванию популярности использования трафика;

  4. Если выясняется, что данные, которые передаются в трафике, не были обработаны дополнительным кодированием, то применять фильтр по тексту.

Примеры разбора трафика

Первое задание для разбора:

1.pcap(9cd84b46fee506dae818ecdca76607d1). Задача найти данные, которые будут содержать информацию вида "FLAG-???????????". Приступим к разбору. Пройдемся по методике, которую описали в прошлом пункте:

Количество участников в сети очень просто определить при помощи WireShark (Всё, что описано для этого инструмента, можно повторить и на tshark. Автор использует WireShark для наглядности). В опциях WireShrak выбираем "Statistics->Endpoints":

Итого у нас 8 уникальных IP адресов, которые участвовали во взаимодействии. Определим стек протоколов. Сделать это можно в том же самом меню "Statistics->Protocol Hierarchy":

Итак, самый популярный протокол взаимодействия http. Этот протокол внутри файла pcap хранится в текстовом представлении поэтому можно попробовать показать все данные из body пересылаемых данных и отфильтровать данные по формату искомой строки. Попробуем это сделать с помощью tshark. Команда для фильтра будет выглядеть так:

```  tshark -r ./1.pcap -Y http -Tfields -e http.file_data | grep "FLAG"```

В результате получаем результат:

Второй файл для исследования 2.pcap (9a67e1fb9e529b7acfc6e91db6e1b092). Проведем этапы исследования. Количество участников взаимодействия:

В этом случае участников 13 задание усложняется. Какие протоколы используются:

К сожалению, в этот раз всё не так просто с используемыми протоколами для передачи данных. Среди информации пересылаемой через tcp протокол ничего интересного для нашего задания не встретилось. В udp же попалось кое-что интересное:

``` tshark -r ./2.pcap -Y 'dns' ```

Однако, если обратить внимание на резолв локальных адресов через dns, то мы можем обнаружить вот такую картину:

Странная часть ip адреса, которая очень похожа на какие-то кодированные шестнадцатеричные символы. Попробуем их провести через кодировку:

```tshark -r ./2.pcap -Y '!icmp.code && dns.qry.name contains 192.168' -Tfields -e dns.qry.name | tr '.' ' ' |awk '{print $1}' |xxd -r```

Полученная строка очень похожа на base64 кодировку, раскодируем:

``` base64 -D <<< "VGhpcyBpcyBhIHNlY3JldCB0Y3JldCB0cmFuc21pdHRlZCB0aHJvdWdoaHJvdWdoIGRucyBxdWVyeSA6KSBGTEFHKSBGTEFHLUZUNDdjTVgyNnBXeUZTSTZSeUZTSTZSUFdhU3I1WVJ3"```

В итоге:

В качестве целевого сетевого трафика будем использовать 3.pcap(0e66830db52ad51971d40c77fa5b02c0). Проанализируем количество участников взаимодействия и статистику используемых протоколов:

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

``` tshark -r ./3.pcap -Y http```

Самые интересные строки находятся в конце записанного трафика, это запросы http к файлам "flag.zip" и "secret.txt". Сдампим их через Wireshark и попробуем открыть:

Попробуем сдампить файл, который называется flag.zip через WireShark. Стандартным интерфейсом это сделать не получится, поэтому придется сделать небольшой хак сохранить данные в Raw формате:

Открываем с уже найденным паролем:

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

Сохраним дамп этого потока и вырежем с помощью простой программы фрагмент архива:

```python  data = [] with open('dump') as f:     data = f.read()     with open('tesst.zip','w') as w:    w.write(data[1010788:])```

Пробуем распаковать:

``` 7z x ./test.zip ```

Похоже, что часть данных недоступна, но мы смогли восстановить файл flag.txt

Описанная методика может позволить извлекать информацию из записанных сетевых данных. В качестве закрепления материала, предлагаем читателю найти данные в трафике 4.pcap(604bbac867a6e197972230019fb34b2e).


Узнать подробнее о курсе Network engineer. Basic.

Зарегистрироваться на вебинар по теме STP. Что? Зачем? Почему?.


Читать ещё:

Подробнее..

Рыцарь в доспехах, а BPDU слова его любви

04.06.2021 10:04:57 | Автор: admin

Тоннель EOIP (обычно применяемый одним известным брендом) не пропускает BDPU по умолчанию. А это значит, что если протащить VLAN через EOIP, закольцуя его в целях резервирования, то не стоит надеяться, что STP его отработает. Случится петля. Коммуникации в этом VLAN не произойдет - каждый из коммутаторов возомнит себя королем и voil - ваша сеть стоит на коленях! Если вы знаете как настроить EOIP на пропуск BPDU, то, пожалуйста, напишите об этом в комментарии! Эта информация будет полезна.

Топология Spanning Tree возникает благодаря BPDU (Bridge Protocol Data Unit). Это то, что делает возможным свободную от петель коммуникацию на сети с избыточными линками. И наверное, первое, что нужно сделать перед созданием избыточного линка, будь он логическим или физическим, - это проверить есть ли обмен BPDU между коммутаторами.

Можно подумать о BPDU как о языке любви, возникающий между железками и на основе которого расцветает и распускается дерево Spanning Tree. Они как слова, которыми влюбленные обмениваются друг с другом. И любовь их питается этими словами. А если нет слов, то нет и любви.

Каждое это слово любви содержит информацию об отправителе. Этой информацией они делятся - так они узнают друг о друге и решают, кто будет главным в семье: кто альфа, а кто омега. И главное, на что коммутаторы смотрят - это идентификатор Bridge ID (Bridge Identifier). Каждый из коммутаторов, который имеет включенный Spanning Tree Protocol, несет этот идентификатор. И есть три элемента, которые являются частью этого идентификатора и делают его уникальным для каждого коммутатора. Первый из них - это приоритет (Priority). Его значение по умолчанию равно 32768. (Сколько бит будет задействовано, чтобы получить такое значение?). А если так, то все коммутаторы, настроенные по умолчанию, будут иметь равные шансы стать альфой в семье, так? Нет! Тут вступает в роль второй элемент. Это номер VLANa. Коммутатор приплюсует номер VLANa к приоритету. Например, если номер VLANa - 7, то Bridge ID будет равен 32768 + 7 = 32775. Но и это не сделает коммутатор королем, даже если оба коммутатора имеют VLAN 7. Поэтому знакомьтесь с третьми элементом - MAC address, совершенно уникальным идентификатором.

Однако тут стоит оговориться. Второй элемент не найти на коммутаторах Huawei по умолчанию он часть проприетарного протокола PVST другого известного вендора. Значение номера VLANa не играет никакой роли в STP на Huawei сети второго уровня, пока мы не скажем ему делать это. IOSv устанавливает rapid-pvst протоколом по умолчанию. Huawei mstp. В этом разница. И это может пролить немного света почему вендоры не рекомендуют совмещать свои продукты с продуктами других компаний, если даже, казалось бы, они выполняют одну задачу и работают с одной и той же логикой.

Как же сделать балансировку между разными VLANs? Как же назначить королем один коммутатор для одного VLAN, а для другого VLAN сделать королем другой коммутатор? Балансировка нагрузки возможна: Huawei сделал для этого собственный протокол - VBST (VLAN BASES SPANNING TREE). Он позволяет, используя приоритеты VLANs, манипулировать деревом для каждого VLAN.

Команда display stp к вашим услугам, чтобы посмотреть Bridge ID :

CIST - это аббревиатура (Common and Internal Spanning Tree). Как уже было сказано, Huawei сделал MSTP режимом по умолчанию, поэтому мы видим здесь терминологию "регионов". В данном случае CIST Root/ERPC показывает локальный Bridge ID коммутатора LSW4. Причем Bridge ID это не только значение приоритета, это вся строчка с приоритетом и мак-адресом.

При этом все меняется, если применить пару команд: включить vbst, активировать его на конкретном VLAN, например, на VLAN 7.

[LSW4]stp mode vbst

[LSW4]stp vlan 7 enable

Говоря теперь о втором элементе, то, во-первых, он назван Root ID, что является локальным значение дерева VLAN 7 на этом коммутаторе, и во-вторых, он калькулируется как сумма дефолтного значения и номера VLAN: 32768 + 7.

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

Подробнее..

FlexCube внедрение революционной бэк-офисной платформы в Росбанке

22.06.2020 20:08:04 | Автор: admin
Друзья, привет!

Я Никита Климов, Platform Owner Oracle FlexCube (FCUBS) для процессинга операций корпоративных депозитов, межбанковских кредитов, валютных операций и деривативов в Росбанке. Сегодня я расскажу, как мы внедряли платформу FCUBS и в чем уникальность этого проекта для российского рынка. Все подробности под катом.

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

Архитектура

Архитектура системы это классическая трехзвенка. В нашем случае backend это Oracle 12c (правда, он на текущий момент уже снят с поддержки, и мы переходим на 19сно это уже совсем другая история) и frontend IBM WebSphere. Искушенный читатель сразу задаст вопрос а почему не использовать нативный для Oracle Weblogic? И, безусловно, будет прав, потому что это первое, что рекомендовал нам сам Oracle. Но, так вышло, что для банка стандартом является именно сервер приложений IBM WebSphere, к тому же у нас ULA на этот продукт, и было принято решение адаптировать слой приложения под особенности WebSphere. Не сказать, что это было очень трудной задачей, однако ряд особенностей организации внутренних очередей все же имелся, и нашей команде пришлось провести немало часов на трехсторонних конф-коллах с поддержками Oracle и IBM.
image

В то время как мы пытались настроить тестовое окружение и показать проектной команде интерфейс, наши бизнес-аналитики проводили GAP анализ, описывали требования к функциональности и продумывали миграцию данных из старой системы. Не буду фокусироваться на миграции данных, т.к. по сути это процесс заполнения промежуточных, транспортных таблиц внутри FlexCube. Все это действо сводилось к итерационному наполнению и выверке данных до успешного выполнения миграции- ведь главное передать нужное значение в нужное поле таблицы.
Отличительная особенность нашего внедрения заключалась в том, что на замену системы с полным ручным приводом и постоянным пользовательским участием, мы создавали событийную систему на STP процессах, где предусматривалось минимальное вовлечение бизнес-пользователей. Предусмотрены лишь checkpoint для контроля процессинга. Для этого нам пришлось ломать старые бизнес-процессы и выстраивать новые.

Функциональность

Как я уже отметил ранее, система из коробки была совершенно не готова к российским реалиям, начиная с отсутствия плана счетов и заканчивая налоговым учетом. По сути это было просто ядро с набором событийных моделей, из которого надо строить космический корабль. Следовательно, вооружившись функциональными требованиями от бизнеса, мы приступили к разработке своего custom слоя на основе ядра системы. Мы разработали свой Accounting engine для генерации двадцатизначных счетов и приступили к реализации STP процессов. Исключить ручное вмешательство пользователей оказалось нетривиальной задачей, и не решалось лишь с помощью триггеров на уровне СУБД. Пришлось строить событийную логику на JOB и вводить расписание заданий. Этого тоже оказалось недостаточно, и мы вынуждены были использовать Quartz, на основе которого мы и автоматизировали наш workflow. В результате у нас в полностью автоматическом процессе происходит следующее:

  • Контракт попадает к нам из фронтовой системы Kondor+, и в зависимости от его суммы он либо автоматически авторизовывается, либо уходит на авторизацию к бизнесу;
  • После успешной авторизации система анализирует клиента является ли он клиентом головного офиса, а значит его счета лежат в GL1, либо это клиент регионов, а значит его счета лежат в GL2. Есть еще случай, когда это совершенно новый клиент, и тогда мы должны запросить его в нашей CRMсистеме и на основании полученной информации инициировать ему открытие необходимых счетов в соответствующей GL;
  • В результате процессинга система в режиме онлайн запрашивает остатки по счетам и при наличии таковых генерирует и передает в соответствующую GL необходимые проводки, формирует и отправляет SWIFT сообщения и платежки в ЕРЦ;
  • Внутри дня в системе происходят стандартные операции погашения, начисления процентов, досрочное закрытие и т.д;
  • Различную информацию о движениях по счету, контрагентах и контрактах мы автоматически передаем в ФНС, AML, Nostro. Также не забыли и об Интернет-Клиент Банке, через который клиенты видят, что происходит с их счетами после открытий и погашений депозитов;
  • Подготавливаем различную информацию для обязательной и управленческой отчетности и отдаем ее в DWH тут стоить отметить, что мы как делаем классические view для забора информации, так и генерируем транзакционные логи для IBM CDC, который в режиме онлайн забирает и агрегирует эту информацию.


Интеграция
image
Тут я для наглядности приложу нашу архитектуру и скажу лишь, что в связи с выбором frontend IBM WebSphere, было принято решение отказаться от стандартного для FCUBS Gateway, который разворачивается как дополнительное приложение и работает по старинке с листнерами и очередями, и перейти на работу c MDB Activation Specification. В результате чего мы разработали дополнительные интеграционные приложения, опубликовали их на нашем сервере и подключили к банковской интеграционной шине для взаимодействия с другими системами.
Кроме этого, у нас так же используется интеграция по средствам Systematica Modullar на основе TIBCO Rendezvous, общающийся с нашим фронтом и являющейся входной точкой для всех контрактов и ETL средство IBM DataStage. При этом функциональность на DataStage используется для интеграций, не связанных с DWH. Для одной из GL cпециально разработана логика батчевой загрузки\выгрузки данных, с проверкой статусов и breakpoints для ожидания вычислений.
image
ИТОГИ

  1. Заменили морально и технически устаревшую систему
  2. На основе ядра FlexCube создали свою платформу с неограниченными возможностями по параметризации и вариациям учета
  3. Минимизировали участие пользователей в процессе обработки дня
  4. Оптимизировали время выполнения EOD 15 минут вместо 3 часов ранее.
  5. Создали внутри банка центр компетенций и можем поддерживать и развивать платформу независимо от поставщика
  6. Практически неограниченно можем изменять usability пользовательского интерфейса и создавать любые проверочные экраны консолидированной информации для удобства контроля
  7. Внедрили систему мониторинга контрольных точек для беспрерывного процесса обработки
  8. Создали платформу, на которой готовы реализовать любой банковский продукт

image
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru