【程式開發筆記】輕鬆了解網站安全10大風險,開放網路軟體安全計畫 (OWASP TOP 10) - 大漠國渡

前言

近日開發新的系統,即將要系統上線,程式碼需要做系統安全弱點掃描,確保上線後,不會輕易的被駭客攻破,在此期間做了許多的功課,學習如何透過工具掃描,以及排除問題,因此想再做筆記,並分享給有需要的人。

歷程

第一步,我了解先 OWASP TOP 10 是甚麼?

第二步,我使用開源軟體 SonarQube 進行源碼檢測,找出系統是否有符合 OWASP TOP 10 項目,以及其它弱點

第三步,參考 SonarQube 檢測後,提供的修正方式,進行修正。

 

開放網路軟體安全計畫

開放網路軟體安全計畫,簡稱 OWASP Open Web Application Security Project),是一個開放社群、非營利性組織提出的計畫。

OWASP TOP 10 為其中一項計劃,此計畫會統計駭客每 3 - 5 年中最常使用的攻擊手法前 10 名,因此只要避開前 10 名,系統相對的就更安全。

攻擊手法前 10 名平均 3 - 5 年會更新一次,也就是說可能會有新的攻擊方式,需要開發者持續關注。

接下來將以 2021 年發布的 OWASP TOP 10 進行說明。

OWASP TOP 10
 

一、十大網路應用系統安全弱點 (OWASP TOP 10)

(一)、A1 Broken Access Control (權限控制失效)

是指使用者權限管理失當,比方說系統一般使用者,不應該看到系統者管理的相關功能,或者是沒有任何權限的管理。

若是管理失當,會造成駭客僅需要最低的權限,就可以修改系統或是取得機密的資料。

權限控制失效 - Broken Access Control
每個角色只可看見自己權限內的資料


權限控制失效 - Broken Access Control
所有角色都可以看到同樣的內容、以及管理者的內容(如個資)


(二)、A2 Cryptographic Failures (加密機制失效)

對於網站來說是指資料傳輸未經加密,簡單說就是未使用 TLS 加密連線

駭客擷取封包後,無須再經過破解,就可以得知所有資料 (個資、密碼),非常危險。

加密機制失效 - Cryptographic Failures

(三)、A3 Injection (注入式攻擊)

駭客可以透過特定資料形式改變系統指令,造成系統無法正常執行,甚至可能洩漏重要資訊。

注入式攻擊 - Injection

(四)、A4 Insecure Design (不安全設計)

是指設計者撰寫程式時邏輯錯誤,可能造成使用者可以繞過系統檢核,以不合格的條件「申請資料」或「取得優惠」...等。 

也有可能系統主動將資敏資料向外公開...等。

不安全設計 - Insecure Design


(五)、A5 Security Misconfiguration (安全設定缺陷)

是指安全性上設定不良,比方說密碼長度、複雜度皆未要求,使用者可以以非常簡短的密碼申請帳號(如:1234),對駭客來說可以非常輕易地竊取該帳號資料。

安全設定缺陷 - Security Misconfiguration

(六)、A6 Vulnerable and Outdated Components (危險或過舊的元件)

開發程式不會所有的程式都是自己撰寫的,會使用他人開發的套件貨元件,如果是過舊的元件可能有漏洞,但在新版本的套件或元件上是有修復的,所以建議不要使用過舊的套件或元件

以 java 伺服器 tomcat 來說,低版本可能就不支援 TSL 1.0 以上的加密演算法,需要更新至更新的版本來會支援。 

而有些套件或元件,可能是駭客設計分享的,裡面可能就會埋藏漏洞,使用後就會提高風險。

危險或過舊的元件 - Vulnerable and Outdated Components

(七)、A7 Identification and Authentication Failures (認證及驗證機制失效)

為了資訊安全,登入系統時,除了帳號密碼驗證外,可能還會做手機驗證。

驗證失效可能就是驗證時,會請登入者隨意輸入電話號碼,而不是使用帳號資料上的電話號碼手機驗證將會變得沒有任何意義,任何手機都可以通過第二層驗證

認證及驗證機制失效 - Identification and Authentication Failures


(八)、A8 Software and Data Integrity Failures (軟體及資料完整性失效)

如果你設計的系統裡面留了一個後門功能,那你的整的系統其實就暴露了相當大的風險,是不完整的,就算其他部分驗證機制在強大,仍是不安全的。

軟體及資料完整性失效 - Software and Data Integrity Failures

(九)、A9 Security Logging and Monitoring Failures (資安記錄及監控失效)

是指系統有做資安記錄及監控,但是沒有人是察看監控及資料紀錄,就算系統有發出警示,也沒有人即時處理或立即的防範,讓駭客可以持續攻破,意味著資安記錄及監控失效

比方攝影機有拍攝到你家的門鎖正在被小偷嚐試解鎖,智能監視系統有通知,但接受通知的手機是沒有電的,所以你永遠也不會知道家裡再被撬鎖,就算有監視系統也是無效的,而小偷可以持續的嚐試,直至解鎖成功。

資安記錄及監控失效 - Security Logging and Monitoring Failures

(十)、A10 Server-Side Request Forgery (SSRF) (伺服端請求偽造)

假設你的系統架構中,有區分內網、外網,其他外網的部分對外防護相當強大,但是外網連線內網的部分,沒有設置防護,駭客是有辦法假裝是外網伺服器發起的請求攻擊內網伺服器的。

比方說一間公司,對於外部人員要求,建立指紋、虹膜辨識,才可進入公司內部,但是公司內每間辨公室,只需要門禁卡即可通行,那外部人員只要有機會取得門禁卡(偽造請求),即可通行各地辦公室。

伺服端請求偽造 - Server-Side Request Forgery (SSRF)

相關文章

【程式開發筆記】保證軟體品質一定要做程式碼檢測 (上) | 開源程式碼檢測平台 (SonarQube) - 大漠國渡  

 

參考資料

星巴哥技術專欄 - 熱騰騰的漏洞排行榜 2021 OWASP TOP 10(作者:Hannah Lin)

果核數位 - 產業訊息 - OWASP Top 10 2021 十大常見的弱點與風險,如何做好企業資防護?

瑞陽資訊 -e論壇 -EIS48-48-開啟企業競速與傳承之-OWASP Top10 開放網路軟體安全計畫十大弱點

精選美景 - 周邊商品 (提供客製化服務)

大漠有設計簡單的程式碼,讓大家可以體驗一下寫程式的感覺,以及呈現結果,並將他製作成周邊商品,如 : 藍芽喇叭、拼圖、鑰匙圈、筆記本、滑鼠、滑鼠墊、鍵盤...等商品

商品類別涉及了電子產品、居家用品、杯子餐廚、服飾、旅行用品、辦公用品...等

有興趣的人可以到 大漠國渡 - 商品小舖 看看喔~  

我的優惠碼 K0999975,可享受 KUSDOM 全場 9 折優惠。 

大漠國渡 - 商品小舖 (KUSDOM)

精選授權圖片

如果您喜歡大漠國渡「攝影照片」的話,可以在 大漠國渡 Shutterstock 的作品集中購買喔 ~

Shutterstock 授權表
如果你也有攝影做作品要分享的話,也歡迎你加入 Shutterstock contributor

如果您喜歡我的內容,可以這樣贊助大漠國渡 (支持創作)

如果您喜歡我的內容,可以透過以下方式贊助大漠國渡,支持創作

Paypal : 小額贊助 (可刷信用卡)

悠游付 (EasyWallet APP) : 小額贊助

小額贊助 - Paypal小額贊助 - 悠游付

留言