정적 애플리케이션 보안 테스트
Static application security testingSAST(Static Application Security Test)는 소프트웨어의 소스 코드를 검토하여 취약점의 원인을 파악함으로써 소프트웨어를 보호하는 데 사용된다.컴퓨터가 존재한 만큼 소스코드를 정적으로 분석하는 과정이 존재했지만 이 기술은 90년대 후반 보안으로 확산됐고 1998년 웹 애플리케이션이 자바스크립트, 플래시 등의 신기술을 통합하면서 SQL 주입에 대한 첫 공개토론이었다.
응용 프로그램 기능의 블랙박스 테스트를 위한 동적 응용 프로그램 보안 테스트(DAST) 도구와 달리, SAST 도구는 응용 프로그램의 코드 내용인 화이트박스 테스트에 초점을 맞춘다.SAST 도구는 소프트웨어와 아키텍처의 잠재적인 보안 취약점을 식별하기 위해 애플리케이션과 그 구성요소의 소스 코드를 검사한다.정적 분석 도구는 기존 보안 취약점의 50%를 탐지할 수 있다.[1]
SDLC에서, SAST는 개발 프로세스 초기에 그리고 코드 레벨에서 수행되며, 또한 코드와 구성 요소의 모든 부분이 일관된 테스트 환경에서 결합될 때 수행된다.SAST는 소프트웨어 품질 보증에도 사용된다.[2]비록 많은 결과의 거짓 양성자들이 개발자들에[3] 의한 그것의 채택을 방해하더라도.
SAST 도구는 개발 팀이 주로 요청된 사양에 맞는 소프트웨어를 개발하고 제공하는 데 초점을 맞추고 있기 때문에 개발 프로세스에 통합되어 있다.[4]SAST 툴은 다른 보안 툴과 마찬가지로 애플리케이션의 다운타임 위험을 줄이거나 애플리케이션에 저장된 개인 정보가 손상되지 않도록 하는 데 초점을 맞춘다.
2018년 한 해 동안 개인정보보호청 데이터베이스를 보면[5] 6억1200만 건 이상의 기록이 해킹으로 훼손된 것으로 나타났다.
개요
릴리스된 애플리케이션의 애플리케이션 보안 테스트: 정적 애플리케이션 보안 테스트(SAST), 동적 애플리케이션 보안 테스트(DAST), 대화형 애플리케이션 보안 테스트(IAST) 등 이 두 가지를 조합한 애플리케이션 보안 테스트.[6]
정적 분석 도구는 프로그램의 텍스트를 구문론적으로 검사한다.그들은 소스 코드에서 일정한 패턴이나 규칙 집합을 찾는다.이론적으로, 그들은 또한 소프트웨어의 컴파일된 형태를 검토할 수 있다.이 기법은 컴파일된 컴포넌트와 이슈를 식별하기 위한 소스 코드 컴포넌트 사이의 매핑을 수행하는 코드의 계측에 의존한다.정적 분석은 보안 등 다른 목적으로 코드에 대한 코드 검토나 감사로서 수동으로 할 수 있지만 시간이 많이 소요된다.[7]
SAST 도구의 정밀도는 분석 범위와 취약성 식별에 사용되는 특정 기법에 의해 결정된다.다양한 수준의 분석에는 다음이 포함된다.
분석의 범위는 상황별 정보를 이용하여 취약성을 탐지할 수 있는 정확도와 용량을 결정한다.[8]
함수 수준에서 공통 기법은 함수 내의 데이터 흐름을 제어하기 위한 추상 구문 트리의 구성이다.[9]
90년대 후반부터, 비즈니스 과제에 적응해야 하는 필요성이 컴포넌트화를 통해 소프트웨어 개발을 변화시켰다.[10]개발 팀의[11] 프로세스와 조직에 의해 집행되는 애플리케이션 또는 애플리케이션 그룹의 모든 구성 요소들 사이의 데이터 흐름에 따라, 정화를 위한 전용 절차에 필요한 호출을 검증할 수 있고 특정 코드의 일부에 있는 데이터를 색칠하기 위해 적절한 조치가 취해진다는 것을 허용한다.[12][13]
웹 응용 프로그램의 증가에는 다음과 같은 테스트가 수반되었다.Verizon Data Breach는 2016년에 모든 데이터 침해의 40%가 웹 애플리케이션 취약성을 사용한다고 보고하였다.[14]외부 보안 검증은 물론 내부 위협에 대한 집중도 높아지고 있다.CITI(Clearswift Insider Threat Index)는 2015년 조사에서 응답자 중 92%가 지난 12개월 동안 IT 또는 보안 사고를 경험했으며, 이러한 위반 중 74%가 내부자에 의해 발생했다고 보고했다.[15]리 해들링턴은 내부 위협을 악의적, 우발적, 의도치 않은 3가지 범주로 분류했다.모바일 애플리케이션이 폭발적으로 성장한다는 것은 개발 프로세스 초기에 애플리케이션을 확보해 악성 코드 개발을 줄인다는 것을 의미한다.[16]
SAST의 강점
SDLC에서 취약성이 조기에 고정될수록 수리 비용이 저렴해진다.개발 고치는 비용이 시험보다 10배, 생산비는 100배 낮다.[17]SAST 도구는 코드 레벨 또는 애플리케이션 레벨에서 자동으로 실행되며 상호 작용이 필요하지 않다.CI/CD 컨텍스트에 통합될 경우, SAST 도구를 사용하여 중요한 취약성이 확인될 경우 통합 프로세스를 자동으로 중지할 수 있다.[18]
툴은 전체 소스 코드를 스캔하기 때문에 100% 커버할 수 있는 반면 동적 애플리케이션 보안 테스트는 애플리케이션의 일부가 누락되거나 [6]구성 파일에서 보안되지 않은 구성을 실행할 수 있다.
SAST 도구는 품질 및 구조 시험과 같은 확장된 기능을 제공할 수 있다.품질과 보안 사이에는 직접적인 상관관계가 있다.품질이 나쁜 소프트웨어도 보안이 허술하다.[19]
SAST 약점
개발자들은 SAST 툴의 사용에 대해 긍정적이지만, 개발자들에 의한 SAST 툴의 채택에는 다른 과제가 있다.[4]
소프트웨어 개발의 신속한 변화를 위한 프로세스와 함께, SAST의 초기 통합은 많은 버그를 발생시킨다. 이 프레임워크를 사용하는 개발자들이 먼저 특징과 전달에 집중하기 때문이다.[20]
SAST 도구로 많은 코드 라인을 스캔하면 단일 애플리케이션에 대해 수백 또는 수천 개의 취약성 경고가 발생할 수 있다.그것은 많은 잘못된 긍정을 발생시켜 조사 시간을 늘리고 그러한 도구에 대한 신뢰를 감소시킨다.특히[3] 취약성의 컨텍스트를 툴로 잡을 수 없는 경우가 이에 해당한다.
참조
- ^ Okun, V.; Guthrie, W. F.; Gaucher, H.; Black, P. E. (October 2007). "Effect of static analysis tools on software security: preliminary investigation" (PDF). Proceedings of the 2007 ACM Workshop on Quality of Protection. ACM: 1–5. doi:10.1145/1314257.1314260. S2CID 6663970.
- ^ Ayewah, N.; Hovemeyer, D.; Morgenthaler, J.D.; Penix, J.; Pugh, W. (September 2008). "Using static analysis to find bugs". IEEE Software. IEEE. 25 (5): 22–29. doi:10.1109/MS.2008.130. S2CID 20646690.
- ^ a b Johnson, Brittany; Song, Yooki; Murphy-Hill, Emerson; Bowdidge, Robert (May 2013). "Why don't software developers use static analysis tools to find bug". ICSE '13 Proceedings of the 2013 International Conference on Software Engineering: 672–681. ISBN 978-1-4673-3076-3.
- ^ a b Oyetoyan, Tosin Daniel; Milosheska, Bisera; Grini, Mari (May 2018). "Myths and Facts About Static Application Security Testing Tools: An Action Research at Telenor Digital". International Conference on Agile Software Development. Springer: 86–103.
- ^ "Data Breaches Privacy Rights Clearinghouse". privacyrights.org.
- ^ a b Parizi, R. M.; Qian, K.; Shahriar, H.; Wu, F.; Tao, L. (July 2018). "Benchmark Requirements for Assessing Software Security Vulnerability Testing Tools". IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC). IEEE: 825–826. doi:10.1109/COMPSAC.2018.00139. ISBN 978-1-5386-2666-5. S2CID 52055661.
- ^ Chess, B.; McGraw, G. (December 2004). "Static analysis for security". IEEE Security & Privacy. IEEE. 2 (6): 76–79. doi:10.1109/MSP.2004.111.
- ^ Chess, B.; McGraw, G. (October 2004). "Risk Analysis in Software Design". IEEE Security & Privacy. IEEE. 2 (4): 76–84. doi:10.1109/MSP.2004.55.
- ^ Yamaguchi, Fabian; Lottmann, Markus; Rieck, Konrad (December 2012). "Generalized vulnerability extrapolation using abstract syntax trees". Proceedings of the 28th Annual Computer Security Applications Conference. IEEE. 2 (4): 359–368. doi:10.1145/2420950.2421003. S2CID 8970125.
- ^ Booch, Grady; Kozaczynski, Wojtek (September 1998). "Component-Based Software Engineering". 2006 IEEE Symposium on Security and Privacy (S&P'06). IEEE Software. 15 (5): 34–36. doi:10.1109/MS.1998.714621. S2CID 33646593.
- ^ Mezo, Peter; Jain, Radhika (December 2006). "Agile Software Development: Adaptive Systems Principles and Best Practices". 2006 IEEE Symposium on Security and Privacy (S&P'06). Information Systems Management. 23 (3): 19–30. doi:10.1201/1078.10580530/46108.23.3.20060601/93704.3. S2CID 5087532.
- ^ Livshits, V.B.; Lam, M.S. (May 2006). "Finding Security Vulnerabilities in Java Applications with Static Analysis". USENIX Security Symposium. 14: 18.
- ^ Jovanovic, N.; Kruegel, C.; Kirda, E. (May 2006). "Pixy: a static analysis tool for detecting Web application vulnerabilities". 2006 IEEE Symposium on Security and Privacy (S&P'06). IEEE: 359–368. doi:10.1109/SP.2006.29. ISBN 0-7695-2574-1. S2CID 1042585.
- ^ "2016 Data Breach Investigations Report" (PDF). 2016.
- ^ "Clearswift Insider Threat Index (CITI)" (PDF). 2015.
- ^ Xianyong, Meng; Qian, Kai; Lo, Dan; Bhattacharya, Prabir; Wu, Fan (June 2018). "Secure Mobile Software Development with Vulnerability Detectors in Static Code Analysis". 2018 International Symposium on Networks, Computers and Communications (ISNCC): 1–4. doi:10.1109/ISNCC.2018.8531071. ISBN 978-1-5386-3779-1. S2CID 53288239.
- ^ Hossain, Shahadat (October 2018). "Rework and Reuse Effects in Software Economy". Global Journal of Computer Science and Technology.
- ^ Okun, V.; Guthrie, W. F.; Gaucher, H.; Black, P. E. (October 2007). "Effect of static analysis tools on software security: preliminary investigation" (PDF). Proceedings of the 2007 ACM Workshop on Quality of Protection. ACM: 1–5. doi:10.1145/1314257.1314260. S2CID 6663970.
- ^ Siavvas, M.; Tsoukalas, D.; Janković, M.; Kehagias, D.; Chatzigeorgiou, A.; Tzovaras, D.; Aničić, N.; Gelenbe, E. (August 2019). "An Empirical Evaluation of the Relationship between Technical Debt and Software Security". In Konjović, Z.; Zdravković, M.; Trajanović, M. (eds.). International Conference on Information Society and Technology 2019 Proceedings (Data set). Vol. 1. pp. 199–203. doi:10.5281/zenodo.3374712.
- ^ Arreaza, Gustavo Jose Nieves (June 2019). "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: 102–106. doi:10.1109/CSCloud/EdgeCom.2019.00-11. ISBN 978-1-7281-1661-7.
이 글은 추가 또는 더 구체적인 범주가 필요하다.(2020년 7월) |
