소프트웨어 구성 분석
Software composition analysis다른 구성 [1]요소를 사용하여 소프트웨어를 개발하는 것은 일반적인 소프트웨어 엔지니어링 관행입니다.소프트웨어 구성요소를 사용하면 더 큰 요소의 복잡성이 더 작은 코드 조각으로 분할되고 구성요소를 더 쉽게 재사용하여 새로운 [2]요구사항을 해결함으로써 유연성이 향상됩니다.이 방법은 1990년대 후반부터 소프트웨어 개발 프로세스의 [3]속도를 높이고 출시 시간을 단축하기 위해 OSS(오픈 소스 소프트웨어)가 대중화되면서 광범위하게 확장되었습니다.
그러나 오픈 소스 소프트웨어를 사용하는 것은 개발 중인 소프트웨어 애플리케이션에 많은 위험을 초래합니다.이러한 위험은 5가지 [4]범주로 분류할 수 있습니다.
- OSS 버전 제어: 새로운 버전에 의해 도입된 변경의 위험
- 보안: 구성 요소의 취약성 위험 - 일반 취약성 및 노출(또는 CVE)
- 라이센스: IP(지식재산권) 법적 요구 사항의 위험
- 개발: 기존 코드베이스와 오픈 소스 소프트웨어 간의 호환성 위험
- 지원: 문서 불량 및 오래된 소프트웨어 구성 요소의 위험
1998년 [5]2월 오픈 소스 이니셔티브가 설립된 직후 OSS와 관련된 위험이 제기되었으며[6] 조직은 스프레드시트와 문서를 사용하여 [7]개발자가 사용하는 모든 오픈 소스 구성요소를 추적하여 이를 관리하려고 했습니다.
오픈 소스 구성요소를 광범위하게 사용하는 조직의 경우 오픈 소스 위험 분석 및 관리를 자동화할 필요가 있었습니다.그 결과, 조직이 오픈 소스 위험을 관리하는 데 도움이 되는 SCA(Software Composition Analysis)라는 새로운 범주의 소프트웨어 제품이 탄생했습니다. SCA는 보안 취약성, IP 라이센스 요구 사항과 관련된 위험을 줄이기 위해 소프트웨어 애플리케이션 내에서 사용 중인 모든 타사 구성 요소를 탐지하기 위해 노력합니다.사용 중인 구성요소의 노후화.
개요
SCA(Software Composition Analysis)는 맞춤형 소프트웨어 애플리케이션을 분석하여 내장된 오픈 소스 소프트웨어를 탐지하고 최신 소프트웨어인지, 보안 결함이 있는지 또는 라이센스 [8]요구 사항이 있는지 여부를 탐지하는 정보 기술 및 소프트웨어 엔지니어링 분야의 관행입니다.
SCA 제품은 일반적으로 [9]다음과 같이 작동합니다.
- 엔진은 소프트웨어 원본 코드와 소프트웨어 응용 프로그램을 컴파일하는 데 사용되는 관련 아티팩트를 검색합니다.
- 엔진은 OSS 구성 요소와 해당 버전을 식별하고 일반적으로 이 정보를 데이터베이스에 저장하여 스캔한 응용 프로그램에서 사용 중인 OSS 카탈로그를 만듭니다.
- 그런 다음 이 카탈로그는 각 구성 요소에 대해 알려진 보안 취약성, 구성 요소 사용에 대한 라이센스 요구 사항 및 구성 [10]요소의 이전 버전을 참조하는 데이터베이스와 비교됩니다.보안 취약성 탐지의 경우 이 비교는 일반적으로 NVD(National Vulnerability Database)에서 추적되는 알려진 보안 취약성(CVE)과 비교됩니다.일부 제품은 추가적인 독점적 취약성 데이터베이스를 사용합니다.IP/법적 준수의 경우, SCA 제품은 OSS [11]구성요소에 사용되는 라이센스 유형을 추출하고 평가합니다.구성 요소의 버전은 GitHub, Maven, PyPi, NuGet 등과 같은 널리 사용되는 오픈 소스 저장소에서 추출됩니다.
- 그런 다음 다른 디지털 형식을 사용하는 최종 사용자가 결과를 사용할 수 있습니다.내용과 형식은 SCA 제품에 따라 다르며, 특히 강력하거나 약한 카피레프트 라이센스와 같은 오픈 소스 구성 요소의 법적 요구 사항과 관련된 경우 위험을 평가하고 해석하기 위한 지침과 권장 사항을 포함할 수 있습니다.출력에는 소프트웨어 응용 프로그램에[12] 사용되는 모든 오픈 소스 구성 요소 및 관련 속성이 자세히 설명된 SBOM(소프트웨어 Bill of Materials)도 포함될 수 있습니다.
사용.
SCA는 조직의 다양한 기능에 영향을 미치므로 조직의 기업 규모와 구조에 따라 다른 팀이 데이터를 사용할 수 있습니다.IT 부서는 종종 최고 정보 책임자(CIO), 최고 기술 책임자(CTO) 및 최고 기업 설계자(EA)[13]를 포함한 공통 이해 관계자와 함께 기술을 구현하고 운영하기 위해 SCA를 사용합니다.보안 및 라이센스 데이터는 보안 위험에 대한 CISO(최고 정보 보안 책임자) 및 IP/지적 재산 위험 [14]관리 규정 준수 책임자와 같은 역할에 의해 사용되는 경우가 많습니다.
SCA 제품 기능에 따라 OSS 구성 요소를 사용하고 통합하는 개발자의 IDE(Integrated Development Environment) 내에서 직접 구현할 수도 있고, 소프트웨어 품질 관리 [15][16]프로세스의 전용 단계로 구현할 수도 있습니다.
SCA 제품, 특히 SBOM을 생성할 수 있는 용량은 공급업체가 해당 기관 중 [17]하나에 제공하는 소프트웨어의 보안을 강화하기 위해 미국과 같은 일부 국가에서 필요합니다.
SCA의 또 다른 일반적인 사용 사례는 기술 실사용입니다.M&A(M&A) 거래 전에 자문 회사는 대상 [18]회사의 소프트웨어와 관련된 위험을 검토합니다.
SCA 강점
SCA 제품의 자동 특성은 주요 강점입니다.개발자는 OSS 구성 [19]요소를 사용하고 통합할 때 수동으로 추가 작업을 수행할 필요가 없습니다.자동화는 코드 및[20] 아티팩트 내의 다른 OSS 구성 요소에 대한 간접 참조에도 적용됩니다.
SCA 약점
반대로, 현재 SCA 제품의 주요 약점은 다음과 같습니다.
- 완전한 운영에 몇 개월이 걸릴 수 있는 복잡하고 노동 집약적인 구현
- 각 제품은 크기와 적용 범위에 따라 크게 다를 수 있는 OSS 구성 요소의 자체 전용 데이터베이스를 사용합니다.
- NVD에 공식적으로 보고된 취약성에 대해서만 취약성 데이터를 보고하도록 제한(취약성이 처음 [23]발견된 후 수개월이 될 수 있음)
- SCA 보고서 및[24] 데이터를 기반으로 취해야 할 조치에 대한 자동화된 지침 부족
- 탐지된 OSS 라이센스의 법적 요구 사항에 대한 지침 부족
참고 항목
레퍼런스
- ^ Nierstrasz, Oscar; Meijler, Theo Dirk (1995). "Research directions in software composition". ACM Computing Surveys. ACM. 27 (2): 262–264. doi:10.1145/210376.210389. S2CID 17612128.
- ^ Nierstrasz, Oscar; Dami, Laurent (January 1995). Object-oriented software composition. Prentice Hall International (UK) Ltd. pp. 3–28. CiteSeerX 10.1.1.90.8174.
- ^ De Hoon, Michiel JL; Imoto, Seiya; Nolan, John; Miyano, Satoru (February 2004). "Open source clustering software". Bioinformatics. Oxford University Press: 1453–1454. CiteSeerX 10.1.1.114.3335.
- ^ Duc Linh, Nguyen; Duy Hung, Phan; Dipe, Vu Thu (2019). "Risk Management in Projects Based on Open-Source Software". Proceedings of the 2019 8th International Conference on Software and Computer Applications: 178–183. doi:10.1145/3316615.3316648. ISBN 9781450365734. S2CID 153314145.
- ^ "History of the OSI". Opensource.org.
- ^ Payne, Christian (2002). "On the security of open source software" (PDF). Information Systems Journal. 12: 61–78. doi:10.1046/j.1365-2575.2002.00118.x. S2CID 8123076.
- ^ Kaur, Sumandeep (April 2020). "Security Issues in Open-Source Software" (PDF). International Journal of Computer Science & Communication: 47–51.
- ^ Prana, Gede Artha Azriadi; Sharma, Abhishek; Shar, Lwin Khin; Foo, Darius; Santosa, Andrew E; Sharma, Asankhaya; Lo, David (July 2021). "Out of sight, out of mind? How vulnerable dependencies affect open-source projects". Empirical Software Engineering. Springer. 26 (4): 1–34. doi:10.1007/s10664-021-09959-3. S2CID 197679660.
- ^ Ombredanne, Philippe (October 2020). "Free and Open Source Software License Compliance: Tools for Software Composition Analysis". Computer. IEEE. 53 (10): 262–264. doi:10.1109/MC.2020.3011082. S2CID 222232127.
- ^ "10 Types of Application Security Testing Tools: When and How to Use Them".
- ^ Duan, Ruian; Bijlani, Ashish; Xu, Meng; Kim, Taesoo; Lee, Wenke (2017). "Identifying open-source license violation and 1-day security risk at large scale". Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security. ACM: 2169–2185. doi:10.1145/3133956.3134048. ISBN 9781450349468. S2CID 7402387.
- ^ Arora, Arushi; Wright, Virginia; Garman, Christina (2022). "Strengthening the Security of Operational Technology: Understanding Contemporary Bill of Materials" (PDF). JCIP the Journal of Critical Infrastructure Policy: 111.
- ^ "Software bill of materials: Managing software cybersecurity risks".
- ^ Popp, Karl Michael (30 October 2019). Best Practices for commercial use of open source software. BoD – Books on Demand, 2019. p. 10. ISBN 9783750403093.
- ^ Imtiaz, Nasif; Thorn, Seaver; Williams, Laurie (October 2021). "A comparative study of vulnerability reporting by software composition analysis tools". Proceedings of the 15th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). ACM: 1–11. arXiv:2108.12078. doi:10.1145/3475716.3475769. ISBN 9781450386654. S2CID 237346987.
- ^ Sun, Xiaohan; Cheng, Yunchang; Qu, Xiaojie; Li, Hang (June 2021). "Design and Implementation of Security Test Pipeline based on DevSecOps". 2021 IEEE 4th Advanced Information Management, Communicates, Electronic and Automation Control Conference (IMCEC). IEEE. 4: 532–535. doi:10.1109/IMCEC51613.2021.9482270. ISBN 978-1-7281-8535-4. S2CID 236193144.
- ^ "Software Bill of Materials Elements and Considerations".
- ^ Serafini, Daniele; Zacchiroli, Stefano (September 2022). "Efficient Prior Publication Identification for Open Source Code". Proceedings of the 18th International Symposium on Open Collaboration. ACM. 4: 1–8. arXiv:2207.11057. doi:10.1145/3555051.3555068. ISBN 9781450398459. S2CID 251018650.
- ^ Chen, Yang; Santosa, Andrew E; Sharma, Asankhaya; Lo, David (September 2020). "Automated identification of libraries from vulnerability data". Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Practice: 90–99. doi:10.1145/3377813.3381360. ISBN 9781450371230. S2CID 211167417.
- ^ Kengo Oka, Dennis (2021). "Software Composition Analysis in the Automotive Industry". Building Secure Cars: Assuring the Automotive Software Development Lifecycle. Wiley: 91–110. doi:10.1002/9781119710783. ISBN 9781119710783. S2CID 233582862.
- ^ Rajapakse, Roshan Namal; Zahedi, Mansooreh; Babar, Muhammad Ali (2021). "An Empirical Analysis of Practitioners' Perspectives on Security Tool Integration into DevOps". Proceedings of the 15th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM): 1–12. arXiv:2107.02096. doi:10.1145/3475716.3475776. ISBN 9781450386654. S2CID 235731939.
- ^ Imtiaz, Nasif; Thorn, Seaver; Williams, Laurie (2021). "A comparative study of vulnerability reporting by software composition analysis tools". Proceedings of the 15th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM): 1–11. arXiv:2108.12078. doi:10.1145/3475716.3475769. ISBN 9781450386654. S2CID 237346987.
- ^ "Component Analysis". owasp.org.
- ^ Foo, Darius; Chua, Hendy; Yeo, Jason; Ang, Ming Yi; Sharma, Asankhaya (2018). "Efficient static checking of library updates". Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering: 791–796. doi:10.1145/3236024.3275535. ISBN 9781450355735. S2CID 53079466.
- ^ Millar, Stuart (November 2017). "Vulnerability Detection in Open Source Software: The Cure and the Cause" (PDF). Queen's University Belfast.