Node.js專案的DevSecOps流程
Node.js是一個開源的開發平臺,用於在伺服器端執行JavaScript程式碼。Node對於開發需要持久瀏覽器-伺服器連線的應用程式非常有用,通常用於實時應用程式,如聊天、社交等應用程式。
DevSecOps是開發、安全和運營團隊在整個專案生命週期中協同工作的一種方式。通常在現有的DevOps團隊和敏捷流程中加上安全性。
這種協作背後的觀念是在開發過程早期就將安全性納入其中。被稱為安全左移。當安全性移到開發過程的“左側”時,應用程式漏洞和缺陷會被更快地發現和解決。這樣可以提高產品版本的安全性,從而減少在生產中應用補丁和故障排除的需求。將DevSecOps應用於Node.js開發可以提高Node.js專案的效率和安全性。
常見Node.js攻擊媒介
以下是一些影響許多Node.js應用程式的網路威脅。
跨站點指令碼(XSS)
XSS攻擊注入經過操縱的客戶端JavaScript程式碼。如果Web應用程式不驗證從DNS輸入的主機名,那麼它們很容易受到XSS的攻擊。攻擊者可以使用表單輸入惡意指令碼並侵入系統。在某些情況下,在檔名中輸入程式碼可以在目標瀏覽器中觸發跨站點指令碼。
網路攻擊者可以使用檔案上傳表單來入侵系統。此漏洞有許多方式可導致系統受損。儘管現代前端框架通常可以緩解這種情況,但在某些情況下,將javascript放入檔名中可能會觸發使用者瀏覽器中的XSS,從而允許竊取會話ID。在其他情況下,攻擊者可能透過將檔案上傳到Node.js伺服器並利用路徑遍歷漏洞執行該檔案來獲取敏感的伺服器資訊。
程式碼注入
開發人員負責編寫安全的應用程式程式碼,但在使用開源元件時,不可能完全保證程式碼的安全性。程式碼注入攻擊包括將惡意程式碼注入目標系統並強制應用程式執行它,從而允許攻擊者訪問程式碼庫。資料驗證不足通常會導致程式碼注入漏洞。
預設Cookie名稱
Cookie透過將使用者操作儲存在底層基礎設施中(例如,記住使用者的選擇或喜好)來幫助Web應用程式識別特定使用者。
開發人員應使用Cookie的自定義名稱(而不是預設值),以防止攻擊者識別和定位 Cookie以及提取資料。
暴力攻擊
暴力攻擊通常會影響Node.js應用程式。攻擊者隨機生成數百萬個密碼,以找到一個有效的密碼登入應用程式。可以透過加強身份驗證機制、限制單個IP允許的登入嘗試次數以及加密儲存的密碼(使用bcrypt.js)來防止暴力攻擊。
跨站點資源偽造(CSRF)
這種型別的會話劫持迫使經過身份驗證的使用者在目標Web應用程式上執行惡意操作。攻擊者劫持合法使用者的會話以繞過安全控制並更改應用程式的狀態。CSRF可以強制使用者轉移資金或更改他們的帳戶詳細資訊,從而可能危及Web應用程式的安全性。
在DevSecOps中實現Node.js安全性
1、為開發人員新增安全性門檻
例如,在IDE中以及在每次提交時新增靜態應用程式安全測試(SAST)。
2、預生產環境中的自動安全測試
在CI/CD過程中,當Node.js應用程式部署到預生產環境時,應該有自動化測試來識別安全配置錯誤和與整合相關的漏洞。此時使用的工具如動態應用程式安全測試(DAST)。
3、執行時保護
沒有安全網來識別生產中的安全問題,DevSecOps流程是不完整的。這需要使用Web應用程式防火牆(WAF)和執行時應用自我保護(RASP)等工具,前者可以檢測和阻止惡意流量,後者可以主動響應攻擊。這兩個工具都向DevOps團隊提供反饋,幫助他們識別和修復底層應用程式中的漏洞。
透過實施這三個階段,您可以確定Node.js安全性不僅僅是一個臨時實踐,而是一個涉及開發人員、運營團隊和安全專家的正式、協調的過程。
來源:
https://devops.com/a-devsecops-process-for-node-js-projects/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2934572/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Node.js 專案部署流程(以阿里云為例)Node.js阿里
- 你需要知道的 DevSecOps 流程及工具dev
- vue專案流程Vue
- 如何構建「大型 Node.js 專案」的專案結構?Node.js
- 用於預防勒索軟體的 DevSecOps 流程dev
- DevSecOps 流程中常見名詞縮寫dev
- 建立Vue專案流程Vue
- beego建立專案流程Go
- Django專案搭建流程Django
- 如何快速部署Node.js專案Node.js
- Linux部署專案流程Linux
- Vue之專案大致流程Vue
- django_0:專案流程Django
- web專案開發流程Web
- 工程專案管理流程(轉)專案管理
- 使用 ndb 除錯你的 Node.js 專案除錯Node.js
- 拉鉤專案(一)--專案流程+資料提取
- 穿越流程-電話銷售專案中的流程管理(轉)
- flutter釋出專案到pub的流程Flutter
- Spring MVC——專案的開發流程SpringMVC
- 專案型組織的流程之舞
- 使用Node.js執行Cesium專案Node.js
- node.js搭模板流程.Node.js
- Tomcat部署web專案流程TomcatWeb
- 前端專案開發流程思考前端
- 軟體專案開發流程
- 產品專案UED流程圖流程圖
- Vue專案上線前的優化以及專案打包上線流程Vue優化
- 重構Vue專案的通用處理流程Vue
- JB的測試之旅-專案流程規範
- 一個專案完整的管理流程有哪些
- 專案開發的一般流程粗略
- 軟體專案管理中的“敏捷流程”(轉)專案管理敏捷
- 網站專案管理-專案模型及業務流程分析(轉)網站專案管理模型
- 使用 node.js 釋出部署 vue 專案Node.jsVue
- Node.js專案拆包工程化Node.js
- 如何在 Node.js 專案中使用 MQTTNode.jsMQQT
- Python常見專案部署流程Python