Проект Lighthouse Атакован: Операция Очищение 2

LBP Union и Проект Lighthouse не связаны с Sony Interactive Entertainment или их дочерними компаниями. Проект Lighthouse это проект обратного проектирования “чистой комнаты” ныне несуществующих онлайн-функций PlayStation 3 и Vita LittleBigPlanet. Проприетарный код не распространяется. Ни при каких обстоятельствах мы не одобряем и не поддерживаем пиратство. У вас должна быть собственная копия игры, чтобы использовать пользовательские функции, как только они станут доступны. При использовании этих функций вы освобождаете Sony Interactive Entertainment (Sony), а также любых сотрудников или агентов Sony от любой ответственности, корпоративных или личных убытков, причинённых вам или другим лицам в результате использования пользовательских серверов Lighthouse для LittleBigPlanet.

Проект Lighthouse, настраиваемый сообществом сервер LittleBigPlanet, находится в разработке с октября 2021 года. Прошло некоторое время, и мы постепенно приближаемся к нашей цели: общедоступной бета-версии. Мы хотим, чтобы все снова могли играть в LBP онлайн на консолях PlayStation 3 и Vita. Однако, несмотря на то, что реализованы почти все минимально необходимые функции для общедоступной бета-версии, есть ещё одна важная вещь, прежде чем мы начнём: стресс-тестирование.

Давайте поговорим о том, как наш тестовый сервер Проект Lighthouse был атакован (нами!) во время Операции Очищения 2. Имейте в виду, что это станет немного техническим!

Космический Корпус Союза

Вскоре после того, как репозиторий Проекта Lighthouse был впервые создан в октябре 2021 года, частное бета-тестирование сервера было поручено Космическому Корпусу Союза. Это подразделение LBP Union занимается тестированием экземпляра Проекта Lighthouse под названием Beacon и администрированием частного бета-сообщества.

The emblem of the Union Space Corps features a lighthouse with three stars and the Union compass rose at the bottom.

Таким образом, руководящая группа ККС под названием Звёздная Команда отвечает за привлечение новых бета-тестеров и проведение тестов серверного программного обеспечения для поиска ошибок. Чем больше ошибок сможет найти ККС, тем больше у разработчиков будет возможностей защитить Lighthouse от сбоев и атак. Один из лучших способов сделать это атаковать собственный сервер. Итак, именно это мы и сделали!

Планирование Операции Очищения 2

18 января Ведущий Защитник LBPU m88youngling обратился к Звёздной Команде с просьбой начать планы стресс-тестирования Beacon. Главный Звёздный Командир PorkchopGMX решил, что Лунный Новый год станет датой стресс-теста, известного как Операция Очищение 2. Миссия была названа в честь предыдущего стресс-теста, проведённого в прошлом году.

Operation Purge 2 Has Begun  Attention, all pilots. Operation Purge 2 begins now and will last for the next 24 hours.  Your objective is to use whatever means necessary to attempt to take down or disrupt Beacon. The server will be restored from a backup after the operation concludes.  Please remember this is not an excuse to break the rules. Be respectful to others. If you have been asked to keep information secret, continue to maintain discretion.  Please report your activities and results in Operation Purge 2  Additionally, account creation today is suspended. Cadets, please continue to list your requested Usernames in ❗Create Account Requests, but we will not be able to begin fulfilling these requests again until Monday.  Good luck, and have fun trying to break stuff!

Планировалось, что Операция Очищение 2 станет стресс-тестом самого Beacon его собственными пользователями, который продлится 24 часа. Все участники бета-тестирования были заранее проинформированы о том, что это происходит, и их попросили спланировать атаку на Beacon. Это могут быть заспамленные уровни, попытка обойти функции безопасности или атака на сам сервер в виде атаки типа отказ в обслуживании.

Ведущий Защитник m88youngling предсказал, что миссия не приведёт к бездействию сервера. Тем не менее, команда была удивлена результатами.

