Русский
Русский
English
Статистика
Реклама

Crowdsec

CrowdSec современная альтернатива Fail2Ban и коллективный иммунитет для Интернета

16.11.2020 12:07:26 | Автор: admin

CrowdSec

Инструмент Fail2Ban хорошо известен админам. Программа анализирует логи на сервере и подсчитывает количество попыток доступа с конкретных IP-адресов по указанным протоколам. В случае нарушения правила данный IP-адрес блокируется на заданный отрезок времени. Например, джейл для авторизации по SSH включён с дефолтными настройками 5 попыток авторизации за 10 минут, после чего происходит бан IP-адреса на 10 минут. Отличный способ отфильтровать мусорный трафик от разных сканеров и защита от DDoS.

Fail2Ban и SSHGuard лучшие инструменты в своей области. Однако новый опенсорсный проект CrowdSec представляется интересной альтернативой. Это локальная замена Fail2Ban, а потенциально нечто большее глобальная база репутации IP-адресов типа иммунной системы интернета.

CrowdSec позиционирует себя как движок для автоматизации безопасности, использующий локальные правила для детектирования IP, а также общую базу вредоносных IP, которая составляется силами сообщества.



Разработчики CrowdSec называют следующие ключевые особенности:

  • обнаружение атак и реагирование на всех уровнях (логи могут лежать в любом месте);
  • простота в установке и обслуживании (установка с визардом в консоли);

    git clone https://github.com/crowdsecurity/crowdsec/releases/latest
    

    sudo ./wizard.sh -i
    


    Установка CrowdSec. Визард в консоли помогает выбрать и предлагает, какие демоны/логи нужно мониторить, хотя возможна и последующая настройка через обычные конфиги
  • интеграция с другими компонентами (чтение логов и автоматическая блокировка нарушителей на уровне CDN);
  • общий доступ (опционально): метаданные можно отправлять в центральный API, так что данные о вредоносных IP-адресах получат все пользователи. Нужно подчеркнуть, что это опциональная фича, и никто не заставляет передавать метаданные в общий доступ;
  • лёгкий вес: автономная работа, минимум оперативной памяти и CPU;
  • возможность обработки холодных логов (из архива) для своеобразной симуляции;
  • предустановленные панели мониторинга.

Важно отметить, что за разработкой стоит французская компания, а не американская, что по нынешним временам является плюсом для приватности. Даже если выбрать вариант коллективной работы и делиться собранными данными, отправляются только три параметра: метка времени, IP-адреса нарушителей и политика, которую они нарушили.

Ещё один интересный момент инструмент написан на языке программирования Go.

С архитектурной точки зрения система состоит из трёх основных компонентов:

  • постоянно работающая служба CrowdSec, которая отслеживает логи, атаки и т. д.;
  • инструмент командной строки, интерфейс для взаимодействия со службой;
  • модули интеграции (bouncers) с другими инструментами типа Cloudflare для реального обеспечения блокировки.

Вот как выглядит архитектура программы из документации:



На данный момент разработано пять модулей интеграции (bouncers):
cs-cloudflare-blocker, cs-custom-blocker (пользовательские сценарии), cs-netfilter-blocker, cs-nginx-blocker и cs-wordpress-blocker. Например, модуль для Nginx сверяет каждый неизвестный IP-адрес с базой данных, прежде чем веб-сервер ответит на запрос или выдаст ошибку 403. Модуль Netfilter просто добавляет вредоносные IP-адреса в чёрный список nftables/ipset.

Для простоты настройки на сайте собраны коллекции и конфигурации.

