Методы борьбы с ботами - распространителями вирусов

Общение админов хабов и их юзеров.
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

RoLex писал(а):При загрузке вашей программы, изначально пользуем time=0 чтоб загрузить все что есть из базы, сразу записываем данный временной штамп - Unix timestamp вашей системы в память программы, через интервал о котором говорилось выше делаем новый запрос используя time=<штамп> сохраненный ранее и снова обновляем штамп. Таким образом вы всегда будете получать только свежую информацию при дальнейшей работе вашей программы. Норм придумал? Итак запрос:
При каждом запуске программы делать такое будет дорого...
у меня код работает так
1. Первый запуск и локальная база sqlite пустая - шлем запрос с time =0
2. Парсим ответ и сохраняем в бд - маркер максимального time (time из системы вообще никогда не берется)
3. Повторный запуск - читаем максимальный time из локальной базы и запрашиваем уже с этим значением
получаем все записи которые поменялись на сервере снова парсим и обновляем макс-time


Вопросы
2. Записи не корректируются - например поменялся размер шары/ник и time - остался старый
3. Записи добавляются в "серединку" или всегда time растет?
4. Записи в базе удаляются? если да, то как мне об этом узнать...?
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

RoLex писал(а):<ник>|<ipv4>/<ipv6>|<шарабайт>|<штамп>
Устроит и через / (хотя мне в принципе достаточно или тот или тот IP. зачем их нужно два?)
Для "подкраски" в списке IP сравнивать вообще может не получится - не все хабы его отдают.

Планирую делать разными рангами

1. IP+ ник+ шара - 100% точно вирусня
2. ник-шара - 99% вирусня и бот сменил IP
3. шара+IP - 99% вирусня - бот сменил ник (думаю если боты это будут часто делать что очень легка - можно засрать твою бд т.к. ник у тебя в ключе)
4. только шара - 5% - подозрительный юзерок :)
Аватара пользователя
RoLex
Сообщения: 51
Зарегистрирован: 01 апр 2011, 09:39
Хаб: nmdcs://russia.feardc.net:411
Откуда: Швеция
Контактная информация:

Сообщение RoLex »

flylinkdc писал(а):При каждом запуске программы делать такое будет дорого...
Ну а как по другому делать первый запрос? Надо ведь откудато брать изначальный список. Я только что сделал стресс-тест с тем что есть, вообще никаких проблем. Сервер AVDB работает стабильно, он сам по себе мощьный - шестиядерный процессор с кучей памяти, и канал - безлимит со скоростью в гигабит через интернет при хорошем пиринге двух концов. Да и подумал что в будущем всеравно троянщиков не станет так много как миллионы, в DC ограниченое количество пользователей, их не будет больше чем уже есть или было 10 лет назад... Особенно если начнем все дружно подчищать DC.

Есть идейка для тех кто не хочет качать много байтов из AVDB, сейчас добавлю функцию avdbloadbz, возврат будет идти с компрессией BZIP - что уменьшит размер базы, но повысит использование системных ресурсов которые понадобяться для сжатия - еще можно замутить кэш чтоб не сжимать так часто.
flylinkdc писал(а):1. Первый запуск и локальная база sqlite пустая - шлем запрос с time =0
2. Парсим ответ и сохраняем в бд - маркер максимального time (time из системы вообще никогда не берется)
3. Повторный запуск - читаем максимальный time из локальной базы и запрашиваем уже с этим значением
получаем все записи которые поменялись на сервере снова парсим и обновляем макс-time
Отлично, и я рад что ты используешь свой User-Agent, это важно для статистики.
flylinkdc писал(а):2. Записи не корректируются - например поменялся размер шары/ник и time - остался старый
Запись, а точнее шарабайт и штамп времени, обновляются если размер шары изменился а ник и ип тот же. Новая запись добавляется если ник или ип новый, если уже не существуют. Повторяю, уникальность каждой строчки состоит из ник+ип вместе. Именно так работает мой клиент загрузки базы - Ledokol, если есть новые строчки в повторной загрузке базы, то они могут содержать обновившуюся шару у уже существующего юзера, потому при парсинге ты должен смотреть если в твоей копии базы уже есть такой юзер, и обновлять если требуется, либо добовлять если нет. Вот пример:

Код: Выделить всё

