Я выбрала тему для курсового проекта по Machine Learning
Что ж, я поступила в магистратуру. Честно скажу, разница ощущается довольно остро. Особенно гнетет гигантский пробел в линейной алгебре, от понимания которой зависит успех сдачи экзаменов. Ну, да не такую чушь удавалось понять в сжатые сроки. Буду считать за очередной квест.
Однако, к 1 декабря у меня уже должен быть на руках почти чистовик с курсовой по дисциплине, в которой я не просто нихрена не разбираюсь, так еще и чтобы разобраться в ней, надо быть по-настоящему умным. Или хитрым. Надо написать какую-то штуку на питоне по Machine Learning с уклоном в ИБ. И, о Боже, какое совпадение, что примерно месяц до этого я начала облизываться и погружаться в дебри такой прекрасной штуки как pwnagotchi. Наконец-то удастся совместить приятное с полезным.
Итак, у меня примерно 6 недель на то, чтобы собрать безумный серотемный проект и выдать его не за приблуду для мамкиного хацкера, стилизованную по тамагочи, но за «рабочий инструмент для тестирования безопасности wi-fi сетей на базе искусственного интеллекта».
Глава 1. Краткое описание.
Pwnagotchi — это проект с открытым исходным кодом, который превращает устройства на базе Raspberry Pi (чаще всего Raspberry Pi Zero W) в автономного бота для анализа Wi-Fi сетей и захвата хендшейков (handshakes) для последующего взлома. Используя машинное обучение, Pwnagotchi оптимизирует свои действия для более эффективного сбора хендшейков, необходимых для расшифровки паролей.
Основные особенности Pwnagotchi:
- Использует алгоритмы машинного обучения с подкреплением для максимизации эффективности, запоминая наиболее эффективные методы захвата;
- Постоянно анализирует сети Wi-Fi поблизости, переключается между режимами работы, чтобы собрать как можно больше данных;
- Выводит на экран "эмоции" в зависимости от окружающей обстановки, реагируя на изменения;
- Устройства Pwnagotchi могут обмениваться данными и "общаться" друг с другом, если находятся рядом.
Как же работает AI?
В Pwnagotchi используется алгоритм Q-Learning для обучения тому, какие действия лучше всего предпринимать в зависимости от Wi-Fi среды. Это помогает устройству накапливать как можно больше хендшейков, необходимых для взлома паролей Wi-Fi, оптимизируя процесс.
Как работает Q-Learning в Pwnagotchi
1. Определение среды и состояния:
В Pwnagotchi среда — это окружение с Wi-Fi сетями, которое меняется со временем, когда устройство перемещается или находит новые сети.
Состояние в контексте Pwnagotchi включает данные о доступных сетях, такие как число Wi-Fi сетей вокруг, уровень сигнала, количество уже собранных хендшейков и пр.
2. Действия агента:
Pwnagotchi может оставаться на месте и все равно продолжать сбор данных, может менять настройки для улучшения захвата хендшейков, а также сохранять хендшейки или менять стратегию (например, перейти в режим "умного" сканирования).
3. Награды:
В прошивку pwnagotchi заложена система наград: успешно захваченный хендшейк - +1 к карме, готчи молодец. А если устройство тратит много времени в одном и том же месте с минимальными результатами, оно получает минус к карме.
Такая система помогает устройству понимать, какие действия стоит повторять, а какие — нет.
Теперь совсем немного математики
В Q-Learning алгоритме Q-функция (или функция качества действия) служит для оценки, насколько "хорошо" или "выгодно" предпринимать определенное действие в заданном состоянии. Эта функция постепенно "учится" выбирать те действия, которые приносят максимальную награду в долгосрочной перспективе.
Q-функция обозначается как Q(s,α ), где s — текущее состояние, а α — выбранное действие.
Значение Q(s,α )представляет собой ожидаемую совокупную награду, если устройство начнет с состояния s, выберет действие α, а в последствии будет следовать оптимальной стратегии (выбирать лучшие действия).
Цель Q-Learning состоит в том, чтобы найти такую Q-функцию, которая даст агенту оптимальный способ действий в любой ситуации, чтобы максимизировать общую награду.
Чтобы обновить значение Q-функции для определенной пары состояние-действие (s,α), используется следующая формула:
Как работает обновление Q-функции:
1. Получение текущего значения Q(s,α)
2. Получение награды r за выполнение действия aaa в состоянии s.
3. Оценка будущей выгоды:
Устройство рассчитывает максимальную будущую награду, которую он может получить, находясь в новом состоянии s′ и выбирая оптимальное действие α′.
4. Обновление Q-функции:
Разница между текущим значением Q(s,α) и тем, что агент ожидает получить с учетом новой информации, умножается на α и добавляется к текущему значению Q(s,α).
Почему это работает
Каждое обновление приближает значение Q(s,α) к его истинному значению, соответствующему сумме наград за лучший возможный путь из текущего состояния. С увеличением количества эпизодов Q-значения сходятся к оптимальным, и агент начинает выбирать действия, которые дают наилучший результат в долгосрочной перспективе.
Ну вот, собственно, я и рассказала кратко и поверхностно о том, что собираюсь писать в своей курсовой. Естественно, объем работы ожидается колоссальный, я без понятия, как все это реализую в соло за 6 недель, но все же очень постараюсь, ибо этот проект с pwnagotchi станет просто невъе...отличной отправной точкой на пути к магистерской.
P.S. Да, кстати, поскольку эта штука в перспективе (если я не заленюсь) может вырасти в весьма опасную игрушку, я нарекаю его "Годжик". Кликуха необходима еще и потому, что даже пока писала эту короткую статью, утомилась печатать "p w n a g o t c h i" каждый раз.
0 Высказываний
Рекомендуемые комментарии
Высказываний нет...