IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2023/04/30
~R4SAS
~orignal
~villain
&N00B
+Xeha
+relaybot
AreEnn
Leopоld
Most2
Nausicaa
Nikat
Opax
Vort
WayBest
`
acetone
anon2
anontor
b3t4f4c3
banona_
fidoid
grimreaper
itsAMe
karamba_i2p
ncop
nemiga2
onon
onon1
overflow
platipussy_
polistern
poriori
profetikla
qend
r00tobo
soos
teeth
typhoon
uis
un
user
weko
whothefuckami
колдыр
orignal рестарт илиты через 10 минут
Vort с полуночи опять засирание трафиком пошло. после перерыва в 5 дней
weko [05:38:51] <Vort> с полуночи опять засирание трафиком пошло. после перерыва в 5 дней
weko Ага
weko Жирные туннели
weko Как всегда
whothefuckami О ебать атака
whothefuckami Routers: 32334 Floodfills: 17198 LeaseSets: 232
whothefuckami Пацаны
whothefuckami Client Tunnels: 65 Transit Tunnels: 21564
whothefuckami Пацаны блять
whothefuckami Сделайте что-то
whothefuckami Или всё уже сделано?
whothefuckami Tunnel creation success rate: 4%
whothefuckami Ацетон кажись лежит
weko Floodfills: 9115 L
weko Ну а что
weko Что можно было сделать "по быстрому", уже сделано
weko И варианты как атакуют и как исправить я тоже предлагал ещ5 в тот раз
weko Ещё*
weko Могу предложить уменьшить лимит на туннели
weko Транзитные
weko У атаки как будто тот же сценарий
weko Сначала трафик, потом эта херня
weko Возможно даже комбинировано в этот раз
Vort утром засирания флудфилами не было кстати
weko Не было
weko Я смотрел
weko Vort: нужно решить что будем с этим делать
weko Помнишь же что я предлагал?
weko Могу сюда скопировать что я только что в другой канал писал как про этл
weko Какие есть другие варианты
Vort про флудфилы не помню
Vort "что будем с этим делать" - анализировать netdb для начала
weko [10:06:06] <weko> For general fix, we must recognize fake FFs (most easy - simple ping with i2p's transport), and block its FFs (and IPs) for long time (week, for example).
weko [10:06:06] <weko> Also, maybe we need do not flood FFs, that we not check yet.
weko [10:07:25] <weko> Ofc, we can do some stupid things, like searching patter of fake FFs, but it is temporary and just hot fix "for works"
weko [10:08:08] <weko> Floodfills: 18861
weko [10:08:20] <weko> Just for understand.
weko [10:13:58] <weko> We recognize router as FF if it have cap "F", but we need more verification for recognize reality of this FF.
weko [10:16:21] <weko> Spam with fake FFs is problem, because router trying get info about RIs and LSs mostly on fake FFs (witch do not sent answer), and this is reason of small TCSR
weko [10:17:40] <weko> Critically small*
weko Vort: значит нужен инструмент анализа
weko И желательно статистики
weko Но что именно мы хотим найти?
Vort weko: по сути, ты покритиковал архитектуру i2p :) флудфилы - флудят. логично блин
weko Я предложил конкретный вариант механизма защиты от подрбного
weko Как и в тот раз я писал про этр
Vort "Но что именно мы хотим найти?" - как минимум, есть ли отличия от прошлого флуда
weko И что это даст?
Vort ну если это тупой повтор - то можно так же тупо повторить "секретный патч"
weko Механизм то тот же
weko Vort: ну я вот уже скопировал его
weko Буду сейчас вставлять
Vort расскажи, поможет ли
weko Но вопрос в том, чтобы исправить полноценно
Vort да понятно
weko Vort: давай, сейчас. Там ещё строчки съехали скорее всего
weko Пока что собираю
Vort я посмотрел - принцип атаки очень похож. и патч скорее всего "поможет"
weko Ну ты же знаешь на чём патч основан?
weko Вот это и смотрм
Vort поэтому и сказал что поможет
weko Окей
weko Сейчас ещё проверим имперически
Vort тут ещё возможна эксплуатация бага, который мы так и не отловили: в логах много RouterInfo: Can't open file
weko Есть идея как +- быстро реализовать мою идею кстати
Vort хотя может это просто из-за повышенной нагрузки
weko Не знаю
weko Я не знаю про этот баг
weko В любом случае атака эксплуатация бага ))
weko [10:42:28] <weko> Есть идея как +- быстро реализовать мою идею кстати
weko Нужна только функция "проверки" флудфила
weko case eSSU2BlkRouterInfo:
relaybot 13sam: Роутеры: 3814 Флудфилы: 3433 Лизсеты: 0
relaybot 13sam: Клиентские туннели: 23 Транзитные туннели:
R4SAS изучаю корку одного из серверов
R4SAS догадываюсь где проблема
R4SAS weko: Vort:
R4SAS Blinded message
weko Он у меня не заработал
weko Наверное не туда пихнул
weko Там строчки поехали просто
R4SAS скорее всего
weko По логам там ломается файл router.info
R4SAS не только
R4SAS я вижу что хуйня еще в RI прилетаемых
weko Видимо обработка router.info полагается на ту функцию, в которой патч
weko Ну а там понятно почему ломается
R4SAS перезапускаюсь
R4SAS скоро вернусь
acetone_web Вот это да)
acetone_web Атакуют будь здоров значится
acetone_web Туннели не строятся почти что
Vort сейчас после перезапуска уже 20 минут пытаюсь к irc.ilita подключиться
Vort при том, что я на 99% уверен что сервер работает
acetone_web У меня на впске с баунсером оказывается i2pd упал (всего скорее ООМ, т.к. впска оч слабая). Надо бы в дефолтный системд сервис указать релоад по умолчанию
Vort acetone_web: о характере атаки в курсе?
Vort 700 мегов RAM у меня на флудфиле до рестарта было
acetone_web абсолютно не в курсе, вот заглянул после прогулки, а тут ничего не подключается
Vort спам фейковыми RI флудфилов. надо ставить "секретный патч"
Vort ну или ждать пока orignal другой метод реализует
Vort [17:18:23] <~orignal> короче рассказываю план действий
Vort [17:18:44] <~orignal> 1.на не флудфиле незапршенные флудфилы не принимаем
Vort [17:19:07] <~orignal> 2. если флудфил то принимаем непосредственно с него естественно если совпадает адрес
Vort [17:19:28] <~orignal> 3. если приходит через флуд то принимаем только ранее известные
Vort [17:19:57] <~orignal> жду конструктивной критики
acetone_web критиковать не могу, это самое что нинаесть похожее на план со времен первой подобной атаки
Vort спам RI - это главное в атаке. но помимо этого с полуночи ещё пошла новая волна мусорного трафика
Vort RI пошли утром-днём
Vort это загрузка CPU узла
WebClient26 сеть атакуют?
Vort да
WebClient26 достали уже, зачем оно им надо..?
WebClient26 Я так понимаю с последнего коммита сидеть как-то еще получается? Или все через иггдрасиль?
Vort смотря сколько хопов
Vort у меня на 1 хопе только подключение долгое. может по 10-30 минут подключаться
Vort зато когда подключилось, то держит нормально
WebClient26 Tunnel creation success rate: 1%
WebClient26 и в i2p через yggdrasil то же самое
Vort orignal: на всякий случай пишу результаты теста после перезапуска: RI/FF в норме (основной эффект),
Vort TCSR 5%, RAM - 600 мегов (как и до рестарта), CPU 10% - как и до рестарта (примерно)
Vort то есть, в данный момент для проблемы RAM и CPU решения нету
Vort у меня ещё есть запас по ним (раза в 2-3), так что пока не очень страшно, но вот acetone уже из-за RAM выкидывало
orignal а флудфилов сколько?
orignal я Vort -а спрашиваю
orignal второе наблюдение
orignal во всех адресах один и ттт же s
orignal в смысле роутеров
orignal Vort решение отключи там флудфил и повесь на другой порт
WebClient14 Атака пацаны
orignal надо же какой умный
WebClient14 1500 транспортов ssu2
WebClient14 Чудеса
WebClient14 Отрубил ссу и не помогло
WebClient14 Идеи есть?
orignal отстань а?
Vort "<~orignal> а флудфилов сколько?" вернулось в норму - 1.1к
orignal у тебя память и проц
orignal потому что все ломятся к тебе обращаясь к дубликатам
orignal на не флудфиле этих проблем нет
Vort не может ли это быть из-за профилей? забыл, надо было почистить
Vort кстати, понемногу нормализуется и CPU и RAM
Vort подожду до завтра, потом думать буду
Vort как уже сказал, проблема пока не критична
orignal дед кстати хуйню сделал о которой я ему говорил
orignal полагаться на статический ключ это было ошибка
orignal я его тыкал носом что подпись не проверяется
weko Я пытаюсь понять, где происходит забор RI с туннелей
weko orignal: статический ключ где?
orignal но он давил авторитетом типа чуваки из noise знают лучше
orignal я сразу предлагал не передавать отдельный статический ключ а конвертировать в него ключ подписи
orignal который s
orignal в адресе
orignal ты поключаешься к роутеру и реально проверяется только статический ключ
orignal а не i2p адрес
weko Тоесть нет проверки что с нами действительно общается Боб?
weko Или как
weko Откуда берётся статический ключ?
orignal именно так
weko И как дед это оправдал
orignal из файла ssu2.dat или ntcp2.dat
weko Что сообщение можно подменить
orignal дед сказал "алиса же проверяет подпись RI боба"
orignal перед тем как соединиться
weko А если RI другой?
orignal ну его логика была кому придет в голову публиковать чужой s
orignal я ему сразу говорил что подпись надо проверять при соединегий а не только согласование s
orignal теперь имеем то что имеем
weko Не сильно понятно на данный момент. Какие последствия то в итоге
orignal именно то что счас
orignal все ломятся на левые роутеры с адресами Vort-а
orignal думаю что обращаются к одному роутеру а реально к его
weko Тоесть можно не свой RI подставить с тем же адресом?
weko Я там ещё в коде увидел место где мы со всех блоков RouterInfo в SSU2 забираем все RI себе в netDb
weko Без проверок
orignal ты можешь сгенерить новый RI и в него воткнуть адерса Vort-а и все будут думать что подключаеются в этому роутеру
weko Может оттуда корни растут?
orignal проверок чего?
weko Ну что это за RI
weko Вдруг не его
weko А левый
orignal так там может любой быть
orignal и бывает кстати
orignal при пир тестах
WayBest orignal: а можно на какое то время положить всю сеть?
weko orignal: просто проблема в том, что кто угодно может напихать мне в ssu2 тысячи роутеров
weko И ему ничего за это не будет
weko И они все улетят в netdb
WayBest так похуй же не?
WayBest оно ерсурсы не жрет
weko WayBest: "не жрёт ресурсы". Также 300 метров памяти: :)))
weko И 2% TCSR
WayBest пф сервак 32 гб оперативы
weko У кого?
weko 40к фейковых флудфилов - anyway не норма.
WayBest 8 ядер
WayBest он даже не напрягается
WayBest Роутеры: 11986 Флудфилы: 11489
WayBest чиселка растет и все
WayBest у меня
WayBest опа отлетели
WayBest у меня вопрос только с точки зрения безопасности
WayBest да как то похуй пока не ломают через них
weko [19:12:38] <orignal> и бывает кстати
weko [19:12:44] <orignal> при пир тестах
weko Пусть lookup делают. Больно жирно RI отправлять ещё
weko WayBest: ну вообще все RI не с анонимных источников не безопасны
weko А анонимный источник это разведка через туннели
weko Всё остальное не должно для туннелей использоваться
weko Потому что всем остальным можно манипулировать
WebClient26 если для туннелей нужна разведка через туннели, то откуда возьмутся разведовательные туннели?
WayBest ну типа заставить идти траффик через подконтрольные ноды?
WayBest как с тором делают?
weko Условно говоря наспамить мне конкретно майорских роутеров, и ОПА шанс что они перкхватят туннели резко возрастает (ввиду их бОльшего соотшения в моей базе)
weko WebClient26: так ресид же
orignal запросто
orignal но нужно иметь столько
WayBest так это атака 50%
WayBest дефолт же
orignal потому я и хочу изменить логику
WayBest ну поменяй
WayBest похуй на жабу
WayBest их проблемы
WayBest сами подстроятся
weko WayBest: атака 51% это вообще к PoW относится
WayBest ради стабильности и безопасности
weko Тут другое
WayBest тут тоже пашет
orignal не принимать на нефлудфилл непрошенные флурфилы
WayBest чисто статистикой
weko [19:20:20] <orignal> не принимать на нефлудфилл непрошенные флурфилы
weko Нужно либо два NetDb, либо делать флаг источника
weko Самое простое
orignal неее
orignal у нас в netdb список запросов висит
orignal если пришел а запроса нет то дропать
orignal с флудфилом смложнее
orignal туда может приходить
weko [19:21:57] <orignal> у нас в netdb список запросов висит
weko [19:21:57] <orignal> если пришел а запроса нет то дропать
weko Это в любом случае надо
orignal надо
orignal вот займусь
orignal я тут изложеил план
WayBest спасай сеть лось)
WayBest ждем
weko Окей, я пока ищу где с туннелей ловятся RI
orignal <orignal> короче рассказываю план действий
orignal <orignal> 1.на не флудфиле незапршенные флудфилы не принимаем
orignal <orignal> 2. если флудфил то принимаем непосредственно с него естественно если совпадает адрес
orignal <orignal> 3. если приходит через флуд то принимаем только ранее известные
weko Блять заебало кикает постоянно
weko Пойду туннели ускорю нах
weko При отключении транзитного трафика, количество левых RI падает (у меня было 12-14к FFs)
weko В виду имперического наблюдения можно сделать вывод, что источника два: получение RI с туннелей и lookup следующих роутеров (владельцы в основном пытаются использовать именно левые RI, потому что такая херня у всех)
orignal так ты патч то сделай
orignal только добавь проверку на себя там
weko Ну ок
weko Что по поводу моего опыта?
weko Там с 40 тысяч до 12 упало
weko При чём при включении транзита резко пошло вверх
WayBest лось а че за патч?
weko [19:40:51] <orignal> только добавь проверку на себя там
weko Крыл просто сказал про какие то другие проблемы, видимо я не так понял
WayBest его разве не зарелизили?
orignal WayBest ага чтобы атакующего его увидели?
WayBest а что если это попытка понизить анонимность?
orignal попроси у хида
WayBest оке
orignal у него есть
WayBest понял, спрошу
weko [19:43:50] <WayBest> а что если это попытка понизить анонимность?
weko Тогда нет смысла работать в открытую
WayBest я про вынуждение транзит рубить
weko Ну это просто эксперимент
weko Я проверил что оно так работает
WayBest я понимаю
WayBest тоже так думал
WayBest я про другое
WayBest то что отключая транзит мы себе анонимность режем
WayBest частично конечно
weko Ну у меня флудфил
WayBest тогда норм
WayBest а как обычным быть?
WayBest только патч?
weko Надо делать фиксы
orignal а никто его и не рубит
orignal ждать когда у меня будет время
weko Проблема в том, что некоторые из них полноценно заработают после массого обновления
orignal кто заработает?
orignal тут есть большая проблема
orignal первый раз с начала атак посоветоваться не с кем
WayBest в каком плане?
WayBest типа все под подозрением?
orignal о том что делать
orignal и не наломаю ли я дров если начну реализоваывать свои идеи
WayBest пытка не пытка
orignal типа никто не понимает в долной мере ))
WayBest хуже вряд-ли сделаешь
WayBest я могу потестить если надо
WayBest еще народ наберем
orignal idk ничего не смыслит а дрозд просто дурак
orignal нет мне надо по внутренностям проткоолов
orignal есть пара вопросов а спросить не у кого
WayBest получается нужны те кто их писали?
orignal нужен дед короче
orignal но его нет
WayBest а кто дед
orignal кроме него никто не понимает
orignal во знаю счас
WayBest ну а по старинке никак?
WayBest запустил проверил
orignal jeff_ do you happen to know in which case we handle DataseLookup on non-FF?
orignal так и придется
orignal но ты же понимаешь старое определение ителлекта
orignal это способность предсказать результаты работы не выполняя саму работу ))
orignal счас его измененили ибо не натягивается сова на глобус
WayBest ну понятно что быстрее будет с теми кто знает
WayBest ну не всегда
WayBest когда начинаются обратные процессы еще хуже получается
WayBest кста лось, а нельзя ввести проверку подлинности бинарника?
WayBest чтобы был режим который отвергает подключения с нод у которых патченный ш2з
WayBest orignal: реально такое сделать или не выйдет из-за опенсурса?
WayBest типа подписать бинарник и чекать подпись
WayBest любое изменение бинарника ломать будет эту подпись
relaybot 13pizdabol: А java как тогда жить будет ?
WayBest а жаву тоже подпишем
WayBest не проблема
weko Так может сразу сделать чтоб по 5$ платили в месяц за установку
weko И работу
weko Ну по подписке
WayBest вопрос только в том как сделать эту защиту невыпиливаемой
weko Никак
WayBest ну надо как то блочить тех кто не соблюдает правила обмена ключами
weko Так это нужно делать протоколом
WayBest то есть чтобы нестандартное поведение приводило к блокировке
WayBest причем по всей сети
weko Понятное дело
WayBest угу
WayBest вот в протокол можно зашить проверку бинарника?
WayBest просто многие сразу отлетят
weko Ещё не факт что дело именно в этом
weko По всей сети будет с обновлением
weko Вроде 50-60% быстро обновляются
weko [19:51:58] <weko> orignal: а RI через туннели идут же через DatabaseStore сообщения?
weko WayBest: так я говорю, чего мелочиться, давай сразу по подписке сделаем
weko Какер просто не сможет такие суммы осилить
weko Если краткий ответ: нельзя
weko по очень многим причинам
orignal как правило через DatabaseStore
orignal но можно и блоком RouterInfo
weko [19:51:58] <weko> orignal: а RI через туннели идут же через DatabaseStore сообщения?
weko [19:25:52] <weko> [19:24:22] <orignal> <orignal> 2. если флудфил то принимаем непосредственно с него естественно если совпадает адрес
weko [19:25:52] <weko> Убираем публикацию RI через туннели?
weko [18:28:03] <weko> orignal: если мы пытаемся обратится к флудфилу, но ключи оказываются неверными, то мы удаляем этот флудфил?
weko Ладно, всё
weko Просто из-за дискконнектов не понятно что пришло а что нет
orignal так то то и оно что мы не знаем что ключи неверные
orignal соединение устанавливается нормально
orignal как бы с левым роутером а на самом деле с тем который склонировали
weko Ну так если оно нормально устанавливается
weko Почему тогда проблема есть
weko Тогда хотя бы работало нормально (хотя это большая уязвимость!!)
orignal потому что дальше начинается хуйня
weko Дальше уже не можем передавать сообщения?
orignal ты установил соединение отправил запрос на построение тоннеля этому ротуеру
orignal а он разумеется свою запись найти не может
weko Ааа
weko Ну понятно
orignal потому что она предназначена другому
weko Тогда это совсем пиздец
orignal погоди ка
orignal а чем мы шифруем заголовки?
weko Заголовки чего
orignal пакета
orignal ой бля дед перехитрил себя
weko Пакета в транспортах?
orignal мы шифруем их i
orignal жопа короче
weko Жили у дедуси два весёлых гуся, один i, другой s
orignal придется таблицу делаеть static key->RI
orignal причем ничего не мешал вместо i использовать ident роутера
weko Задача хотя бы решаема
orignal короче он со страдом сами себя перехитрили
WayBest сами себе проблему создали?)
orignal типа того
orignal давайте мы не будет использовать ключи из I2P адрес а задавать отдельные
orignal вот и дозадавались
weko Бредово))
WayBest типа из-за отвязки от ключа идентификации можно любой генерить?
WayBest и гадить в сеть
orignal любой нельзя
orignal я же выше написал что полуилось
weko orignal: тут кстати бы приходилась отправка RI в SessionCreated
weko Тогда можно было бы проверять
weko Совпадает или нет
orignal да не надо RI
weko Пригодилась*
orignal хватило бы 32 байт швуте
orignal ident
weko Да
Vaybest а как это все защитит от подмены этого добра?
Vaybest оно подписывается приватным ключом?
orignal я дятел
orignal в SessionCreated же обязателен блок Address
WayBest тогда надо подвязывать все на публичную часть
WayBest иначе смысла нет
orignal дед реабилитрован )))
weko orignal: опааааа
weko Ну всё
orignal ага
orignal а вот теперь надо проверить что мы с ним делаеми
orignal то есть если в SessionCreate прилетел адрес не тот сразу в бан такой роутер
orignal вон какая польза от мозгового штурма
R4SAS только учитывай что имеем дело с SSU а-ля UDP
WayBest сладкое сьешь
WayBest мозг надо подпитать
R4SAS спуфиг ни кто не отменял
orignal неее не то
R4SAS спуфинг*
weko Так там же шифрованное
orignal Address это про IP адрес алисы
weko orignal: боба же?
orignal так что хуйня
orignal алисы
orignal так она свой IP и узнает
weko Аа
weko А как тогда он поможет проверить
orignal никак
weko А что тогда поможет))
orignal приедтся менять протокол и вводить
weko А это только с обновлением заработает. Но лучше так чем никак
weko case eSSU2BlkRouterInfo:
weko // not from SessionConfirmed, we must add it instantly to use in next block
weko LogPrint (eLogDebug, "SSU2: RouterInfo");
weko auto ri = ExtractRouterInfo (buf + offset, size);
weko if (ri)
weko i2p::data::netdb.AddRouterInfo (ri->GetBuffer (), ri->GetBufferLen ());// TODO: add ri
relaybot 13pizdabol: И ещё джависты на обочине окажутся. Придется им как-то сообщить об обновлении протокола.
weko break;
weko Мне ещё вот это сильно не нравится
weko Может сильно ударить
orignal как именно?
weko Ну вот мне боб пришлёт 1000 таких блоков с гавном
weko И я добавляю их всех в NetDb
orignal я выше писал что надо делать
orignal так тебе и алиса можно прислать разницы никакой
weko Ничего хорошего в этом нет
weko Просто использоваться не должно для всего подряд
orignal pizdabol это измнение ничего не ломает
orignal просто если будет блок то проверять
orignal а нету то неп роверять
WayBest ух со смыслом
weko orignal: тогда нужно это в виде хотфикса выпускать
orignal так я же выше написал план из 3=х пунктов
weko Да окей
orignal ну как будет время у меня
orignal сделаю
orignal в этом плане я сразу вижу изъян
orignal довольно часто через исходящий тоннель посылают RI IBGW с назначением local
orignal чтобы он не запрашивал
weko Бред, такого быть не должно
weko Деаноном пахнет
orignal почему? довольно часто так делают
weko Для владельца
orignal нет почему?
orignal он же посылает роутер начала другого тоннеля
weko Потому что IBGW видит какой RI пришёл
orignal нет IBGW ниче не видит
weko А он может быть у всех разный
orignal это роутер IBGW прилетает OBEP
orignal у нас разные только лизсеты
orignal вообще да логично
weko Я не вижу тут пока что алгоритма атаки, но попахивает что в данном случае она есть
orignal можно стать самоу IBGW потом подозрительному роутеру кинуть свой специально сформированный
orignal да в принципе можно
weko И я о том же
weko Если и делать, то продумать все варианты и защиту от них
weko Если возможно, конечно.
orignal тут смотреть надо
orignal но пока мы фильтруем только флуфдилы это нормально
weko Ага
weko Ну это я к тому, что если функционал транка не готов, то можно сделать ветвь и выпустить как патч 2.47.0.1
orignal да есть что выпускать
orignal но мне некогда счас
jeff_ orignal: i dont
jeff_ you may as well ask me what color socks i was wearing 10 years ago on the 3rd tuesday of july at 1130 am
orignal maybe you remeber design
WayBest jeff_: why not?
jeff_ nope