fbpx
维基百科

靜態應用程式安全測試

靜態應用程式安全測試(Static application security testing)簡稱SAST,是透過審查程式原始碼來識別漏洞,提昇軟體安全性的作法。早在電腦問世時,就已有靜態程式分析的作法。自從1998年起,SQL注入的攻擊方式開始出現在公眾的討論中,而網路應用程式整合了JavaScriptAdobe Flash Player,因此從90年代末開始,用靜態程式分析進行安全測試的作法也開始普及。

靜態應用程式安全測試的作法和動態應用程式安全測試(DAST)的黑盒測試工具不同,DAST是針對應用程式的功能,而SAST是白盒測試,著重在應用程式的程式碼本身。 SAST工具會掃描應用程式以及其元件的程式碼,確認其軟體及架構中是否有安全漏洞。 靜態分析工具約可偵測到50%程式的安全漏洞[1]

软件开发过程中,靜態應用程式安全測試可以在開發過程的早期,在程式碼階段進行,也可以在所有的程式碼及軟體元件放在一致的測試環境時再測試。此一技術也用在軟體品質保證[2],不過會產生許多的假警報,因此也讓軟體開發者不願導入此一測試[3]

SAST工具可以整合到開發流程中,幫助開發團隊,讓他們主要專注在開發及交付對應需求規格的軟體[4]。SAST工具像其他的安全工具一様,著重在減少應用程式無法正常運作的風險,也避免應用程式中儲存的隱私資料不會被破壞或是洩漏。

簡介

應用程式的安全測試可以分為三種:除了靜態應用程式安全測試(SAST)外,還有動態應用程式安全測試(DAST),以及合併上述兩者的互動式應用程式安全測試(IAST)[5]

靜態分析工具會以語法來檢查程式碼,在原始碼中依固定模式或是公式來確認。理論上,靜態分析工具也可以檢查編釋後的程式。其技術是以程式的instrumentation為基礎,會比對編釋後的元件以及元件的原始碼,以識別問題。 靜態分析可以人工進行,像是為了代码审查或是為了不同目的(包括軟體安全)的軟體稽核審查英语Software audit review,但相當花時間[6]

SAST工具的準確度會受到分析的範圍,識別漏洞的技術而定。以下是幾種不同層次的分析:

分析的範圍會決定其準確度,以及用上下文資訊偵測漏洞的能力[7]

在函式層級的常見技術,是創建控制資料流動程式的抽象語法樹[8]

從1990年代後期開始,商業模式的變化也讓軟體開發開始轉向元件化[9],開發團隊的組織和流程也促使這樣的轉變[10]。隨著資料流在應用程式的各元件之間(或是各應用程式之問)流動,就需要在呼叫程式時加入特定程序來「消毒」,也要避免程式中的資料被污染[11][12]

網頁應用程式的興起,更突顯了測試的重要性。Verizon Data Breach 2016年指出,40%的資料泄露是和網頁應用程式的漏洞有關[13]。網路安全的威脅有來自外部的,目前也開始關注內部的威脅。Clearswift Insider Threat Index(CITI)指出,2015年的問卷的回覆者中,有92%在過去一年內曾遭受過IT事件或是網路安全事件,而有72%的資料外泄是由公司或組織內部人士發起[14]。Lee Hadlington將內部威脅分為三類:惡意、意外及未蓄意。手機軟體的爆炸性成長,因此需要在開發早期加入應用程式的安全機制,以減少惡意程式碼的散佈[15]

優點

漏洞在在軟體開發生命週期中的越早期進行修正,所花的成本越小。在開發階段修正的成本約是測試階段修正成本的十分之一,是量產階段修正成本的百分之一[16]。 不論是在程式碼層次或是應用程式層次的SAST工具,都會自動執行,不需要與其互動。若將SAST工具整合在CI/CD(持續整合/持續發佈)流程內, 在SAST工具識別到嚴重的漏洞時,可以自動停止整合流程[17]

SAST工具會掃描所有的程式碼,程式碼的覆蓋率是100%。而DAST(動態應用程式安全測試)工具覆蓋了執行到的部份,應用程式中可能有些部份不會掃描到[5],也有可能在組態檔案中有些不安全的組態。