[2014-09-03 14:43:23] <# Feed> [03] Loaded 2 of 2 with totally 1102 items: AVDB
...
[2014-09-03 15:13:23] <# Feed> [03] Loaded 1 of 1 with totally 1102 items: AVDB
В данном случае количество строк в локальной базе не изменилось после загрузки последней новой строки, это и говорит о том что изменился размер шары у уже существующего юзера.
flylinkdc писал(а):3. Записи добавляются в "серединку" или всегда time растет?
time всегда ставится свежий при обновлении и добавлении, time - это время сервера в секундах по стандарту Unix в момент добавления и обновления.
flylinkdc писал(а):4. Записи в базе удаляются? если да, то как мне об этом узнать...?
Возможно, пока не приходилось но я думаю будут случаи когда юзер который не нарочно заразился вирусами, очистит свою шару от вирусов и попросит снять бан. Когда такой момент наступит будем изобретать функцию для удаления из общей базы. А насчет того как тебе это узнать - никак, твоя локальная база ведь не будет храниться вечно, рано или поздно ты уйдешь в ребут либо выключишь комп, а когда заного запустишь - ты получишь новый список без того самого юзера что помылся. *OK*
Последний раз редактировалось RoLex 05 сен 2014, 10:58, всего редактировалось 1 раз.
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

Выкачал данные - максимальный получился 1409895418

если повторно дать его
http://www.te-home.net/?do=tools&action ... =100000000
то он и вернется - может на стороне сервера делать условие > а не >= ?
хотя я могу на клиенете +1 сделать...
как логичнее?
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

RoLex писал(а):Возможно, пока не приходилось но я думаю будут случаи когда юзер который не нарочно заразился вирусами, очистит свою шару от вирусов и попросит снять бан. Когда такой момент наступит будем изобретать функцию для удаления из общей базы. А насчет того как тебе это узнать - никак, твоя локальная база ведь не будет храниться вечно, рано или поздно ты уйдешь в ребут либо выключишь комп, а когда заного запустишь - ты получишь новый список без того самого юзера
База у меня будет хранится вечно даже после перезагрузки.
подгружаться будут только те записи которые увеличили timestamp.
если записи будут удаляться - нужно об этом как-то сообщить - предлагаю записи не удалять а делать шару = 0.
тогда это будет в виде апдейта и срепилицируется на все флайлинки.

ок?
RoLex писал(а):Есть идейка для тех кто не хочет качать много байтов из AVDB, сейчас добавлю функцию avdbloadbz, возврат будет идти с компрессией BZIP - что уменьшит размер базы, но повысит использование системных ресурсов которые понадобяться для сжатия - еще можно замутить кэш чтоб не сжимать так часто.
не удмаю что это сильно сократит - ведь сейчас у тебя сервер и так прозрачно жмет gzip
думаю этого достаточно.
флаи всеравно будут подгружать всегда дельту.
полную базу будут качать только при первой инсталляции когда локально база пустая.
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

Вроде залилось -
база получилась FlylinkDC_antivirus.sqlite всего 86016 байт. 1143 записи :)
вечером оттестю и залью на автообновление в бета-канал.

Код: Выделить всё

