В любой системе можно найти уязвимости, и чем сложнее система, тем больше в ней ошибок. Мы стараемся оперативно исправлять их, но это возможно только если нам известно об этих ошибках. Не всегда возможно автоматически зафиксировать факт багоюзинга, и здесь существенную роль играет бдительность игроков. Не смотря на то, что в правилах рекомендуется сообщить о найденной уязвимости, делают это единицы. Гораздо чаще факт использования уязвимости в личных целях обнаруживают другие игроки по косвенным признакам, таким, как аномально быстрый рост в стате и др. В этом случае, игрок направляет нам сообщение с просьбой о проверке определенного игрока/ов. Мы полностью проверяем активность игрока за последние дни/недели. Это достаточно трудоемкий процесс, и требует серьезных затрат времени, особенно если мы не знаем, какую ошибку нашел игрок. Если мы находим потенциальную ошибку, мы её проверяем, пытаемся повторить. Когда факт наличия ошибки доказан, мы устраняем её, а к нарушившему правила игроку применяем соответствующие санкции.
Теперь касательно данной ошибки. Нам поступил запрос на проверку игрока Senator от игрока KRONOS, по подозрению в багоюзинге. Основание – быстрый рост за короткий промежуток времени. Мы детально изучили логи за этот месяц и обнаружили записи о запросах к игре, которые показались нам подозрительными.
В данном случае, это была попытка отправки от 3 до 8 флотов в пределах одной секунды с миссией «Переработать». Причем трюмы были заполнены ресурсами (дейтерием, как правило, всем, что был на планете). Через небольшой промежуток времени следовал возврат 1-3 фотов. По возвращению, ресурсы на планете умножались. Иногда, затем следовала повторная отправка флотов тем же способом, в трюмах уже лежали ресурсы, умноженные на количество вернувшихся флотов.
Мы успешно повторили данную ошибку и разработали защитный механизм, который не даст воспользоваться этим классом ошибок, в т.ч. и в других элементах игры, которые могли быть подвержены подобной уязвимости.
Ну а существование данной уязвимости было обусловлено следующим: т.к. запросы об отправке флота приходили почти одновременно, к началу обработки следующего запроса, предыдущий еще не успевал выполниться, таким образом все запросы получали в распоряжение одни и те же данные, или можно сказать, оперировали одним и тем же флотом и ресурсами. По окончанию обработки запросов, отправлялся как основной флот с ресурсами, так и несколько его копий-призраков. Их можно было развернуть, и получить не только настоящие ресурсы, но и ресурсы с клонированных флотов.
После всех этих мероприятий, к игроку Senator были применены санкции, установленные правилами игры, о чем был уведомлен игрок KRONOS. В ответном сообщении он попросил проверить еще одного игрока, Destroyer, якобы, бывшего в контакте с игроком Senator. Зная паттерн запросов для эксплуатации данной ошибки, мы быстро обнаружили подобную активность и у него. Дополнительно, мы проверили игроков cat и KRONOS: эту уязвимость они не использовали.
Ссылка на один из множества фрагментов с запросами игрока Senator, эксплуатирующими данную уязвимость: Скачать текстовый файл
Надеюсь, Виктория, мне удалось ответить на ваш вопрос.
Как мы и обещали, статус блокировки игрока Senator изменен на бессрочный бан без РО.