SAST工具會有品質測試或是架構測試的副加功能,軟體品質和安全性之間有直接的相關性。若軟體品質不好,其安全性也不會好[18]

缺點

即使軟體開發者都對SAST工具的使用有正面的回應,在導入時仍有許多不同的挑戰[4]

若是使用敏捷軟體開發,開發者一開始會注重在產品特徵以及產品交付,不會一開始就考慮安全性,因此早期導入SAST工具會出現許多的錯誤[19]

用SAST工具掃描較大的程式,可能會有上百個甚至成千個的漏洞警告,SAST工具會產生許多是偽陽性的假警報,增加分析的時間,並且降低程式設計師對此工具的信任。若有些漏洞的上下文是工具偵測不到的,那此一問題就更加嚴重了[3]

相關條目

參考資料

  1. ^ Okun, V.; Guthrie, W. F.; Gaucher, H.; Black, P. E. Effect of static analysis tools on software security: preliminary investigation. (PDF). Proceedings of the 2007 ACM Workshop on Quality of Protection (ACM). October 2007: 1–5. S2CID 6663970. doi:10.1145/1314257.1314260. 
  2. ^ Ayewah, N.; Hovemeyer, D.; Morgenthaler, J.D.; Penix, J.; Pugh, W. Using static analysis to find bugs. IEEE Software (IEEE). September 2008, 25 (5): 22–29. S2CID 20646690. doi:10.1109/MS.2008.130. 
  3. ^ 3.0 3.1 Johnson, Brittany; Song, Yooki; Murphy-Hill, Emerson; Bowdidge, Robert. Why don't software developers use static analysis tools to find bug. ICSE '13 Proceedings of the 2013 International Conference on Software Engineering. May 2013: 672–681. ISBN 978-1-4673-3076-3. 
  4. ^ 4.0 4.1 Oyetoyan, Tosin Daniel; Milosheska, Bisera; Grini, Mari. Myths and Facts About Static Application Security Testing Tools: An Action Research at Telenor Digital. International Conference on Agile Software Development. (Springer). May 2018: 86–103. 
  5. ^ 5.0 5.1 Parizi, R. M.; Qian, K.; Shahriar, H.; Wu, F.; Tao, L. Benchmark Requirements for Assessing Software Security Vulnerability Testing Tools.. IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC) (IEEE). July 2018: 825–826. ISBN 978-1-5386-2666-5. S2CID 52055661. doi:10.1109/COMPSAC.2018.00139. 
  6. ^ Chess, B.; McGraw, G. Static analysis for security. IEEE Security & Privacy (IEEE). December 2004, 2 (6): 76–79. doi:10.1109/MSP.2004.111. 
  7. ^ Chess, B.; McGraw, G. Risk Analysis in Software Design. IEEE Security & Privacy (IEEE). October 2004, 2 (4): 76–84. doi:10.1109/MSP.2004.55 . 
  8. ^ Yamaguchi, Fabian; Lottmann, Markus; Rieck, Konrad. Generalized vulnerability extrapolation using abstract syntax trees. Proceedings of the 28th Annual Computer Security Applications Conference (IEEE). December 2012, 2 (4): 359–368. S2CID 8970125. doi:10.1145/2420950.2421003. 
  9. ^ Booch, Grady; Kozaczynski, Wojtek. Component-Based Software Engineering. 2006 IEEE Symposium on Security and Privacy (S&P'06) (IEEE Software). September 1998, 15 (5): 34–36. S2CID 33646593. doi:10.1109/MS.1998.714621. 
  10. ^ Mezo, Peter; Jain, Radhika. Agile Software Development: Adaptive Systems Principles and Best Practices. 2006 IEEE Symposium on Security and Privacy (S&P'06) (Information Systems Management). December 2006, 23 (3): 19–30. S2CID 5087532. doi:10.1201/1078.10580530/46108.23.3.20060601/93704.3. 
  11. ^ Livshits, V.B.; Lam, M.S. Finding Security Vulnerabilities in Java Applications with Static Analysis. USENIX Security Symposium. May 2006, 14: 18. 
  12. ^ Jovanovic, N.; Kruegel, C.; Kirda, E. Pixy: a static analysis tool for detecting Web application vulnerabilities. 2006 IEEE Symposium on Security and Privacy (S&P'06) (IEEE). May 2006: 359–368. ISBN 0-7695-2574-1. S2CID 1042585. doi:10.1109/SP.2006.29. 
  13. ^ 2016 Data Breach Investigations Report (PDF). 2016. 
  14. ^ Clearswift Insider Threat Index (CITI) (PDF). 2015. 
  15. ^ Xianyong, Meng; Qian, Kai; Lo, Dan; Bhattacharya, Prabir; Wu, Fan. Secure Mobile Software Development with Vulnerability Detectors in Static Code Analysis. 2018 International Symposium on Networks, Computers and Communications (ISNCC). June 2018: 1–4. ISBN 978-1-5386-3779-1. S2CID 53288239. doi:10.1109/ISNCC.2018.8531071. 
  16. ^ Hossain, Shahadat. Rework and Reuse Effects in Software Economy. Global Journal of Computer Science and Technology. October 2018. 
  17. ^ Okun, V.; Guthrie, W. F.; Gaucher, H.; Black, P. E. Effect of static analysis tools on software security: preliminary investigation (PDF). Proceedings of the 2007 ACM Workshop on Quality of Protection (ACM). October 2007: 1–5. S2CID 6663970. doi:10.1145/1314257.1314260. 
  18. ^ Siavvas, M.; Tsoukalas, D.; Janković, M.; Kehagias, D.; Chatzigeorgiou, A.; Tzovaras, D.; Aničić, N.; Gelenbe, E. An Empirical Evaluation of the Relationship between Technical Debt and Software Security. Konjović, Z.; Zdravković, M.; Trajanović, M. (编). International Conference on Information Society and Technology 2019 Proceedings (Data set) 1: 199–203. August 2019. doi:10.5281/zenodo.3374712 . 
  19. ^ Arreaza, Gustavo Jose Nieves. Methodology for Developing Secure Apps in the Clouds. (MDSAC) for IEEECS Conferences. 2019 6th IEEE International Conference on Cyber Security and Cloud Computing (CSCloud)/ 2019 5th IEEE International Conference on Edge Computing and Scalable Cloud (EdgeCom) (IEEE). June 2019: 102–106. ISBN 978-1-7281-1661-7. doi:10.1109/CSCloud/EdgeCom.2019.00-11. 

靜態應用程式安全測試, static, application, security, testing, 簡稱sast, 是透過審查程式原始碼來識別漏洞, 提昇軟體安全性的作法, 早在電腦問世時, 就已有靜態程式分析的作法, 自從1998年起, sql注入的攻擊方式開始出現在公眾的討論中, 而網路應用程式整合了javascript及adobe, flash, player, 因此從90年代末開始, 用靜態程式分析進行安全測試的作法也開始普及, 的作法和動態應用程式安全測試, dast, 的黑盒測試工具不同, dast. 靜態應用程式安全測試 Static application security testing 簡稱SAST 是透過審查程式原始碼來識別漏洞 提昇軟體安全性的作法 早在電腦問世時 就已有靜態程式分析的作法 自從1998年起 SQL注入的攻擊方式開始出現在公眾的討論中 而網路應用程式整合了JavaScript及Adobe Flash Player 因此從90年代末開始 用靜態程式分析進行安全測試的作法也開始普及 靜態應用程式安全測試的作法和動態應用程式安全測試 DAST 的黑盒測試工具不同 DAST是針對應用程式的功能 而SAST是白盒測試 著重在應用程式的程式碼本身 SAST工具會掃描應用程式以及其元件的程式碼 確認其軟體及架構中是否有安全漏洞 靜態分析工具約可偵測到50 程式的安全漏洞 1 在软件开发过程中 靜態應用程式安全測試可以在開發過程的早期 在程式碼階段進行 也可以在所有的程式碼及軟體元件放在一致的測試環境時再測試 此一技術也用在軟體品質保證上 2 不過會產生許多的假警報 因此也讓軟體開發者不願導入此一測試 3 SAST工具可以整合到開發流程中 幫助開發團隊 讓他們主要專注在開發及交付對應需求規格的軟體 4 SAST工具像其他的安全工具一様 著重在減少應用程式無法正常運作的風險 也避免應用程式中儲存的隱私資料不會被破壞或是洩漏 目录 1 簡介 2 優點 3 缺點 4 相關條目 5 參考資料簡介 编辑應用程式的安全測試可以分為三種 除了靜態應用程式安全測試 SAST 外 還有動態應用程式安全測試 DAST 以及合併上述兩者的互動式應用程式安全測試 IAST 5 靜態分析工具會以語法來檢查程式碼 在原始碼中依固定模式或是公式來確認 理論上 靜態分析工具也可以檢查編釋後的程式 其技術是以程式的instrumentation為基礎 會比對編釋後的元件以及元件的原始碼 以識別問題 靜態分析可以人工進行 像是為了代码审查或是為了不同目的 包括軟體安全 的軟體稽核審查 英语 Software audit review 但相當花時間 6 SAST工具的準確度會受到分析的範圍 識別漏洞的技術而定 以下是幾種不同層次的分析 函式層級 一連串的指令 檔案層級或是類層級 可擴展的程式模板 應用程式層級 一個程式或是一組的程式 分析的範圍會決定其準確度 以及用上下文資訊偵測漏洞的能力 7 在函式層級的常見技術 是創建控制資料流動程式的抽象語法樹 8 從1990年代後期開始 商業模式的變化也讓軟體開發開始轉向元件化 9 開發團隊的組織和流程也促使這樣的轉變 10 隨著資料流在應用程式的各元件之間 或是各應用程式之問 流動 就需要在呼叫程式時加入特定程序來 消毒 也要避免程式中的資料被污染 11 12 網頁應用程式的興起 更突顯了測試的重要性 Verizon Data Breach 2016年指出 40 的資料泄露是和網頁應用程式的漏洞有關 13 網路安全的威脅有來自外部的 目前也開始關注內部的威脅 Clearswift Insider Threat Index CITI 指出 2015年的問卷的回覆者中 有92 在過去一年內曾遭受過IT事件或是網路安全事件 而有72 的資料外泄是由公司或組織內部人士發起 14 Lee Hadlington將內部威脅分為三類 惡意 意外及未蓄意 手機軟體的爆炸性成長 因此需要在開發早期加入應用程式的安全機制 以減少惡意程式碼的散佈 15 優點 编辑漏洞在在軟體開發生命週期中的越早期進行修正 所花的成本越小 在開發階段修正的成本約是測試階段修正成本的十分之一 是量產階段修正成本的百分之一 16 不論是在程式碼層次或是應用程式層次的SAST工具 都會自動執行 不需要與其互動 若將SAST工具整合在CI CD 持續整合 持續發佈 流程內 在SAST工具識別到嚴重的漏洞時 可以自動停止整合流程 17 SAST工具會掃描所有的程式碼 程式碼的覆蓋率是100 而DAST 動態應用程式安全測試 工具覆蓋了執行到的部份 應用程式中可能有些部份不會掃描到 5 也有可能在組態檔案中有些不安全的組態 SAST工具會有品質測試或是架構測試的副加功能 軟體品質和安全性之間有直接的相關性 若軟體品質不好 其安全性也不會好 18 缺點 编辑即使軟體開發者都對SAST工具的使用有正面的回應 在導入時仍有許多不同的挑戰 4 若是使用敏捷軟體開發 開發者一開始會注重在產品特徵以及產品交付 不會一開始就考慮安全性 因此早期導入SAST工具會出現許多的錯誤 19 用SAST工具掃描較大的程式 可能會有上百個甚至成千個的漏洞警告 SAST工具會產生許多是偽陽性的假警報 增加分析的時間 並且降低程式設計師對此工具的信任 若有些漏洞的上下文是工具偵測不到的 那此一問題就更加嚴重了 3 相關條目 编辑安全測試 英语 Security testing Lint 互動式應用程式安全測試參考資料 编辑 Okun V Guthrie W F Gaucher H Black P E Effect of static analysis tools on software security preliminary investigation PDF Proceedings of the 2007 ACM Workshop on Quality of Protection ACM October 2007 1 5 S2CID 6663970 doi 10 1145 1314257 1314260 Ayewah N Hovemeyer D Morgenthaler J D Penix J Pugh W Using static analysis to find bugs IEEE Software IEEE September 2008 25 5 22 29 S2CID 20646690 doi 10 1109 MS 2008 130 3 0 3 1 Johnson Brittany Song Yooki Murphy Hill Emerson Bowdidge Robert Why don t software developers use static analysis tools to find bug ICSE 13 Proceedings of the 2013 International Conference on Software Engineering May 2013 672 681 ISBN 978 1 4673 3076 3 4 0 4 1 Oyetoyan Tosin Daniel Milosheska Bisera Grini Mari Myths and Facts About Static Application Security Testing Tools An Action Research at Telenor Digital International Conference on Agile Software Development Springer May 2018 86 103 5 0 5 1 Parizi R M Qian K Shahriar H Wu F Tao L Benchmark Requirements for Assessing Software Security Vulnerability Testing Tools IEEE 42nd Annual Computer Software and Applications Conference COMPSAC IEEE July 2018 825 826 ISBN 978 1 5386 2666 5 S2CID 52055661 doi 10 1109 COMPSAC 2018 00139 Chess B McGraw G Static analysis for security IEEE Security amp Privacy IEEE December 2004 2 6 76 79 doi 10 1109 MSP 2004 111 Chess B McGraw G Risk Analysis in Software Design IEEE Security amp Privacy IEEE October 2004 2 4 76 84 doi 10 1109 MSP 2004 55 Yamaguchi Fabian Lottmann Markus Rieck Konrad Generalized vulnerability extrapolation using abstract syntax trees Proceedings of the 28th Annual Computer Security Applications Conference IEEE December 2012 2 4 359 368 S2CID 8970125 doi 10 1145 2420950 2421003 Booch Grady Kozaczynski Wojtek Component Based Software Engineering 2006 IEEE Symposium on Security and Privacy S amp P 06 IEEE Software September 1998 15 5 34 36 S2CID 33646593 doi 10 1109 MS 1998 714621 Mezo Peter Jain Radhika Agile Software Development Adaptive Systems Principles and Best Practices 2006 IEEE Symposium on Security and Privacy S amp P 06 Information Systems Management December 2006 23 3 19 30 S2CID 5087532 doi 10 1201 1078 10580530 46108 23 3 20060601 93704 3 Livshits V B Lam M S Finding Security Vulnerabilities in Java Applications with Static Analysis USENIX Security Symposium May 2006 14 18 Jovanovic N Kruegel C Kirda E Pixy a static analysis tool for detecting Web application vulnerabilities 2006 IEEE Symposium on Security and Privacy S amp P 06 IEEE May 2006 359 368 ISBN 0 7695 2574 1 S2CID 1042585 doi 10 1109 SP 2006 29 2016 Data Breach Investigations Report PDF 2016 Clearswift Insider Threat Index CITI PDF 2015 Xianyong Meng Qian Kai Lo Dan Bhattacharya Prabir Wu Fan Secure Mobile Software Development with Vulnerability Detectors in Static Code Analysis 2018 International Symposium on Networks Computers and Communications ISNCC June 2018 1 4 ISBN 978 1 5386 3779 1 S2CID 53288239 doi 10 1109 ISNCC 2018 8531071 Hossain Shahadat Rework and Reuse Effects in Software Economy Global Journal of Computer Science and Technology October 2018 Okun V Guthrie W F Gaucher H Black P E Effect of static analysis tools on software security preliminary investigation PDF Proceedings of the 2007 ACM Workshop on Quality of Protection ACM October 2007 1 5 S2CID 6663970 doi 10 1145 1314257 1314260 Siavvas M Tsoukalas D Jankovic M Kehagias D Chatzigeorgiou A Tzovaras D Anicic N Gelenbe E An Empirical Evaluation of the Relationship between Technical Debt and Software Security Konjovic Z Zdravkovic M Trajanovic M 编 International Conference on Information Society and Technology 2019 Proceedings Data set 1 199 203 August 2019 doi 10 5281 zenodo 3374712 Arreaza Gustavo Jose Nieves Methodology for Developing Secure Apps in the Clouds MDSAC for IEEECS Conferences 2019 6th IEEE International Conference on Cyber Security and Cloud Computing CSCloud 2019 5th IEEE International Conference on Edge Computing and Scalable Cloud EdgeCom IEEE June 2019 102 106 ISBN 978 1 7281 1661 7 doi 10 1109 CSCloud EdgeCom 2019 00 11 取自 https zh wikipedia org w index php title 靜態應用程式安全測試 amp oldid 77634492, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。