//========================================================================================================
void CFlylinkDBManager::sync_antivirus_db(const string& p_antivirus_db, uint64_t p_unixtime)
{
  int64_t l_max_unix_time = 0;
	{
   Lock l(m_cs);
	try
	{
		sqlite3_transaction l_trans(m_flySQLiteDB);
    
		if (!m_merge_antivirus_db.get())
			m_merge_antivirus_db = auto_ptr<sqlite3_command>(new sqlite3_command(m_flySQLiteDB,
			                                                               "insert or replace into antivirus_db.virus_user(nick,share,ip4,unixtime) values(?,?,?,?)"));
     int l_pos = 0;
     int l_nick_pos = 0;
     int l_nick_len = 0;
     string l_ip4;
     auto l_sql = m_merge_antivirus_db.get();
     while(true)
     {
          l_nick_pos = l_pos;
          auto l_sep_pos = p_antivirus_db.find('|', l_pos);
          if (l_sep_pos == string::npos)
            break;
          l_nick_len = l_sep_pos - l_nick_pos;
          l_pos      = l_sep_pos+1;
          l_sep_pos = p_antivirus_db.find('|', l_pos);
          if (l_sep_pos == string::npos)
              break;
          l_ip4 = p_antivirus_db.substr(l_pos, l_sep_pos - l_pos);
				  boost::system::error_code ec;
					const auto l_boost_ip4 = boost::asio::ip::address_v4::from_string(l_ip4, ec);
					dcassert(!ec);
          l_pos = l_sep_pos+1;
          l_sep_pos = p_antivirus_db.find('|', l_pos);
          if (l_sep_pos == string::npos)
              break;
          const int64_t l_share = _atoi64(p_antivirus_db.c_str() + l_pos);
          dcassert(l_share);
          l_pos = l_sep_pos + 1;
          l_sep_pos = p_antivirus_db.find('\n', l_pos);
          if (l_sep_pos == string::npos)
              break;
          const int64_t l_unixtime = _atoi64(p_antivirus_db.c_str() + l_pos);
          dcassert(l_unixtime);
          if (l_unixtime == 0)
              break;
          l_pos = l_sep_pos + 1;
          if(l_unixtime > l_max_unix_time)
              l_max_unix_time = l_unixtime;
			    l_sql->bind(1, p_antivirus_db.c_str()+l_nick_pos,l_nick_len, SQLITE_STATIC);
			    l_sql->bind(2, l_share);
          l_sql->bind(3, int64_t(l_boost_ip4.to_ulong()));
          l_sql->bind(4, l_unixtime);
			    l_sql->executenonquery();
     }

		l_trans.commit();
	}
	catch (const database_error& e)
	{
		errorDB("SQLite - sync_antivirus_db: " + e.getError());
	}
  }
  if(l_max_unix_time)
  {
  set_registry_variable_int64(e_TimeStampCustomLocation, l_max_unix_time);
  }
}
Аватара пользователя
RoLex
Сообщения: 51
Зарегистрирован: 01 апр 2011, 09:39
Хаб: nmdcs://russia.feardc.net:411
Откуда: Швеция
Контактная информация:

Сообщение RoLex »

flylinkdc писал(а):3. шара+IP - 99% вирусня - бот сменил ник (думаю если боты это будут часто делать что очень легка - можно засрать твою бд т.к. ник у тебя в ключе)
Возможно будет больше строк, но это не проблема, как я уже говорил - их не будет так много что база лопнет от переполнения. И вобще, можно делать автоматическую чистку скажем раз в 3 месяца, удалять то что очень старое и в помине уже не используется, даже если оно все еще используется но мы об это не знаем - рано или поздно этого троянщика кто-то опять найдет и рапортнет. Например те самые юзеры что помылись но не просили о снятии бана и их удалении из базы.
Аватара пользователя
RoLex
Сообщения: 51
Зарегистрирован: 01 апр 2011, 09:39
Хаб: nmdcs://russia.feardc.net:411
Откуда: Швеция
Контактная информация:

Сообщение RoLex »

flylinkdc писал(а):Выкачал данные - максимальный получился 1409895418

если повторно дать его
то он и вернется - может на стороне сервера делать условие > а не >= ?
У меня клиент работает не так, он вобще не читает самый высокий штамп. Он использует локальное время - штамп своей системы. Как я писал ранее:
RoLex писал(а):При загрузке вашей программы, изначально пользуем time=0 чтоб загрузить все что есть из базы, сразу записываем данный временной штамп - Unix timestamp вашей системы в память программы, через интервал о котором говорилось выше делаем новый запрос используя time=<штамп> сохраненный ранее и снова обновляем штамп. Таким образом вы всегда будете получать только свежую информацию при дальнейшей работе вашей программы.
Зачем тебе читать чужой штамп? Если ты будешь использовать свой, то при повторном чтении он начнет загружать именно с того места где закончил в последний раз, а не одним больше или меньше, т.к в time=<штамп> ты подаешь свою информацию.
flylinkdc писал(а):База у меня будет хранится вечно даже после перезагрузки.
...
полную базу будут качать только при первой инсталляции когда локально база пустая.
...
если записи будут удаляться - нужно об этом как-то сообщить - предлагаю записи не удалять а делать шару = 0.
Не понимаю зачем делать двойную работу. Это ведь и есть задача AVDB - изменять общую базу, а ты как клиент всего лишь читаешь что она подает. Ты слишком много безпокоишся о частом чтении с нуля, это не в таких больших маштабах чтоб бояться что придестя качать гигабайтами. И в продолжении на эту тему:
flylinkdc писал(а):база получилась FlylinkDC_antivirus.sqlite всего 86016 байт. 1143 записи
Ты читал что я вчера писал про массив/базу в памяти клиента? Это ведь в 1000 раз бастрее чем чтение с диска пропущенное через SQL драйвер.
Последний раз редактировалось RoLex 05 сен 2014, 11:47, всего редактировалось 1 раз.
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