Обнаружено Бездействие Веб-сайта

Стресс-тест начался в полночь воскресенья 22 января. Через пять часов сайт подвергся атаке. Первая атака длилась чуть более трёх с половиной минут. Позже в тот же час веб-сайт снова отключился почти на пять минут. Отключения продолжали становиться всё дольше и дольше. Самое продолжительное отключение произошло в 21:52 по восточному стандартному времени и продолжалось 25 минут!

***    Beacon Outage Report: Core/Website    ***
*** Compiled at 11:59 PM EST Sun Jan 22 2023 ***

Filter: Date Ascending

[502 Bad Gateway] Jan 22, 2023 05:07:05 AM EST:  217 seconds
[502 Bad Gateway] Jan 22, 2023 05:53:22 AM EST:  293 seconds
[502 Bad Gateway] Jan 22, 2023 01:21:15 PM EST:  295 seconds
[502 Bad Gateway] Jan 22, 2023 05:36:56 PM EST:   10 minutes
[502 Bad Gateway] Jan 22, 2023 05:58:07 PM EST:   15 minutes
[502 Bad Gateway] Jan 22, 2023 06:23:46 PM EST:   10 minutes
[502 Bad Gateway] Jan 22, 2023 06:39:05 PM EST:   15 minutes
[502 Bad Gateway] Jan 22, 2023 06:59:25 PM EST:  299 seconds
[502 Bad Gateway] Jan 22, 2023 07:25:46 PM EST:   10 minutes
[502 Bad Gateway] Jan 22, 2023 08:18:27 PM EST:   15 minutes
[502 Bad Gateway] Jan 22, 2023 08:38:47 PM EST:  292 seconds
[502 Bad Gateway] Jan 22, 2023 08:49:37 PM EST:   10 minutes
[502 Bad Gateway] Jan 22, 2023 09:52:58 PM EST:   25 minutes

Приведённые выше данные были предоставлены Техником R&D Koko.

Вскоре о проблеме было впервые сообщено, и злоумышленники объявили об успехе. На самом деле, это был чрезвычайно простой скрипт, созданный Metraberryy, который известен под псевдонимом Catgirlfishing в PSN.

Скрипт, созданный Metraberryy, позволяет пользователю быстро загружать комментарии на сайт снова и снова. Когда несколько пользователей запускают скрипт одновременно, это приводит к тому, что веб-сайт замедляется настолько, что никто не может получить к нему доступ. Это классическая распределённая атака типа отказа в обслуживании (DDoS). Однако, если только один пользователь запускает скрипт, это считается атакой типа отказа в обслуживании, а не распределённой атакой. В следующем видеоролике показано, как выглядит атака в журнале консоли Проекта Lighthouse.

Наряду с Hyperfied, Jazzkha11, Ratchet и Despicable_Kee, а также отдельным скриптом, написанный Техниками R&D Koko, Metraberryy и компании удалось накопить более двух часов бездействия веб-сайта между 13 уникальными сбоями. Metraberryy получила повышение до Инспектора КСС за обнаружение уязвимости!

Почему Не Работает Ограничение Трафика?

Для предотвращения подобных атак у Beacon есть серверная программа под названием Fail2Ban, программа ограничения трафика и предотвращения вторжений на основе Python. Если Fail2Ban предназначен для предотвращения DDoS-атак, почему здесь он не сработал?

Ответ заключается в том, как работает Fail2Ban, и в конкретном сбое Проект Lighthouse, который необходимо исправить. Ограничитель трафика работает, отслеживая файлы журнала сервера, созданные Проектом Lighthouse. Эти файлы точно такие же, как в видео выше. Как видите, в журнале на видео создаётся новая строка, чтобы администраторы знали, что делает сервер. В этом случае пользователь отправляет сотни комментариев в быстрой последовательности.

