Pull to refresh
86
0
Send message

Не исключаю такой вариант, что миф, беглый поиск в google на сейчас указывает только на энциклопедию Касперского (ENG). Хотя учитывая года, сотрудники Касперского это в книжке какой могли прочитать, а не в Интернете.

Знать бы, чем разработчиков не устроил DRPC, который тоже про "простоту" как twirp, но с поддержкой streams.

Ок, я просто сам контрибьютор в github.com/miekg/dns. И там реально могли быть проблемы типа утечки тредов, например. Дело в том, что там используется антипаттерн «пришел запрос — спавним рутину» для обработки (в стандартном http go тоже он используется, откуда и распространился по миру). Это все чревато тем, что под большой нагрузкой сервер получит OOM (в какой то момент спавн рутин начинает занимать намного больше времени, чем тратиться на обработку). Я пытался продвинуть идею пула воркеров (сначала фиксированное количество), но ее не приняли (потому что количество нужно было подбирать — а оно зависит от железа и ожидаемой нагрузки). Потом была попытка продвинуть идею динамических воркеров (прирост перфоманса был ~ 20% и меньшее потребление памяти), но в процессе codereview вся идея была испохаблена путем добавления логики до 10.000 рутин спавним воркеры, после этого лимита спавним рутины. Эта версия даже была некоторое время в репе (в v1.0.14 в частности), потом у них возникли проблемы с пиками потребления памяти, и все мои правки откатили (это opensource, детка) без попытки какого-либо анализа, с комментами типа: «у нас это работало 8 лет» и «мы потом разберемся» (уже год прошел) — это все, что нужно знать об opensource. У нас на проекте сейчас есть кастомный код с воркерами на базе github.com/panjf2000/ants, но лимит так и приходится подбирать, так что режим выключен по умолчанию (ждем OOM на проде, хе-хе).
А кто у Вас основные потребители API? Я имею ввиду browser client или приложение какое?
Например, в нашей компании мы при обновлении API на 2ю версию, сразу завезли туда gRPC

Было бы неплохо это сразу в статье отразить. А то у меня впечатление, что наши «эффективные» project манагеры просто зацепились за фразу, что gRPC — это круто, и пошло-поехало…
На это место у меня ругался staticcheck

не вижу ругани на github.com/miekg/dns/blob/v1.0.14/server.go#L260
проблемная версия
git checkout v1.0.14
staticcheck | grep server.go
server.go:543:21: argument should be pointer-like to avoid allocations (SA6002)
server.go:626:19: argument should be pointer-like to avoid allocations (SA6002)
server.go:722:19: argument should be pointer-like to avoid allocations (SA6002)

текущая версия из master
git checkout v1.1.29
staticcheck | grep server.go
server.go:474:21: argument should be pointer-like to avoid allocations (SA6002)
server.go:586:20: argument should be pointer-like to avoid allocations (SA6002)
server.go:606:19: argument should be pointer-like to avoid allocations (SA6002)
server.go:647:19: argument should be pointer-like to avoid allocations (SA6002)

множество go-рутин создают некую структуру для TCP- соединений, помечает их как false и никогда не удаляет

По коду v1.0.14 не вижу, почему не удаляются, есть строка github.com/miekg/dns/blob/v1.0.14/server.go#L581. И причем здесь false, если создается map[interface{}]struct{}?
На скриншотах виден и проблемный участок кода и структура, которая не очищалась при закрытии UDP-сессии.

Причем тут UDP, если мы говорим про TCP, причем для UDP объект conns не используется.
А на скриншоте мы видим, что len(conns)=1.152.090 (то есть открытых TCP соединений) — это нормально вообще?

И вообще — почему версии не обновлялись вовремя? Обновили бы, может и не увидели проблему вообще. А так начали глубоко копать, а по факту в чем конкретно проблема и как ее пофиксить не разобрались до конца.
Возможно не тема для конкретно этой статьи, но: зачем этот overhead с лишним сервисом grpc-gateway, если клиенты REST API работают по HTTP 1 и по факту ресурсов будет потребляться больше? Так имеет делать смысл, если фронтенд тоже использует gRPC (есть «промышленные» примеры WebUI на нем?). А у нас вот просто «эффективные» project манагеры приняли такое решение (везде grpc-gateway) именно потому что swagger и еще пару grpc interceptor прикручены, для лога и авторизации запросов (можно ли текущему пользователю использовать тот или иной запрос или нет). А WebUI использует просто HTTP 1.
Из отчета Касперского:
… что до сих пор данная реализация шифра RC6 встречалась только во вредоносном ПО группировки Equation.

Берем один из первых попавшихся примеров по запросу «rc6 implementation cpp» проектов (от 2002 года) и грузим его в отладчик. И что мы видим?
mov     dword ptr [esi+58h], 0B7E15163h
lea     eax, [esi+5Ch]
mov     ecx, 23h
_loop:
mov     edx, [eax-4]
add     eax, 4
sub     edx, 61C88647h
dec     ecx
mov     [eax-4], edx
jnz     short _loop

Отнимается константа 61C88647h, хотя в cpp коде мы имеем:
void CHexDoc::KeyGen(DWORD dwKey)
{
	DWORD P32 = 0xB7E15163;
	DWORD Q32 = 0x9E3779B9;
...
	for(i = 1; i < 2 * R + 4; i++)
		m_dwS[i] = m_dwS[i - 1] + Q32;
...
}

