目的

最近開始接觸資安議題,希望產出的線上服務能有資安保護,經過一段時間研究後,深覺資安這話題很廣泛也很深,很難一夕之間到位,因此需要分階段導入,在初期階段可以導入開源工具進行自動化檢測並產生報告,透過這些報告在進行人工修正。

資安類型

一. 弱點掃描

透過自動化掃描軟體工具偵測作業系統與軟體系統的弱點,可利用工具在較短的時間內檢查出漏洞,其內容包含WASP TOP 10等常見弱點檢測。

OWASP0(Open Web Application Security Project,開放網路軟體安全計畫)是一個開放社群、非營利性組織,全球目前有82個分會,主要目標是研議協助解決網路軟體安全之標準、工具與技術文件,長期致力於協助政府或企業瞭解並改善應用程式的安全性。美國聯邦貿易委員會(FTC)更強烈建議所有企業務必遵循OWASP所發佈的十大網路弱點防護守則,美國國防部亦將此守則列為最佳實務,就連國際信用卡資料安全技術PCI標準更將其列為必要元件。

OWASP Top10 開放網路軟體安全計畫十大弱點:

  • A01 權限控制失效
  • A02 加密機制失效
  • A03 注入式攻擊
  • A04 不安全設計
  • A05 安全設定缺陷
  • A06 危險或過舊的元件
  • A07 認證及驗證機制失效
  • A08 軟體及資料完整性失效
  • A10 伺服端請求偽造 (SSRF)

參考:

主機弱掃

  • 使用的加密演算法過於弱或者已經在檢測工具的黑名單
  • 異常服務開啟或者Port(例如:資料庫開放存取 database-open-access)
  • 作業系統版本過舊或者有風險

網頁弱掃

  • cookies 的設定錯誤
  • 軟體版本的資訊洩漏(例如:X-ASPNET-Version)
  • 使用已知存在漏洞的Javascript函式庫
  • 設定檔的資訊洩漏,或者開啟 debug 模式
  • 不當的組態設定

二. 原始碼掃描

透過一些開源靜態掃描工具進行掃描,依照已發現的可能造成風險的規則或者語法組合,找出可能有風險的程式碼片段。

三. 滲透測試

委託資安專家以駭客思維嘗試攻破系統,利用不同的弱點進行組合式攻擊,驗證任何可能突破網站防禦系統的入侵漏洞,最後提交一份滲透測試報告,完整的記錄整個測試過程與細節,其檢測報告內容之外不代表系統不存在風險的可能,依照各專家的習慣盡可能發現系統的風險,也可能因為新的攻擊手法出現導致新的漏洞風險的發生。

工具導入

初期以免費工具為主,當熟悉這些免費工具同時對資安知識有一定累積後,未來就可以評估一些商業工具。

以下是針對每種資安議題做工具導入:

SSH登入防護

  • 作用:

    • 紀錄登入失敗資訊
    • 登入失敗進行封鎖
  • 工具: Fail2ban

  • 教學:

  • 安裝:

    1
    apt-get install fail2ban -y
  • 設定:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # 複製 jail.conf 設定檔
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local


    # 編輯jail.local,新增下面資訊
    /etc/fail2ban/jail.local

    # 阻擋持續時間,10分鐘
    bantime = 10m

    # 若 10 分鐘內錯誤次數達 5 次,則進行阻擋
    # 此封鎖是對IP進行,所有有多個帳號(包含已登入的)都會被封鎖
    findtime = 10m
    maxretry = 5

  • 啟動

    1
    2
    3
    4
    5
    6
    # 開機自動啟動
    systemctl enable fail2ban

    #啟動服務
    systemctl start fail2ban

  • 日誌查看

    1
    tail -f /var/log/fail2ban.log

主機弱掃 - OpenVAS

OpenVAS 代表 Open Vulnerability Assessment System(開放式弱點評估系統)表示全面性網路安全掃描的工具鏈,包含使用者圖形介面聯合各種第三方(third-party)安全測驗程式。因此整個伺服器核心是由一組網路弱點測試(Network Vulnerability Tests (NVTs) )來偵測遠端系統安全上的問題。

OpenVAS 是 GNU GPL (GNU General Public License)的自由軟體。OpenVAS 來自 Nessus計劃,但 Nessus 變成一個專有產品,但 OpenVAS 自那時以來進展自身系統,雖然它的偵測程式部份仍沿用 Nessus 的寫法(NASL Nessus Attack Scripting Language )。

要了解資安QoD分數如何看,可以參考以下指標(出自ChatGPT):

  • 90-100:表示系統的安全性非常高,具有很強的防禦能力,並且已經採取了有效的安全措施。
  • 70-89:表示系統的安全性良好,但可能還存在一些弱點或漏洞,需要進一步加強安全措施。
  • 50-69:表示系統的安全性一般,可能存在較多的弱點或漏洞,需要優化安全措施。
  • 0-49:表示系統的安全性較低,存在嚴重的弱點或漏洞,需要立即加強安全措施。

資安QoD分數是一個綜合性的指標,可以幫助組織評估和改進系統的安全性。通常建議定期進行資安QoD評估,以確保系統的安全性能夠持續提升。

  • 相關操作畫面
    • 第一次掃描設定
    • 對自家服務器進行掃描
    • 弱點說明

主機弱掃 - Lynis

系統安全性稽核工具

  • 作用:
    • 檢查系統的各個方面,包括用戶、文件系統、網絡、服務、裝置等,並識別可能的風險和弱點。
    • 提供建議和修復建議,幫助系統管理員改進系統的安全性。
  • 工具:
  • 教學:
  • 安裝:
    1
    apt install -y lynis
  • 執行掃描
    1
    2
    3
    4
    lynis audit system

    # 更新當前系統已裝服務
    # lynis update check
  • 稽核分數
    Lynis 稽核分數的評比通常是從 0 到 100 分,分數越高表示系統的安全性越高,存在的風險越低。以下是一些關於 Lynis 稽核分數評比的一般指南(出自ChatGPT):
  • 90 - 100 分:表示系統的安全性非常高,已經實施了大部分的建議措施,風險非常低。
  • 80 - 89 分:系統的安全性良好,但可能仍有一些改進的空間,一些風險可能仍然存在。
  • 70 - 79 分:表示系統的安全性尚可,但可能存在較高的風險,可能需要進行進一步的調查和改進。
  • 60 - 69 分:系統的安全性較低,可能存在多個風險,需要採取措施來提高安全性。
  • 50 - 59 分:表示系統的安全性較差,存在嚴重的風險和問題,需要優先處理。
  • 0 - 49 分:系統的安全性嚴重不足,可能存在多個高風險漏洞,需要立即採取行動來修復。
  • 快速查看報告中的警告及建議訊息

    1
    cat /var/log/lynis.log |grep -e 'Warning' -e 'Suggestion'

  • 輸出html/pdf/png

    1. 安裝:

      1
      2
      3
      4
      cd /usr/bin
      sudo wget https://raw.githubusercontent.com/d4t4king/lynis-report-converter/master/lynis-report-converter.pl
      sudo chmod +x lynis-report-converter.pl

    2. 輸出報告:

      1
      2
      3
      lynis-report-converter.pl -o out.html
      lynis-report-converter.pl -p -o out.pdf
      lynis-report-converter.pl -E -o out.xlsx
    3. 資安問題排除方法

      • 輸出out.html檔案,裡面會有建議修改方法。若沒有建議修改方法則透過ChatGPT進行詢問。

網頁弱掃 - OWASP ZAP

其他知識

ISO 27001標準

出自ChatGPT