Форумы мира Хаддан

Вернуться   Форумы мира Хаддан > Форумы Хаддан'а > Общий форум
Хаддан FAQ Пользователи Поиск Сообщения за сегодня Все разделы прочитаны

Общий форум Обсуждаем любые темы, касающиеся Хаддана.

Ответ
 
Опции темы Поиск в этой теме
  #1  
Старый 24.04.2017, 18:25
Blackignis не в сети
Рекрут
 
Регистрация: 07.08.2016
Сообщения: 5
Репутация: 10
Blackignis Простой пользователь
По умолчанию О некоторых багах (раскрытие информации от 04.12.2017)

Доброго времени суток!

(Прошу прощения за не одно сообщение, но увы, форумный движек не мог обработать весь текст как один пост)

Представляю вашему вниманию небольшой отчет, по обнаруженным мной и заботливо отправленным администрации проблемам.

При нахождении уязвимостей их можно (зачеркнуто)продать и получить за это денег(/зачеркнуто) опубликовать, т.е. раскрыть с целью решения проблем.
Зачем нужно раскрытие?
Ответ приведу из вики:
Цитата:
Свободный доступ к информации об уязвимостях позволяет пользователям и администраторам осознавать и реагировать на уязвимости в их системах, а также позволяет потребителям оказывать давление на разработчиков, дабы те устранили уязвимости, для решения которых иначе отсутствовал бы стимул.

Есть несколько базовых проблем, которые может решить полное раскрытие:

- Если потребители не знают об уязвимостях, они не могут требовать патчи, а разработчикам экономически нецелесообразно исправлять уязвимости без требований.
- Администраторы не могут принимать осознанные решения, связанные с рисками в их системах, если информация по уязвимостям не доступна.
- Злоумышленники, которые также знают про недостаток, могут долго его использовать

Итак, мной обнаружены проблемы и проверены в определенной степени.

4.12.2016 - мной было написано сообщение на почту админам (я наивно полагал, раз в информации у человека Паладин Maelstorm [60] Информация о персонаже
Раса: Человек написано "Баги - на мыло! [email protected]", то это значит, что люди заинтересованы в решении проблем, однако я чуток ошибался).

Письмо написано, и я полный оптимистичных ожиданий (зачеркнуто)"обновляю" каждую минуту почтовый ящик(/зачеркнуто) ожидал ответа.

15.12.2016 - пищу личное сообщение игроку Тотем Азиль [51] Информация о персонаже
Раса: Эльф, в котором чуток намекаю, что: "я вот нашел проблемы, как хороший человек отправил админам, а ответа хоть какого-то не получил, обидно как-то, что делать?"

В тот же день, буквально через пару часов получаю ответ:
Цитата:
Почта, с которой вы шлете письмо - укажите. И напишите сегодня еще раз Администрации. Передам.

Ну что же, сказано - сделано.
Повторил письмо администрации дописав еще пару моментов и вопросов по существу и указал свою почту.

Стал ждать...
(зачеркнуто)Смеркалось(/зачеркнуто)

Наследующий день, обратился к игроку Тотем Азиль [51] Информация о персонаже
Раса: Эльф и получил информацию, что через игрока Магистр Силы Бешеный Тигр [59] Информация о персонаже
Раса: Орк можно "попинать" администрацию, чтобы они посмотрели, что там и как.

Что же, берем, просим "подписать NDA" и человек в работе.

]

Дальнейшие дни до примерно 9 апреля 2017 года, наверно самые ужасные, пару раз в неделю, появлялся я и писал игроку Магистр Силы Бешеный Тигр [59] Информация о персонаже
Раса: Орк, наверно уже был не рад, что впрягся в это дело все...

Примерно 9.04.2017, может быть это был понедельник уже - я пишу игроку Магистр Силы Бешеный Тигр [59] Информация о персонаже
Раса: Орк, что в будущие выходные я собираюсь раскрыть информацию о проблемах на этом форуме, и попросил передать это администрации.

16.04.2017 - неожиданно, в 21-42 игрок Тотем Азиль [51] Информация о персонаже
Раса: Эльф пишет, к сожалению, я перепутал игрока и вместо "бешеный" сказал "белый", тут к сожалению сразу не сообразил, но все же.

24.04.2017 - первая публикация проблем и отчета о том как пытался добраться до админов.

Последний раз редактировалось Blackignis, 24.04.2017 в 18:30.
Ответить с цитированием
  #2  
Старый 24.04.2017, 18:26
Blackignis не в сети
Рекрут
 
