Closed5
Falcoを雑に触ってみる話
2021-03-05のkubenewsで少し話になっていたFalcoの話が上がっていたのでちょっと書いておく
FalcoはSysdig社が開発運用しているOSSです。
ワークロード上のセキュリティ事案を検知して収集し通知することができることが特徴で、とりあえず困ったら雑にぶち込んでおくとかなり便利になります。
今回はKubernetesで動かすことを想定して、HelmでFalcoをデプロイしてみます。
FalcoはHelmチャートとして公開されておりサクッと導入することができます。
雑に使ってみることを目標とするので、下記の動作を検証してみます。
- PodをたててBashを取得
- パッケージマネージャーを更新してcurlをインストール
- Kubernetes APIにアクセスしてみる
- Slackに↑のイベントが全て検知されていることを確認する
まずはインストールをします。FalcoチャートはFalco本体とFalcosidekickというヘルパーツールの混ぜこぜを構成することができます。
Falco本体は検知を、Fαlcosidekickは検知したものを外部へ通知をするツールです。
values.yamlを下記のように定義してHelmをインストールします。
auditLog:
# 監査ログをチェックする
enabled: true
falcosidekick:
# sidekickを有効にしてSlackへ検知結果を飛ばす
enabled: true
config:
slack:
webhookurl: "https://hooks.slack.com/services/あなたのWebhook"
footer: "=== This is footer ==="
outputformat: "all"
messageformat: 'Alert : rule *{{ .Rule }}* triggered by user *{{ index.OutputFields "user.name" }}*'
webui:
# sidekickを画面でみたいなーという人は有効にする
enabled: true
~/develop/github.com/ryusa/falco/helm/
❯ helm install falco falcosecurity/falco -f values.yaml
DaemonSetでFalcoが起動し、DeploymentでFalcosidekickが起動していればOKです。
~/develop/github.com/ryusa/falco/helm/
❯ kubectl get daemonset,deployment
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/falco 2 2 2 2 2 <none> 65m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/falco-falcosidekick 2/2 2 2 65m
deployment.apps/falco-falcosidekick-ui 1/1 1 1 65m
メモ(文章書くのはまた後日
Podを作ってBash奪う
↓
apt udpate && apt install curl -y
↓
root@debug:/# KUBE_TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
root@debug:/# NAMESPACE=default
root@debug:/# curl -sSk -H "Authorization: Bearer $KUBE_TOKEN" \
> https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/namespaces/$NAMESPACE/pods/$HOSTNAME
これでSlackを眺めてみる
UIを眺めてみる
デフォルト設定でも良い感じ
このスクラップは2021/04/26にクローズされました