
PENIOT: Инструмент для тестирования на проникновение IoT
PENIOT — это инструмент для тестирования на проникновение устройств Интернета вещей (IoT). Он помогает тестировать/проникать в ваши устройства, воздействуя на их подключение к Интернету с помощью различных типов атак безопасности. Другими словами, вы можете подвергнуть ваше устройство как активным, так и пассивным атакам безопасности. После выбора целевого устройства и необходимой информации (или параметров) этого устройства, вы можете выполнять активные атаки безопасности, такие как изменение/потребление системных ресурсов, повторное воспроизведение допустимых единиц связи и так далее. Также вы можете выполнять пассивные атаки безопасности, такие как нарушение конфиденциальности важной информации или анализ трафика. Благодаря PENIOT все эти операции могут быть полуавтоматизированы или даже полностью автоматизированы. Короче говоря, PENIOT — это пакет/фреймворк для атаки на устройства IoT с помощью протокол-ориентированных атак безопасности.
Кроме того, он предоставляет базовую структуру для дальнейшего внедрения новых атак безопасности или новых протоколов IoT. Одна из самых важных особенностей PENIOT — это расширяемость. По умолчанию он содержит несколько распространённых протоколов IoT и множество атак безопасности, связанных с этими протоколами. Но его можно расширить, экспортируя базовую структуру внутренне используемых компонентов, чтобы вы могли разрабатывать свои атаки в гармонии с внутренней структурой PENIOT.
Парадигма IoT пережила огромный рост за последнее десятилетие: миллиарды устройств подключены к Интернету. Большинство этих устройств не имеют даже базовых мер безопасности из-за ограничений по производительности и конструкций, разработанных без учёта безопасности из-за короткого времени выхода на рынок. Из-за высокой связности в IoT атаки, имеющие разрушительные последствия для расширенных сетей, могут легко запускаться хакерами через уязвимые устройства.
До сих пор тестирование на проникновение проводилось вручную, если вообще не игнорировалось. Эта процедура делала фазу тестирования устройств очень медленной. С другой стороны, компании, производящие устройства IoT, должны всегда быть в курсе тестирования своих устройств на предмет надёжности, устойчивости, а также предоставляемых функций, поскольку подверженность атакам безопасности со стороны злоумышленников может вызвать неожиданные последствия для конечных пользователей. Основная цель PENIOT — ускорить процесс тестирования безопасности. Он позволяет вам выявлять уязвимости безопасности на ваших устройствах IoT, автоматизируя трудоёмкую фазу тестирования на проникновение.
Прежде всего, PENIOT предлагает новизну. Это один из первых примеров инструментов тестирования на проникновение в области IoT. Существует лишь один или два подобных инструмента, специализированных на IoT, но они всё ещё находятся на стадии разработки, поэтому ещё не завершены.
Поскольку количество устройств IoT резко возрастает, устройства IoT становятся всё более распространёнными в нашей повседневной жизни. Умные дома, умные велосипеды, медицинские сенсоры, фитнес-трекеры, умные замки и подключённые заводы — это лишь несколько примеров продуктов IoT. Учитывая это, мы почувствовали необходимость выбрать некоторые из наиболее часто используемых протоколов IoT для включения в PENIOT по умолчанию. Мы выбрали следующие протоколы в качестве протоколов IoT по умолчанию, входящих в PENIOT. Эти протоколы IoT были протестированы с различными типами атак безопасности, такими как DoS, Fuzzing, Sniffing и Replay-атаки.
Следующие протоколы в настоящее время поддерживаются:
Более того, он позволяет экспортировать внутреннюю основу собственного реализованного протокола и атак для реализации ваших собственных протоколов или атак. Также вы можете расширить уже существующие протоколы вашими недавно реализованными атаками. И наконец, он предоставляет вам простой в использовании, дружественный графический интерфейс пользователя.
Во-первых, необходимо установить модуль setuptools Python на вашу машину. Также, вам нужно установить python-tk и bluepy перед установкой и сборкой.
Короче говоря, вам нужно следующее перед запуском скрипта установки.
Обратите внимание, что рекомендуется создать отдельное виртуальное окружение специально для Peniot, так как зависимые библиотеки довольно старые и могут вызвать проблемы при установке среди ваших существующих внешних библиотек
Вы можете собрать проект локально, выполнив следующий код.
$ git clone [email protected]:yakuza8/peniot.git
$ cd peniot
$ python setup.py install
Несмотря на то, что мы стараемся предоставить вам актуальный скрипт установки, в нём могут отсутствовать некоторые части, так как проект не поддерживался долгое время. Пожалуйста, сообщите нам, если возникнут проблемы с установкой.
Важное замечание: На вашей машине должен быть установлен Radamsa для генерации fuzzing-нагрузок в fuzzing-атаках.
Вы можете запустить Peniot через командную строку или вашу любимую IDE после настройки виртуального окружения и установки необходимых библиотек, описанных выше.
$ python src/peniot.py
После выполнения этой команды должен появиться пользовательский интерфейс. Затем вы можете исследовать инструмент самостоятельно.
Вы можете найти Документ обзора дизайна и Финальный документ дизайна в папке resources/documents. Несколько диаграмм прикреплены в папке resources/diagrams. Вот простейшее представление того, как PENIOT разделён на модули и как он спроектирован.
Большинство атак имеют собственные примеры интеграционных тестов в своих скриптах атак. Чтобы запустить эти тесты, вам необходимо иметь запущенную программу для целевого протокола. Мы стараемся предоставить вам примеры программ для каждого протокола, где можно найти скрипты сервера/клиента в папке examples каждого протокола.
Этот проект выполнен следующими участниками проекта:
и руководителем является Pelin Angın.
Во-первых, позвольте поблагодарить вас за посещение нашего проекта. Мы попытались показать, как можно проникнуть и взломать устройства IoT через используемые ими протоколы с помощью сквозных атак безопасности. Наша главная цель — взламывать эти устройства с помощью универсальных атак безопасности. Можно легко найти специфические атаки для любого протокола, но, как я уже сказал, наша цель — предоставить универсальный и расширяемый фреймворк для проникновения.
Во-вторых, PENIOT разработан на Python2.7. И наш код, возможно, перешёл в устаревшее состояние. Но тем не менее, мы хотели поделиться им с общественностью, чтобы каждый мог получить представление и вдохновение для разработки собственных инструментов проникновения, и это сделает нас счастливыми, если это произойдет.
В-третьих, мы также постараемся перенести наш инструмент на Python3, если сможем выделить необходимое время для этого. Когда это произойдёт, мы сообщим об этом на этой странице. Спасибо за внимание.
Разработчик: @yakuza8 (Berat Cankar)