Certified DevSecOps Professional (CDP) 認證 – 課程與考試心得分享

其實這幾年在網路上有看到國外鄉民有詢問是否有 DevSecOps 相關的課程或認證,而我自己也是有同樣的疑問與需求。後來找到了 DevSecOps Practical,算是評價尚可,官方課綱看起也不錯的。當然並不是只有這一個選擇,仍然有其他選擇,不過大概看下來之後,算是看起來內容與價格最吸引我的。

今年度因為個人職涯規劃考量,我在這個月報名了 Certified DevSecOps Professional (CDP),並且已經順利通過取得認證。因為這張認證目前看來在台灣相當之冷門呢,所以算是滿迫不及待想與大家分享。在這篇文章我會詳細介紹該認證,以及分享我的心得與想法。

全文分成以下幾個段落:

Certified DevSecOps Professional (CDP) 介紹

CDP 是由 Practical DevSecOps (PDSO) 所推出的一門培訓和認證計畫,該認證也是 PSDO 眾多的培訓與認證當中最受歡迎的一門。PSDO 專門提供與 SDLC、DevSecOps、AppSec 相關的培訓以及認證,通過實踐培訓提升你在特定安全領域的專業知識和技術。

Courses of Practical DevSecOps (PDSO)

(圖片來源: https://www.practical-devsecops.com/ )

Certified DevSecOps Professional (CDP) 則是一門幫助你了解 DevSecOps 的課程,在課程當中你會學習到 DevOps 及 DevSecOps 的基礎知識,以及一些進階的觀念。更重要的是這是一門實作的課程,課程當中提供了豐富的 Lab,可以確實的指導你如何在 CI/CD 管道的各個階段建立不同的安全測試,考試同樣也是以上機實作的方式進行。如果你對DevSecOps 有初步理論知識,卻沒有任何實作經驗,這張認證可以很有效的幫助你對於 DevSecOps 的實踐了解。

在 CDP 課程中,你將學習到:

  • DevSecOps 流程、工具和技術。
  • DevOps 管道中的主要組件(components)。
  • 如何將 SCA、SAST、DAST 安全測試整合進 CI/CD 管道。
  • 如何透過 IaC 以及 Compliance as Code 的好處與實踐。
  • 如何評估 DevSecOps 成熟度。
  • 理解和實現 DevSecOps 的原則、價值觀和實作。

另外必須提一下,除了 Certified DevSecOps Professional (CDP) 以外,PDSO 還有另一門培訓認證是 Certified DevSecOps Expert (CDE)。官方的學習路徑是建議上完 CDP 之後,才上 CDE。如果你到 CDE 的介紹頁面查看,也會發現先決條件包含了「必須擁有 CDP 認證」,從課程大綱上也看得出 CDE 內容更加詳細與深入一些。

我是於 2023年 7/31 報名課程的,課程 Lab 為期 60 天,包含一次考試,費用為 899 美元。
關於費用與課程涵蓋內容,詳細可以隨時參考官方的價格頁面

Certified DevSecOps Professional (CDP) 課程

Certified DevSecOps Professional (CDP)

(圖片來源: https://www.practical-devsecops.com/certified-devsecops-professional/ )

這邊來提一下課程內容,該課程總共有 9 個章節。

  • Chapter 1: An Introduction to the Basics
    介紹了解 DevSecOps 前所需的基礎知識,從 SDLC 與傳統瀑布式開發開始說明,談到敏捷開發與 DevOps 的好處與原則。介紹甚麼是 CI/CD 持續整合與持續部署,如果以正確的方式了解 DevOps。
  • Chapter 2: Introduction to the Tools of the trade
    介紹在 CI/CD 管道當中常見的平台與工具,同時說明如何有效利用 Docker 與 Ansible 等工具。
  • Chapter 3: Secure SDLC and CI/CD pipeline
    介紹 Secure SDLC 的知識與概念,也包含了在開發流程當中所需要的各項安全測試。並且解釋 DevSecOps 成熟度模型(DSOMM)。並且開始著手進行 CI/CD 管道的建立。
  • Chapter 4: Software Component Analysis (SCA) in CI/CD pipeline
    介紹軟體組成分析 SCA 工具,解釋為何需要 SCA,如何利用 SCA 進行安全檢測,如何正確選用 SCA 工具,以及如何實作將 SCA 整合進入 CI/CD 管道當中。
  • Chapter 5: SAST (Static Analysis) in CI/CD pipeline
    介紹靜態應用程式安全分析 SAST 工具,解釋為何需要 SAST,如何利用 SAST 進行安全檢測,如何正確選用 SAST 工具,以及如何實作將 SAST 整合進入 CI/CD 管道當中。
  • Chapter 6: DAST (Dynamic Analysis) in CI/CD pipeline
    介紹動態應用程式安全分析 DAST 工具,解釋為何需要 DAST,如何利用 DAST 進行安全檢測,如何正確選用 DAST 工具,以及如何實作將 DAST 整合進入 CI/CD 管道當中。
  • Chapter 7: Infrastructure as Code and Its Security
    介紹甚麼是基礎設施即代碼 Infrastructure as Code(IaC),並討論使用 IaC 的好處。如何利用 Ansible 實踐 IaC。
  • Chapter 8: Compliance as code
    介紹甚麼是合規即代碼 Compliance as Code(IaC),並討論使用 CaC 的好處。如何利用 Inspec 實踐 CaC。
  • Chapter 9: Vulnerability Management with custom tools
    介紹漏洞管理與漏洞管理平台。

以上每個章節的內容簡介,有幾個看起來怎麼很像複製貼上,因為描述就真的是滿像的😂。課程包含影片、PDF教材、以及 Lab 實驗室。很大的重點其實不在於影片內容,而是在於如何實作,每個章節都有提供 Lab 可以實作練習,幫助你更具體了解該如何實踐這些概念。Lab 的部分會有 Mandatory 以及 Optional,你必須完成所有的 mandatory 才會取得 CDP 結業證書。請注意,我提到的完成課程會有一張結業證書,這個與通過考試所取得的認證,兩張是不同的。

稍微跟大家分享一下,每個 Lab 旁邊會有一個時間,例如 30 Minutes、45 Minutes,不過這個應該只是機器每次啟動後的存活時間或是建議時間,實際上通常是不需要花這麼久的時間完成該 Lab。我自己購完買課程的第一天其實就有先統計一下總共有多少 Lab。我第一天看到的大概是 Mandatory 共 50 個左右,Optional 共 100 個左右。不過就在我買完課程的第二天,他們就進行了一次大更新,Lab 的數量直接新增了一大堆。我自己是完成了所有的 Mandatory 與 Optional 的 Lab。關於我完成課程所花的時間以及想法,我會在下一個部分說明。

還有要補充說明一下,報名完成課程之後,會被加入到一個 Mattermost 的頻道中(類似 Slcak 的東西,實際上他們早期好像就是使用 Slack)。有任何的問題都可以在 Mattermost 當中提出,工作人員會快速與熱心地協助或回答你。

Certified DevSecOps Professional (CDP) 課程心得

這邊我想從我個人的角度,去分享我自己對於課程的心得。有件事情必須說在前頭,我自己在參加該課程認證前,是已經對於 DevSecOps 有相當程度的熟悉與了解,並且也有實務經驗的。但我會盡量以客觀的方式來評論。

我自己是花了五天的時間(下班後的時間),完成了所有的課程以及 Lab,接著在第六天參加考試。我花費的時間遠遠比我預期的還少,其中一個很大的原因是不少內容我已經會了,所以我並沒有太認真跟著實作,就是快速地翻閱帶過。尤其課程當中有一些 Lab 是非常新手導向的,主要是 Linux 基礎指令和 Docker 基礎知識和操作。

關於課程,首先要讚許 CDP 的 Lab 非常方便好用,而且速度算快也很穩定,也只需要有瀏覽器就可以進行操作。還有 Lab 是不斷在更新的,這是好事。我在五天的學習期間,就發生了一次的更新。過去看網路上的其他人的心得,也看到有人提到 Lab 更新。所以我相信他們是有持續在更新 Lab 與教材。

在教材與內容方面,Lab 的手把手實作教學很詳細,可以讓新手也能輕鬆理解並跟著實踐。課程內容也算是豐富的,其實是涵蓋了不少的平台與安全工具的整合教學,例如針對 SCA 與 SAST 的工具,會介紹這類型不同的工具。而課程雖然都以 Gitlab 作為 Mandatory,但 Optional 幾乎都會包含要如何在 Jenkins、Github Actions、CircleCI 不同平台實踐。

但是呢,我認為課程內容過於簡單,我希望在CI/CD管道方面他們能夠更加提升內容的「深度」,而非工具的多樣性。並且除了安全工具的整合與使用之外,我認為整個 DevSecOps 的內容應該更加廣泛,但 CDP 的內容稍微顯得有些不足,例如對於各種檢測報告整理的處理,還有從最開頭的環境建置,部署時需要注意的安全問題,甚至如果面臨到環境需要使用 Docker、Java、Python,要以甚麼樣的方式建置,才能盡可能最安全的建置。除了 CI/CD 建置以外當然也有很多是 DevSecOps 的範疇,不過的確 DevSecOps 的範圍可能太廣,如果硬要把容器、雲端、微服務架構也都塞進來可能又太超過。我自己也沒上過 CDE 的課程,也許定位上上述我提到的內容也都是被歸類在 CDE 當中也有可能。

Certified DevSecOps Professional (CDP) 考試

CDP 的考試是上機實作的考試,考試時間是 12 小時,12 小時考試時間結束後,需要在 24 小時內提交報告。CDP 雖然是上機考試,但是過程當中是沒有人監控的,不像是 OSCP 或是 CPENT 那樣需要開啟攝影機全程監控,心理壓力比較沒那麼大🤣。然後考試是開書考,意思是你可以查看你的筆記,或是搜尋網路上的任何資源,但是請注意,CDP的課程Lab內容在你的考試期間是完全禁止訪問的,在考試期間他們會暫時關閉你的課程 Lab。這非常重要!所以請記得做好筆記。

關於考試的其他提醒:

  • 我並不打算洩漏任何考試內容。但我必須提醒,我認為課程 Lab 內容很簡單,但考試非常有挑戰性!請確保你有足夠的努力,對課程每個 Mandatory 內容有正確理解,並知道該如何實踐。
  • 考試題目會有 5 個挑戰,每個挑戰當中都會有一些子任務。請仔細閱讀每一項任務,確保自已正確的理解題目,然後嘗試實踐它們。
  • 考試過程請記得保留所有需要的設定檔內容以及輸出結果內容,也記得持續截圖每一個所需要的畫面。
  • 考試結束後,你有 24 小時的時間可以撰寫報告並上傳 ZIP 檔案。ZIP 檔案內需要包含 PDF 報告,完成考試題目所需要的檔案以及截圖。
  • 考試的結果會在考完試後的約三天通知,考試通過分數是 80 points (80%)
  • 考試相關的內容,其實官方都會寄信在文件中說明清楚。包含考試注意事項,需要上傳哪些東西,要以甚麼樣的形式與格式,算是很貼心方便的。

考試是需要事先預約的,然後考試時間只能預約在假日,也就是周六或是周日。我是從週六下午一點開始考試的,中途有出門吃晚餐還有散散步,然後跟洗澡,其餘時間都在努力完成考試的題目。過程還算順利,有遇到一些小困難,花了一點時間處理,但大方向都能成功順利建置。一直到晚上 11 點,覺得好像沒有甚麼可以補充或是可以截圖的,就去睡覺了。隔天中午 12 點開始斷斷續續撰寫報告,到下午四點完成報告並提交。

結論

不考慮預算和CP值的情下,我是非常推薦這門課程與認證,主要是因為它是一門強調 Hands-on 的課程與考試,課程內容包含許多手把手詳細教學的 Lab,而且考試是上機實戰的考試,很有資格代表 DevSecOps 的技術認證。前面我雖然有提到認為課程內容與 Lab 是有點簡單的,但考試仍然是有挑戰性,也具有技術鑑別度的。只有真的了解 DevSecOps 技術,能夠具有能力將 SCA、SAST、DAST 整合進入 CI/CD 管道、了解 IaC 和 Compliance as Code 的人員才能通過考試。

當然 DevSecOps 並不是只有技術,不是說文化、理論或管理不重要,我想每一項都是重要的,有著不同的重要性。但如果你想學習、或是證明自己具有部分 DevSecOps 的技術能力,這張認證確實是可以作為一個判斷的方法。

這張認證我在報名之前,其實看過國外的一些分享後,我預期是認證對我不會太困難,或許一個月內可以輕鬆完成,但實際上卻比我預料得更簡單一些,我五天就完成所有的課程和 Lab,接著第六天考試。考試內容的確是有挑戰性的,比我預期的困難,但我看到題目的時候其實還是有自信可以通過,過程是有遇到不少障礙,而且總共也花了我 10 個小時的時間完成。

對於可能想準備報名這張認證的人,以下是我的一些關於考試所需準備時間的看法。

  • 對於會使用 Docker、Ansible 等工具,有過 DevOps 建置 CI/CD 的資安人員來說,應該會是簡單的,一個月內應該可以輕鬆完成準備。
  • 對於有一些資安經驗、知識與技術,不管是紅隊、藍隊,應用程式安全或是滲透測試。如果過去沒有接觸過 DevOps 或 CI/CD 的人員來說,我認為會稍微比較有挑戰性,一個月也是有機會可以完成,只是可能稍微辛苦一些。(我並不是想表達說 DevOps 資安還難,請不要錯誤解讀,而是這張認證的核心範疇在於 CI/CD。)
  • 對於沒有資安技術經驗,也不熟悉 CI/CD 管道的小白,但是具備基本資安知識,也熟悉 Linux 與 Docker 操作的人員,可能需要辛苦準備一到兩個月。
  • 對於只會基礎的 Linux 指令的人員,雖然官方有提到也可以參加,Lab 確實也從很基本開始教學。但我認為這樣需要花費兩個月或更多的時間辛苦準備,才有機率通過考試。

實際上到底需要花多少時間準備,報名完成後在練習 Lab 時我覺得大家自己應該心裡就會有個底了。課程 Lab 的最後一提,會是考試模擬測驗,也可以透過模擬考來評估自己是否已經做好準備。

備註一下:以上提到的時間,都是指在正常工作情況下,利用下班與假日時間準備。可以自行轉換斟酌。

補充

前面有提及,我自己在參加該課程認證前,是已經對於 DevSecOps 有一定程度熟悉,並且也有實務經驗的。
實際上我這兩年也有在許多公開場合分享 DevSecOps 的內容,包含:

Agile Summit-不斷被延後的安全需求,如何於敏捷中落實資安

DevOpsDays Taipei-如何保護好你的CI/CD管道安全性

Infosec Taiwan-如何有效評估組織內DevSecOps成熟度

devfest 2022 taipei-DevSecOps導入及成熟度模型

CYBERSEC 2023-DevSecOps 實踐與挑戰

也歡迎大家追蹤我的 Youtube 以及 Facebook

最後曬個 Certified DevSecOps Professional (CDP) 認證 😎

Certified DevSecOps Professional (CDP)

發佈留言