Cyber Grand Challenge (CGC) 2016 года — это конкурс, организованный Агентством перспективных исследовательских проектов Министерства обороны США (DARPA) с целью разработки автоматических систем защиты [3] , которые могут обнаруживать, доказывать и исправлять недостатки программного обеспечения в режиме реального времени .
В ходе мероприятия машина сражалась с машиной (без вмешательства человека) в так называемом «первом в мире турнире по защите автоматизированных сетей». [4]
Финальное мероприятие состоялось 4 августа 2016 года в Paris Hotel & Conference Center в Лас-Вегасе, штат Невада, в рамках 24-й хакерской конвенции DEF CON .
По своей структуре он напоминал давние соревнования по безопасности « захват флага » (CTF), и победившая система действительно соревновалась с людьми в «классическом» DEF CON CTF, который проводился в последующие дни. Однако Cyber Grand Challenge отличался более стандартизированной системой подсчета очков и доказательства уязвимости: все эксплойты и исправленные двоичные файлы отправлялись и оценивались инфраструктурой рефери. [5]
Помимо CGC, DARPA также проводит конкурсы на получение призов в других областях технологий.
Развивается гонка между преступниками, пытающимися злоупотребить уязвимостями, и аналитиками, которые оценивают, исправляют, проверяют и устанавливают исправление до того, как будет нанесен значительный ущерб. [3] Эксперты придерживаются процесса, который включает в себя сложные рассуждения с последующим ручным созданием каждой сигнатуры безопасности и исправления программного обеспечения, технический процесс, требующий месяцев и долларов. [3] Это привело к различным уязвимостям программного обеспечения, благоприятствующим злоумышленникам. [2] [3] Такие устройства, как смарт-телевизоры, носимые устройства и высококачественная бытовая техника, подключенная к Интернету, не всегда производятся с учетом безопасности, и, более того, коммунальные системы, электросети и светофоры могут быть более уязвимы для атак, утверждает DARPA. [4]
Чтобы помочь преодолеть эти проблемы, DARPA запустила в 2014 году [6] Cyber Grand Challenge: двухлетнее соревнование, направленное на создание автоматических защитных систем, способных рассуждать о недостатках, формулировать исправления и развертывать их в сети в режиме реального времени. Соревнование было разделено на два основных события: открытое квалификационное событие, которое должно было состояться в 2015 году, и финальное событие в 2016 году, в котором могли участвовать только семь лучших команд из квалификационных. Победитель финального события получит 2 миллиона долларов и возможность сыграть против людей в 24-м соревновании DEF CON capture the flag. [7]
Challenge Binaries работал на полной 32-битной архитектуре Intel x86 , хотя и с упрощенным ABI . [8]
Сведение внешнего взаимодействия к его базовым компонентам (например, системным вызовам для четко определенного ввода-вывода, динамическому распределению памяти и единому источнику случайности) упростило как моделирование, так и безопасный запуск двоичных файлов в изоляции для наблюдения за их поведением.
Однако внутренняя сложность не ограничивалась, и проблемы заходили так далеко, как реализация симулятора физики элементарных частиц, [9] шахмат, [10] языков программирования/скриптинга, [11] [12] анализа огромных объемов данных разметки, [13] векторной графики, [14] оперативной компиляции , [15] виртуальных машин , [16] и т. д.
Авторы задач сами оценивались на основе того, насколько хорошо они различали относительные результаты игроков, поощряя задачи, направленные на выявление конкретных слабостей автоматического мышления (например, взрывного состояния), при этом оставаясь разрешимыми для хорошо построенных систем.
Каждая игровая система — полностью автоматизированная «система киберрассуждений» (CRS) — должна была продемонстрировать способности в нескольких областях компьютерной безопасности:
Команды описывали свой подход на разных площадках. [17] [18] Кроме того, занявший третье место участник (Shellphish) опубликовал исходный код всей своей системы. [19]
Из-за сложности задачи игрокам пришлось объединить несколько техник и сделать это полностью автоматически и эффективно по времени. Например, наивысший балл атаки был достигнут путем обнаружения уязвимостей с помощью комбинации управляемого фаззинга и символического выполнения — т. е. фаззера на основе AFL в сочетании с фреймворком бинарного анализа angr, использующего эмуляцию на основе QEMU и систему трассировки выполнения. [18]
Квалификационное мероприятие CGC (CQE) состоялось 3 июня 2015 года и длилось 24 часа. [20] В CQE было два трека: финансируемый трек для семи команд, выбранных DARPA на основе их предложений (с премией до 750 000 долларов на команду) и открытый трек, в котором могла принять участие любая самофинансируемая команда. Более 100 команд зарегистрировались на международном уровне, и 28 из них достигли квалификационного мероприятия. [21] Во время мероприятия командам было предоставлено 131 различная программа, и им было предложено найти уязвимости, а также автоматически исправить их, сохранив производительность и функциональность. В совокупности всем командам удалось обнаружить уязвимости в 99 из 131 предоставленных программ. [22] После сбора всех заявок от участников DARPA ранжировало все команды на основе их способностей к исправлению и поиску уязвимостей.
Семь лучших команд и финалистов в алфавитном порядке: [23]
После квалификации каждая из семи вышеперечисленных команд получила финансирование в размере 750 000 долларов США для подготовки к финальному мероприятию.
Финальное мероприятие CGC (CFE) состоялось 4 августа 2016 года и длилось 11 часов. [3] Во время финального мероприятия финалисты увидели, как их машины столкнулись друг с другом в полностью автоматическом соревновании по захвату флага. [4] Каждая из семи квалификационных команд соревновалась за первые три позиции, которые разделили бы почти 4 миллиона долларов призового фонда. [4]
Победителями финального турнира Cyber Grand Challenge (CGC) стали следующие системы:
Другими конкурирующими системами были: