Может ли искусственный интеллект рассказать вам об уязвимостях программы? Возможно, но вы можете не захотеть полностью доверять тому, что там написано.
Тестирование на проникновение — это тест безопасности, который включает использование уязвимостей для обнаружения других уязвимостей в системе и выполнения вредоносного кода. Эти тесты особенно важны для защиты от интеллектуального анализа данных и предотвращения эксплойтов безопасности.
Тесты на проникновение включают в себя несколько методов, используемых для проверки безопасности сети. Эти методы включают сканирование сети, брандмауэры, системы безопасности и искусственный интеллект. Искусственный интеллект может анализировать тесты безопасности, используя технологии, разработанные для выявления сетевых уязвимостей.
ИИ может позволить вам достичь более полных и эффективных результатов с помощью специальных алгоритмов, разработанных для использования в тестах на проникновение и автоматически выполняемых тестах безопасности.
Преимущества использования ИИ для тестирования на проникновение
Сегодня стремительное развитие технологий и постоянно растущие потребности пользователей в безопасности выявили необходимость использования технологий ИИ в тестах безопасности. Использование искусственного интеллекта для повышения безопасности обеспечивает гораздо более быстрые и эффективные результаты, устраняя необходимость в трудоемкой рабочей силе для выполнения часто настраиваемых и сложных тестов безопасности. ИИ помогает обнаруживать уязвимости как можно раньше. Он также может выполнять уникальные и сложные тесты безопасности, упрощая обнаружение уязвимостей.
ИИ кажется довольно успешным, особенно когда речь идет об обнаружении и блокировании атаки. Для обучения искусственного интеллекта нужны очень большие наборы данных. Приложение с высоким веб-трафиком является благодетелем в этом отношении. Потому что вы можете сделать так, чтобы каждый входящий трафик выглядел как набор данных для использования ИИ. Таким образом, у вас есть ИИ, который может читать и анализировать трафик веб-приложений и обнаруживать угрозы. Это один из самых простых примеров, которые можно привести.
Он также может предварительно обнаруживать не только веб-трафик, но и множество вредоносных программ для вашего приложения или устройства. Этот метод уже начали использовать многие брандмауэры.
В дополнение ко всему этому, человеческая ошибка является одной из самых больших проблем в кибербезопасности. Незначительная уязвимость кода, оставшаяся незамеченной, может привести к серьезным необратимым проблемам безопасности. Некоторые плагины, которые сканируют уязвимости в коде, появились с развитием ИИ и предупреждают разработчиков о таких проблемах. До сих пор они продемонстрировали некоторый успех в предотвращении человеческих ошибок.
Кроме того, очень важно время реакции, показанное против угрозы. При атаке требуется время, чтобы обнаружить атаку, спланировать путь защиты и запустить системы защиты. Но ИИ очень помогает в этом отношении.
Ограничения ИИ в кибербезопасности
Использование ИИ в целях кибербезопасности требует выявления и анализа вредоносных, чистых и потенциально небезопасных приложений. Даже если вы используете очень большие наборы данных для обучения алгоритма, вы никогда не можете быть уверены в результате. В результате полностью полагаться на машины и ИИ небезопасно. Необходимо поддерживать технологию ИИ с участием человека.
Некоторые производители инструментов безопасности утверждают, что решения на основе машинного обучения могут анализировать каждый экземпляр. По словам производителей, эти инструменты могут обнаруживать вредоносные программы, используя только математические средства. Однако это вряд ли возможно.
Очень хорошим примером этого является взлом Аланом Тьюрингом кода Enigma во время Второй мировой войны. Даже совершенная машина не может решить, могут ли неизвестные входные данные вызвать нежелательное поведение в будущем. Эти доказательства могут применяться во многих областях, включая кибербезопасность.
Еще одно серьезное ограничение применения машинного обучения в кибербезопасности скрыто в рамках моделей искусственного интеллекта. Например, машины стали достаточно умными, чтобы побеждать людей в шахматы.
Но в шахматах есть определенные правила. Шахматные движки не отступают от этих правил. Когда дело доходит до кибербезопасности, у злоумышленников часто нет правил. Постоянно меняющийся характер цифрового ландшафта делает невозможным создание защитного решения, способного обнаруживать и блокировать все будущие угрозы.
Анализ исходного кода с помощью ChatGPT
ChatGPT, разработанный OpenAI, прочно вошёл в нашу жизнь во многих сферах. Как вы можете задать несколько вопросов и пообщаться с ChatGPT, он также пытается помочь вам с программированием и программным обеспечением. ChatGPT даже пытается анализировать исходный код, если смотреть на это с точки зрения кибербезопасности. Но ChatGPT все еще находится в зачаточном состоянии, и потребуется некоторое время, чтобы начать работу.
Чтобы увидеть это лучше, давайте проверим мощь ChatGPT. Например, ниже приведен простой код JavaScript, создающий XSS-уязвимость. Давайте спросим ChatGPT об этом коде и пусть он расскажет нам о любых уязвимостях.
документ.писать("Текущий URL-адрес: " + документ.baseURI);
ChatGPT упомянул XSS-уязвимость в ответ. Это неплохое начало. Но исходные коды никогда не бывают такими простыми. Итак, давайте попробуем немного усложнить пример.
Ниже вы увидите код, подготовленный на языке программирования Си. Этот код C принадлежит уязвимому приложению. Он даже полностью использовался в реальном приложении. Если хотите, можете изучить реальные уязвимости в исходном коде, которые Сонар выпущен в 2022 году.
уголь * путь к журналу * cmd;
пустотаповернуть журнал(){
угольlogСтарый[PATH_MAX], logНовый[PATH_MAX], отметка времени[0x100];
время_т т;
время (& т);
strftime (отметка времени, sizeof (отметка времени), "%ФТ%Т", гмвремя(&t));
snprintf(logOld, sizeof(logOld), "%s/../журналы/global.log", loggerPath);
snprintf (logNew, sizeof (logNew), "%s/../logs/global-%s.log", loggerPath, отметка времени);
искл("/бен/кп", "/бен/кп", "-а", "--", журналСтарый, журналНовый, НУЛЕВОЙ);
}интосновной(инт аргк, уголь **аргв){
если (argc != 2) {
printf("Использование: /opt/logger/bin/loggerctl\n");
возвращаться1;
}если (настройка(0) == -1) возвращаться1;
если (сетеуид(0) == -1) возвращаться1;уголь *executablePath = argv[0];
loggerPath = имя_каталога (executablePath);
cmd = аргумент[1];
если (!strcmp (команда, "вращать")) повернуть лог();
еще списокКоманд();
возвращаться0;
}
Уязвимость здесь заключается в том, что злоумышленник может внести изменения в некоторые файлы без прав администратора. Посмотрим, как ChatGPT отреагирует на эту уязвимость безопасности.
Основная проблема в этом коде setuid, ID пользователя (жидкость) и эффективный идентификатор пользователя (euid). Однако, не вдаваясь в технические подробности, главное, на что следует обратить внимание, это то, что ChatGPT не смог обнаружить эта тонкая часть. Он может понять, что есть проблема, но, к сожалению, не может добраться до корня этой проблемы.
На этих примерах вы видели реакцию на различные языки программирования и уязвимости. Если код действительно прост и имеет очевидную дыру в безопасности, ChatGPT может вам помочь. Но вы не должны полностью полагаться на ChatGPT для анализа исходного кода, тестирования на проникновение и другого анализа безопасности.
Будущее пентестеров
В будущем искусственный интеллект станет важной частью работы пентестеров. Например, специалистам по тестированию на проникновение не нужно будет тратить время на обнаружение вредоносной активности вручную, и они смогут автоматически выполнять сканирование безопасности.
ИИ также поможет обнаруживать и принимать меры против новых и более сложных методов атак для тестирования на проникновение. Но ИИ все еще похож на ребенка, играющего в парке, и ему нужен совет взрослого. В ближайшем будущем эксперты по кибербезопасности и пентестеры не останутся без работы.