<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    【技術分享】K8S Runtime入侵檢測之Falco

    VSole2021-08-19 15:11:12

    介紹

    Falco 由 Sysdig 于 2016 年創建,是第一個作為孵化級項目加入 CNCF 的運行時安全項目。Falco可以對Linux系統調用行為進行監控,提供了lkm 內核模塊驅動和eBPF 驅動。Falco的主要功能如下:從內核運行時采集Linux系統調用,提供了一套強大的規則引擎,用于對Linux系統調用行為進行監控,當系統調用違反規則時,會觸發相應的告警。

    安裝文檔地址如下:

    https://falco.org/docs/getting-started/installation/

    curl -s https://falco.org/repo/falcosecurity-3672BA8F.asc | apt-key add -echo "deb https://download.falco.org/packages/deb stable main" | tee -a /etc/apt/sources.list.d/falcosecurity.list
    apt-get update -yapt-get -y install linux-headers-$(uname -r)apt-get install -y falco
    rpm --import https://falco.org/repo/falcosecurity-3672BA8F.asccurl -s -o /etc/yum.repos.d/falcosecurity.repo https://falco.org/repo/falcosecurity-rpm.repoyum -y install kernel-devel-$(uname -r)yum -y install falco
    

    Falco規則文件是包含三種類型元素的YAML文件:

    Rules 、Macros、Lists

    Rules就是生成告警的條件以及一下描述性輸出字符串。Macros 是可以在規則或者其他宏中重復使用的規則條件片段。Lists 類似Python 列表,定義了一個變量集合。

    Falco 使用了Sysdig, 在rule的 condition里面,任何 Sysdig 過濾器都可以在 Falco 中使用。

    參考如下:

    https://github.com/draios/sysdig/wiki/sysdig-user-guide#filtering
    

    這是一個rule的 condition條件示例,在容器內運行 bash shell 時發出警報:

    container.id != host and proc.name = bash

    第一個子句檢查事件是否發生在容器中(Sysdig 事件有一個container字段,該字段等于”host”事件是否發生在host主機上)。第二個子句檢查進程名稱是否為bash。

    舉個完整的列子

    - list: my_programs  items: [ls, cat,  bash]
    - macro: access_file  condition: evt.type=open
    - rule: program_accesses_file  desc: track whenever a set of programs opens a file  condition: proc.name in (my_programs) and (access_file)  output: a tracked program opened a file (user=%user.name command=%proc.cmdline file=%fd.name)  priority: INFO
    

    web應用進程java,php,apache,httpd,tomcat 中運行其他進程falco demo,圖片來自,字節沙龍

    web應用進程java,php,apache,httpd,tomcat 中讀取查看敏感文件falco demo,圖片來自,字節沙龍

    下面,我們修改falco 的配置,/etc/falco/falco.yaml

    json_output: truejson_include_output_property: truehttp_output:  enabled: true  url: "http://localhost:2801"
    

    啟動falco

    systemctl enable falco  &&  systemctl start falco
    

    https://github.com/falcosecurity/falcosidekick.git

    falcosidekick 是一個管道工具,接受 Falco的事件并將它們發送到不同的持久化工具中。我們使用falcosidekick把falco post 過來的數據寫入es ,也可以寫入kafka。我們也讀取kafka里面的東西完成告警, 也可以用 Prometheus 和falco-exporter 完成告警。如下圖。

    elasticsearch:   hostport: "http://10.10.116.177:9200"   index: "falco"   type: "event"   minimumpriority: ""   suffix: "daily"   mutualtls: false   checkcert: true   username: ""   password: ""
    kafka:  hostport: ""  topic: ""  # minimumpriority: "debug"
    

     

    批量部署&更新規則

    我們在生產環境中需要批量部署和更新規則需求,所以我們可以使用saltstack 或者 ansible 下發對應shell腳本來完成我們的需求。

    批量部署

    #!/bin/bash
    if [  -n "$(uname -a | grep Ubuntu)" ]; then       # 按實際情況修改        curl -s https://falco.org/repo/falcosecurity-3672BA8F.asc | apt-key add -        echo "deb https://download.falco.org/packages/deb stable main" | tee -a /etc/apt/sources.list.d/falcosecurity.list        apt-get update -y        apt-get install -y falcoelse        rpm --import https://falco.org/repo/falcosecurity-3672BA8F.asc        curl -s -o /etc/yum.repos.d/falcosecurity.repo https://falco.org/repo/falcosecurity-rpm.repo        yum -y install falcofi
    systemctl enable falco && systemctl start falco
    

    批量更新規則

    #!/bin/bash
    BDATE=`date +%Y%m%d%H%M%S`URL=http://8.8.8.8:8888/falco_update.tar.gz
    if [ -d /etc/falco_bak ]then        cp -r /etc/falco  /etc/falco_bak/${BDATE}        rm -rf /etc/falco_bak/falco_update.tar.gzelse        mkdir /etc/falco_bak        cp -r /etc/falco  /etc/falco_bak/${BDATE}fi
    curl -o /etc/falco_bak/falco_update.tar.gz ${URL}  && rm -rf /etc/falcotar -xzvf /etc/falco_bak/falco_update.tar.gz -C /etc && systemctl restart falco
    

    把規則falco_update.tar.gz,提前準備好,使用saltstack 推下去即可.saltstack demo 如下:

    [root@localhost ~]$ cat /srv/salt/top.slsbase:  '*':    - exec_shell_install
    [root@localhost ~]$ cat /srv/salt/exec_shell_install.sls
    exec_shell_install:  cmd.script:    - source: salt://falco_install.sh    - user: root
    [root@localhost ~]$ salt '*' state.highstate
    

    也可以使用ansible 推下去即可.ansible demo 如下:

    [root@server81 work]# ansible servers -m shell -a "mkdir -p /var/falco_sh"
    [root@server81 ansible]# ansible servers -m copy -a "src=/root/ansible/falco_install.sh  dest=/var/falco_sh/falco_install.sh mode=0755"172.16.5.193 | CHANGED => {
    [root@server81 ansible]# ansible servers -m shell -a "/var/falco_sh/falco_install.sh"172.16.5.193 | CHANGED | rc=0 >>
    

    可視化

    Kibana是一個開源的分析與可視化平臺,設計出來用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的數據。Kibana與Elasticsearch的交互方式是各種不同的圖表、表格、地圖等,直觀的展示數據,從而達到高級的數據分析與可視化的目的。

    Elasticsearch、Logstash和Kibana這三個技術就是我們常說的ELK技術棧,可以說這三個技術的組合是大數據領域中一個很巧妙的設計。一種很典型的MVC思想,模型持久層,視圖層和控制層。Logstash擔任控制層的角色,負責搜集和過濾數據。Elasticsearch擔任數據持久層的角色,負責儲存數據。而我們這章的主題Kibana擔任視圖層角色,擁有各種維度的查詢和分析,并使用圖形化的界面展示存放在Elasticsearch中的數據。

    因為我們使用了, es 推薦使用kibana 做一下可視化, 也可以使用grafana 做可視化。demo 如下圖:
    
    入侵檢測技術runtime
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    隨著容器、微服務等新技術日新月異,開源軟件成為業界主流形態,軟件行業快速發展。但同時,軟件供應鏈也越來越趨于復雜化和多樣化,軟件供應鏈安全風險不斷加劇,針對軟件供應鏈薄弱環節的網絡攻擊隨之增加,軟件供應鏈成為影響軟件安全的關鍵因素之一。近年來,全球針對軟件供應鏈的安全事件頻發,影響巨大,軟件供應鏈安全已然成為一個全球性問題。全面、高效地保障軟件供應鏈的安全對于我國軟件行業發展、數字化進程推進具有重
    由中國信通院指導、懸鏡安全主辦的中國首屆DevSecOps敏捷安全大會(DSO 2021)現場,《軟件供應鏈安全白皮書(2021)》正式發布。
    Falco 由 Sysdig 于 2016 年創建,是第一個作為孵化級項目加入 CNCF 的運行時安全項目。
    Lodash 是一個 JavaScript 庫,包含簡化字符串、數字、數組、函數和對象編程的工具,可以幫助程序員更有效地編寫和維護 JavaScript 代碼。并且是一個流行的 npm 庫,僅在GitHub 上就有超過 400 萬個項目使用,Lodash的普及率非常高,每月的下載量超過 8000 萬次。但是這個庫中有幾個嚴重的原型污染漏洞。
    最近測容器安全,才發現部署的容器云平臺和容器應用幾乎在裸奔,每個鏡像和容器都有各種各樣的漏洞,平臺本身也不少問題,真是不測不知道,一測嚇一跳。容器本身就是弱安全的,容易帶來越權逃逸等問題,同時容器應用研發人員對容器技術又缺乏了解,缺乏相應的安全意識和安全知識,這就帶來了比較嚴重的潛在的安全問題。
    WebShell基礎詳解
    2022-01-07 06:47:08
    顧名思義,“web”的含義是顯然需要服務器開放web服務,“shell”的含義是取得對服務器某種程度上操作權限。webshell常常被稱為入侵者通過網站端口對網站服務器的某種程度上操作的權限。由于webshell其大多是以動態腳本的形式出現,也有人稱之為網站的后門工具。
    顧名思義,“web”的含義是顯然需要服務器開放web服務,“shell”的含義是取得對服務器某種程度上操作權限。webshell常常被稱為入侵者通過網站端口對網站服務器的某種程度上操作的權限。由于webshell其大多是以動態腳本的形式出現,也有人稱之為網站的后門工具。
    AI安全論文第17篇介紹Overview撰寫方式及頂會精句摘抄
    7月25日,2021安全創客匯首場明星賽(上半場)在北京舉行,共有16家網絡安全初創項目帶著具有創新性以及特
    關于漏洞的基礎知識
    2022-07-20 09:44:23
    黑客可以通過修改事件完成的順序來改變應用的行為。所以,進行有效的驗證是安全處理文件的重要保證。這種類型的漏洞有可能是編程人員在編寫程序時,因為程序的邏輯設計不合理或者錯誤而造成的程序邏輯漏洞。這種類型的漏洞最典型的是緩沖區溢出漏洞,它也是被黑客利用得最多的一種類型的漏洞。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类