Коллекции это, по сути, просто наборы парсеров и сценариев для разных ситуаций. Например, в коллекцию Nginx входит парсер логов nginx-logs и базовые http-сценарии для определения типичных вредоносных ботов (агрессивный краулинг, сканирование/пробирование портов, чёрный список user-agent'ов, а также определение попыток проведения атаки path traversal).

Полный список коллекций:


Один из вариантов работы с CrowdSec через консольную программу cscli:

cscli metrics

Эта команда выдаёт основные метрики о работе парсеров, объёме обработанных логов, количестве обнаруженных и заблокированных угроз по каждой коллекции (перечень коллекций см. выше).

Следующая команда выводит список хостов с указанием причин, почему их забанили, кодом страны, идентификатором автономной сети (AS), количеством нарушений и другой информацией.

cscli ban list



Консольная утилита cscli поддерживает большой список команд и параметров для подключения/удаления конфигураций, добавления новых правил блокировки и др.

Но кроме cscli, конфигурацию можно изменить и традиционным способом, путём редактирования текстового файла в формате YAML:

vi /etc/crowdsec/config/profiles.yaml

Естественно, кастомные сценарии тоже поддерживаются.

Что делает этот инструмент больше похожим на платформу, чем на утилиту, так это его многочисленные интеграции с другими инструментами. По крайней мере, разработчики программы ставят ставку именно на это и хотят построить бизнес на этой платформе. Они говорят о глобальной платформе IP-репутаций и поведенческом движке безопасности.

Сейчас компания пытается предложить пользователям платный доступ к облачному API и базе данных с репутацией IP-адресов, которая составляется совместными усилиями. При этом поставщики информации в эту базу освобождаются от оплаты, а платят только чистые потребители, которые не хотят делиться информацией из своих логов. Планируется два тарифных плана: premium и enterprise с услугами по поддержке, специальными служебными инструментами (типа развёртывания системы на несколько локаций из одного центрального места), применением дата-майнинга и машинного обучения (обнаружение тенденций в глобальных данных), более продвинутом анализе холодных логов (форензика, криминалистика, расследования хотя данное направление бизнеса в Европе затруднено из-за закона GDPR).

В любом случае опенсорсный инструмент выпускается под свободной лицензией MIT, так что коммерческие планы разработчиков никак не мешают сообществу использовать его и модифицировать под свои нужды.



Разработчики обращают внимание, что программа пока в бета-версии, но никаких проблем на продакшне ни у кого не возникало. Они также говорят, что программа на Go элементарно портируется на другие платформы вроде Windows и Mac.

По итогу сейчас это добротный опенсорсный инструмент, который можно использовать в качестве альтернативы старому доброму Fail2Ban. А со временем он может превратиться в нечто большее. Разработчики ставят цель в создании своеобразного коллективного иммунитета, когда клетки организма (серверы) коллективно защищаются от атак, словно иммунная система.



На правах рекламы


Виртуальные серверы с защитой от DDoS-атак и новейшим железом, серверы размещены в одном из лучших российских дата-центров DataPro. Всё это про наши эпичные серверы. Максимальная конфигурация 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe! Поспешите заказать.

Подробнее..

Рады представить CrowdSec v.1.0.0 локальную альтернативу Fail2Ban

10.12.2020 14:11:17 | Автор: admin


Привет. Мы, команда проекта CrowdSec, рады сообщить о выходе версии CrowdSec 1.0.0. Этот релиз крайне важен, потому что кроме добавления нескольких новых функций весь проект претерпел серьезные архитектурные изменения, чтобы стать быстрее, выше и сильнее.

В первую очередь, рады представить вам главное изменение этого патча внедрение локального REST API. Благодаря ему весь проект серьезно изменил свою архитектуру в сторону упрощения и облегчения взаимодействия компонентов на локальном уровне. При этом в целом простота использования не пострадала пользоваться CrowdSec все еще легко и приятно.

Для тех, кто не знает о CrowdSec или задается вопросом, как вообще французский стартап оказался на Хабре, сделаем небольшое отступление:
Несколько недель назад тут, на Хабре, вышла целая статья о нашем проекте, конкретно в ключе сравнения нас с Fail2Ban: CrowdSec современная альтернатива Fail2Ban и коллективный иммунитет для Интернета.

Команда нашего проекта базируется во Франции и хотя для нас русскоязычный сегмент всегда имел большое значение, мы не имели представления, как попасть в него и продемонстрировать наш продукт местному IT-сообществу. Имел место и языковой барьер. Однако оказалось, что существует Хабр и для местных специалистов наш проект оказался весьма интересен мы зафиксировали достаточно много трафика со стороны РФ и несколько десятков новых пользователей.

Еще больше нас удивила техническая глубина комментариев на Хабре, а также совершенно иной взгляд на многие вещи. И вот, как итог, мы тут. Презентуем вам версию 1.0.0 :)

