<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          云原生運行時安全 Falco 入門

          共 3253字,需瀏覽 7分鐘

           ·

          2020-11-02 05:41

          Falco(https://falco.org) 是一個開源的運行時安全工具,可以幫助你保護各種環(huán)境的安全,最初由 Sysdig 創(chuàng)建,并于2018年成為 CNCF 項目。Falco 的工作方式是查看文件更改、網(wǎng)絡(luò)活動、進程表和其他數(shù)據(jù)是否存在可疑行為,然后通過可插拔后端發(fā)送警報,通過內(nèi)核模塊或擴展的 BPF 探測器在主機的系統(tǒng)調(diào)用級別檢查事件。Falco 包含一組豐富的規(guī)則,你可以編輯這些規(guī)則以標記特定的異常行為,并為正常的計算機操作創(chuàng)建允許列表。

          Falco 對容器安全特別有用--尤其是當(dāng)你使用 Kubernetes 來運行它們的時候。Falco 通過獲取 Kubernetes API 審計日志,用于運行時威脅檢測和了解應(yīng)用程序行為。

          Falco 通過使用定義意外行為的檢測規(guī)則來工作,雖然它自帶有默認規(guī)則,但你可以擴展這些規(guī)則來定義自定義規(guī)則,以進一步加固你的集群。通過 Falco 我們可以檢測下面的場景:

          • 從一個容器中打開一個 shell 會話
          • Host Path 卷掛載
          • 讀取 secret 和敏感文件,比如 /etc/shadow 文件
          • 在運行的容器中安裝新的軟件包
          • 從不屬于 CMD 的容器中產(chǎn)生的新進程
          • 打開一個新的端口或意外的網(wǎng)絡(luò)鏈接
          • 創(chuàng)建一個特權(quán)容器
          • ......

          Falco 可以確保我們知道應(yīng)用什么時候有潛在的違規(guī)行為,以便我們可以提前修復(fù)這些安全問題,F(xiàn)alco 對現(xiàn)有的 Kubernetes 原生安全措施(如 RBAC 和 Pod 安全策略)進行了補充,這些措施有助于我們預(yù)防一些安全問題。

          安裝

          首先當(dāng)然需要確保我們有一個可訪問的 Kubernetes 集群:

          $?kubectl?get?nodes
          NAME??????STATUS???ROLES????AGE???VERSION
          master1???Ready????master???12d???v1.19.3
          node1?????Ready???????12d???v1.19.3
          node2?????Ready???????9d????v1.19.3

          然后我們使用 Helm 來快速安裝,所以我們先安裝 Helm,安裝 Helm 很簡單,下載你的操作系統(tǒng)對應(yīng)的最新包,解壓并將文件移動到 PATH 路徑上即可。

          $?wget?https://get.helm.sh/helm-v3.4.0-linux-amd64.tar.gz
          $?tar?-xvf?helm-v3.4.0-linux-amd64.tar.gz?
          $?chmod?+x?linux-amd64/helm?
          $?mv?linux-amd64/helm?/usr/local/bin/
          $?helm?version
          version.BuildInfo{Version:"v3.4.0",?GitCommit:"7090a89efc8a18f3d8178bf47d2462450349a004",?GitTreeState:"clean",?GoVersion:"go1.14.10"}

          現(xiàn)在我們用官方的 Helm Chart 來安裝 Falco,先添加 Helm repo 倉庫:

          $?helm?repo?add?falcosecurity?https://falcosecurity.github.io/charts
          "falcosecurity"?has?been?added?to?your?repositories
          $?helm?repo?update
          Hang?tight?while?we?grab?the?latest?from?your?chart?repositories...
          ...Successfully?got?an?update?from?the?"falcosecurity"?chart?repository
          Update?Complete.??Happy?Helming!?

          現(xiàn)在我們就可以直接使用 Helm Chart 來安裝 Falco 了:

          $?helm?install?falco?falcosecurity/falco
          NAME:?falco
          LAST?DEPLOYED:?Thu?Oct?29?20:10:01?2020
          NAMESPACE:?default
          STATUS:?deployed
          REVISION:?1
          TEST?SUITE:?None
          NOTES:
          Falco?agents?are?spinning?up?on?each?node?in?your?cluster.?After?a?few
          seconds,?they?are?going?to?start?monitoring?your?containers?looking?for
          security?issues.

          No?further?action?should?be?required.

          Helm 會安裝一個 Falco DaemonSet 對象,正常我們可以看到每個節(jié)點上會啟動一個 Falco Pod。

          $?kubectl?get?pods?-l?app=falco
          NAME??????????READY???STATUS????RESTARTS???AGE
          falco-q6mcq???1/1?????Running???0??????????24m
          falco-tjmqs???1/1?????Running???0??????????24m
          falco-vkrv7???1/1?????Running???0??????????24m

          到這里我們就成功安裝了 Falco,并在所有節(jié)點上運行。

          測試

          接下來我們進行一個簡單的測試,比如創(chuàng)建一個 NGINX 的 Pod,并嘗試做一些平時很少執(zhí)行的操作。

          創(chuàng)建 NGINX Pod:

          $?kubectl?run?--generator=run-pod/v1?nginx?--image=nginx

          上面 Pod 啟動后查看運行在哪個節(jié)點上:

          $?kubectl?get?pod?nginx?-o?wide
          NAME????READY???STATUS????RESTARTS???AGE???IP????????????NODE????NOMINATED?NODE???READINESS?GATES
          nginx???1/1?????Running???0??????????26s???10.244.2.17???node2??????????????

          我們可以看到 NGINX Pod 運行在節(jié)點 node2 上,對應(yīng)的 Falco Pod 是 falco-q6mcq,下面我們打開兩個窗口,在左側(cè)窗口中執(zhí)行以下操作,同時在右側(cè)窗口中使用 kubectl logs -f falco-q6mcq 命令查看 Falco 容器的日志:

          • 在 NGINX 容器中啟動一個 shell
          • Cat 一個敏感文件 /etc/shadow
          • 從 shell 中退出

          我們可以看到每當(dāng)我們做操作是潛在的安全漏洞時,右側(cè)窗口就會出現(xiàn)對應(yīng)的日志信息。我們也可以將這些日志導(dǎo)出到 ?Grafana 等監(jiān)控工具中,也可以觸發(fā)一個 webhook 到釘釘或者企業(yè)微信上進行即時通知。

          這是因為 Falco 已自帶了很多默認監(jiān)控規(guī)則,具體可以查看 Falco pod 中的 /etc/falco/falco_rules.yaml 文件。

          總結(jié)

          Falco 是 Kubernetes 中非常流行的運行時安全工具,非常建議在所有環(huán)境中使用它 - 尤其是生產(chǎn)環(huán)境,我們還可以修改規(guī)則來滿足你的要求,關(guān)于 Falco 的規(guī)則后續(xù)再詳細介紹。


          訓(xùn)練營推薦





          ?點擊屏末?|??|?即刻學(xué)習(xí)

          瀏覽 125
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本香蕉色 | 国产爆菊视频 | 色94色欧美setu | 日韩欧美中文在线视频 | 我爱草逼网 |