Есть несколько причин, по которым Fail2Ban может не перехватывать эти запросы. Одной из проблем может быть то, что каждая строка журнала не записывает IP-адрес пользователя. Это означает, что Fail2Ban не связывает запросы с конкретным пользователем, не позволяя ему ограничивать их трафик. Другая причина может заключаться в том, что Fail2Ban ищет неудачные запросы. Это означает, что если запрос выполнен успешно, ограничитель трафика может счесть его приемлемым.

Последствия Уязвимости

Из-за этого стресс-теста мы узнали, что очень важно найти решение проблемы до публичного бета-тестирования. В противном случае любой мог бы превратить свой компьютер в машину для уничтожения Lighthouse-ов! Фактически, это именно то, что сделал Разработчик LBP Union R&D Acidiclight, чтобы проверить последствия скриптов созданных Metraberryy и Koko.

Скрипт Acidiclight-а, похожий на скрипт Koko, рассылает спам серверу, пытаясь получить доступ к несуществующим веб-страницам, вместо того, чтобы использовать один и тот же запрос снова и снова. Это ещё больше сбивает с толку ограничитель трафика. Он в шутку называет скрипт ‘Nukehouse’. Фактически, Acidiclight говорит, что “Nukehouse может обрабатывать 4000 одновременных подключений”. Попав в чужие руки на нескольких машинах, подобные скрипты могут вывести веб-сайт Проекта Lighthouse из строя на неопределённое время без надлежащей защиты.

Что Насчёт Игрового Сервера и API?

Веб-сайт не единственное, о чём нужно беспокоиться. Проект Lighthouse раздёлен на три компонента: веб-сайт, игровой сервер и API. Игровой сервер это то, что обрабатывает запросы пользователей в игре. API обеспечивает различные соединения с сервером и с него, что позволяет определённым функциям работать должным образом.

Похоже, что игровой сервер и API не пострадали от атак во время Операции Очищения 2. Бездействовал только веб-сайт. На данный момент это хорошо, но в будущем потребуется больше стресс-тестов для обнаружения уязвимостей в Проекте Lighthouse.

Отслеживание Бездействия

Благодаря усердным усилиям Техника R&D Koko, мы смогли отслеживать время бездействия сервера Beacon с помощью её нового инструмента состояния. Вы можете сами ознакомиться с отчётами об инцидентах на нашей странице статуса!

Koko написала следующее посмертное объявление для Операции Очищения 2:

Postmortem: 22 января, 2023 г. – мы провели стресс-тестирование Beacon, нашего официального экземпляра Lighthouse. Цель этого стресс-теста состояла в том, чтобы позволить бета-тестерам внести свой вклад в разработку Lighthouse, позволив им взламывать и тестировать Beacon методами, которые им нравятся. Из трёх основных сервисов Beacon наиболее сильно пострадал веб-сайт, который простоял более 2 часов и имел 13 уникальных отключений.

Что Дальше?

Beacon нуждается в дополнительном тестировании, прежде чем он будет готов к общедоступной бета-версии. Руководители серьёзно обсуждали, какие функции необходимы перед публичным тестированием. Как мы узнали, улучшение ограничения трафика является абсолютной необходимостью для сервера. В ближайшем будущем будут проведены дополнительные стресс-тесты, которые будут экспериментировать с блокированием подобных атак.

Внесите Свой Вклад в Проект Lighthouse!

Есть разные способы помочь нам с Проектом Lighthouse. Если вы разработчик, нам нужна ваша помощь! Помогите проложить путь к будущему LittleBigPlanet на PlayStation 3 и Vita, отправив pull request в нашем репозитории Github для Проекта Lighthouse!

Нам также нужна помощь в тестировании сервера! Вы можете подписаться на закрытый список ожидания бета-тестирования, присоединившись в наш Discord сервер. Вам нужно будет перейти на канал настроек, чтобы включить список ожидания. Каждые выходные мы выбираем новых бета-тестеров из этого списка ожидания.

Спасибо за поддержку! Нам не терпится представить вам новые новости о Проекте Lighthouse!