資安部門- WhiteSource

想更了解其他資訊歡迎聯絡我! surekaty0919@gmail.com

資安部門主要由三大teams組成,分別為Checkmarx TeamArxan TeamWhiteSource Team

剛進來資安部門是待在Checkmarx Team大概一個月的時間,之後轉到了WhiteSource Team,並確定之後一年都會待在這裡。

WhiteSource Team內部又有三個專案在進行,分別是WhiteSource本身SeeTestRasp

ws team

專案介紹

WhiteSource

WhiteSource主要是在掃描專案所使用到的open source是否存在弱點,產出掃描報告給客戶,並解決客戶在使用WhiteSource或是弱點方面之問題,這個專案也是我主要的工作來源。

SeeTest

SeeTest是一個自動化測試平台,有分成web版本跟app版本,web版本透過使用selenium IDE來錄製網頁腳本,並可以選擇程式語言來匯出程式碼, 將匯出的程式碼在SeeTest平台進行雲端測試,會產出一份測試報告;app版本則是透過Appium Studio來錄製app腳本,其餘步驟都和web一樣,最終一樣會產出測試報告。

Rasp

RSAP是可以幫助網站去檔住漏洞發生的一種安全技術,為了讓客戶可以實際去操作網站了解漏洞如何產生, 因此需要製作一個簡易的購物網站,現在已經有一個前輩用.NET 寫成的mystore網站,需要改成以Node.JS語言寫成。


工作內容

翻譯 Checkmarx更新文件

翻譯13筆checkmarx更新文件,文件內容有四項,分別為漏洞發生造成結果、風險描述、 漏洞發生原因跟一般建議修改方式。

資安考題翻譯

主管請我將一個資安題庫網站裡面的題目複製下來到word,再進行翻譯中文的動作,他有分成五種程式語言,分別為IOS 、Javascript、.Net、Android和Java,有些各別又有分成basic跟advance兩種,每種有20題選擇題,因此總共翻譯了140題題目。

錄製網站腳本

透過使用selenium IDE錄製了WhiteSource的一些功能測試,再匯出其程式碼(python),使用pycharm作為IDE去修改程式碼, 再放到SeeTest的雲端上做測試,並產出報告。

翻譯release note

從21.2.1到21.12.1版本,共翻譯了21版的release note,並更新自WhiteSource知識庫上和whitesoure team 的Gitlab。

release note

各式文件新增至知識庫

將各式文件更新至團隊的知識庫上,以利未來提供這些說明文件。

教育訓練手冊ppt更新

教育訓練手冊是正職去其他公司介紹WhiteSource時所使用的ppt,因為WhiteSource的介面UI會不時做更動, 因此ppt內容也要不時做更新,這次的更新內容是重新截圖介面UI,去替換掉舊圖。

弱點分析

客戶的專案經過WhiteSource掃描會產出弱點報告,需要去了解CVE弱點生成原因並了解解決方案來回覆顧客問題,以提供其排除弱點之方法。

授權分析

客戶的專案經過WhiteSource掃描會產出授權報告,需要去了解授權發生原因並了解解決方案來回覆顧客問題,以提供其授權解決之方法。

WhiteSoure for K8s整合測試

WhiteSource跟許多平台可以進行整合,因此當客戶有這方面的需求時,就必須進行相關測試,並撰寫整合測試說明文件以提供客戶, 而我將K8s整合說明文件實際操作一遍並錄製成教學影片,因此在這過程還學到了一些影片剪輯的操作。


學習內容

Programming Languages & Tools Overview

Git版本控制

類似於Git這種版本控制的概念在資訊產業幾乎是無處不在,工作上很多地方都要用到,因此也算是必須要知道的知識, 像是在資安部門,各種文件都會需要更新到部門的Gitlab上,以方便進行版本上的控管,因此在新人訓的第一天就有 學習如何用Source Tree來實作Git,因為其提供好懂的GUI 界面來方便初學者踏入,那時學了最基本的commit、 pull、push、add這四大功能,還有commit的文字內容十分重要,要讓人易懂易讀,之後分發到資安部門後, 因為本身想要拋棄Source Tree往Git Command學習,正職也說Git是很實用的知識,因此給了我一本Git Command教學的電子書, 因此就開啟了學習Git Command打指令的路程,還有如何解決一些使用Git Command所發生的突發狀況, 除了學習打指令也偶然認識了GitBook這個雲端筆記,十分好用,很多新學到的程式語言我都會用這個雲端筆記來做整理。

WhiteSource整合工具

WhiteSource有跟許多平台進行整合,像是Jenkins、Azure DevOps、GitLab、Jira、Docker…等等, 因此需要了解許多平台跟WhiteSource整合的用法,像是以目前有學過的是Docker的images跟container 進行Unified Agent的掃描,再了解如何掃描前,必須先了解Docker環境,像是知道Docker三元素: 映像檔(Image)、容器(Container)和倉庫(Repository),他的指令各是什麼意思,再自己手動去創建 一個image跟container去跑跑看,這些前置作業都確定沒問題之後,就可以開始了解Docker的 Unified Agent 掃描步驟,這部分我是請教正職一步一步教導我,透過正職的教導,發現主要都是再修改config檔內的參數來達到想要之結果 ,因為有整合的關係,所以掃描過後產出的open source弱點報告會整合進去WhiteSource裡, 變成一個project如下圖,就可以去看掃描的結果,其他整合工具也是像Docker一樣的學習步驟。

docker

自動化測試

網站測試是使用selenium IDE來錄製好網頁後,匯出程式碼到本地端來進行修改,這次匯出python語言 於pycharm上,修改這邊費了很多功夫,因為從selenium匯出的程式碼不一定是完全正確的, 因此跟正職在這邊討論了一段時間,並且有把遇到的問題整理起來並放上知識庫,在本地端確定執行沒有問題後, 就可以從SeeTest平台上,將雲端測試所需要 用到的程式碼複製下來,將錄製的程式碼放到相對應的位置後,在本地端執行程式碼,就可以送到SeeTest 進行雲端測試,並產出測試報告,點進去各個測試報告會有詳細的每個測試步驟跟參數,這就是一個完整的網站測試循環。

在八月中時,有一件專案是要幫一家廠商測試他的網站功能,這條功能包含了登入,而登入很常會搭配驗證碼, 驗證碼的存在對自動化測試來說是一個很難解的題目,因為無法抓取到驗證碼內的文字,因為它是一張圖片, 但是幸虧現在文字辨識跟圖片處理已經十分發達,因此python都有相對應的套件可以去處理,麻煩的是在環境建置上面跟圖片處理, 驗證碼處理的構思流程如下圖。

docker docker

翻譯技巧

在checkmarx team,主管時時提醒翻譯是要人性化的翻譯,而不是一個字一個字照翻,這算是大家都知道的道理, 但是實際做起來卻不簡單,在翻譯checkmarx更新文件時,內容有漏洞的生成原因、導致什麼結果、建議修復等等, 很多內容都是專有名詞甚至是要真正了解這漏洞是如何運作才能寫出人性化的翻譯,因此需要查大量的資料去了解漏洞原因, 也修修改改了一陣子,七項漏洞需要整整兩天甚至三天才能翻譯完,很花時間但也很扎實。

ppt更新

在製作教育訓練手冊簡報時,其實不像是一般在學校做報告ppt一樣,公司會要求ppt換頁時標題位置大小要一樣, 要求整體整齊一致,尤其是在圖片上面較為嚴格,截圖下來的圖片大小跟圖片文字不能忽大忽小, 頁跟頁之間的圖片大小不能差異過大,這樣觀看ppt的觀眾在看時會比較舒服, 因此我花了很多時間在上下切換ppt頁數來看圖片文字跟位置是否正確,這次經驗讓我知道ppt除了排版跟顏色調配之外, 考慮到觀看者的角度也是很重要的一點。

授權分析

顧客的專案經過WhiteSource掃描會產出授權報告如下圖,授權之所以重要是因為現今越來越多專案使用到Open Source, 而每個Open Source的授權又不太一樣,很容易導致自己違反了Open Source的授權條款卻不自知。

之前有參與一些跟授權有關的教育訓練課程, 或是正職會給我之前的授權課程ppt,網路上也有許多授權相關的介紹,透過這樣一點一點的認識,讓自己對授權更有概念, 但了解授權內容跟如果解決授權條款是兩回事,但仍然是有跡可循的,各個授權都有各自的判定標準, 所以幾乎只要根據那個標準去判斷就可以給出相關的建議給客戶。

docker

弱點分析

顧客的專案經過WhiteSource掃描會產出弱點報告如下圖,專案使用到的Open Source可能會有弱點, 進而容易導致惡意程式的執行或是敏感資訊洩漏等等危機,因此我們會點進去各個CVE弱點去看他的成因跟解決方法, 消化內容後再將成因跟解決方法提供給客戶做參考。

docker

非技術面所學

  • 詢問正職問題的技巧
  • 設好適當的停損點
  • 分析問題的能力
  • 和同事之間的相處

心得感想

我覺得叡揚是一個實習制度健全的資訊公司,整體公司環境工作氣氛也很好, 我待在的資安部門的同事們會很關心實習生的狀況,不管是工作方面還是未來方向等等, 也有很多是元智畢業的正職,因此更有一種親近的感覺。

資安部門的工作比較雜,因為我們不是開發類型的部門,所以不會碰上完整的開發流程,工作都是偏向顧問類型的工作, 會有比較多自己的時間可以去慢慢地學習新事物,自己挺喜歡這樣子的步調, 因為我自己的個性是會去安排行程去完成,因此就算目前沒有工作要做,我也不會讓自己浪費這些時間, 因此閒暇之餘我都是去學習新的程式語言,因為聽學姐說雖然開發方面的工作不多,但多多少少還是會有, 因此還是要去學習新語言,讓自己之後能更好上手,但學習新語言的過程也發現學習的成效不是很好, 需要花超級大量的時間重頭開始,學完因為也沒有實作練習,導致也不知道到底是不是有真的學會。

五月開始疫情漸漸嚴峻,之後宣布要改成在家工作時,心情其實挺五味雜陳的,因為有問題能直接面對面詢問正職比較有效率, 但是能節省通勤的時間還有開銷,而且也沒辦法跟正職之間有互動,但隨著遠距上班的時間越長,也越來越熟悉在家工作的模式, 我覺得有一個好處是學會如何自己解決問題,磨練自己上網找相關答案的能力。

這一年下來的實習真的收穫很多,除了技術上的學習,偶爾職場上前輩也會說說他的想法跟建議,可以更了解這個工作環境, 對自己未來規劃也很也幫助,很感謝資安部門的同事們,真的收穫良多。