RoLex писал(а):Ты читал что я вчера писал про массив/базу в памяти клиента? Это ведь в 1000 раз бастрее чем чтение с диска пропущенное через SQL драйвер.
Читал,
Если будет очень критично - буду подгружать ники в память но уже не с инет-сервера а с локальной БД
от это только твоему серверу лучше :)
у меня вообще есть юзера, которые за лишний байт из инета готовы сожрать - сидят на EDGE модеме

Также грузить можно по мере необходимости в hash_map - вероятность того, что в хабе локальной сети появится юзер [RO][RDS]Papusika - минимальна.:)
В общем пока не понял зачем мне грузить все записи при старте из инета да еще и в RAM?
а если база распухнет до лимона записей?

У меня сейчас юзера/их последний IP/ кол-во мессаг в чате хранится в базе - и отображается в клиенте
я их подгружаю динамически по мере отрисовки - sqlite на чтение по уник индексу достаточно быстрый.
добавлю подзапросом еще выборку по этой табличкии и думаю будет все ок...
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

При пустой выборке возвращать пустоту нельзя ?
http://www.te-home.net/?do=tools&action ... 1409907821
а то вертает 0
мне критерий пустоты делать как размер == 1?
если можно пустоту - то лучше вернуть ее :)

Код: Выделить всё

  dcassert(!g_antivirus_db_url.empty());
  if(!g_antivirus_db_url.empty())
  {
	 uint64_t l_timeStamp = CFlylinkDBManager::getInstance()->get_registry_variable_int64(e_TimeStampAntivirusDB);
	 CFlyLog l_log("[Sync Antivirus DB]");
	 string l_buf;
   Util::getDataFromInet(g_antivirus_db_url + "/?do=tools&action=avdbload&time=" + Util::toString(l_timeStamp+1) +"&limit=100000", l_buf);
   dcassert(!l_buf.empty());
   if (!l_buf.empty() && l_buf.size() != 1)
	 {
    CFlylinkDBManager::getInstance()->sync_antivirus_db(l_buf,l_timeStamp);
   }
  }
Аватара пользователя
HackFresse
Сообщения: 507
Зарегистрирован: 02 фев 2010, 19:23

Сообщение HackFresse »

flylinkdc писал(а):А базу вирусни в виде имя-файла - размер ( Conceiva DownloadStudio 7.0.5.0.exe | 913.71 KiB)
ты не хранишь у себя?

какой там ориентировочно размер может ожидаться?
может и ее реплицировать в клиенты?
по ней можно угадывать и подсказывать что файл-вирус
RoLex писал(а):Насчет имя файла и размера пока мыслей не было, они лишь для информации светятся на данный момент. В попыхах могу предложить вторую базу для их хранения. Те 30 файлов что Ledokol выдает в опчат - хватает для того чтоб понять что юзер троянщик, но это всего лишь 1% или меньше из всех файлов что у него в шаре - потому инфа очень не полноценная. Решением того - именно отдельная база, где за место того чтоб хранить "юзер и его файлы", хранить просто уникальные название+размербайт файла, что можно использовать в качестве подсказки в поиске и файллисте клиента.
Большого смысла нету, по-моему.

Довольно бесполезная инфа, чтобы её хранить у всех подряд юзеров.
"У всех подряд юзеров будет база со всеми именами, размерами и TTH файлов, которые динамически создаются злоумышленниками"

Но для более полного и уверенного подтверждения нужно взять всех подозрительных юзеров и выкачать их файл-листы. Посмотреть, как часто меняются файлы в шаре, какой размер и имена у троянов
Аватара пользователя
HackFresse
Сообщения: 507
Зарегистрирован: 02 фев 2010, 19:23

Сообщение HackFresse »

