Улучшить защиту CapMonster

tmpusr

Новичок
Регистрация
13.01.2018
Сообщения
6
Благодарностей
1
Баллы
3
Ребят, над защитой "удалённых модулей" (нейросети, которые решают на ваших серверах) нужно поработать. Любой, кому не лень и кто знает как и в какую сторону копать, может загружать на ваши серваки неограниченное количество капчей, не платя за это ни копейки.

Одним (из многих) шагов по устранению данной досадной оплошлости может служить добавление сигнатуры к каждому запросу, которая уникальна для каждого запроса, генерируется в самой программе (можно даже сделать, чтобы часть информации для генерации она получала с серверов), проверяется на валидность на стороне сервера.
Или шифровать запросы\ответы к\от серверов.

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

Думаю вы и сами понимаете, где недостаточно позаботились о безопасности и о каком месте именно я говорю ;-)
Но, если нужны подробности - могу скинуть в личку вашим модерам\кодерам
 

tmpusr

Новичок
Регистрация
13.01.2018
Сообщения
6
Благодарностей
1
Баллы
3
p.s.
Всем любознательным (за исключением представителей команды разработчиков), кто хочет знать, о чём я говорю, как разгадывать капчи бесплатно, и тд - идти лесом.
Я предоставлю информацию только представителям\модерам\кодерам.

p.p.s
Форум выбран как канал связи потому, что, как показывает практика - разрабы\владельцы начинают быстрее чесаться и устранять уязвимости\проблемы\недоработки в случае, если их уведомляют публично.
 
  • Спасибо
Реакции: Lord_Alfred

nuaru

Main Administrator
Команда форума
Регистрация
14.01.2009
Сообщения
3 641
Благодарностей
2 472
Баллы
113
Здравствуйте, tmpusr, спасибо что помогаете нам с безопасностью!
Вообще, лучше о таких вещах писать на сапорт или в личку (если аккаунт на форуме позволяет)
В данном случае проблема не сильно большая - послать каптчу можно сразу на сервер, минуя программу, это так, но ключ проверяется как раз на сервере, поэтому больше 1000 каптч, положенных, для демо ключа послать все равно не получится.
Но в любом случае спасибо!
 

tmpusr

Новичок
Регистрация
13.01.2018
Сообщения
6
Благодарностей
1
Баллы
3
но ключ проверяется как раз на сервере, поэтому больше 1000 каптч, положенных, для демо ключа послать все равно не получится.
По поводу 1000 не уверен, по-моему там нету ограничения.
К тому же, думаю при желании можно поковыряться, разобраться в механизме получения апи-ключа от вас и при наступлении лимита тупо менять на новый ключ.

Окей, если там срабатывает ограничение количества для демки, то тогда что по поводу:
1) обхода искуственных задержек, которые присутствуют для "сложных" капчей (которые решаются на вашей стороне)? Судя по комментариям от ваших людей в теме обсуждения текущей версии - я так понял, что они реализованы в программе, а не на серверах.
2) обхода ограничения количества потоков? Они же меряются в софте, а не на стороне сервера? :-)
(в обих пунктах речь идёт о платных пользователях)
 

tmpusr

Новичок
Регистрация
13.01.2018
Сообщения
6
Благодарностей
1
Баллы
3
Если всё проверяется на серверах, тогда возникает резонный вопрос - почему бы не дать пользоватетелям возможность загружать капчи напрямую, без капмонстра?
Меня (и думаю не только меня) жаба душит держать отдельный сервер для капмонстра, платить ещё за виндовскую лицензию каждый месяц, только для того, чтобы капмонстр отправлял капчи к вам на серверы (использую только "удалённые модули", и думаю нас таких много).
Я поэтому и решил чуть-чуть поковырять вас, т.к. меня напрягает эта ситуация, когда платишь деньги за сервер (да ещё за лицензию ненавистных окон от мелкомягких), который по сути не делает никаких вычислительных действий, а только форвардит капчи к вам на серверы. :-)
 

nuaru

Main Administrator
Команда форума
Регистрация
14.01.2009
Сообщения
3 641
Благодарностей
2 472
Баллы
113
Там все проверяется на серверах, тем не менее, не все каптчи распознаются на серверах.
Отдельный сервер держать не нужно, если вы распознаете каптчи, которые распознаются на наших серверах, то CapMonster не будет потреблять ресурсов компьютера и его можно будет поставить на сервер к той программе, которая его использует.
А если те, которые не распознаются на наших серверах - то сервер понадобится.
 

tmpusr

