完整的資安測試為什麼還是被攻擊? Known Vulnerability

完整的資安測試為什麼還是被攻擊? Known Vulnerability

這篇文章主要說明當應用系統已經做完完整的測試與安全設計評審後,為什麼還會遭受攻擊呢?

其中一個很常見的原因也是常被忽略的,就是使用第三方的工具或程式庫。

這些第三方的程式庫沒有適當的更新而導致資訊安全風險。

加上這些資訊安全風險都是公開的資訊,駭客按圖索驥透過這個方式攻擊。

常見的像是 OpenSSL,Apache or PHP 等。

那麼到底有什麼方式可以得知目前我使用的第三方工具或是程式庫是否有重大資安風險呢?

如果有,駭客又是透過什麼方式攻擊?

業界又是怎樣對於”資安風險” 評分出一個客觀的指標呢? 重大風險還是中度風險?

當使用的第三方工具與程式庫有上百個怎麼有效率的查詢呢?

什麼是 CVE?

Common Vulnerability and Exploit 它提供所有第三方工具或是函式庫的已知弱點。可以利用 NVD 資料庫來做搜尋。

https://web.nvd.nist.gov/view/vuln/search?

https://cve.mitre.org/about/faqs.html

另外 CVE 也提供 XML 的方式下載。這種方式方便企業內部如果要查詢 CVE 資料庫使用。

http://static.nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-modified.xml

CVE 評分方式

http://www.first.org/cvss/cvss-v30-specification-v1.7.pdf

Rating CVSS Score (分數越高嚴重程度越大)

  • None 0.0
  • Low 0.1 – 3.9
  • Medium 4.0 – 6.9
  • High 7.0 – 8.9
  • Critical 9.0 – 10.0

CVE 有一定評分方式的規則,如下圖所示。

CVSS Metrics

當應用軟體用到許多第三方工具

當整個應用系統用到許多第三方工具時,要一個一個去查就很費時,

有沒有什麼方式更有效率可以掃描出所有的這些第三方工具呢?

 

方法一:利用 DependencyCheck

http://jeremylong.github.io/DependencyCheck/index.html

掃描結果報告範例: http://jeremylong.github.io/DependencyCheck/general/SampleReport.html

這個工具的好處是可以自動掃描 Java 相關的 Jar 檔案,並且對應相關的 CVE。產生測試報告結果

缺點是只能針對 Java JAr 處理,很多情況下應用系統可能會包含很多不同的模組。不只有 Java JAR。

 

如何列出所使用的第三方工具?

 

因此如何列出所有使用的第三方工具變成一個困難的課題。

如果只有一個專案一次性時間投入,但是如果公司為軟體發開單位,

不斷有上百個專案,要如何有效率的列出每一個專案的第三方工具就變得重要。

這邊筆者分別針對不同平台的做法說明

如何列出 Windows 第三方工具

我們主要透過一個工具 SigCheck 幫助我們列出所有檔案的屬性。如下圖所示。

File Properties

SigCheck 可以下載處  Download Sigcheck (135 KB)

下載後於 command console 執行便可列出所有檔案的屬性。

sigCheck   -c   -a

再根據該檔案屬性反查 CVE

Ubuntu 如何列出相關第三方工具?

Ubuntu 主要透過 DPKG的方式來做查詢。利用這個指令我們可以將相關的資訊輸出至 packagelist

$dpkg-query -f=’${Package}\t${Version}\t${Status}\t${Homepage}\n’ -W “*” > packagelist

如果該第三方工具遵循 copy right 規則的話,就可以進一步將結果解析得知每一個工具的授權模式。

http://www.debian.org/doc/packaging-manuals/copyright-format/1.0

CentOS 如何列出相關第三方工具?

CentOS 主要透過 RPM來做查詢。透過下列指令就可以取得所有安裝的 Package list

$rpm -qai > packagelist

限制:Ubuntu 透過 dpkg 。而CentOS 透過 RPM。缺點是如果該第三方工具不是這樣的安裝方式就無法透過這個方式取得。

Leave a Reply

Your email address will not be published. Required fields are marked *