Регистрация: 07.08.2016
Сообщения: 5
Репутация: 10
Blackignis Простой пользователь
По умолчанию

---
А теперь к проблемам.
---

1 проблема:

Совершенно случайно и преднамеренно решил я поснифать трафик, что отправляет браузер при игре в эту игру.
Заюзаем Wireshark и пробуем войти в игру.
И дальше видим (не волнуйтесь, пароль я уже сменил на более другой):


Что это значит?
Все просто, пароль передается в открытом виде, что в целом противоречит любым правилам безопасности и так делали в лучшем случае, на заре интернета.

Что это значит для игрока?
Ваш пароль могут увести, вот два первых пришедших в мою голову способа (вопрос зачем угонять пароль от игрока такой игры мы оставим за рамками данного вопроса, ибо моя задача найти, а как злоумышленники и зачем будут эксплуатировать уязвимость - не моя задача)
Первый способ, вы приходите, скажем на хаддан пати, и решаете зайти в игру на, скажем большой замес, вы видите бесплатный Wi-Fi, подключаетесь, логинитесь и играете, неподозревая, что в этот момент ваш трафик, все ваши запросы были (зачеркнуто)зохаваны Ктулху(/зачеркнуто) заснифаны, и все ваши паролики, в любой момент можно прочитать и зайти за вас в игру (зачеркнуто)качать путь в храме(/зачеркнуто), узнать об это вы сможете только тогда, когда все станет плохо.
Второй способ, допустим на том же хаддан пати, люди ставят "прокси" на интернет, которая меняет dns-запись, тем самым вы "вроде как" обращаетесь на адрес haddan.ru, но прокси с левым dns-ом отдает вам адрес скажем "evilMan" (тут я хотел написать как точка орг, но в таком случае я получаю ошибку форумного движка с ошибкой nginx-а
есть подозрения, что это как-то связано, а может и нет), на котором так же все ваши данные угоняются.

Как решать такие вопросы?
Эти проблемы решены путем использования https, т.е. шифрованного туннеля, между клиентом и сервером, так что любой кто попытается снять трафик ваш, получит шифрованную фигню, которую с большой долей вероятности (если ключ шифрования больше 1024) не сможет за разумные сроки дешифровать.
Для того чтобы работал https, требуется ssl сертификат. Его можно купить, как делают все люди, он действителен на год, стоит это от 800 рублей, до 30к за год, зависит от предпочтений, либо можно сделать свой собственный самоподписанный сертификат, с корневым и все такое, что стоит ничего, требуется только OpenSsl (бесплатная программка для сотворения (зачеркнуто)мира(/зачеркнуто) сертификатов), в самом извращенном случае можно бесплатный сертификат от Let's Encrypt (но я как-то не очень им доверяю, хотя для шифрованного туннеля самое то)
Ответить с цитированием
  #3  
Старый 24.04.2017, 18:26
Blackignis не в сети
Рекрут
 
Регистрация: 07.08.2016
Сообщения: 5
Репутация: 10
Blackignis Простой пользователь
По умолчанию

2 проблема:

Нет лимита на запрос картинок "капчей", по ссылке
"http://haddan.ru/inner/img/gc.php" можно выкачивать картинки капчей в достаточно великом количестве при этом ограничения на количество картинок не получено, картинки выкачиваются для одного вопроса.

Что это значит?
По факту тут две стороны, первая очевидная, каждый запрос принуждает сервер генерировать картинку, а это все-таки нагрузка, т.е. теоретически можно почти все CPU камня забить генерацией картинок, а так же сильно нагнуть базу данных, где они сохраняются (в зависимости от базы, либо IO-дисков можно забить, нафигачив знатную очередь (привет лаги на ровном месте), либо "зажрать" всю оперативку (привет лаги и в худшем случае ребут), либо и то и то)
Вторая менее очевидная, данный метод позволит загрузить много картинок себе, и на них уже обучать ИНС (искусственные нейронные сети).

Что это значит для игрока?
В первом случае - нет комфортной игре, ребуты, откаты и просто лаги.
Во втором случае - создание правильного бота для игры, который мог бы профать.

Как решать такой вопрос?
Учитывая, что при всем желании, человек не сможет больше 1 картинки в секунду запрашивать (а учитывая сеть, то и больше), да и по большому счету, при неудачном вводе ответа на капчу, либо же нажатие кнопки "другая", генерится новый вопрос, т.е. перезапроса для этого вопроса в целом нет, то достаточно ограничить запрос таких картинок по времени, либо, что более правильно, генерировать каждый раз новый вопрос, это не позволит автоматически обучать ИНС.