>>база получилась FlylinkDC_antivirus.sqlite всего 86016 байт. 1143 записи
Ты читал что я вчера писал про массив/базу в памяти клиента? Это ведь в 1000 раз бастрее чем чтение с диска пропущенное через SQL драйвер.
Быстрее в 1000 раз не всегда нужно, и не всегда заметно.
Как часто будет использоваться информация о стрёмных юзерах? только при обработке поисковых ответов? как часто юзер что-то ищет?

А вот централизованный и довольно часто обновляемый список троянщиков (варинты для закачки) был бы полезным.
Тот же самый *.sqlite файл, который можно обрабатывать по мере надобности (импортировать в свою базу, загружать весь список в оперативку или сразу запросы на выборку строить).
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

HackFresse писал(а):Довольно бесполезная инфа, чтобы её хранить у всех подряд юзеров.
"У всех подряд юзеров будет база со всеми именами, размерами и TTH файлов, которые динамически создаются злоумышленниками"
Если размер базы станет критическим грузить ее постоянно с сервера через инет - еще более опасно.
думаю чаще меняются ники. менять TTH часто - это нагрузка на бота. хотя у них размер файлов мелкий...

+1 что нужно собрать статистику.
я у себя защитился пока настройкой - antivirus_db = "http://www.te-home.net"
если база поведет себя не адекватно - отключу и флаи перестанут качать ее к себе.
наверное нужно добавить еще в конфиг - unixtime - по какой обрезать устаревшие записи.
буду тогда удаленно зачищать старые записи не давая разрастаться локальной sqlite базе флая...

а база имен вирусов + размер - очень полезна.
т.к. имена придумывают чтобы юзер их находил... и не думаю что их будут менять
это для бота основной ключ к успеху :)

кто может сделать такого бота - чтобы такую базу поиметь по именам и ттх - по ней будет видно динамику жизни этой штуки...
я ее также срепилицирую во флаи и защитю юзеров по правилу
совпадает имя + совпадает размер +/- дельта
Аватара пользователя
HackFresse
Сообщения: 507
Зарегистрирован: 02 фев 2010, 19:23

Сообщение HackFresse »

т.к. имена придумывают чтобы юзер их находил... и не думаю что их будут менять
это для бота основной ключ к успеху
Всё как раз абсолютно наоборот.

Чтобы юзер скачал что-то, нужно подсунуть ему якобы то, что он ищет.
А искать будут всё новое, свежее и актуальное, т.е. имена файлов троянщикам нужно будет менять в зависимости от популярных запросов.

И кроме заранее сгенеренных имен файлов, есть еще и вариант "отдавать именно то, что юзер и попросит". Выше по теме было
Спойлер
Изображение
А теперь вопрос:

"У всех подряд обычных юзеров будет полное содержимое всех файл-листов всех троянщиков, и все возможные варианты ответов троянщиков на поисковые запросы".
Зачем?
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

HackFresse писал(а):А теперь вопрос:

"У всех подряд обычных юзеров будет полное содержимое всех файл-листов всех троянщиков, и все возможные варианты ответов троянщиков на поисковые запросы".
Зачем?
Про все возможны варианты поиска пока речи не шло.
Пока в базе всего 1000 записей.
Аватара пользователя
HackFresse
Сообщения: 507
Зарегистрирован: 02 фев 2010, 19:23

Сообщение HackFresse »

"У всех подряд обычных юзеров будет неполное содержимое всех файл-листов всех троянщиков, и не все возможные варианты ответов троянщиков на поисковые запросы".
Зачем?
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

1. я правильно понял, что ты против реплики такой базы (которой кстати еще и не существует) на клиенты опасаясь ее большого объема?
если так, то зачем задавать вопрос "зачем" - расскажи как ты видишь более правильно решение.

2. на все возможные ответы троянщиков я не рассчитывал - такой мусор конечно не нужен в бд.
3. порно с вечным.exe у меня не нашлось
Аватара пользователя
HackFresse
Сообщения: 507
Зарегистрирован: 02 фев 2010, 19:23

Сообщение HackFresse »

Оно всё - мусор.

Что сгенеренный заранее в файл-листах, что динамические ответы. Зачем оно юзеру?

База сама по себе была бы полезна на некотором этапе изучения троянщиков (для заинтересованных админов хабов), но делать её для хранения у всех подряд юзеров.. *DONT_KNOW*

Ботов достаточно после обнаружения просто заблокировать на уровне хаба (не пересылать им поисковые запросы). Нету поисковых запросов - нету ответов с троянами - нету закачки трояна юзерами.
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

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

