對于程序員和軟件開發(fā)人員來說进统,網絡論壇提供了一個交流知識和尋找具體編碼難題答案的好地方。遺憾的是峰档,他們并不總是準確信息的來源。
弗吉尼亞理工大學的一組研究人員分析了數(shù)百篇關于Stack Overflow的文章羹奉,(Stack Overflow是一個很受歡迎的開發(fā)者論壇或者說Q&A網站)發(fā)現(xiàn)許多提供答案的開發(fā)人員并沒有意識到編碼選項的安全含義,并顯示出了缺乏網絡安全培訓雨饺。
他們發(fā)現(xiàn)的另一件事是荐吉,有時,最熱門的帖子或答案包含了一些不安全的建議蝗拿,這些建議會在軟件中引入安全漏洞晾捏,而正確的修復程序不那么受歡迎,也不容易看到哀托,因為它們是用戶提供的惦辛,其信譽分數(shù)較低。
因此仓手,提問者和回答者之間的社會動態(tài)肯定會對人們的安全選擇產生影響胖齐。
獲得正確的安全性
研究人員集中研究與Java安全性相關的帖子,從軟件工程和安全角度考慮嗽冒,針對的是Spring Security的問題上發(fā)表的文章呀伙,Spring Security是一個第三方Java框架,為企業(yè)應用程序提供身份驗證添坊、授權和其他安全特性剿另。
Spring Security旨在促進安全編碼,但很明顯贬蛙,許多程序員發(fā)現(xiàn)它的APIs過于復雜雨女,文檔記錄不足,運行時系統(tǒng)的錯誤報告令人困惑阳准。
“此外氛堕,多語言支持獲取數(shù)據(jù)的能力相當弱。在安全應用程序中野蝇,多語言的情況是很常見的讼稚,因為通常數(shù)據(jù)是用一種編程語言加密的(比如:Python)并在另一個編程語言解密(例如:Java)位喂。這些問題會嚴重阻礙開發(fā)人員的生產力÷伊椋”
開發(fā)人員在花太多時間解決APIs的正確用法時常感到沮喪塑崖,并且常常選擇了完全不安全的修補程序,比如使用過時的加密哈希函數(shù)痛倚,禁用了跨站點請求偽造保護规婆,信任了HTTPS驗證中的所有證書,或者使用了過時的通信協(xié)議蝉稳。
研究人員指出:“這些糟糕的編碼實踐抒蚜,如果在生產代碼中使用,將嚴重損害軟件產品的安全性耘戚∥怂瑁”
建議每個人都參與
“這項工作的意義在于,我們?yōu)榇罅苛钊藫鷳n的安全編碼問題提供了經驗證據(jù)收津,而這些問題之前并沒有被報道過饿这。這些問題是由于各種原因,包括企業(yè)安全應用的快速增長撞秋,軟件開發(fā)人員缺乏安全培訓长捧,以及設計了糟糕的安全庫,”研究人員指出吻贿。
他們建議設計人員刪除或棄用弱安全性的APIs,設計簡化的APIs肌割,并在默認情況下實現(xiàn)強大的安全性防御帐要,并設計干凈且有幫助的錯誤報告接口,其中還包括可能的根本原因和解決方案先巴。
另一方面冒冬,開發(fā)人員絕對應該需要安全檢查简烤,并進行安全測試,以檢查實現(xiàn)的功能是否如預期的那樣工作挥萌。在Stack Overflow和其他類似的社區(qū)網站和論壇上流行和接受的答案應該像一粒鹽,如果可能的話狂芋,它們的準確性應該是獨立的帜矾。
最近的相關研究顯示屑柔,排名靠前但不夠充分的編程Web教程也將漏洞引入了軟件。
最后死陆,工具生成器應該考慮使它們能夠自動診斷安全錯誤唧瘾,并建議安全補丁或解決方案。
“構建漏洞防御技術劈愚,比較同級應用程序使用相同系列的APIs來推斷和警告潛在的錯誤使用闻妓。探索檢查和加強安全性相關注釋、代碼和配置之間的語義一致性的方法注祖。構建新的方法來轉換聲明性安全性和編程式安全性的實現(xiàn)均唉,”研究人員總結道。
小編總結:當程序員或者軟件開發(fā)者在編碼遇到難題時罩缴,找網絡論壇层扶,或尋大神求助镜会,或自己探索都是可行的戳表,但一定要意識到編碼選項的安全性昼伴,選擇了錯誤的編碼圃郊,將嚴重影響企業(yè)軟件產品女蜈,因此鞭光,安全編碼吏廉,人人有責席覆。
歡迎加入學習交流群569772982,大家一起學習交流汹买。