Что тут можно еще сказать? Наверное, под Windows разработчики из Equation Group используют Visual Studio =).

Резюме: доказательство «притянуто за уши», кроме как заявлений от Shadow Brokers о том, что взломана Equation Group, больше ничего нет. Что не умаляет того факта, что в архиве таки есть инструменты из каталога NSA, работоспособность которых подтвердили производители сетевого оборудования.
… имплементация алгоритмов шифрования RC5 и RC6 в утечке совпадает с таковой у The Equation.
А вот в этом материале (Kaspersky’s Analysis of Equation Group’s RC6 is Wrong) говорится, что специалисты Касперского ошибаются и «нестандартная» имплементация — это всего лишь «происки» компилятора GCC по оптимизации кода.
Описка — первый пакет, естественно, SYN =)
Прочитал развернутый отчет от Kaspersky, cам себе отвечаю — ботагент Turla резолвит DNS C&C и вот этот IP принадлежит диапазону какого-нибудь спутникового провайдера. Первый пакет, естественно, ASK, причем на порт, который точно закрыт. И тут фишка в том, что бы выбранный IP не ответил на этот пакет ответом RST или FIN. И именно по этому признаку операторы Turla ищут IP. Перехватив пакет со спутника, формируется пакет SYN/ASK c dest IP жертвы и src IP подставного IP. Таким образом устанавливается TCP сессия. Ну и дальше идет обмен данными.
Это называется Double Fast Flux
Правильно ли я понимаю, что для Turla идет речь не о сокрытии управляющего центра, а о сокрытии хранилища данных, куда сливается украденная информация? Как ботагент Turla узнаёт, что ему нужно отправлять информацию какому-то пользователю в Африке, что бы ее потом можно было перехватить со спутника?
Однако очень информативная статья заметка…
UPD: На сайте Европола пишут о 28 арестованных: «The takedown and arrests were coordinated from command posts set up by the FBI (Pittsburgh, USA) and Europol’s EC3 (The Hague, the Netherlands). From the command post in EC3, representatives of the Republic of Srpska (Bosnia and Herzegovina), Cyprus, Denmark, Finland, Germany, Latvia, former Yugoslav Republic of Macedonia, Romania, Serbia, Sweden, United Kingdom and the FBI coordinated the technical take down of the forum, alongside further law enforcement actions, which resulted in 28 arrests, 37 house searches, and numerous seizures of computers and other equipment».

Ну а журнал «Хакер» уже отрапортовал о 70 задержанных.

I need more… © agent Smith
Как говориться, читайте первоисточник.

«As Part of Coordinated Law Enforcement Efforts in 20 Countries, United States Charges 12 Defendants in Connection with Computer Fraud Conspiracy».

Перевод: «В рамках согласованных усилий правоохранительных органов в 20 странах, США выдвинуло обвинения против 12 ответчиков в связи со сговором в целях компьютерного мошенничества».

Есть список, от каких штатов США обвиняются какие люди.
Слово арест в первоисточнике упоминается только в одной фразе:

«The charges announced today are part of a coordinated effort by a coalition of law enforcement authorities from 20 nations to charge, arrest or search 70 Darkode members and associates around the world».

Перевод: «Обвинения, объявленные сегодня, являются частью скоординированных усилий коалиции правоохранительных органов из 20 стран, по обвинению, аресту или поиску 70 участников Darkode и их партнеров по всему миру».

Особенно понравилось про Matjaz Skorjanc aka Iserdo. Его арестовали в Словении еще 28 июля 2010 года. В декабре 2013 года суд Словении приговорил его к 58 месяцам тюремного заключения за создание ButterflyBot (Mariposa, Palevo).

Так что никакой особо сенсации, форум прикрыли, по контактам вышли на некоторых людей. И «Часть списка арестованных лиц» — это чьи-то выдумки.

Русских на Darkode навалом было: Slavik, Gribodemon, Paunch, Carberp…

BTW: товарищ Xylitol форумы Dark0de и damagelab ломанул еще в апреле 2014 года через Heartbleed. Уже тогда все «обитатели» форума могли упаковать вещички и свалить куда подальше.
To vyacheslav_ka

Что значит настоящая? Лично для меня FlashBack был более чем настоящий. Пробив JAVA и пофиг, что права пользовательские. Ну и можно подумать, что для nix систем root эксплоитов нет. И опять таки, сначала Вы нашли «что Касперский решит все проблемы», теперь вот «нам обещают рассказать про настоящие малвари и приближающуюся эпидемию». Нет никакой эпидемии. Просто все идет по следующему пути:
1. Под Mac вредоносов нет
2. Под Mac вредоносов мало и нужны права root (это вот сейчас)
3. Под Mac вредоносов мало
4. Под Mac вредоносов много
5. Где мой антивирус под Mac?
Ссылка уже тоже битая. Вот еще https://mega.co.nz/#!Xx1lhChT!rbB-LQQyRypxd5bcQnqu-IMZN20ygW_lWfdHdqpKH3E

Но torrent клиенты не хотят ее обрабатывать.
1
23 ...

Information

Rating
Does not participate
Registered
Activity