В феврале 2024 года проект Falco получил статус выпускника (graduated) в рамках Cloud Native Computing Foundation (CNCF). Этот выпуск знаменует собой важную веху на пути, который начался в 2018 году, когда компания Sysdig передала Falco в CNCF. Это значительное достижение для всей отрасли, повышающее безопасность современных вычислительных платформ. Оно стало возможным только благодаря огромным усилиям сообщества разработчиков из многих компаний и множества пользователей по всему миру. Чтобы понять, какое влияние Falco оказал на индустрию, важно знать историю его создания.
В 2014 году, когда мы начали писать первые строки кода того, что в конечном итоге стало драйверами Falco, я едва ли мог представить, во что превратится Falco и насколько важным он станет для современных вычислительных платформ. Этот путь был долгим и увлекательным, начавшись даже раньше 2014 года: истоки Falco восходят к сетевым пакетам.
Путь от пакетов к инструментам безопасности в облаке
В конце 1990-х годов стремительное расширение компьютерных сетей выявило потребность в доступных инструментах для мониторинга сети. Berkeley Packet Filter (BPF) стал значительным достижением, позволив осуществлять захват и фильтрацию пакетов в операционной системе BSD. BPF является предшественником широко используемого сегодня eBPF и изначально был выпущен вместе с сопутствующей библиотекой libpcap. Библиотека libpcap использовалась в качестве основы для таких инструментов, как tcpdump и Wireshark (изначально Ethereal), которые стали стандартными средствами анализа пакетов.
В последующие годы полезность сетевых пакетов быстро вышла за рамки устранения неполадок и перешла в сферу безопасности. Хорошим примером является Snort, система обнаружения вторжений с открытым исходным кодом, выпущенная в 1998 году. Snort, используя данные пакетов и гибкий механизм правил, предлагал обнаружение угроз, поступающих через сеть, в режиме реального времени.
С развитием вычислительных архитектур собирать и декодировать сигналы на основе пакетов становилось все сложнее. Такие инструменты, как tcpdump, Wireshark и Snort, оставались чрезвычайно популярными, но такие тенденции, как контейнеризация, шифрование и переход в облако, сделали их значительно менее эффективными.
Именно поэтому, после более чем десяти лет работы над этими инструментами, небольшая группа людей решила переосмыслить, как должны выглядеть инструменты обеспечения безопасности, если проектировать их с нуля для поддержки облачных инфраструктур. Мы решили сосредоточиться на ядре Linux, и в частности на уровне системных вызовов, как на уровне инструментария, и с первого дня включили поддержку контейнеров и Kubernetes. Используя системные вызовы, мы смогли предложить те же рабочие процессы, что и в инструментах на основе пакетов (детальный захват, фильтры, файлы трассировки...), но адаптированные к современным парадигмам.
Компоненты инструментария Falco, которые мы творчески назвали Falco libs, были выпущены в 2014 году вместе с инструментом командной строки sysdig, который можно считать аналогом tcpdump для системных вызовов.
Рождение безопасности времени выполнения (Runtime Security)
Falco был выпущен в 2016 году. Он объединил захват системных вызовов и мощный механизм правил, что позволило гибко создавать детекторы как для контейнеров, так и для хостов. Сообщество сразу обратило на это внимание, и так родилась концепция безопасности времени выполнения (runtime security).
Falco развивался в двух направлениях: технологии инструментария и богатство детектирующих правил. В первом направлении мы стали пионерами использования eBPF для сбора сигналов безопасности. Использование eBPF для безопасности сегодня кажется очевидным для любого специалиста в отрасли, но в 2018 году, когда мы выпустили наш драйвер eBPF, это было неслыханно. На самом деле, это было невозможно себе представить: нам пришлось работать с сообществом ядра Linux, чтобы решить некоторые нерешенные проблемы в eBPF, прежде чем мы смогли сделать его функциональным.
Во втором направлении Falco постепенно становился все более модульным, включая поддержку таких источников данных, как журналы аудита Kubernetes, облачные журналы (cloud trails), сторонние приложения, такие как Okta и GitHub, и многие другие. Наше видение заключается в том, что, поскольку все программное обеспечение становится облачным, безопасность времени выполнения требует гораздо большего, чем просто сбор сигналов ядра. Угрозы сложны и могут возникать внутри ваших контейнеров, но они также могут исходить из вашей плоскости управления (control plane), инфраструктуры, учетных записей, хранилищ данных и облачных сервисов. Falco предлагает унифицированное и коррелированное представление, которое можно использовать для обнаружения многих типов атак и отслеживания их перемещения по вашей инфраструктуре.
Сила сообщества
Передача Falco в Cloud Native Computing Foundation (CNCF) в 2018 году стала важным шагом для проекта. Это решение основывалось на убеждении, что безопасность времени выполнения является ключевым компонентом современного вычислительного стека на базе Kubernetes и что она должна стать стандартным элементом этого стека. Мы также верили, что только подход сообщества, где «хорошие парни» работают вместе, дает всем нам реальный шанс против злоумышленников.
Выпуск Falco — это кульминация долгого пути и отличный пример инноваций в сфере открытого исходного кода, где новые вклады опираются на прошлые достижения, объединяя различные сообщества и технологии. Это означает, что Falco протестирован, проверен и развернут в достаточной степени, чтобы вы могли доверять ему в самых требовательных сценариях. Достижение этого этапа было бы невозможно без вклада многих людей: первых пользователей, разработчиков, основных мейнтейнеров, спонсоров, сообщества пользователей и Cloud Native Computing Foundation. Мы не можем поблагодарить каждого из них здесь, но хотим, чтобы они знали, что мы ценим то, что они сделали.
Что касается Falco как проекта, мы рады достижению такой вехи, но считаем, что это только начало. Есть много функций, которые мы хотим добавить, но, что еще важнее, мы хотим убедиться, что Falco легко развертывать, он легок и всегда способен обнаруживать новейшие угрозы. Мы надеемся, что таким образом сможем помочь вам запускать ваше облачное программное обеспечение уверенно и безопасно.









