整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          如何將極狐GitLab 漏洞報告導出為 HTML 或

          如何將極狐GitLab 漏洞報告導出為 HTML 或 PDF 格式或導出到 Jira

          下文章來源于極狐GitLab ,作者極小狐

          極狐GitLab.

          極狐GitLab 一體化安全 DevOps 平臺,幫助用戶實現開發、安全和運維的高效協同。極狐GitLab 由極狐信息技術(湖北)有限公司獨立運營,公司投資方包括GitLab Inc.,紅杉寬帶,以及高成資本等。官網: GitLab.cn

          點擊藍字 關注我們

          極狐GitLab 的漏洞報告功能可以讓開發人員在統一的平臺上面管理代碼,對其進行安全掃描、管理漏洞報告并修復漏洞。但有些團隊更喜歡使用類似 Jira 的單獨工具來管理他們的安全漏洞。他們也可能需要以易于理解的格式向領導層展示漏洞報告。


          極狐GitLab 的漏洞報告可以通過一鍵點擊的方式導出為 CSV,方便在其他工具中進行分析。但在某些情況下,一個簡單的 PDF 報告就足夠了。


          使用極狐GitLab 的 API,可以輕松查詢漏洞信息并將報告詳細信息發送到其他地方,比如 PDF 文件或 Jira 項目。在本博客中,我們將向您展示如何將 GitLab 的漏洞報告導出 HTML/PDF 格式,或直接導出到 Jira。


          請注意,本教程中使用的腳本僅供參考,并不受極狐GitLab 支持。


          導出為 HTML/PDF


          要將漏洞報告導出為 HTML 或 PDF,可參考 custom-vulnerability-reporting 項目1



          該項目包含一個腳本,用于查詢項目的漏洞報告,然后基于漏洞報告的數據生成HTML文件。項目中配置的流水線會運行此腳本,并將HTML文件轉換為PDF格式。


          要使用導出工具,首先需要對該項目進行 Fork(派生)2 或導入到新項目3(選擇“通過URL導入存儲庫”,并粘貼原始項目的 git URL)。



          按照自述文件 README.MD 的說明設置 CI/CD 變量。您需要以下極狐GitLab 信息:

          • 具有訪問漏洞信息權限的 GitLab 項目/個人訪問令牌(具有 read_api 范圍);
          • 極狐GitLab GraphQL API URL(對于 SaaS,為 https://jihulab.com/api/graphql);
          • 極狐GitLab 項目路徑(例如 smathur/custom-vulnerability-reporting)。


          在設置必需的 CI/CD 變量之后,從項目的流水線頁面手動運行一個流水線。完成流水線后,可以訪問 build_report(用于 HTML)或 pdf_conversion 作業,在側邊欄的“任務制品”下選擇“下載”或“瀏覽”來查看您的文件導出。至此,您就獲得了一個可共享且易于閱讀的項目漏洞的 pdf 報告。



          將漏洞信息導出到 Jira


          極狐GitLab 允許您通過 UI 使用我們的 Jira 集成? 功能從漏洞中創建 Jira 工單。盡管您可以為需要處理的漏洞單獨執行此操作,但有時團隊需要批量創建 Jira 工單來處理所有的漏洞。我們可以利用極狐GitLab 和 Jira 的 API 來實現這一點。

          開始操作之前,請參考 external-vulnerability-tracking? 項目。此腳本與上面的腳本以相同的方式獲取漏洞,但它使用 Jira API 為每個漏洞創建一個工單。每個工單的描述也包含了來自 GitLab 漏洞報告的詳細信息。


          要使用導出工具,只需 Fork(派生)該項目? 或導入到新項目?(選擇“通過 URL 導入存儲庫”,并粘貼原始項目的 git URL),并按照自述文件的說明設置 CI/CD 變量。


          您需要準備以下 GitLab 信息:

          • 具有訪問漏洞信息權限的 GitLab 項目/個人訪問令牌(具有read_api范圍);
          • 極狐GitLab GraphQL API URL(對于 SaaS,為 https://jihulab.com/api/graphql);
          • 極狐GitLab 項目路徑(例如 smathur/external-vulnerability-tracking)。


          您還將需要以下 Jira 信息:

          • Jira 個人訪問令牌?
          • Jira API問題端點URL(對于SaaS,為 https://ORG_NAME.atlassian.net/rest/api/latest/issue/);
          • Jira 用戶電子郵件 ID;
          • Jira 項目 Key,您希望在其中創建漏洞工單(例如 ABC)。


          在根據項目自述文件中的說明設置 CI/CD 變量后,只需從該項目的流水線頁面運行一個流水線,然后就可以看到所有的漏洞信息將會在 Jira 中自動創建工單。如果將來再次運行流水線,腳本將對 Jira 項目運行搜索查詢,防止創建重復的工單。它只會為沒有記錄在 Jira 中的新漏洞創建工單。




          參考

          Reference

          1. custom-vulnerability-reporting:

          https://gitlab.com/jwagner-demo/vandelay-industries/engineering/custom-vulnerability-reporting

          2. Fork(派生):

          https://gitlab.com/jwagner-demo/vandelay-industries/engineering/custom-vulnerability-reporting/-/forks/new

          3. 導入到新項目:

          https://docs.gitlab.cn/jh/user/project/import/repo_by_url.html

          4. Jira集成:

          https://docs.gitlab.com/ee/user/application_security/vulnerabilities/#create-a-jira-issue-for-a-vulnerability

          5. external-vulnerability-tracking:

          https://gitlab.com/smathur/external-vulnerability-tracking

          6. Fork(派生)該項目:

          https://gitlab.com/smathur/external-vulnerability-tracking/

          7. 導入到新項目:

          https://docs.gitlab.cn/jh/user/project/import/repo_by_url.html

          8. 個人訪問令牌:

          https://id.atlassian.com/manage-profile/security/api-tokens


          參考資料

          1.https://docs.gitlab.com/ee/api/graphql/reference/index.html#queryvulnerabilities

          2.https://gitlab.com/jwagner-demo/vandelay-industries/engineering/custom-vulnerability-reporting

          3.https://gitlab.com/smathur/external-vulnerability-tracking

          4.https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples/

          關于極狐(GitLab)

          極狐(GitLab) 以“核心開放”為原則,面向中國市場,提供開箱即用的開放式一體化安全DevOps平臺——極狐GitLab。通過業界領先的優先級管理、安全、風險和合規性功能,實現產品、開發、QA、安全和運維團隊間的高效協同,加速和優化企業軟件開發生命周期。極狐GitLab由極狐信息技術(湖北)有限公司在國內獨立運營,提供中國本地化功能和支持服務。極狐(GitLab)公司以“中外合資3.0”模式創立,公司投資方包括GitLab Inc.、紅杉寬帶跨境數字產業基金、高成資本、泰康人壽、淡馬錫等。

          景介紹

          作為一個測試同學,提交bug是個繞不過去的坎(請不要杠哈,我真不太相信有測試同學從來未提交過bug)。

          但是每次提交bug,少則幾項多則幾十項,填得有點頭大有沒有?即使有模板,根據模板再修改,手動填的時候也經常會漏掉一些項有沒有?

          所以為了我們這些懶人的福利,自動化提交bug就應運而生了。

          測試需求分析

          此自動化需求主要涉及到python/pytest,且需要jira API文檔(下文有jira接口文檔鏈接)。

          測試流程

          自動化腳本實現

          bug模板及提交jira手工步驟

          提完bug的bug模板參考下圖:

          創建bug時,參考下圖,可以看見目前統一模板有如下10個必填項:

          項目、問題類型、概要、優先級、嚴重程度、復現概率、bug分類、影響版本、模塊、描述。

          此處10個必填項對應后面jira接口的相應字段。

          jira提交issue接口定義

          createissue接口定義,baseurl參考公司網址,此接口的詳細url為:/rest/api/2/issue,方法為method。

          請求體參考下圖的example、update字段,此處非必要,暫時忽略,我們步驟1中說的10個必填項都包含在fields字段中。

          一般情況,每個字段可以通過id、name、key3個屬性值來設置,但有些時候name屬性不一定能找到(例如項目),所以建議首先用id和key,然而id有需要調用其他接口獲取,無法直接從界面知道,所以可以首選key。

          例如項目的key則為括號里的內容,參考下圖,bug管理demo項目的項目key是BUGDEMO,

          此點為本人調用其他接口觀察到的,具體可以找atlassian官方確認咨詢。

          經過調用多方接口獲得能成功調用的接口字段屬性如下圖:

          summary、description此處暫不用特別關注,在后面步驟中我們將會使用捕捉到的內容進行替換。

          更多jira接口文檔詳細參考:https://docs.atlassian.com/software/jira/docs/api/REST/8.5.5/#api/2/issue-createIssue

          issue相關信息捕捉

          版本及環境:面板機此處是調用獲取設備狀態信息的接口獲取相關固件和算法等版本信息(作為setup調用一次即可):

          項目:步驟2中已描述,此處不再贅述。

          標題(summary)、詳細描述(description)、附件的捕捉:

          (1) 斷言時描述詳細信息(包括失敗字段、預期結果和實際結果),例如下圖:

          (2) 加入hook函數pytest_runtest_make_report監聽運行相關信息。

          (3)對監聽到的相關信息進行處理,title即為捕捉到的運行的測試用例標題,由于函數title為英文,可以再和中文標題一一映射一下。

          description為運行時的詳細輸出,類似于下圖:

          out為調試日志寫入到文件,后期作為附件上傳,其內容主要是寫用例時的日志輸出,類似下圖:

          其中hook函數pytest_runtest_make_report 更多詳細內容可參考pytest官方文檔(上一節中有附件),日志輸出可以參考logger模塊或是個人的寫日志模塊。

          通過以上步驟初步生成的bug如圖:

          注意,上傳附件為另外一個接口:

          腳本迭代優化

          可以不用調用原始的jira接口,python中jira庫中有封裝常用的jira接口,如jira.create_issue等。

          可能遇到的問題

          捕捉信息可能需要在寫自動化腳本的時候相關操作,都能斷言實際和預期等詳細信息。

          附件中的信息也需要自行控制輸出。

          如果bug系統非jira,可以自行找其bug系統的接口文檔或其他提交bug操作。

          總結

          此方案及示例需要配合自身的自動化用例使用,否則手動操作后也無法自動捕捉其錯誤信息。

          此方案的重點也是在捕捉錯誤信息,其他調用jira接口對于一個調包俠來說是基本操作,獲取jira模板自行與pm商議即可,此方案如果上線到jenkins通過每日構建每天來run的話可能會出現大量重復的bug(由于開發解決bug沒有那么快),多次后面會有文章來討論如何解決此問題。

          文末福利——推薦一個《Python自動化測試學習交流群》給大家:

          請關注+私信回復:"測試" 就可以免費拿到軟件測試學習資料,同時進入群學習交流~~

          OC]

          Jira提供了完善的RESTful API,如果不想直接請求API接口可以使用Python的Jira庫來操作Jira

          Jira Python文檔

          安裝方法

          pip install jira

          認證

          Jira的訪問是有權限的,在訪問Jira項目時首先要進行認證,Jira Python庫提供了3種認證方式:

          通過Cookis方式認證(用戶名,密碼)

          通過Basic Auth方式認證(用戶名,密碼)

          通過OAuth方式認證

          認證方式只需要選擇一種即可,以下代碼為使用Cookies方式認證。

          form jira import JIRA

          jira=JIRA('http://jira.***.com/', auth=('用戶名', '登錄密碼')

          返回的jira對象便可以對Jira進行操作。主要的操作包括:

          項目

          問題

          搜索

          關注者

          評論

          附件

          項目(Project)

          jira.projects(): 查看所有項目列表

          jira.project("項目的Key"): 查看單個項目

          項目對象的主要屬性及方法如下:

          key: 項目的Key

          name: 項目名稱

          description: 項目描述

          lead: 項目負責人

          projectCategory: 項目分類

          components: 項目組件

          versions: 項目中的版本

          raw: 項目的原始API數據

          示例

          print(jira.projects()) # 打印所有你有權限訪問的項目列表

          project=jira.project('某個項目的Key')

          print(project.key, project.name, project.lead)

          問題(Issue)

          Issue是Jira的核心,Jira中的任務,用戶Story,Bug實質上都是一個Issue。

          單個問題對象可以通過jira.issue("問題的Key")得到,問題的主要屬性和方法如下:

          id: 問題的id

          key: 問題的Key

          permalink(): 獲取問題連接

          fields: 問題的描述,創建時間等所有的配置域

          raw: 問題的原始API數據

          龍騰原創

          聯系作者:xiaowanzi02620


          主站蜘蛛池模板: 中文字幕日韩一区二区三区不卡| 亚洲高清毛片一区二区| 国产成人一区二区动漫精品| 亚洲视频在线一区二区三区| 国产经典一区二区三区蜜芽| 日韩免费一区二区三区在线 | 免费看无码自慰一区二区| 无码夜色一区二区三区| 男人的天堂av亚洲一区2区| 国产成人AV区一区二区三| 一区二区三区在线播放| 久久精品无码一区二区三区| 亚洲AV本道一区二区三区四区| 中文字幕一区日韩精品| 无码人妻精一区二区三区 | 日韩精品一区二区三区不卡 | 色婷婷综合久久久久中文一区二区 | 日本一道高清一区二区三区| 尤物精品视频一区二区三区| 爆乳熟妇一区二区三区霸乳 | 日本一区二区不卡视频| 日本免费一区二区三区| 无码中文人妻在线一区| 日韩一区二区a片免费观看| 呦系列视频一区二区三区| av无码一区二区三区| 精品一区二区三人妻视频| 日本中文字幕一区二区有码在线| 精品国产AⅤ一区二区三区4区| 国产精品亚洲一区二区三区| 成人在线视频一区| 麻豆一区二区三区精品视频| 精品国产福利一区二区| 精彩视频一区二区| 久久久精品人妻一区二区三区| 色婷婷香蕉在线一区二区| 国产精品无码一区二区在线观一| 极品人妻少妇一区二区三区 | 无码人妻精品一区二区蜜桃网站| 高清一区二区三区| 午夜一区二区在线观看|