Здравствуйте, гость Вход | Регистрация
Наши новости:
|
| Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
|---|---|---|---|---|---|
| 9.1.2015, 19:16 | Защита Counter Strike Сервера | Единственное с чем стОит играться - это отдельные ли IP мониторить или подсети, ибо в случаи с ботнетом - количество IP всё равно ограничено, а в случаи спуфинга можно почти любой IP выдумать, какой вздумается. Ну, раз при спуфинге можно подставить любой ип, то явно не стоит делать отслеживание на уровне ипшников. В таком случае точно памяти не напасешься. UPD: можно даже не сортированный. Hashtable подойдёт. В цикле оббегать в поисках "превышения скорости" и всё. Идея правильная, правда есть одно НО. Что будет, когда долбанут спуфом не с десятка /24 подсетей, а со всего 0.0.0.0/0? А вот что будет: ![]() Ну, почти 800 мегабайт на процесс. Хотя можно, конечно, надеяться, что такого не будет. Вторая проблема на все 100% в HLDS'е. Просто если так рассуждать, то valve ни в чём не виноват. Это "лошары", проектировавшие udp просчитались. Не конструктивный подход. UDP спроектирован нормально. Об амплификации должны думать те, кто проектируют протоколы на базе UDP. Если вам имя виновного надо, то оно есть у меня - это Джон Кармак. Куча современных шутеров унаследовали сетевой протокол (вместе с проблемой амплификации) от Quake. Проблема глубже, чем кажется Нет, не кажется. Лучше пусть они сидят там в бане во время атаки, чем постоянно (не знаю у кого как, а я все "нашумевшие подсетки" в drop на роутере загнал. И уберу либо когда появится заплатка, либо когда в следующий раз вспомню про существование роутера. Эти сегменты сети для меня безынтересны. Но тут пусть каждый сам выбирает. Кому "голый стим", а кому и "последний dproto с настроенным по максимуму автобаном". А вот игроки из безынтерсных вам подсетей хотят играть. И если такая мега-защита будет вшита в модуль, который на каждом втором сервере стоит, играть они не смогут. Согласен, идея далеко не best. Но лучше придумать хоть какое-то решение (а оно в любом случаи будет костылевидным), чем сложить ручки, взять свечку и молча лежать, пока земелькой в яме закидывают. Решение проблемы №1: iptables -t raw -A PREROUTING -p udp -j NOTRACK + iptables -t raw -A OUTPUT -p udp -j NOTRACK Решение проблемы №2: Спасение утопающих - дело рук самих утопающих. Но если утопающих таки жалко, можно попробовать hashlimit-ом или recent лишние пакетики по /24 подсетям срезать А зачем нам вообще куда-то таскать пакеты? hlds получил их, проанализировал, если счёл нужным, определённые проигнорировал. Вариант отброса пакета иптаблесом: Обработка прерывания от сетевухи => фильтрация в netfilter => пакет дропается Вариант отброса пакета хлдсом: Обработка прерывания от сетевухи => фильтрация в netfilter => добавляем пакет в очередь пакетов в сокете => пытаемся разбудить процесс хлдса => процесс вызывает recvfrom() => копируем содержимое пакета и инфу о нем в userspace память => hlds отбрасывает пакет Дроп пакетов в ядре всегда будет эффективнее. Костыли в роутерах и на iptables все, кому было надо, уже подставили. Вопрос не в этом. Вопрос в том, что сейчас тулзу оттестировали, поняли, что она работает. Амплификацию с игровых серверов юзают уже года 3 точно. Но всем было насрать до января 2015 года, пока не начали долбить целые подсети. А вот потом атака может всплыть вновь. И она уже может быть повёрнута против любого из нас, т.к. принцип действия разжеван, а способ действия идеален для атак на "себе подобных". Я думаю что 80% трафика срежется блокированием udp source портов 27015:27020. Для клиентов геймхостингов делать вообще ничего не надо будет (ТП всё сделает сама), а тем кто арендует дедик, достаточно сделать один звонок в саппорт дц. Хоумхостинги, извините, но вы в жопе :) |
[WPMG]PRoSToTeM@, FIELD LINE, mazdan, S0m3Th1nG_AwFul!, XyLiGaN | ||
| 9.1.2015, 15:18 | Защита Counter Strike Сервера | [WPMG]PRoSToTeM@, FIELD LINE, Fire, S0m3Th1nG_AwFul!, XyLiGaN | |||
| 9.1.2015, 15:09 | Защита Counter Strike Сервера | Что-то алгоритм похож на лечение насморка методом отрубания головы. И рекомендацией использовать ядерное оружие, что бы избавиться от насморка на раз, а не рубить каждому заболевшему голову. Есть проблема - флуд со спуфом, равномерно размазанный между несколькими десятками (может сотнями) /24 подсетей. Предложите свой вариант блокирования такого флуда. Тем более, что проблема-то, по-сути, именно в hlds'е Какая из проблем? Их у нас две: 1) Переполняется таблицы контрака/хэшлимита/еще чего-нибудь в netfilter 2) Возможность амплификации Первая не может решаться на уровне hlds-а в принципе Вторая проблема должна решаться редизайном протокола. Любая попытка решить ее другим способом - костыль. Так что, у нас нет проблем, которые "именно в Hlds'e" Единтсвенно-правильный вариант - это решение со стороны разработчика. Вот это правильно! Но мы же все знаем, как господин А* решает проблемы :) Совершенно не ломал голову над алгоритмом реализации защиты А стоит попробовать. Вот, например, АСка, с флуда на которую всё началось: Флуд лился с (на?) 87.120.198.0/23 87.120.208.0/21 87.120.252.0/22 87.121.0.0/23 Если я еще не разучился считать, это около 4000 адресов. Если забанить 87.120.0.0/16 и 87.121.0.0/16, в бане будет 131 тысяча адресов. Вам не кажется странным, что 131к-4к = 127 тысяч адресов должны просто так сидеть в бане? Потому, что кто-то там не подумал над защитой? На мой взгляд, можно сделать проще: ввести ограничение на кол-во ответов сервера на запросы A2S. Лучше, в конфиг (у кого-то сервак с 2 землекопами в час не добавленый в мониторинги, а кто-то всем бустам и мониторингам руки позолотил). При нормальном поведении кол-во запросов будет менее предельного, при DDoS'е сервер тупо ответит на первые N запросов (легитимные они будут или спуфные - уже не важно), а потом будет молчать до окончания временного интервала и обнуления счетчика (например, раз в минуту). Допустим, ввели лимит 50 запросов в секунду. Теперь, если зафлудить сервак на 500запросов/сек, он 90% времени будет не виден в Favorites/Internet вкладках на клиентах. Хреновая идея, имхо Гораздо менее ресурсоёмко, чем iptables'ом все пакеты просматривать... Любая защита, сделанная на иптаблесе, будет менее ресурсоёмкой ее аналога, сделанного в юзерспейсе. Потому что не надо таскать пакеты между ядром и юзерспейсом. Если у всех будет защита даже по второму варианту, смысл в такой амплификации утратится. Точнее, амплификации уже не будет. Наступит мир, дружба, жвачка. ) Любая защита от амплификации - это костыль, и этот костыль не убирает проблему амплификации полностью. Амплификация по-прежнему останется возможной, атакующему нужно просто увеличить пул hlds-ов (кстати все сурс игры и всякие там батлфилды тоже могут быть использованы), через которые делается амплификация и уменьшить нагрузку на каждый из них, чтобы не попадать под установленные лимиты. Так что увы, жвачки, дружбы и мира не будет :) |
[WPMG]PRoSToTeM@, FIELD LINE, Fire, S0m3Th1nG_AwFul!, XyLiGaN | ||
| 9.1.2015, 2:13 | Защита Counter Strike Сервера | а ваще это все должен контролировать dproto, но чет там все каряво и непашет как надо. Коммунити вообще уже вкрай охуело С чего это вдруг какой-то там модуль какого-то там приложения должен заниматься аналитикой, вычисляя, с каких именно подсетей льется спуфнутый флуд? Но ок, давайте предположим, что все таки должен. В адресном пространстве IPv4 2^32 адресов и 2^24 = 16777216 подсетей класса Цэ (/24) Чтобы занимацца простейшей аналитикой, нам надо на каждую подсеть завести счетчик принятых пакетов (4 байта) и время последней очистки этого счетчика (еще 4 байта) Итого, 16777216 * 8 = 128Мбайт памяти надо на каждый запущенный hlds на машине Если у вас 20 hlds-ов, уже 2 гигабайта надо. Логичнее, наверное, такую таблицу сделать один раз на всё машину, а не плодить ее в каждом процессе? А еще, даже если все злодеи забанятся на уровне hlds-а, это никак не спасет вашу таблицу conntrack-а от засирания спуфом. Так что можете дальше уповать на то, что все ваши проблемы решатся плагином для метамода. Не решатся. Пришло время включать свою голову, ага. |
[WPMG]PRoSToTeM@, adva, default1k, DraconKCH, etkins, FIELD LINE, Fire, gtwk, kritik, Realution, S0m3Th1nG_AwFul!, s1lent, Safety1st, San4aus, ssx, XyLiGaN | ||
| 27.8.2014, 22:19 | PRoSToTeM@ - раздвоение личности | ![]() |
_Skyline, kritik | ||
| 8.6.2014, 21:54 | Защита Counter Strike Сервера | Вот полегче и побыстрее на Netchan_CopyNormalFragments как ребята с делфи подсказали Только православный delphi. Версия под шиндовс все равно лучше твоей кривоты, без обид. Netchan_CopyNormalFragments вызывается очень много раз от бота, нагрузка как никак, а с баном один раз ![]() |
[WPMG]PRoSToTeM@, Fire, intercs, primm | ||
| 23.1.2014, 23:36 | Обход бана подменой SteamID | Щас я буду вещать. У существующих эмуляторов косяков предостаточно. В лучшем случае в качестве уникального параметра используется hddsn, полученный через API винды, что не серьезно (это в лучшем). Очень интересно, как вы себе представляете получение того же серийника винта НЕ через winapi? Эмуль работает в userspace на винде. Это означает, что вы в любом случае будете юзать либо User-space виндовое API, либо дергать ядро напрямую (sysenter / int 2e), т е юзать Kernel-to-user-space виндовое API. Вся авторизация происходит в одностороннем порядке клиент->сервер. Для ее подделки достаточно узнать, как на сервере проверяется валидность сообщения от эмулятора. А еще можно поймать момент, где эмуль получает "уникальный ид", и подменить его на левый. А если вы таки привязалсиь к маку сетевухи, то можно, например из WinDDK скомпилить какойнить Hello World loopback драйвер и добавтиь туда возможность менять мак. А еще можно реверс-инженирить серверную часть А еще можно реверс-инженирить клиентскую часть А еще можно попробовать написать флудер, который будет грузить вашу хитро работающую серверную часть так, что владелец сервера его нафиг снесет. Это только то что пришло в голову за 5 минут 1. Сделать эмулятор с генерацией id по надежному параметру компа игрока. Проблема решена, дело осталось за реализацией. Есть несколько знакомых людей с большим опытом в этом направлении. Проблема не только не решена, проблема даже ничерта не была понята. Если вы хотите сделать надежную аутентификацию в "экосистеме", которая состоит из сотен тысяч клиентов и десятков тысяч игровых серверов, которым нужно аутентифицировать клиентов, нельзя опираться на какие-то локальные айдишники клиента. Потому что эти локальные айдишники и рано или поздно будут подменены и ваша система рухнет как карточный домик. Как сейчас рушится система аутентификации на ревЕму. Это вопрос времени. Для построения действительно надежной системы аутентификации необходима третья сторона, которой доверяют и клиенты и игровые сервера. Эта "третья сторона" и есть стим. Игровые сервера доверяют аутентификационным тикетам, подписанным приватным ключом стима. А чтобы у клиента была возможность создать валидный тикет, он должен заплатить бабло стиму (купить игру). Если вы и ваши знакомые "с большим опытом работы в этом направлении" не понимают очевидных вещей, то у вас получится ревЕму 2, который проживет очень и очень недолго. 2. Нормально защитить код руками + внешними средствами. Это немного отсрочит начало конца 3. Усовершенствовать механизм валидации, сделать дополнительную авторизацию и максимально скрыть их. Сейчас это опенсорс код. Сколько бы вы не совершенствовали алгоритм, который defective by design, надежным он от этого не станет. |
3JIou CKuH, Bloo, CL0NE [ua], ex3m777, f1nik, fwass, Hollisch, Safety1st, sign92, w0nd3r | ||
| 22.1.2014, 1:44 | Обход бана подменой SteamID | А что Крок? Он хороший писака, не спорю, но его труды пригодятся максимум вам, а то м не все из вас поставят, то что он напишет. Вы исходников его не видали, антивирусы их не дедектят. Что заморачиваться? Кому надо - поставят, кому не надо - не поставят. Кому исходники нужны - те их получают. Вот когда сдохнет хак от Контер, тогда я свой на люму выкладу. Хотя я думаю зря а тот пост написал, он догадался о чем я, и теперь эмулит реал айди, что для Вас печально). Рашн хацкерс аре крацкинг Стим. Ох май Год. Контрольные вопросы - какой алгоритм используется для подписания тикетов в стиме? Какой длины у них приватный ключ? Вы уже похекали АНБ США и получили доступ к кластеру, который способен сбрутофорсить ключ такой длины в разумные сроки? samthugg, Take it easy, it's just a game. Всё не так просто, как кажется. Приверженцы "стороны зла", на самом деле, делают добрые дела - убивают устаревшие/ненадежные технологии/решения и поддерживают комьюнити "в тонусе". |
Bloo, CL0NE [ua], ETO_BYLO_LETOM, Fintok, Hollisch, perfectblood0, Safety1st, samthugg, serfreeman1337, user.gameover.user | ||
| 22.1.2014, 1:08 | Обход бана подменой SteamID | Средствами AMXX нельзя детектить то, что работает на уровне движка. Так-то можно. Orpheu. Я так прикидывал, как бы revEMU2013 сломать Ну и как успехи? а тут оказывается LUMA в не зашифрованом виде передает всё. Честно я чуть под стол не упал. Задача кракед стима - дать детишкам поиграть в игрушечки не платя денюжку. Вопросами безопасной аутентификации авторы не заморчаиваются и правильно делают, ибо "хоть шифруй, хоть не шифруй - всё равно получишь х*й" |
Bloo, ETO_BYLO_LETOM, Fintok, Safety1st, serfreeman1337, w0nd3r | ||
| 21.1.2014, 1:29 | Обход бана подменой SteamID | Что касается воровства тикетов от стима: В часть тикета, которая подписана приватным ключом стима, входит IP-адрес клиента (видимо это адрес, с которого стим-клиент коннектится к серверам стима). Сейчас этот адрес в тикете почему-то не проверяется на совпадение с адресом, с которого клиент коннектится на игровой сервер. Если добавить такую проверку, то проблема воровства тикетов перестанет быть актуальной. |
3JIou CKuH, Affl, Bloo, dgfaf, Fred Perry, gudaus, LaFA, sabas, Safety1st, sambo, w0nd3r | ||
| 19.1.2014, 14:28 | Обход бана подменой SteamID | berq, вынужден отвергнуть Ваше предложение, ибо не нуждаюсь. В таком случае Вас не должно затруднить подкинуть ссыль, где можно купить 5-10 акков по 30-50 рублей? Мне для тестов нужно. По сабжу: Если банить то по всем параметрам, что есть в этом мире xD Достаточно забанить по одному параметру, на изменение которого потребуется много ресурсов (временных или денежных). Если сделать предположение, что мы воюем с лицами школьного возраста, то времени у них завались. Остаются деньги. А это legit steam id. С этим никто не спорит. Для этого надо знать, что требуется найти. Но, если криптовать некоторые участики кода, добавить мусор, знающему челу потребуется больше времени для определения того, что происходит в модуле. Если затраты на взлом защиты не окупятся ожиданием, ломать никто не будет. Правда, для фана можно и попробовать... Мы ведь знаем, что нужно найти. Нам нужно найти, как модуль генерирует уникальный ИД. Данные для генерации ИД он явно получает извне (от ОС). Значит нам нужно логировать все вызовы из модуля в ОС, а потом изучить этот лог. Расшифровывать модуль вообще не требуется :) |
kritik, Safety1st, user.gameover.user | ||
| 19.1.2014, 13:24 | Обход бана подменой SteamID | Legenda, да ладно? Стим аккаунт с КС 1.6 можно купить рублей за 15-20. Куплю 10 акков, по 30 руб за штуку. Прямо сейчас. Стучите в ПМ. А заодно и проверим, правда ли кс1.6 стоит 30 рублей, или это чьи-то фантазии. Физический адрес сетевухи вы не измените... Вшит в ROM памят. Мыслите шире - зачем менять мак сетевухи? достаточно найти, где эмуль пытается получить мак сетевухи, вставить туда хук, и возвращать в эмуль любой мак, который только вздумается. Вы поймите, то что revEMU взломали (а точнее пропалили каким образом там генерируется хеш) только потому, что нашли древние исходники Dproto. Ответ неверный. Revemu влозмали потому, что любую локальную защиту можно взломать. Вопрос лишь в том, сколько времени на это потребуется. От себя могу добавить, что трудоемкость аналогичного взлома ревему2013 и steamclient2009 - 2 дня. Один на переписывание алгоритма генерации тикета + еще один на прикручивание этого барахла к какой-нибудь сборке. |
Safety1st, user.gameover.user | ||
| 18.1.2014, 14:37 | Обход бана подменой SteamID | Значит моя изначальная идея, урвать стим игроков сейчас, звучит вполне правдоподобно. Ты меня не понял. Не надо урывать существующих стим игроков, нужно переводить на стим игроков, которые сейчас на ноустиме. Не чего у вас не получится ) ОК, купайтесь дальше в существующем дерьме, весело же ) Только не надо думать, что вы тут натрещите 100 страниц на форуме, и проблема решится сама собой. |
Safety1st | ||
| 18.1.2014, 13:59 | Обход бана подменой SteamID | Ну тогда надо брать исходы от Rev2013 у Крока У меня нет исходников Rev2013. И реверсить его я не собираюсь, ибо нафиг оно не надо :) Ontopic: Переводите игроков на стим, кс не так и дорого стоит. И не будет у вас больше проблем с фэйковыми стимид, авторизацией и другой хренью |
3JIou CKuH, f1nik, kadun, Safety1st, SISA | ||
| 8.3.2013, 10:03 | Dproto 0.9.582 | Новой версии не будет, пока: 1) Альфред не закончит клепать свои говнофиксы 2) Не будет каких-то весомых преимуществ от перехода со "старой" версии хлдса на новую. Пока я таких преимуществ вообще не вижу. Кому нужна поддержка нового билда, только потому что он новый - извините, вы в пролёте. |
Fred Perry, Stolen, tnav, w0nd3r | ||
| 15.2.2013, 17:11 | mailserver | но если есть свой почтасервер, почему бы и нет? И действительно, нафига использовать готовые сервисы от яндекса например? Нужно поставить своё, проебать 10 дней на настройку, и в итоге все равно получится глючащая неюзабельная хрень. Отличный подход, верной дорогой к успеху идёте :) |
_Skyline, Johnny | ||
| 7.2.2013, 20:47 | Сообщество борцов за чистоту клиентов | f1nik, Давай ты щас поставишь фтп сервак и дашь полный анонимный доступ к своему рабочему столу. А мы тебе туда будем туда накидывать ссылочки на всякие говносайты. Ок? Тебе не нравится этот подход? Давай встанем на сторону говносайтов! Им же надо как-то загонять к себе народ, да? :)) |
jesuspunk, on1x, serveradmin | ||
| 7.2.2013, 20:31 | Сообщество борцов за чистоту клиентов | jesuspunk, Успокойся уже. Ты считаешь что не этично засирать клиент, а другие так не считают. Они вообще слово "этика" первый раз слышат. Ты считаешь, что надо уважать своих игроков(клиентов твоего сервера), а другие так не считают. Глупо пытаться их в чем-то переубеждать. |
jesuspunk, neygomon, Safety1st | ||
| 6.2.2013, 20:48 | [hlds_announce] Counter-Strike 1.6 beta server | _Skyline, aphk, c0rax, fast_inject, L_O_T_U_S, TrikSer, нуб2 | |||
| 5.2.2013, 19:57 | [hlds_announce] Counter-Strike 1.6 beta server | Держите [attachment=18874:5787_engine_i686.7z] |
_Skyline, artemkyz, fast_inject, Johnny, midorfeed, sabas, нуб2 | ||