Как было и как стало


Главное, что случилось с выходом версии 1.0 внесение изменений в архитектуру, которое произошло из-за внедрения в работу локального REST API. С архитектурной точки зрения наша система состоит из трех основных компонентов:

  • постоянно работающая служба CrowdSec, которая отслеживает логи, атаки и т. д.;
  • командная строка, интерфейс для взаимодействия со службой;
  • модули интеграции (bouncers) для обеспечения блокировки атакующих адресов.

Ниже схема, как работал CrowdSec раньше:



Как видно из схемы, как минимум три элемента системы постоянно напрямую обращались к базе данных. На схеме эти направления отмечены красными кружками (cwcli-DB, output plugins-DB, Bouncers-DB). При этом под Bouncers подразумевается минимум пять модулей, которые постоянно общаются между репутационной БД и БД забаненных IP-адресов.

Когда вы развиваете какой-то проект с нуля, подобные костыли простой, быстрый и дешевый способ создать рабочий прототип системы. Однако если говорить о стабильности и скорости работы, столько точек обращения к БД не лучшее решение. Подобная архитектура проекта привела к возникновению ряда ограничений, с которыми мы столкнулись на этапах дальнейшего развития CrowdSec. Следовательно, мы хотели избавиться от них как можно быстрее.

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

Как итог, мы получили архитектуру следующего вида:



Теперь все внутренние модули общаются между собой и с базой данных исключительно через REST API.

Главное преимущество API перед старой реализацией упрощение работы модулей (Bouncers) по сравнению со старой версией CrowdSec. Если раньше баунсер обращался к различным базам напрямую, то теперь, благодаря работе через REST API, ему понадобиться всего один HTTP-get реквест с API-токеном. Вся остальная работа происходит на стороне API.

Облачная схема работы CrowdSec


В классическом представлении предполагается, что на одной из машин будет развернута серверная часть CrowdSec, которая через новый API сможет управлять модулями на других машинах внутри определенной администратором сети. При желании, пользователь сможет использовать собственную БД забаненных адресов, либо же обращаться к нашей базе данных на платной основе. Однако создание единой точки общения между локальным REST API и нашим собственным API создает новые возможности: работа CrowdSec по модели, близкой к облачному SaaS.

Теперь администратору не обязательно разворачивать на своей машине полноценную серверную часть CrowdSec с локальным REST API. Вместо этого он может использовать наш внешний центральный API CrowdSec и пользоваться для защиты сети только баунсерами.

Дополнительно


Тем, кто уже пользовался CrowdSec ранее, мы предлагаем ознакомиться с полным списком изменений в версии 1.0.0 относительно версии 0.3.x на GitHub.

Новым пользователям советуем обратиться к информации из нашего репозитория на GitHub.

Хотим отметить, что CrowdSec опенсорсный инструмент, который выпускается под свободной лицензией MIT. Таким образом, любой желающий может пользоваться им абсолютно бесплатно. Проект пока не монетизируется, мы находимся в стадии разработки собственного бан-листа и тарифных планов. На нашем сайте hub.crowdsec.net специально для новых пользователей собраны коллекции, конфигурации и готовые баунсеры для облегчения настройки и начала использования CrowdSec.



