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

Защитите ваши приложения, работающие на Kubernetes, от вредоносных атак, предварительно зарегистрировав доверенные процессы и доверенные сигнатуры файлов. Tarian будет обнаруживать неизвестные процессы и изменения в зарегистрированных файлах, отправлять оповещения и выполнять автоматические действия. Спасите вашу K8s-среду от программ-вымогателей (ransomware)!
Мы стремимся поддерживать этот проект как открытый, чтобы бороться с атаками на нашу любимую экосистему Kubernetes. Благодаря постоянному вкладу сообщества мы можем вместе противостоять угрозам.
Как работает Tarian?
Кластерный агент Tarian (Tarian Cluster Agent) работает в кластере Kubernetes, обнаруживая неизвестные процессы и неизвестные изменения файлов, сообщая о них на сервер Tarian и, при необходимости, выполняя действие: удаление нарушенного пода. Для обнаружения новых процессов он использует eBPF. Для обнаружения изменений файлов Tarian Cluster Agent внедряет sidecar-контейнер в под вашего основного приложения, который проверяет контрольные суммы файлов в заданном пути и сравнивает их с зарегистрированными контрольными суммами на сервере Tarian. Tarian будет частью пода вашего приложения на всём пути от разработки до production, поэтому вы можете зарегистрировать в своей БД Tarian то, что должно происходить и выполняться в вашем контейнере, а также сигнатуры файлов для отслеживания, что может быть уведомлено и какое действие предпринять (самоуничтожение пода) при обнаружении изменений. Сдвиньте свой механизм обнаружения влево!
Что произойдет, если внутри контейнера произойдет неизвестное изменение, которого нет в регистрационной БД Tarian?
Если происходит неизвестное изменение, Tarian может просто уведомить аналитику наблюдений вашу группу безопасности. Тогда ваши инженеры по безопасности могут зарегистрировать это изменение в БД Tarian — считать его угрозой или нет. Кроме того, на основе анализа они могут настроить действие, которое будет выполнено при повторном возникновении этого изменения.
Как вклад сообщества помогает бороться с угрозами через Tarian?
Любое новое обнаружение, проанализированное и помеченное как угроза вашими экспертами по безопасности, если они того пожелают, может быть передано в открытую БД сообщества Tarian со всеми журналами, строками для поиска, наблюдениями, прозрачностью, настраиваемыми действиями и т. д. — в общем, всем, чем эксперты хотят предупредить сообщество и поделиться. Вы как пользователь Tarian можете использовать эту информацию и настраивать действия в приложении Tarian, развернутом в вашей среде. По сути, это механизм обмена информацией об угрозах и о том, что с ними делать. Это помогает всем, кто использует Tarian, действовать сообща в своих средах K8s, делясь знаниями и опытом.
Какие действия предпримет Tarian на основе известной угрозы (угроз)?
Tarian просто самоуничтожит под, в котором работает. Если вредоносное ПО/вирус распространится на остальную среду — вы знаете, что произойдет. Таким образом, Tarian в первую очередь предназначен для максимально возможного снижения риска путем уничтожения подов. Обеспечение нового пода будет выполнено средствами развертывания K8s. Tarian будет уничтожать поды только в том случае, если вы укажете ему это делать. Если вы не хотите никаких действий, вы можете не настраивать и не запускать их; можно просто сказать Tarian только уведомлять вас. По сути, Tarian делает то, что вы хотите, чтобы снизить риск.
Зачем еще один инструмент безопасности, если уже есть множество доступных инструментов, таких как Falco, Kube-Hunter, Kube-Bench, Calico Enterprise Security и многие другие (как открытые, так и коммерческие), которые могут обнаруживать и предотвращать угрозы на уровне сети, инфраструктуры и приложений? Зачем нужен Tarian?
Основная причина появления Tarian — борьба с угрозами в Kubernetes сообща. Другая причина: что, если все еще существуют сложные атаки, способные проникнуть через каждый уровень безопасности, добраться до вашего рабочего приложения (удаленное выполнение кода) и ваших томов хранения, и способные распространяться, чтобы повредить или заблокировать вашу инфраструктуру и данные? Что вы хотите делать с такими атаками, особенно если они превращаются в программы-вымогатели? Tarian предназначен для снижения таких рисков путем выполнения действий. Мы знаем, что Tarian не является окончательным решением, но мы уверены, что он может помочь снизить риски, особенно если знания постоянно передаются сообществом. С технической точки зрения Tarian может снизить риск путем уничтожения зараженных ресурсов.

| Окружение | Работает | Примечания |
|---|---|---|
| Kind v0.14.0 | ✔️ | |
| Minikube v1.26.0 | ✔️ | |
| Linode Kubernetes Engine (LKE) 1.22 | ✔️ | |
| Digital Ocean Kubernetes Engine (DOKS) 1.22 | ✔️ | |
| Google Kubernetes Engine (GKE) 1.22 | ✔️ | |
| Amazon Elastic Kubernetes Engine (EKS) | ➖ | kernel < 5.8 |
| Azure Kubernetes Service (AKS) | ➖ | kernel < 5.8 |
kubectl create namespace tarian-system
Вы можете использовать любой вариант установки Dgraph, если он доступен с сервера tarian.
helm repo add tarian https://kube-tarian.github.io/helm-charts
helm repo update
helm upgrade -i tarian-server tarian/tarian-server --devel -n tarian-system --set server.dgraph.address=DGRAPH_ADDRESS:PORT
helm upgrade -i tarian-cluster-agent tarian/tarian-cluster-agent --devel -n tarian-system
kubectl wait --for=condition=ready pod --all -n tarian-system
kubectl exec -ti deploy/tarian-server -n tarian-system -- ./tarian-server dgraph apply-schema