Антивирусы ведь свои базы сигнатур раскидывают по пользователям - никто не помер еще от этого?
Аватара пользователя
HackFresse
Сообщения: 507
Зарегистрирован: 02 фев 2010, 19:23

Сообщение HackFresse »

Но и от троянщиков этих никто не помер же еще?

Жили все в дц уже столько много лет без этих самых списков антивирусных сигнатур,
но тут вдруг решили, что это архиважная проблема (именно из-за которой дц и угасает),
и что нужно с этими троянщиками бороться в самую первую очередь.. *NO*

Ну да ладно, мешать не буду.
Аватара пользователя
RoLex
Сообщения: 51
Зарегистрирован: 01 апр 2011, 09:39
Хаб: nmdcs://russia.feardc.net:411
Откуда: Швеция
Контактная информация:

Сообщение RoLex »

HackFresse писал(а):Ботов достаточно после обнаружения просто заблокировать на уровне хаба (не пересылать им поисковые запросы). Нету поисковых запросов - нету ответов с троянами - нету закачки трояна юзерами.
Именно так работает Ledokol по умолчанию. А про то что база пишет в себя всех подряд юзеров - не понял. Она не пишет всех подряд, а только тех кто был найден с инфекцией.
flylinkdc писал(а):вероятность того, что в хабе локальной сети появится юзер [RO][RDS]Papusika - минимальна


Но ведь твой клиент юзают не только в локалке. Кстати по поводу локалки, на AllAvtovo попадаются локальные троянщики, но скрипт рапорта их фильтрует потому что ип 10.х.х.х не очень смысленный, зато можно юзать только ник+шарабайт, потому незнаю - продолжать фильтровать или все же пропускать их?

Вобщем делайте как знаете, это ваше дело как использовать мою базу. Мое дело собрать как можно больше сотрудников - в чем и заключался смысл рассказа о базе, для сборки информации о распространяющих и раздать ее дальше людям кто заинтересован. Лично я уже нашел способ как использовать базу. *OK*

HackFresse писал(а):и что нужно с этими троянщиками бороться в самую первую очередь.. *NO*
Ну да ладно, мешать не буду.


Действительно, не мешай если ты не считаешь так. Но повод для борьбы точно не "именно из-за которой дц и угасает".
Последний раз редактировалось RoLex 05 сен 2014, 17:39, всего редактировалось 1 раз.
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

В FlylinkDC++ загружается вот такая база
https://yadi.sk/d/MPN1E4vVb6deN - база
https://yadi.sk/i/fhahFYtRb6eCd - скрин. SQL можно делать прям в браузере Firefox с расширением https://code.google.com/p/sqlite-manager/

Код: Выделить всё

SELECT nick,max(unixtime), count(*),max(share),min(share), max(ip4),min(ip4) FROM fly_virus_user
group by nick
having max(share) !=min(share)
69 записей
если
having max(share) ==min(share)
754 записи

Вывод - бот с одним ником реже меняет шару и прыгает по IP-шникам...
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

RoLex писал(а):на AllAvtovo попадаются локальные троянщики, но скрипт рапорта их фильтрует потому что ип 10.х.х.х не очень смысленный, зато можно юзать только ник+шарабайт, потому незнаю - продолжать фильтровать или все же пропускать их?
Думаю лучше пропускать.
их кол-во ведь очень маленькое.
Аватара пользователя
RoLex
Сообщения: 51
Зарегистрирован: 01 апр 2011, 09:39
Хаб: nmdcs://russia.feardc.net:411
Откуда: Швеция
Контактная информация:

Сообщение RoLex »

flylinkdc писал(а):Думаю лучше пропускать.
их кол-во ведь очень маленькое.
Так и сделал, спасибо за совет. Еще запретил скрипту выставлять куки при чтении и записи в базу, лишняя инфа.
Аватара пользователя
flylinkdc
Сообщения: 427
Зарегистрирован: 15 дек 2013, 10:26
Хаб: dchub://dc.fly-server.ru
Откуда: Караганда -> Липецк
Контактная информация:

Сообщение flylinkdc »

А можно запросить расширить версию API загрузки возвращающую данные без unixtime
например так:
http://www.te-home.net/?do=tools&action ... 1&notime=1
а то я что-то не придумал зачем мне нужна временная метка на клиенте.
Ответить