Вы можете задать любой вопрос о нашем проекте прямо здесь, в комментариях. Использование английского упростит коммуникацию нам не придется использовать Google.Translate или просить русскоязычных знакомых перевести нам ваше сообщение :)
Подробнее..

Новый плагин CrowdSec для защиты сайтов на WordPress

17.02.2021 12:10:47 | Автор: admin

Всем привет! Мы активно работаем над развитием нашей системы блокировки нежелательных IP-адресов и сегодня рады рассказать сообществу о нашей новой разработке плагине WordPress для упрощения жизни веб-мастеров и защиты администрируемых ими сайтов.

Как и многие другие наши решения, новый баунсер для WordPress опенсорсная разработка, которую мы распространяем под лицензией MIT. Распространяем мы его в виде официально подтвержденного WordPress-плагина. Ознакомиться со страницей нашей разработки и скачать его можно на официальном сайте WordPress.

Новый баунсер CrowdSec для WordPress решает сразу две задачи веб-мастера: отсекает нежелательные IP-адреса и имеет дополнительную функцию более мягкой блокировки показывает нежелательным или подозрительным IP-адресам капчу.

Для того, чтобы плагин работал, вам, как и в случае отдельно взятого сервера или сети, нужно будет установить серверную часть CrowdSec. Ранее мы уже публиковали небольшой туториал на эту тему, почитать можно тут. Наш плагин для WordPress совместим с версиями CrowdSec 1.0.х, то есть с последними актуальными релизами после нашего большого обновления, в котором мы провели рефакторинг архитектуры и перешли на использование API вместо прямых обращений элементов системы к БД.

Flex Mode

Сайты на WordPress это, очень часто, сайты малого и среднего бизнеса, который пользуется готовым решением вместо собственной длительной разработки. Таким ресурсам крайне важен каждый посетитель, который потенциально может стать клиентом или покупателем. Также у веб-мастеров часто просто нет бюджета, либо это самоучки, которые не знаю, как правильно настроить защиту.

CrowdSec достаточно мощный инструмент, как и любой другой проект в этой сфере, а перманентный бан по IP-адресу не шутка.

Именно для того, чтобы веб-мастер по незнанию или не внимательности не сделал непоправимое, мы создали Flex Mode для плагина WordPress.

Flex Mode это щадящий режим работы баунсера и сервера с сайтом. В этом режиме владелец подозрительного IP-адреса не может получить перманентный бан. Максимум ограничений доступа к сайту для такого посетителя заключается в необходимости пройти капчу.

Мы считаем, что капча достаточно эффективный инструмент, который поможет эффективно ограничить достаточно большую часть подозрительных посещений ресурса, а возможность подключить капчу обычной установкой плагина хороший способ быстро обезопасить свой сайт на WordPress. Да, нужно будет установить и серверную часть нашего продукта, но, на самом деле, там нет ничего сложно и справится даже начинающий пользователь, который хотя бы отдаленно знаком с консолью.

Специально для тех, кому не плевать на внешний вид их сайта, мы дополнительно ввели систему кастомизации внешнего вида окна капчи, которое выдает наш плагин подозрительным посетителям. Вот так выглядит дефолтная капча:

А вот так уже кастомизированная:

Мы знаем, что внешний вид не имеет отношения к функциям защиты, однако возможность органично вписать капчу в сайт не лишняя. Как минимум визуально посетитель поймет, что к сайту относятся серьезнее, чем во многих других местах, где он сталкивался с капчей.

Баланс защиты и производительности

У нашего плагина есть два режима поддержания связи с серверной частью CrowdSec.

Первый режим по умолчанию "Live mode". Это режим, в котором баунсер при обращении к сайту нового пользователя в режиме реального времени обращается к API сервера для получения информации. В том числе, в этом режиме, IP посетителя сайта проверяется и по общему бан-листу CrowdSec, который генерируется с нашей стороны как разработчиков. После этого сервер передает информацию обратно баунсеру в плагине и он уже банит/не банит пользователя, или показывает ему капчу.

