Falco

Cloud & Container Security v0.44.1 · 11.06.2026 активный

Рантайм-детектор угроз для контейнеров, Kubernetes и облачной инфраструктуры — проект CNCF. Отслеживает системные вызовы в реальном времени и по правилам детектирует аномальное поведение (shell в контейнере, чтение секретов, эскалацию привилегий). Используется в продакшне тысячами компаний как основа облачного SOC.

v0.44.1
11.06.2026 current
Добавлен 27.07.2026 · Обновлён 27.07.2026 · Cloud & Container Security
Установка
curl -fsSL https://falco.org/repo/falcosecurity-3672BA8F.asc | sudo gpg --dearmor -o /usr/share/keyrings/falco-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/falco-archive-keyring.gpg] https://download.falco.org/packages/deb stable main" | sudo tee /etc/apt/sources.list.d/falcosecurity.list
sudo apt update && sudo apt install falco

sudo falco   # слушает syscalls в реальном времени по правилам по умолчанию
переведено ИИ

Falco

Последний релиз Поддерживаемые архитектуры Лицензия Документация

Основной репозиторий Falco Статус: стабильный OpenSSF Scorecard OpenSSF Best Practices

Falco

Falco — это инструмент безопасности для среды выполнения в операционных системах Linux, предназначенный для облаков. Он разработан для обнаружения и уведомления о ненормальном поведении и потенциальных угрозах безопасности в режиме реального времени.

По своей сути Falco является агентом мониторинга и обнаружения на уровне ядра, который отслеживает события, такие как системные вызовы (syscalls), на основе пользовательских правил. Falco может обогащать эти события, интегрируя метаданные из среды выполнения контейнеров и Kubernetes. Собранные события могут анализировать на стороне системы в SIEM или системах хранилищ данных (data lake).

Falco, первоначально созданный компанией Sysdig, является завершённым проектом (graduated project) при Cloud Native Computing Foundation (CNCF) и используется в продакшн-среде различными организациями.

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

Для исчерпывающей информации о последних обновлениях и изменениях в проекте, пожалуйста, обратитесь к журналу изменений (Change Log).

Проект Falco

Исходный код проекта Falco поддерживается в рамках организации falcosecurity на GitHub. Основной репозиторий, falcosecurity/falco, содержит исходный код бинарного файла Falco, тогда как другие подпроекты размещаются в специализированных репозиториях. Такой подход к изолированию компонентов в специализированных репозиториях повышает модульность и позволяет сосредоточиться на разработке. Основные core repositories включают:

  • falcosecurity/libs: Этот репозиторий содержит основные библиотеки Falco, которые составляют большую часть исходного кода бинарного файла и обеспечивают базовые функции, такие как драйверы ядра.
  • falcosecurity/rules: Содержит официальный набор правил для Falco, предлагая предопределенные правила обнаружения для различных угроз безопасности и аномального поведения.
  • falcosecurity/plugins: Этот репозиторий поддерживает интеграцию с внешними сервисами посредством плагинов, которые расширяют возможности Falco за пределы системных вызовов и событий контейнеров, с планами развития специализированных функций в будущих релизах.
  • falcosecurity/falcoctl: Утилита командной строки, предназначенная для управления Falco и взаимодействия с ним.
  • falcosecurity/charts: Этот репозиторий публикует Helm-чарты для развертывания Falco и его экосистемы. Исходные файлы чарта Falco находятся в chart/falco.

Для получения дополнительной информации о наших репозиториях и подробностей о нашей модели управления, пожалуйста, посетите официальный хаб проекта Falco: falcosecurity/evolution.

Начало работы с Falco

Если вы новичок в Falco, начните знакомство с нашего руководства "Начало работы". Для продакшн-развертывания, пожалуйста, обратитесь к нашей подробной документации по настройке.

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

Демонстрационная среда

Демонстрационная среда предоставляется через файл docker-compose, который можно запустить на хосте Docker. Она включает в себя Falco, FalcoSidekick, FalcoSidekick-UI и необходимую базу данных Redis. Для получения дополнительной информации см. раздел о docker-compose.

Присоединяйтесь к сообществу

Чтобы вовлечься в проект Falco, пожалуйста, посетите репозиторий Community, чтобы найти больше информации о способах участия.

Если у вас есть какие-либо вопросы о Falco или о том, как внести свой вклад, не стесняйтесь создавать задачу (issue) или обращаться к сопровождающим Falco и участникам сообщества за помощью.

Как связаться?

Приверженность безопасности самого Falco

Полные отчеты о различных проверках безопасности можно найти здесь.

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

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

Сборка

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

Тестирование

Развернуть инструкции по тестированию

Сборка Falco из исходного кода — основной ресурс для понимания того, как собрать Falco из исходного кода. Кроме того, репозиторий falcosecurity/libs предоставляет дополнительную полезную информацию о тестировании и отладке базовых библиотек и драйверов ядра Falco.

Вот пример команды cmake, которая включит все необходимое для запуска всех модульных тестов этого репозитория:

