В 2015 году команда проекта CloudSek задалась целью разработки системы искусственного интеллекта, которая сможет взаимодействовать с интернетом как разумный человек. Первый прототип системы был представлен публике в марте 2016 года на конференции NullCon. С тех пор в проекте было несколько прорывных открытий, о которых мы хотим сегодня рассказать.
Cloud-AI от CloudSek
Люди (на самом деле, не все) понимают, что делать на сайте или в мобильном приложении, основываясь на предыдущем опыте и с помощью визуальных подсказок на сайте. Мы понимаем, где «кнопка» по надписи на ней, по её форме и даже по размеру и цвету объектов. Компьютерные системы старого типа не используют прежний опыт в решение новых задач. Этот вызов приняли разработчики из CloudSek. Они разработали систему на основе искусственного интеллекта, которая перемещается по веб-сайтам как человек, развивающийся на собственном опыте.
В CloudSek используется обучение с частичным привлечением учителя (Semi-supervised learning) — для части прецедентов задается пара «ситуация, требуемое решение», а для части — только «ситуация». Люди создали огромное количество способов и обозначений механизмов взаимодействия с веб-интерфейсами. Эти данные используются для тренировки системы Cloud-AI от CloudSek, до тех пор пока модель самостоятельно не выполняет необходимые задачи успешно. Такой подход помогает справляться со сложными ситуациями. Обучение с подкреплением сигналами только от среды взаимодействия (reinforcement learning), а не от учителя, как в CloudSek, было бы менее эффективным по затратам времени при решении подобных задач. Спустя 14 месяцев обучения расстановкой тегов на различные варианты веб-интерфейсов и создания контрольного набора данных, команда проекта получила поразительные результаты.
Cloud-AI успешно распознает и классифицирует формы ввода, кнопки и ссылочную навигацию с минимальной погрешностью. С Cloud-AI возможно эффективное взаимодействие с мобильными, веб или практически любыми приложениями, в которых использован графический пользовательский интерфейс.
Введение
В 2015 Amazon выпустила Amazon Echo, персональный ассистент с искусственным интеллектом, который может услышать, понять и ответить на любой вопрос. Google уже тестирует автомобили на автопилоте в нескольких городах. Компании создают технологии, которые помогают людям в их повседневной деятельности. В CloudSek используют искусственный интеллект, чтобы создать агентов, которые могут перемещаться по интернет-паутине и выполнять сложные, но скучные и отнимающие много времени задачи.
В идее автоматизации веб-задач ничего нового. Однако, развивающаяся автоматизированная система, которая может взаимодействовать и перемещаться по любому пользовательскому интерфейсу в сети – это нечто совершенно иное, и игра стоит свеч. Amazon Echo может сделать заказ для вас через портал покупок Amazon. Но Echo не в состояние заказать для вас товар через Alibaba или другой сервис с неизвестным ему API. В будущем мы сможем использовать Cloud-AI для заказа чего угодно где угодно через интернет и выполнения прочих сложных задач, экономя время.
Cloud-AI быстр и точен, он используется CloudSek для создания продуктов x-Vigil и CloudMon.
- x-Vigil просматривает различные Интернет-ресурсы, социальные медиа-платформы и форумы, распознавая широкий спектр угроз информационной безопасности и оповещая об этом в режиме реального времени без ручного вмешательства.
- CloudMon проводит мониторинг незащищенности интернет-инфраструктуры (облачные приложения, веб-сайты) с целью выявления критически важных проблем безопасности.
CloudSek использует Cloud-AI в качестве автоматизированного мониторинга безопасности веб-приложений и облачной инфраструктуры вместо ручного тестирования, наращивая при этом потенциал системы после каждого теста.
Cloud-AI: Кейсы и результаты в сфере информационной безопасности приложений
Небезопасные прямые ссылки на объекты (Insecure Direct Object References) были одной из наиболее известных проблем безопасности на Facebook. Приложения часто используют реальное имя или ключ объекта при создании веб-страниц, не всегда выполняя проверку авторизации пользователя для целевого действия. Это создает брешь в безопасности приложений.
Например, функция удаления учетной записи:
http://domain.com/delete-account.php?userid=5555
Атакующий User-id = 5555
, легко заменяется значением User-id жертвы для обнаружения таких уязвимостей. Задача поиска таких известных ошибок безопасности сложна для автоматизированного инструмента из-за труднодоступности целевого действия. Причина этого — необходимость многошагового взаимодействия с интерфейсом. Ручное тестирование каждого такого бага отнимет очень много времени.
CloudSek использовала систему Cloud-AI для взаимодействия со многими популярными и современными веб-приложениями для автоматического тестирования уязвимостей. Основной целью были небезопасные прямые ссылки на объекты. В числе тестируемых платформ был LinkedIn, выбранный по причине известности и простоты интерфейса.
Тестирование утечек данных в LinkedIn
Команда проекта обнаружила 10 уязвимостей через небезопасные прямые ссылки на объекты в LinkedIn. Эти баги было бы очень трудоемко найти вручную и практически невозможно с помощью традиционных автоматизированных средств. Команда LinkedIn была уведомлена об этих уязвимостях. Вот несколько уже исправленных:
- Утечка email для id любого пользователя.
- Утечка email пользователей, телефонных номеров и резюме.
- Удаление всех пользовательских приглашений.
- Скачивание субтитров ко всем видео в библиотеке онлайн-курсов Lynda.
- Загрузка всех файлов с упражнениями без покупки премиального аккаунта Lynda.
Хотя все баги были довольно простыми, потребовались большие усилия, чтобы их найти. Cloud-AI заполнял многочисленные пользовательские формы и следовал поведенческим моделям для достижения уязвимостей. Такие уязвимости часто упускаются существующими автоматизированными средствами и при ручном тестировании.
1) Утечка email для id любого пользователя
Существует возможность, позволяющая рекрутерам делиться контактами отобранных кандидатов с другими менеджерами по найму. Запрос ниже отправит профиль кандидата другому пользователю. Изменение значения id в запросе на id жертвы позволяет получить email для этого id.
POST /cap/candidate/forwardProfilesAjax HTTP/1.1
Host: www.linkedin.com
csrfToken=ajax&newHiringManagerMemberIds=&forwardTo=&msgBody=Hello&_action_forwardProfilesAjax&projectId=&memberIds=[Victim ID]
Для нахождения этого запроса Cloud-AI успешно выполнил несколько действий:
a) Залогинился в LinkedIn;
b) Дошел по ссылкам до возможности делиться резюме;
c) Открыл правильную форму для заполнения;
d) Написал сообщение и нажал нужную кнопку для подтверждения.
Cloud-AI самостоятельно заполняет необходимые формы
Ответ содержал адреса электронной почты других пользователей.
Утечка имен и email-адресов жертв
Другие баги относительно схожи. Важно, что Cloud-AI успешно выполнял цепочку действия с графическим интерфейсом для достижения уязвимости.
2) Утечка email пользователей, телефонных номеров и резюме
Изменение memberIds в следующем запросе позволяет взломщику посмотреть резюме жертвы.
GET /cap/applicant/profileExportPdf?trackingSearchId=[id]&memberIds=[Victim IDs]
Только люди, которые искали работу через LinkedIn, были уязвимы. Следовательно, это затрагивало не всех пользователей.
3) Удаление всех пользовательских приглашений
Запрос, позволяющий удалять все приглашения на LinkedIn путем изменения request-id.
POST /people/invites/withdraw?isInvite=true HTTP/1.1
Host: www.linkedin.com
Connection: close
4) Скачивание субтитров ко всем видео в библиотеке онлайн-курсов Lynda
Запрос, скачивающий субтитры (стенограммы) всех видео без какой-либо аутентификации.
GET /ajax/player/transcript?courseId=496475&videoId=509328
5) Загрузка всех файлов с упражнениями без покупки премиального аккаунта Lynda
GET /ajax/course/518763/download/exercise/543328
После получения сообщения о найденных уязвимостях Команда LinkedIn устранила их в течение 24 часов. Поэтому обо всех описанных возможностях для взлома следует читать в прошедшем времени.
Метод и OpenSource код
Модуль мутации HTTP
Все данные, полученные Cloud-AI, пропускались через прокси-сервер, который разбирал HTTP-запрос по переменным. Отправка запросов с измененными в модуле мутации переменными позволяла найти проблемы с безопасностью. Перед оповещением разработчиков LinkedIn команда CloudSek вручную проверяла найденные уязвимости.
Модуль системы, который действует как прокси-сервер и выполняет мутации, сейчас находится в открытом доступе.
Будущее Cloud-AI
Cloud-AI собирает всё больше информации о том, как люди взаимодействуют с веб-интерфейсами. Это позволяет команде настраивать систему на более сложные действия. В планах интеграция возможностей обучения с подкреплением сигналами от среды взаимодействия (reinforcement learning). Это позволит достичь максимального числа действий, которые Cloud-AI сможет выполнить как обычный пользователь.
Также ожидается появления API, позволяющего каждому автоматизировать выполнение своих задач, используя Cloud-AI. Мы должны помнить, что новые технологии не приходят без опасностей. Cloud-AI может стать опасным оружием, если попадет не в те руки.
Автор: Cloud4Y