3 проблема:

Во время боя, может появиться вопрос на проверку человек это или нет (та же капча) данный момент обходится путем постановки деятельности на паузу примерно на 1,5 часа (ничего не делать вообще, просто бросить игру), после чего вопрос сам собой пропадает и можно дальше играть.

Что это значит для игрока?
По большому счету, для игрока это не известно и незаметно, это больше относится к ботоводам и прочим не сильно хорошим людям.

Как решить такой вопрос?
При выявлении подозрения на бота в базе у указанного игрока выставлять флаг на "требовать капчу" и не сбрасывать его до тех пор, пока человек не ответит, не важно сколько времени пройдет с момента появления запроса на капчу, дешево и сердито.
Ответить с цитированием
  #4  
Старый 24.04.2017, 18:27
Blackignis не в сети
Рекрут
 
Регистрация: 07.08.2016
Сообщения: 5
Репутация: 10
Blackignis Простой пользователь
По умолчанию

4 проблема:

Капчи с вопросами малостойки, простыми алгоритмами весьма не плохо очищаются от шума и восстанавливаются буквы. После очистки буквы находятся (без особых проблем первое слово почти всегда успешно находит буквы, пример ).
Вместе с тем, вопросы различаются первыми буквами и количеством слов, что упрощает анализ и уменьшает случаи при которых надо распознавать буквы.

Что это значит для игрока?
По большому счету, так же как и в пункте 3.

Как решить такой вопрос?
Тут нет однозначного ответа, появились всякие рекапчи, всякие капчи-игры и прочее, к сожалению, хорошо натренированная ИНС может решить почти любую неитерактивную капчу, т.е. (зачеркнуто)больше "экшона" больши пиу-пиу!(/зачеркнуто) решить такой вопрос не переделывая систему капчей не выйдет, т.о. привет ботоводам

5 проблема:

Баг, связанный с тем, что можно призвать защитника не на свою сторону, признаюсь честно, баг порожден тем что я просто брал и призывал защитника, где в качестве цели был указан враг, благодаря такому багу, я получал практически "бесконечный" бой, потому что бил "врага который мертв" (данные вещи изменяются путем указания разных айди существ)

Что это значит для игрока?
По большому счету, так же как и в пункте 3, однако вам может повезти так же, что скрипт отработает некорректно (или вы сами через инструменты разработчика у браузера так сделаете) и вместо призыва защитника на свою сторону, вы его призовете на сторону врага, и он будет защищать не вас (грустно, да?)

Как решить такой вопрос?
Добавить проверку, "на какую сторону" призывается такой защитник.

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


---
Дополнительные вопросы, что были во втором письме:
- почему не используете более агрессивное кеширование, скриптов/картинок и прочего?
- почему не используете пакетирование (объединение в один пакет нескольких запросов/ответов)?
- онлайн до 300-х человек, и думаю около половины - пассивные игроки, что сидят медитируют, работают и прочее, почему ваш сервис не может держать 300 конектов, насколько вижу, не слишком велика должна быть нагрузка, в чем просадка?
- у вас в БД содержится хренова туча "умерших игроков", у вас применяется архивирование и "урезание" базы?
- какова фрагментация баз?
- в таблицах используется принцип инсерт/делит или инсерт/дисейбл принцип? (удаление строк, когда данные не актуальны, или же проставление в соответствующим столбце выключено)?
- какая СУБД используется?
- как понимаю резервирования нет?
Ответить с цитированием
  #5  
Старый 24.04.2017, 18:57
Аватар для Азиль Азиль не в сети
Магистр
 
Регистрация: 25.05.2007
Адрес: Санкт-Петербург
Сообщения: 3,818
Репутация: 137
Азиль Продвинутый пользовательАзиль Продвинутый пользователь
Послать сообщение через Skype™ для Азиль
По умолчанию

1. У нас есть https://haddan.ru. Опасающимся - использовать его.
2. Это не грузит сервер от слова никак. Технология кэширования и все такое. Впрочем, во избежание активности от "активистов" воткнем проверку.
3. Посмотрим что там с целями, какой-то странный баг. Его правили уже раза 2. Но вообще он мало критичен

P.S. Вообще, письмо товарища напомнило вот эту историю: https://xakep.ru/2006/12/16/35784/
__________________
Лучше просить прощение, чем разрешение

Последний раз редактировалось Азиль, 24.04.2017 в 19:07.
Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 17:42.

Page generated in 0.0221 seconds (52.20% PHP - 47.80% MySQL) with 17 queries

Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Адаптация Архивариус & dukei