Этот мод обеспечивает наибольшую защиту вашего сайта, но, как можно понять, влияет на производительность сайта и, при большом трафике, создает нагрузку на серверную часть CrowdSec, генерируя поток трафика.

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

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

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

Если вы используете CDN, обратный прокси или балансировщик нагрузки, вы сможете указать в настройках баунсера диапазоны IP-адресов этих устройств. Это позволит вам проверять IP-адреса ваших пользователей. Для других IP-адресов баунсер не будет доверять заголовку X-Forwarded-For.

Что будет дальше

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

Новый плагин мы протестировали на большинстве версий WordPress, которые сейчас актуальны в мире. В общей сложности, тестами мы покрыли 90%, если верить статистике использования WP по миру. Также мы проводили тестирование на PHP версий 7.2, 7.3, 7.4 и 8, чтобы исключить конфликты на уровне языка, на котором написан WordPress. Само собой, с выходом новых версий как движка, так и языка программирование, мы продолжим работу в этом направлении.

Повторимся, что плагин выпущен под лицензией MIT самой свободной и широкой бесплатной лицензией в мире. Исходный код плагина полностью доступен на GitHub, как и исходный код CrowdSec.

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

Подробнее..

Использование и настройка локального API CrowdSec

20.05.2021 14:22:33 | Автор: admin
Если вы впервые видите наши посты, то скажем пару слов о проекте. CrowdSec это инструмент с открытым исходным кодом, который используется для обнаружения и блокировки вредоносных IP-адресов на основе локальных шаблонов поведения. Также возможно подключение бан-листов, причем как локальных, сформированных самостоятельно, так и общих, которые создаются всеми пользователями CrowdSec коллективно. Подробнее вы можете почитать об этом в наших предыдущих статьях.

В версии CrowdSec 1.x реализовал локальный API, к которому может обращаться как клиент приложения, так и пользователь через командную строку, в том числе и на удаленные машины.
Что он умеет?

Наш локальный API делает несколько вещей. Прежде всего, он позволяет полноценно работать баунсерам, которые берегут покой вашего сервера или машины. А также именно через API ведется учет и мониторинг за принятыми системой решениями.

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

Через API можно управлять решениями и сценариями, push-уведомлениями от системы администратору, настраивать оповещения и так далее. Как и должно, API единая точка входа администратора к инфраструктуре системы. В ранних версиях CrowdSec многие вещи, те же баунсеры, настраивались вручную по месту, что было не слишком удобно.

Начинаем пользоваться API


Предположим, что CrowdSec установлен и у вас есть клиент командной строки (CLI). Ваши последующий шаг аутентификация в API.

Для этого вам необходимо сгенерировать ключ баунсера. У большинства баунсеров, предлагаемых на хабе CrowdSec, есть готовый инсталл-сценарий, который сделает за вас, но если вы хотите все установить в ручную, то для получения ключа введите:

cscli bouncers add BouncerdeTest

После получения ключа вам надо собрать конфиг баунсера:



Если нужно зарегистрировать машину, вы можете сделать это двумя разными способами. Самый простой использовать следующую команду:

cscli machines add MachinedeTest auto



Это действие сгенерирует для вас логин и пароль в файле конфигурации yaml, который вы затем сможете использовать.



Это работает для случая, если вы работаете локально на одном компьютере. Если же вы находитесь на удаленной машине, вам нужно зарегистрировать свой сервер API следующим образом:

cscli lapi register -u <api_url>

После надо проверить, добавилась ли машина на локальном сервере, где у нас развернут API. Сделать это можно следующей строкой:

cscli machines validate MachinedeTest

Чтобы вывести список зарегистрированных машин просто выполните команду:



Использование API с баунсерами


Теперь для соединения через API достаточно обычного HTTP-запроса. Этого достаточно для локальной работы. Если же речь идет об удаленных машинах, рекомендуем включить HTTPS.