cmake \
-DUSE_BUNDLED_DEPS=ON \
-DBUILD_DRIVER=ON \
-DBUILD_FALCO_MODERN_BPF=ON \
-DCREATE_TEST_TARGETS=ON \
-DBUILD_FALCO_UNIT_TESTS=ON ..;

Соберите и запустите набор модульных тестов:

nproc=$(grep processor /proc/cpuinfo | tail -n 1 | awk '{print $3}');
make -j$(($nproc-1)) falco_unit_tests;
# Run the tests
sudo ./unit_tests/falco_unit_tests;

Опционально соберите драйвер по вашему выбору и запустите тестовый запуск бинарного файла Falco для ручного тестирования.

Наконец, проект Falco переместил свои регрессионные тесты Falco в репозиторий falcosecurity/testing.


## Как внести вклад

Пожалуйста, обратитесь к руководству по участию (Contributing) и Кодексу поведения (Code of Conduct) для получения дополнительной информации о том, как внести свой вклад.

Часто задаваемые вопросы

Почему Falco написан на C++, а не на Go или {языке}?

Развернуть информацию

  1. Первые строки кода в основе Falco были написаны некоторое время назад, когда Go еще не имел того же уровня зрелости и распространения, что и сегодня.
  2. Модель выполнения Falco является последовательной и однопоточной из-за требований инструмента к сохранению состояния (statefulness), и поэтому большинство преимуществ Go-среды, связанных с конкурентностью, вообще не будут использоваться.
  3. Код Falco во многих местах работает с очень низкоуровневыми программными конструкциями, и все мы знаем, что взаимодействие Go с C возможно, но создает огромную сложность и требует компромиссов.
  4. Как инструмент безопасности, предназначенный для обработки безумно высокого количества событий в секунду, Falco должен выжимать максимальную производительность на всех горячих путях во время выполнения и требует глубокого контроля над выделением памяти, что не может предоставить среда Go (также задействована сборка мусора).
  5. Хотя Go не подходит для инженерных требований к ядру Falco, мы всё же считаем его хорошим кандидатом для написания расширений Falco через систему плагинов. Именно по этой причине мы уделили особое внимание и высокий приоритет разработке plugin-sdk-go.
  6. Go не является обязательным требованием для создания статически слинкованных бинарных файлов. Фактически, мы уже несколько лет предоставляем полностью статические сборки Falco. Единственная проблема этих сборок в том, что система плагинов не может быть поддержана в рамках текущей модели динамических библиотек.
  7. Система плагинов была задумана для поддержки множества языков, поэтому с нашей стороны поддержание совместимого с C кодовой базы является лучшей стратегией для обеспечения максимальной межъязыковой совместимости.
  8. В целом, плагины имеют требования/зависимости к GLIBC, поскольку для их динамической загрузки необходимы низкоуровневые привязки C. Потенциальным решением в будущем может стать поддержка статической линковки плагинов во время компиляции, а затем их выпуска в виде связанного с бинарным файлом Falco пакета. Хотя работа в этом направлении ещё не началась, это решило бы большинство сообщённых вами проблем и обеспечило бы полностью статический бинарный файл. Конечно, это больше не будет совместимо с динамической загрузкой, но это может быть жизнеспособным решением для нашего статически собираемого варианта Falco.
  9. Безопасность памяти — определённо, предмет нашей заботы, и мы стараемся поддерживать высокий уровень качества, несмотря на то, что C++ довольно подвержен ошибкам. Например, мы стараемся по возможности использовать умные указатели, собираем библиотеки с санитайзером адресов в нашей CI, прогоняем Falco через Valgrind перед каждым релизом и имеем способы проводить нагрузочное тестирование для обнаружения регрессий производительности или странного потребления памяти (например, https://github.com/falcosecurity/event-generator). Кроме того, мы время от времени привлекаем сторонние аудиторы для проверки кодовой базы. Всё это, конечно, не делает её абсолютно безопасной, но мы стараемся максимально увеличить наши шансы. Go определённо упростил бы нам жизнь с этой точки зрения, однако, учитывая вышеперечисленные моменты, компромиссы до сих пор не делали его достаточно ценным.
  10. Кодовая база C++ в falcosecurity/libs, которая является ядром Falco, довольно велика и сложна. Портирование всего этого кода на другой язык потребовало бы значительных усилий, больших ресурсов для разработки и с высокой вероятностью привело бы к ошибкам и регрессиям. Поэтому наш подход до сих пор заключался в выборе рефакторинга и шлифовки кода, пока мы не достигнем оптимального уровня стабильности, качества и модульности в этом участке кода. Это позволит сделать дальнейшие разработки в будущем более плавными и осуществимыми.


Что дальше для Falco?

Следите за развитием возможностей Falco, изучая Дорожную карту Falco, которая даёт представление о функциях, находящихся сейчас в разработке и запланированных для будущих выпусков.

Лицензия

Falco распространяется под лицензией Apache 2.0 с открытым исходным кодом.

Ресурсы

Комментарии
Войдите, чтобы оставить комментарий