軟體開發安全談了許多年,除了仰賴各式程式碼安全性檢測,但如何讓開發人員,能養成安全程式設計能力與習慣,仍面臨許多困難,最近有長期投入安全程式開發領域的國內業者,新引進相關培訓平臺,並藉著舉辦競賽的方式,鼓勵開發人員重視安全程式設計。
這場活動是由叡揚資訊主辦,採取臺北場、臺南場、線上場同步進行的方式,並區分為社會組與學生組,吸引4百多人挑戰。
基本上,這項競賽活動分成兩個階段,賽前參與者可連至競賽環境練習,該環境是該公司代理銷售的訓練平臺,名為Secure Code Warrior,參賽者可在此進行21天資安能力養成,再透過正式競賽進行比拚。
就這場競賽的目的來看,不只是為了公益、產業,讓一般個人與學生,都能免費接觸與學習安全程式開發的知識,當然也是有推廣他們販售企業產品服務的意味。
競賽分8個難度級別,限時挑戰積分最高得冠
比賽過程是如何進行?8月26日競賽當天,參賽者使用電腦進入Secure Code Warrior平臺,先選擇參與的競賽組別,以及自己使用的語言與框架,接下來,將看到共分8個級別難度的題目,並有一組加分題。基本上,難度越高,獲得積分也會越高。
在1個小時的競賽中,透過即時積分排行榜,我們看到參賽者選用的程式語言不盡相同,包括Java Spring、python Basic、C#(.NET Core)、Java Basic、Pseudocode Basic等,最終,學生組由臺北場的歐家豪奪第一,贏得3千元獎金,社會組由線上場的李宜昌獲冠軍,贏得1萬元獎金。
此外,在本次400多位參賽者中,社會組選手佔8成,學生組佔2成。
考驗識別漏洞與找出解決方案能力,參賽者在比賽中也能學習
或許大家都很好奇,究竟是如何出題考驗程式開發人員?簡單來說,在每一級任務中,目標是保護系統免受攻擊,當中有不同內容的題組,每個題組首先會考驗識別漏洞類別,之後選出解決方案。
而在競賽介面上,每個題組會有完整的程式碼內容,系統會將一些關鍵位置的程式碼做出標記,使用者可快速切換不同程式碼段落,並找出不同的標記位置,以評估程式碼內容,再讓玩家透過4選1的方式指認答案。
最特別的是,這些測驗同時提供認知對錯的教育目的,相當不容易。我們看到這款產品具備了彈性的積分制度與提示說明,讓競賽過程中也能趁機學習新知。舉例來說,回答問題時,系統會顯示玩家有三條命,一次答對將獲得該題全部積分,第二次才答對的積分會減少,不僅如此,介面上還有提示的按鈕可用,參賽者能獲得一些答題上的幫助,例如,無法判別個別漏洞型態時,系統提示將因此提供4個答題選項的影片解說。儘管使用提示後,答對獲得的積分隨之減少,但這種機制,讓參賽者不只比勝負,也能從中學習。
為何我們認為這樣的機制很特別?以iThome自身經驗為例,過去我們也曾設計名為「Phishing Buster釣魚剋星」的免費網頁遊戲,目的是要玩家識別釣魚郵件,而為了要提供寓教於樂的特性,因此我們在規畫上有兩大考量,第一,是題目難度要朝向不能只是為了考倒玩家,第二,是要設想玩家在答錯當下正確答案並能知道問題在哪,更好是給予更多相關知識或說明,同時,這還要顧及整體UI呈現方式的配合。這在資源、時間有限的情況下,要開發製作到能符合最高設想,或是找出成效更好的機制,非常不容易。
而從這場競賽使用的商業平臺來看,在競賽功能的相關機制上,都已經有著不錯的設計與規畫,展現兼具測驗與學習的方式,這不僅僅是在介面的呈現,在機制上,規畫了三次答題機會、彈性積分設計,以及提示的功能,如此將提供更細膩的層次,讓玩家在答錯、或對答案沒有頭緒時,能夠有更多學習的機會。
無論如何,藉由這樣競賽的遊戲形式,鼓勵玩家接觸與學習資安,過去已有不少例子。舉例來說,每年在全球各地舉辦將近20場搶旗攻防賽(CTF)競賽,政府也有舉辦像是資安技能金盾獎的競賽活動,國內資安社群也曾舉辦企業實境資安攻防的HTICON Defense競賽。現在,在安全程式開發領域也出現這樣的競賽活動,激發玩家答題的鬥志,同時也增進自身在程式開發的安全意識,並期望要養成習慣。
會後,叡揚希望明年能持續舉辦這項競賽活動,讓更多國內開發人員不單只能依賴傳統上課方式,也能藉由這種遊玩、比賽形式,在過程中,學習更多安全程式開發的意識,並提升能力。
叡揚資安事業處資安開發二部經理陳宇馳向參賽者解說競賽規則,題組中會將幾個關鍵的程式碼位置標示出,考驗參賽者需要先識別漏洞類別,再選出相應的解決方案,例如,有一題組提供了4個選項,包括:注入缺陷(資源注入)、敏感性資料儲存(明文儲存密碼)、XSS跨站腳本(反射的跨站點腳本),注入缺陷(作業系統命令注入),要玩家判斷該題程式碼所存在的漏洞類型,題組中的下一題則是會有4種解決方案,要玩家判斷如何修補漏洞。特別的是,競賽機制中並設計有提示功能,讓玩家挑戰時也還是能夠學習。
熱門新聞
2024-11-25
2024-11-25
2024-11-25
2024-11-25
2024-11-25
2024-11-15