Новичок
Регистрация
13.01.2018
Сообщения
6
Благодарностей
1
Баллы
3
Отдельный сервер держать не нужно, если вы распознаете каптчи, которые распознаются на наших серверах, то CapMonster не будет потреблять ресурсов компьютера и его можно будет поставить на сервер к той программе, которая его использует.
А если те, которые не распознаются на наших серверах - то сервер понадобится.
Ну понятное дело, что не все капчи распознаются на ваших серверах, речь идёт именно о тех, которые через серверы.
Да, капмонстр потребляет копейки при работе с "удалёнными модулями", но суть в том, что приходится держать для него отдельный сервер, т.к.:
1) "программа" которая засылает капчи в капмонстр стоит на нескольких серверах (соответственно, нельзя тупо поставить "туда же где программа")
2) на всех серваках, домашних, рабочих компах у меня линукс. У меня нету ни одного компа с виндой (соответственно, нужно отдельно поднимать виндовский сервер. да, можно на одном из серваков в виртуалку засунуть винду, но это то ещё извращение, с таким же успехом можно поковыряться и постараться заставить работать кампонстр в одном из эмуляторов, аля wine/mono/и тд)

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

nuaru

Main Administrator
Команда форума
Регистрация
14.01.2009
Сообщения
3 641
Благодарностей
2 472
Баллы
113
1) "программа" которая засылает капчи в капмонстр стоит на нескольких серверах (соответственно, нельзя тупо поставить "туда же где программа")
Тогда еще проще - поставьте на один из этих серверов.

2) на всех серваках, домашних, рабочих компах у меня линукс. У меня нету ни одного компа с виндой (соответственно, нужно отдельно поднимать виндовский сервер. да, можно на одном из серваков в виртуалку засунуть винду, но это то ещё извращение, с таким же успехом можно поковыряться и постараться заставить работать кампонстр в одном из эмуляторов, аля wine/mono/и тд)
Как я уже объяснил, для полноценной работы CapMonstr нужен компьютер с операционной системой Windows, без этого никак.

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

tmpusr

Новичок
Регистрация
13.01.2018
Сообщения
6
Благодарностей
1
Баллы
3
Как я уже объяснил, для полноценной работы CapMonstr нужен компьютер с операционной системой Windows, без этого никак.
Для полноценной - да, а для работы с удалёнными модулями думаю он должен запуститься в эмуляторе.
Под словами "дать возможность" скрывается несколько человеко-месяцев работы программистов.
Пока такой возможности нет.
Предвидя ваш вопрос "дайте как есть" сразу отвечу - появится еще десять человек с вопросом "а что вы все сделали через задницу, нормально сделать нельзя было?".
Оно и так вроде нормально, единственное там изменить структура запроса загрузки капчи, чтобы она либо multipart'ом грузилась, либо base64. Понятно. Жаль.
На досуги поковыряю потом эмуляторы, может получится запустить капмонстр. Либо придётся свою нейросеть поднимать, т.к. по деньгам со своей нейросетью выйдёт дешевле.

Это хорошо, что у вас всё на серваках проверяется. Ну раз вы не хотите\нету возможности давать загрузку на прямую в публичный доступ - добавьте тогда туда какую-нибудь защиту (как говорил ранее - вариант с сигнатурой не плох, сделать что-нибудь типа md5(rand+api_key+secret) и в запросе отправлять результат генерации + рандомное число, а на серере проверять. Либо шифровать трафик как это сделано у вас при запросах\ответах от "основных" серверов).

p.s.
Кстати, хотел спросить - какой смысл было создавать несколько субдоменов для загрузки, и к каждому привязывать свой айпи, если это можно было сделать используя Round-robin DNS. Или вы каждому пользователю жёстко привязываете один из серверов для гаданий? Но тогда разбаланс получается, и у части пользователей будет расти время разгадывания, тк "их" сервер(ы) могут быть перегружен(ы).
Подумайте по поводу Round-robin DNS ещё - балансирнули бы нагрузку - у пользователей быстрее бы гадалось ;-)

p.p.s.
Я на прямую капчи не гружу, и не буду. С радостью бы грузил, если бы вы дали в публичный доступ загрузку напрямую, но раз не хотите\нету возможности - значит буду как все :-)
 

nuaru

Main Administrator
Команда форума
Регистрация
14.01.2009
Сообщения
3 641
Благодарностей
2 472
Баллы
113
Давайте все-таки исходить из мысли, что мы знаем что делаем и раз сделали так, а не иначе, значит на то есть причины, которые откроются вам только когда вы сами начнете проектировать и запускать такую систему.
Разъяснять как это все работает и зачем сделано так, а не иначе - пустая трата времени.
Если получится найти какую-то уязвимость - пишите. Желательно в сапорт.
 
  • Спасибо
Реакции: Koqpe

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 857
Баллы
113
На досуги поковыряю потом эмуляторы, может получится запустить капмонстр.
Гляньте докер - мне кажется, что можно сделать контейнер на win с капом, который запускается из *nix и через ip:port прокидывать туда капчи на интерфейс CM (не на сервера ZL напрямую). Так же, думаю, осилите форвардинг таких же запросов с других серверов туда.

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

Max

Client
Регистрация
17.06.2012
Сообщения
168
Благодарностей
44
Баллы
28
tmpuser, откуда вы такие вылазите? сделали как смогли - сделайте лучше мы все форумом посмотрим, а может даже и купим. Как раз линукс ниша полностью свободна - конкурентов 0
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)