Что касается вызовов API из баунсера, у вас есть 2 доступных метода:

Режим запроса (getDecisions)

Режим запроса позволяет баунсеру отправлять запросы API для получения информации о решениях, принятых в отношении определенных диапазонов IP-адресов, отдельных IP-адресов, имен пользователей и так далее.

Вот как вызвать API (с помощью Curl), чтобы запросить информацию о заблокированном IP:

curl -H "X-Api-Key: e73e3672427ecd8cd9a6487f7e8f4f03" http://localhost:8080/v1/decisions?ip=98.65.32.47

Как видите, мы передаем ключ API и вызываем параметр ?ip, чтобы указать IP-адрес, по которому мы хотим получить информацию.

Возвращаемый ответ мы получим в формате JSON, например:

[{"duration":"2h25m47.212560128s","id":1023,"origin":"cscli","scenario":"manual 'ban' from '939972095cf1459c8b22cc608eff85daEb4yoi2wiTD7Y3fA'","scope":"Ip","type":"ban","value":"1.2.3.4"}]

Вы также можете использовать параметр ?range, чтобы указать диапазон сети, или, если хотите, использовать пару параметров scope+value для запроса информации о конкретном имени пользователя, идентификаторе сеанса и так далее.

curl -H "X-Api-Key: e73e3672427ecd8cd9a6487f7e8f4f03" http://localhost:8080/v1/decisions?scope=username&value=korben

Есть еще один вариант. Это

Потоковый режим (getDecisionsStream)

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

Когда баунсер запущен, вы можете получить активные решения, а также только что удаленные, вызвав API с параметром ?Startup true, например:

curl -s -H "X-Api-Key: e73e3672427ecd8cd9a6487f7e8f4f03" http://localhost:8080/v1/decisions/stream?startup=true

Установив для параметра ?startup значение false вы будете получать только новые решения, полученные после запуска баунсера.

{  "deleted": null,  "new": [    {      "duration": "3h59m57.641708614s",      "id": 2410,      "origin": "cscli",      "scenario": "manual 'ban' from '939972095cf1459c8b22cc608eff85daEb4yoi2wiTD7Y3fA'",      "scope": "Ip",      "type": "ban",      "value": "3.3.3.4"    }  ]}

Если решение не было добавлено, в ответ вернется null:

{  "deleted": null,  "new": null}

Используйте API через Watcher (cscli или агент CrowdSec)


Как упоминалось во введении, вам нужно будет предоставить API идентификатор компьютера и пароль. Использование определенных функций API (POST/DELETE) или (GET) в основном осуществляется через интерфейс командной строки или агент CrowdSec, но ничто не мешает вам работать с ним напрямую.



Например, чтобы удалить одно или несколько решений, касающихся определенного IP, сделайте следующее:

curl -X DELETE "https://localhost:8080/v1/decisions?ip=98.65.32.47" -H "accept: application/json"

После выполнения этой команды в ответ вы получите строку, которая сообщит, сколько решений было удалено.

Для тех, кто хочет начать работу на более глубоком уровне с исходниками, в репозитории CrowdSec на Github есть код, написанный на Go, который показывает, как подключиться и использовать API.



Все методы API доступны здесь.

Итого


Как видите, локальный API CrowdSec довольно легко изучить и начать использовать в связке с баунсерами. Последние написанны на Go и адаптируемы к вашим конкретным потребностям. Готовые баунсеры можно скачать тут. Также нами написаны специальные баунсеры для работы с Nginx, WordPress, HAProxy, iptables, nftables или даже с облачными межсетевыми экранами Amazon (AWS) и Google (Network FW и Cloud Armor). Их исходники также можно найти на Github. Еще у нас есть баунсеры на LUA и PHP.

И, конечно же, всю дополнительную информацию, исходники, полезные ссылки и еще не опубликованные на Хабре мануалы вы можете найти на официальном сайте CrowdSec.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru