Сетевой или транспортный уровень Fuzzing

Как я иду об осуществлении fuzzing стратегии подчеркнуть сетевой стек, конкретно на третьих и четвертых слоях (сеть и транспорт)? Я посмотрел на платформы для генерации fuzzers, как СКАЧОК, но мне кажется, что они главным образом фокусируются на прикладном уровне и выше? Там какие-либо известные методы являются там к пуху известными протоколами в этих слоях, скажем, TCP?

Спасибо.

7
задан Santa 16 December 2009 в 23:36
поделиться

2 ответа

Посмотрите на Скапи . Это позволяет выполнять фаззинг на сетевом и транспортном уровнях. Функция fuzz будет размывать все, что вы явно не указали на уровнях IP или TCP (вы можете применить ее отдельно к каждому). Это дает вам ряд возможностей от простого генерирования IP-адресов и пар портов до создания и отправки бессмысленных пакетов.

Вы также можете посмотреть Fragroute . Это заставит TCP / IP использовать всевозможные методы обхода, но потенциально может выявить скрытые в противном случае ошибки / уязвимости в вашем сетевом стеке.

Кроме того, если ваша организация не возражает, вы можете настроить Tor выйти из узла и захватить с него трафик. Я нашел его полезным для тестирования правильного отслеживания состояния TCP-соединения. Хотя ваша часть соединений хорошо известна и неизменна, существует огромное количество разнообразных серверов, а также забавные проблемы с перегрузкой сети. По сути, это бесконечный источник трафика. Обязательно проконсультируйтесь со своим руководителем, поскольку ваша организация может возражать против того, чтобы быть потенциальным источником злонамеренного трафика (даже при наличии веского прецедента отсутствия ответственности). Я решил эту проблему, запустив его / захват дома, а затем добавив pcaps.

8
ответ дан 6 December 2019 в 23:06
поделиться

Если вы хотите объединить IP, UDP или TCP маршрутизацию ваших пакетов от служб высокого уровня через обратный шлейф к процессу, который считывает их, объединяет и пересылает. Вам нужен драйвер, который позволит вам общаться с необработанными сокетами, и вам нужно прочитать/узнать, что говорят соответствующие RFC для этих протоколов.

Есть простой способ сделать это. Как и рекомендует Justdelegard, Scapy, пожалуй, лучшее, что можно использовать в общем.

Взгляните на Выпуск прототипа ICMPv4/IP fuzzer Лораном Гаффи (Laurent Gaffié). Его Python код, который, кстати, он перепостил в более читабельном варианте на pastebin.com, импортирует из scapy и использует некоторые методы, которые он определяет, чтобы сделать пару типов взрывателя. IP и ICMP пакеты обрабатываются в его примере. Таким образом, это звучит именно так, как вы ищете.

На данный момент, кажется, есть много компаний, использующих Tcl/Expect для выполнения пользовательского автоматического тестирования сетей. SIP, H.323, протоколы 2 и 3 уровня и т.д.

Так что если Scapy не удовлетворяет ваши потребности, вы можете сделать или найти что-нибудь написанное на Tcl с помощью Expect для выполнения этой работы. Или, возможно, вы захотите сделать что-нибудь на Python, используя Scapy - и другие вещи на Tcl, используя Expect.

Tcl уже давно используется для тестирования сети и управления приложениями. Была книга о том, как использовать Tcl для управления сетью по SNMP еще в 1990-х годах.

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

В отличие от Python и других скриптовых языков, существует чрезвычайно мощный инструмент для программ на Tcl под названием Expect (см. expect man page).

Expect имеет удобную возможность. Он может автоматически генерировать тестовый скрипт на Tcl. Сгенерированный скрипт вызывает функции Expect. При выполнении этой записи, он функционирует как пассивный человек в середине, записывая обе стороны разговора. Вроде того, как вы записываете Macros в то время как вы делаете некоторые редактирования в MS Word или в Emacs.

Затем вы можете редактировать автоматически сгенерированный сценарий Ожидайте, чтобы точно настроить его, заставить его вести себя по-другому, или создать несколько его вариаций. Это очень удобно для создания регрессионных тестов. Вы должны быть в состоянии использовать его, чтобы начать писать тесты протоколов более высокого уровня, если вам это понадобится. С нуля.

Думаю, вы можете использовать Tcl/Expect для тестирования стандартных TCP-приложений (FTP, HTTP, SMTP и т.д.), использующих строковые команды. Это хорошо работает для тестирования символьных приложений, таких как TELNET, которые читают входные данные из stdin и генерируют вывод в stdout тоже.

.
3
ответ дан 6 December 2019 в 23:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: