資安部門
我所在的部門是資安部門,主要有下列五個專案。而我自己本身主要工作來源是Mend、Seetest、Secure code warriors。
總部辦公室位於捷運中山國小站以及民權路站附近。
從接運站走路10分鐘即可到達公司。
公司辦公室工作環境如圖所示,座位有抽屜、架子以及延長線,每一區辦公室有飲水機和洗手台,也有垃圾桶,打掃人員會定時清理。
附近的晴光商圈加上周圍店家多元,用餐選擇非常豐富。
工作環境
工作內容
-
翻譯文件:主要為每月固定有原廠release note文件需翻譯。
-
翻譯原廠影片:有新產品要推出時會發佈給我們代理商時,會有影片需要翻譯。
-
撰寫基於產品既有功能的輔助程式:針對專案產品的功能去做改善或輔助。譬如掃描後的元件不一定每一次都可以成功對應到正確的套件,因此需要寫程式輔助,達到可以大量修改元件以對應到正確套件。
-
依照客戶需求寫出腳本:客戶會因為需做CI/CD整合、或是有特殊需求(環境上、語言上等等),所以會依照客戶需求撰寫程式或腳本。
-
測試整合工具:因為我們產品需要跟其他平台做整合,使弱點可以達到更廣泛、更方便的修復或追蹤。所以需要去測試跟其他平台的功能是否可行、效率如何。並在測試完之後撰寫操作手冊。
學習:新人訓練
程式方面:
-
SQL、T-SQL:最主要學習到的觀念是使用Transaction。因為若在Transaction內的指令遇到錯誤,則會取消整個動作。這樣的概念對於開發專案或是程式碼時,也確保了安全性的概念在其中。
-
前端Kendo UI:開始善用開發人員工具去做檢查或除錯。
-
MVC:重溫學校所學的知識,使用中斷點以及監看式去開發程式。並更清楚Model、View、Controller三者間的關係。
-
前後端:學習Ajax、JQuery的應用。以及同步Sync、非同步 Async的觀念。
-
專案的分層式架構
-
測試程式
輔助開發程式方面:
-
程式碼排版:整齊的程式碼排版,在合作專案時,提高程式碼的可讀性。
-
註解的重要性:專案合作時,主解可以達到溝通以及解釋。而我們也可以在註解中再次確認自己是清楚自己在寫的程式碼功能及目的為何。
-
變數命名的技巧:精準的命名技巧以及命名的統一格式,在專案合作上是必須的,同樣也可以提高程式碼的可讀性。
-
Debug的技巧
-
開發人員工具的利用
-
Git版本控制:在開發大型專案時,版本控管在合作專案上也是不可或缺的。
-
時間的控管:遇到卡關很久的問題,設定一定的時間給自己掙扎嘗試,若在一定時間內無法完成,再去求助他人。不要固執己見,因為在專案合作上必須講求時間及效率。
-
學習積極問問題:問問題前先清楚列出自己不懂的地方,並且確認自己的問題是先前沒有問過的。
-
知道自己在寫什麼:有時候不了解語法、function,卻斷然使用,在專案開發上是危險且無知的,甚至可能對專案造成資安上的危害。
我認為其中最特別的是最後一堂課:專案的分層式架構。這是在學校裡面沒有接觸過。
從課堂中逐漸了解,我們在學校內撰寫程式時不太需要去考慮架構去撰寫程式,但是企業開發大型專案必須應用這些架構。
學習:部門
程式方面:
-
撰寫輔助程式:在撰寫輔助程式時,需要了解產品功能。知道目標是什麼、原本的產品功能操作流程是什麼,針對原本操作流程改善、加速效率。
-
測試整合工具:在測試整合工具時,要知道如何做會有效率。
-
環境部署:尋找工具或平台可以使開發專案時一方面可以確保資安,一方面可以方便測試或部屬。
文件處理方面:
-
翻譯:不能只是直接翻譯,而是要有靈魂的翻譯。用字遣詞以及口語化的程度都需要斟酌,因為這些翻譯都是需要給客戶做查詢使用,所以必須翻譯流暢。
-
操作手冊的撰寫:必須先把會看操作手冊的人當作完全沒有使用過整合產品的人,在撰寫操作手冊時也需要去註明適用的版本,譬如本地端或雲端。
-
文書格式:在文書格式上,公司以及部門都有固定的格式,我們不能像在學校一樣。文件的格式、PPT規格都必須按照部門要求所規定。
新知學習方面:
-
授權知識:在Open Source的license授權觀念,在開發程式週期是需要特別注意的。
-
弱點分析知識:許多開源套件是有弱點的,會遇到的攻擊手法有哪些,解決方案有哪些。
-
資安領域的產業走向:在做文件翻譯時,其時也會接觸其中最新的產業走向相關知識。譬如說開發程式期間就應該注重開源元件的管理,應當要有元件清單去做管理;而非開發後產品上架前才做弱點掃描或是安全測試。
-
針對Docker資安層面的管理做資訊彙整以及未來發展的重點擷取,並且實際操作。
-
針對API、RESTful API、弱點攻擊POC做學習。
-
寫Jenkins Plugin
-
Go語言寫客戶提出的需求功能。
心得感想
我認為在實習中最重要的一點是:學習積極問問題。
我覺得在職場上,可能會因為對方是講師或主管等位階比較高的人,因此容易感到懼怕或是需要斟酌思考很久。才敢問問題。尤其在新人訓練期間我們又是遠距,無法面對面及時溝通。所以在問問題時必須透過傳訊息方式提問,在傳訊息時也比較無法完整表達問題,或是需要斟酌詞彙、反覆思考用字遣詞,才敢傳訊息問問題。
實習期間針對資安管理層面以及弱點POC都有更進一步的學習,針對弱點攻擊實踐手法會去驗證,甚至在下班之外的時間會用自身電腦虛擬機去模擬攻擊手法。
另外,針對產品相關功能如何撰寫程式提高使用效率。在寫功能時,我開始了解到,有時候提出需求的人,並不一定知道自己要的功能或效果是什麼。許多時候必須反覆確認對方需求,甚至完成對方要求的功能之後,有可能會發現對方的真正需要的功能並非如此。所以必須學會反覆溝通、來回確認,一起釐清對方真正需求後,才不會發生期許與實際需求的落差。