想要提升應用程式的安全性,從軟體開發生命週期(SDLC)當中的每個階段都要落實,然而,過去我們較為重視的部分,是在撰寫程式碼的過程,基於安全考量來設計,並且搭配弱點分析與滲透測試,找出漏洞予以修正,但光是這樣,並不足以預防程式碼遭竄改、惡意程式注入、程式碼分析等手法,或是有人透過反組譯工程/逆向工程(Reverse Engineering)的方法,取得內容之後,對程式碼進行大量複製、偽造。

尤其在當前網路發達的時代,各種軟體應用程式都暴露在外,想要取得幾乎不費吹灰之力,再加上運算成本低廉、雲端服務盛行,破解軟體與內容保護措施的門檻大幅降低,但相對地,程式碼本身卻未必受到更高等級的保護。

針對這樣的程式碼自我防護需求,在企業級商用軟體的領域,能夠同時橫跨x86、ARM等硬體環境,Windows、Linux、Mac OS、iOS、Android,以及Java、.NET各種系統平臺,可選擇的廠牌並不多,Arxan正是其中之一,該公司號稱目前已經保護全球5億臺裝置所執行的軟體應用,包含行動裝置、桌上型電腦與嵌入式系統,產業應用涵蓋金融服務、健康照護與醫療設備、高科技、物聯網、數位媒體與遊戲。

圖中是行動應用程式開發的生命週期管理,上面一排是目前的行動App開發與使用,以及遭人濫用的階段,而下面一排是搭配Axsan保護流程的App開發與使用,我們可以看到這套方案是在程式碼編譯階段才整合進來的。

在應用程式保護上,Arxan目前提供2個系列的產品對應──GuardIT主攻x86平臺的個人電腦、伺服器與嵌入式系統,以及EnsureIT負責行動裝置與嵌入式系統(Android、iOS、Windows Phone、Tizen)。

   

Arxan這兩種系統當中,主要提供防禦、偵測與反應等3種程式碼保護措施。首先,在程式碼防禦上,開發者可運用多種方法來防止已編譯的程式碼遭到反組譯,像是執行階段的混淆(binary level obfuscation)、程式/字串加密、防監聽(anti-debug),以及動態、隨機地執行Guards保護(dynamic randomized execution of Guards)。

第二層安全性在於偵測,針對程式執行時所面臨的攻擊,目的是預防程式碼在當下遭到竄改與抄襲。Arxan提供了執行環境的檢查,像是監聽模式的偵測(debugger detection),以及對於越獄(Jailbreak)/根使用者(root)過高權限執行模式的察覺;同時,這裡也提供執行時期的防護,例如Checksum確認、資源驗證、攪拌(Swizzling)或掛勾程式偵測(Hooking Detection),甚至還可提供預先破壞程式碼的功能,防止有價值的程式碼或具有弱點的程式碼,在受到攻擊時,仍暴露在外顯現與執行。

最後一道保險措施則是反應,Arxan提供開發者可自行設定的防護措施,在程式偵測到攻擊行為時就逕自啟動。企業能用多種方法開發出反應式保護(Reaction Guards),像是針對遭到竄改的程式碼,提供自我修復機制,或是向其他軟體元件通報訊息、終止程式執行,也可已運用資訊收集技術,將相關情報後送到原廠端分析。

Arxan強化應用程式安全的三種作法,涵蓋程式碼內容的防護(Defend)、執行時期的偵測(Detect),以及自動進行反制措施(React)。

藉由上述三種保護措施之後,Arxan可確保App具有自我防禦能力、防竄改的機制,以及強化抵抗駭客攻擊與惡意程式濫用弱點的威脅。

經過這些安全強化之後,程式碼本身就能受到保護,具備自我修復能力、防止竄改,能夠抵抗多種入侵攻擊與惡意濫用漏洞的行為。

運用Arxan保護應用程式的步驟如上圖,關鍵是GuardSpec、Guard Insertion Engine與Guard Library。Arxan會將GuardSpec檔中所指定的Guard,置入未受保護的binary檔。Guard Library包含多種Guard與幾千種Guard實例。

圖中為GuardSpec組態檔案的內容。

對於程式碼,Arxan可提供4種層級的應用程式保護,能同時搭配50到200個Guard一起協同運作,增加破解難度。

產品資訊

●原廠:Arxan 叡揚代理(02)2586-7890

●建議售價:廠商未提供

●支援語言:C/C++、Objective C/C++

●支援編譯器:GCC、Xcode、Apple LLVM、Android NDK、Clang

●程式設計端作業系統平臺:Mac OS X、Ubuntu、Windows

●程式執行端作業系統平臺:Apple iOS、Android、Tizen、 Ubuntu/Linux

 


Advertisement

更多 iThome相關內容