鑒釋科技劉新銘:讓軟件開發更安全、更高效
原創【51CTO.com原創稿件】隨著互聯網行業的飛速發展,IT從業者成為了一個備受關注的群體,“程序猿”、“碼農”、“攻城獅”這些綽號中多少都帶著些許的自嘲味兒,因為隨著年齡的增長,他們面臨著越來越窄的職業上升通道,在我國,似乎很少看到40歲以上的程序員,35歲成為了IT從業者的一道坎。
劉新銘先生,鑒釋科技聯合創始人兼首席架構師,有著約30年的IT從業經歷,從敲代碼做編譯器,到管理工作,從risk architecture開始,從大電腦到小電腦,到手機,到物聯網,再到超大型的云計算,可以說劉新銘先生參與了信息科技的整個發展過程。
鑒釋科技聯合創始人兼首席架構師 劉新銘
經過了十余年的一線開發工作和十余年的管理工作,劉新銘先生選擇了創業。“創業有兩個目的,一是繼續做創新的事業,二是想要找對的人,培訓好,然后組織一個高效能的團隊。創業是希望為員工服務,讓所有員工的潛能發揮到極致。”劉新銘先生表示。
創立鑒釋科技的初衷:發現bug,修改bug
軟件無處不在,當今軟件已經滲透到了我們的工作、生活、娛樂的方方面面,軟件正在改變世界。客觀的說,所有的軟件都存在或大或小的問題。據統計,每1000行代碼就會至少有一個bug,存在安全問題;每1400行就會有嚴重的安全問題。在80年代,一個大的軟件約有1萬行的代碼,90年代是幾十萬行,2000年之后是百萬行,現在是千萬行。也就是說當今千萬級的軟件會有約100個bug,這些bug往往不會被發現,而是等被黑客攻擊的時候才被發現。
鑒釋科技要做的事情就是主動發現這些bug。劉新銘先生解釋說,這些問題其實都是在軟件開發的過程中,思考的不夠周密,對接的不夠流暢。所以一個好的環境要容錯,容錯的同時要能夠自動糾正錯誤,這正是鑒釋科技要做的事情。
把靜態代碼分析做到極致
目前,軟件應用安全測試主要有三種方式:動態代碼分析、靜態代碼分析、交互代碼分析。靜態代碼分析是在不實際執行程序的情況下,對代碼語義和行為進行分析,由此找出程序中由于錯誤的編碼導致異常的程序語義或未定義的行為。通俗的說,靜態代碼分析就是在代碼編寫的同時就能找出代碼的編碼錯誤。靜態代碼分析不需要等待所有代碼編寫完畢,也不需要構建運行環境,編寫測試用例。它能在軟件開發流程早期就發現代碼中的各種問題,從而提高開發效率和軟件質量。
愛科識是鑒釋科技的用于靜態代碼掃描(SAST)的下一代源代碼分析工具,使用深層的編譯器級別技術來檢查數據流,分析軟件應用程序,從而提高缺陷檢測的準確性。
愛科識通過集成到軟件開發過程中,為企業提高生產效率。通過分析識別可能導致缺陷的源代碼,避免內存污染、核心轉儲、緩沖區溢出、非法操作,以及空指針等問題的出現。愛科識的算法主要包括數據流分析、控制流分析、上下文敏感度分析、對象敏感度分析、跨程序分析,以及跨文件分析。同時, 它最大限度地減少了誤報的數量,以確保調試的效率。
劉新銘先生對此進行了深入淺出的講解:軟件的bug往往出現在“跨界”的時候,如從一個函數跳到另一個函數,從一個模塊跳到另外一個模塊。如果檢測不好互動的問題,不能準確的判斷執行的狀態,就無法得到準確的數據,也就無法精準的分析出來哪個地方可能會有安全隱患。這種跨函數的賦值追蹤,是鑒釋科技靜態代碼分析工具的最大優勢。
未來會做更加專業的交互式代碼分析
靜態代碼分析的弊端在于隨著現代軟件系統規模越來越大,系統復雜度也越來越高,從傳統的單機系統變為分布式系統,同構系統變為異構系統,而且軟件開發的編程語言也從使用單一的語言發展為多種語言協同開發。這些變化都對靜態代碼分析工具帶來了巨大挑戰。“不能把所有的源代碼都拿到”是靜態代碼分析工具面臨的最大挑戰。
劉新銘先生透露,交互式的代碼分析工具將是鑒釋科技未來發展的一個方向。交互式的代碼分析工具就是在與庫對接的地方,建一個防火墻,做各種檢測:“拿進來的東西是否符合規格,送出去的東西是否符合公司的規范,資訊是否有泄露。”當然,交互式也不一定是完善的,因為如果防御做的極端的嚴謹,就會變的封閉起來,太松的話又起不到安全防御的作用。鑒釋科技下一步的目標就是“要明確的知道哪個地方可以松一點,哪個地方需要緊一點,該松的地方松,該緊的地方緊,這樣才能實現順暢的互動。
讓軟件開發更高效
回到開篇所說的工程師環境,除了必要的代碼分析工具,企業文化也是非常重要的一環。當今中國大部分企業的架構是負責軟件開發的人員是開發工程師,負責測試的人員是測試工程師,開發和測試是分開的。大部分的開發人員都不會去測試自己寫的代碼,這樣的工作方式導致了開發和測試的割裂,在尋找和修改bug的工作上浪費了很多時間和精力。如果開發和測試工作相結合,即開發工程師在寫完代碼后就自己先進行測試,由于開發者更加熟悉自己寫的代碼,所以這樣的工作方法會更加高效。 “希望鑒釋科技未來會改變這種現狀,讓中國企業的軟件開發變得更高效!”劉新銘先生表示。
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】