Как бот Mayhem ищет уязвимости для Пентагона
В конце 2019 года инженер по безопасности компании Cloudflare Дэвид Хейнс обнаружил странное изображение. Специалист описал его как «целую кучу серых и чёрных пикселей, сделанных машиной». Поделиться находкой Хейнс отказался, поскольку она представляла угрозу безопасности. Изображение было создано ботом под названием Mayhem. Он исследует систему в поисках неизвестных слабых мест и эксплуатирует уязвимости. Хейнс тестировал бот на ПО Cloudflare, которое изменяет размеры изображений для ускорения работы веб-сайтов, и «скормил» ему несколько образцов фотографий. Mayhem превратил их в «бомбочки», которые привели к сбою программного обеспечения для обработки фотографий, вызвав незамеченную ранее ошибку. С тех пор Cloudflare сделала Mayhem стандартной частью своих инструментов безопасности. Как и ВВС, ВМС и армия США. В мае Пентагон заключил с компанией ForAllSecure, стартапом из Университета Карнеги — Меллона, разработавшим Mayhem, контракт на $45 млн для расширения использования системы среди военных. А слабых мест у них было полно: согласно правительственному отчёту за 2018 год, почти все системы вооружений, протестированные Минобороны США в период между 2012 и 2017 годами, имели серьёзные уязвимости в ПО. Mayhem пока не может полностью заменить работу людей, которые ищут ошибки, используют знания в области разработки, навыки чтения кода, креативность и интуицию, чтобы найти недостатки. Но соучредитель и генеральный директор ForAllSecure Дэвид Брамли считает, что этот инструмент может помочь экспертам сделать больше. Программное обеспечение по всему миру имеет больше дыр в безопасности, чем успевают найти специалисты, и каждую минуту их число только увеличивается. Безопасность заключается не в том, чтобы быть безопасной или небезопасной, а в том, как быстро вы можете продвигаться, — уверяет Брамли. Ночь в Лас-Вегасе Mayhem представили в 2016 году в одном из отелей Лас-Вегаса в рамках конкурса DARPA Cyber Grand Challenge 2016. Это одно из мероприятий, организованных Управлением перспективных исследовательских проектов Минобороны США. Никого из разработчиков в тот день на сцене не было — только семь ярко освещённых компьютерных серверов. В каждом из них размещался бот, который пытался находить и использовать ошибки на других серверах, а также искать и исправлять свои недостатки. Через восемь часов Mayhem получил главный приз в размере $2 млн. По словам Брамли, занимающего должность профессора в Университете Карнеги — Меллона, опыт убедил его, что разработка его лаборатории может оказаться полезной в реальном мире. Вместо атакующих способностей бота он со своей командой сосредоточился на защите и приступил к коммерциализации Mayhem. Cyber Grand Challenge показал, что полностью автономная безопасность возможна. Компьютеры могут делать достаточно хорошую работу, — считает Брамли. Победа Mayhem на DARPA Cyber Grand Challenge 2016 показала потенциал системы. Разработкой заинтересовались сразу две страны — Китай и Израиль, которые хотели заключить контракт с ForAllSecure. Но властям США удалось быстрее остальных предоставить компании капитал. ForAllSecure получила контракт от подразделения оборонных инноваций (Defense Innovation Unit) — группы Пентагона, которая пытается быстро внедрить новые технологии в американские вооружённые силы. Разработчикам была поставлена задача доказать силу Mayhem путём поиска слабых мест в программном обеспечении системы контроля коммерческого пассажирского самолёта с военным вариантом, используемым Вооружёнными силами США. Через несколько минут автохакер обнаружил уязвимость, которая впоследствии была проверена и исправлена изготовителем воздушного судна. По словам Брамли, интерес со стороны автомобильных и аэрокосмических компаний особенно высок. Машины и самолёты всё больше полагаются на программное обеспечение, которое должно надёжно функционировать годами и редко обновляется, если это вообще происходит. Без человека Mayhem работает только с программами для операционных систем на базе Linux и находит ошибки двумя способами: спонтанно и более целенаправленно. Первый представляет собой технику, которая называется «фаззинг» — отправка заведомо неверных данных (команд или фотографий) и наблюдение за реакцией программы. Второй способ под названием «символьное выполнение» включает в себя создание упрощённой математической репрезентации целевого ПО с целью выявления уязвимостей реальной цели. В последние несколько лет фаззинг стал более широко использоваться в компьютерной безопасности. В 2019 году Google выпустила работающий по данной технике инструмент, который, как утверждают в компании, обнаружил более 16 тысяч ошибок в браузере Chrome. Но, по словам Хейнса из Cloudflare, этот метод до сих пор широко не используется в промышленности, потому что инструменты для фаззинга обычно требуют слишком тщательной адаптации для каждой целевой программы. Но ForAllSecure смогла решить эту проблему. Это позволило Cloudflare использовать фаззинг на регулярной основе. Символическое выполнение, в свою очередь, помогает найти более сложные ошибки и ранее использовалось в основном в исследовательских лабораториях. Профессор Университета штата Аризона Рёю Ван надеется, что Mayhem — это только начало более автоматизированного будущего для компьютерной безопасности. Но для этого потребуются боты, занимающиеся обнаружением ошибок, чтобы больше сотрудничать с людьми. Эксперт в разговоре с WIRED рассказал, что Mayhem показывает, как автоматизация может выполнять полезную работу. Однако существующие автоматические средства не могут помочь при работе с комплексными интернет-сервисами или пакетами программного обеспечения. Лучшее ПО ещё недостаточно умно, чтобы понимать намерения и функционирование программ, как это делают люди.