최근에 매쉬업(mashups), 웹 3.0, JavaScript, AJAX (Asynchronous JavaScript XML) 등이 널리 사용되면서, 새로운 취약점들이 발견되고 있어 보안 위협이 더 증대되고 있다. 이러한 웹 애플리케이션 취약점과 보안 위협을 효율적으로 완화하기 위해, 그 취약점들을 위험도 기준으로 순서화하여 웹 애플리케이션의 개발 생명주기의 해당 단계에서 우선적으로 고려해야 한다. 본 논문에서는 미국 NVD(National Vulnerability Database)의 웹 애플리케이션 취약점에 대한 데이터를 분석하여, OWASP Top 10 취약점들의 위험도 산정 방법이 타당한 지를 검증하였다. 그 다음, OWASP Top-10 2010과 CWE (Common Weakness Enumeration) 데이터를 중심으로 웹 애플리케이션 취약점 정보를 분석하여 웹 취약점들을 사상시켜 순서화하고, 그 취약점들이 어떤 개발 생명주기 단계와 관련이 있는지를 제시하였다. 이를 통해 효율적으로 웹 보안 위협과 취약점을 예방하거나 완화할 수 있다.
최근에 매쉬업(mashups), 웹 3.0, JavaScript, AJAX (Asynchronous JavaScript XML) 등이 널리 사용되면서, 새로운 취약점들이 발견되고 있어 보안 위협이 더 증대되고 있다. 이러한 웹 애플리케이션 취약점과 보안 위협을 효율적으로 완화하기 위해, 그 취약점들을 위험도 기준으로 순서화하여 웹 애플리케이션의 개발 생명주기의 해당 단계에서 우선적으로 고려해야 한다. 본 논문에서는 미국 NVD(National Vulnerability Database)의 웹 애플리케이션 취약점에 대한 데이터를 분석하여, OWASP Top 10 취약점들의 위험도 산정 방법이 타당한 지를 검증하였다. 그 다음, OWASP Top-10 2010과 CWE (Common Weakness Enumeration) 데이터를 중심으로 웹 애플리케이션 취약점 정보를 분석하여 웹 취약점들을 사상시켜 순서화하고, 그 취약점들이 어떤 개발 생명주기 단계와 관련이 있는지를 제시하였다. 이를 통해 효율적으로 웹 보안 위협과 취약점을 예방하거나 완화할 수 있다.
Recently, as modern Internet uses mashups, Web 3.0, JavaScript/AJAX widely, the rate at which new vulnerabilities are being discovered is increasing rapidly. It can subsequently introduce big security threats. In order to efficiently mitigate these web application vulnerabilities and security threat...
Recently, as modern Internet uses mashups, Web 3.0, JavaScript/AJAX widely, the rate at which new vulnerabilities are being discovered is increasing rapidly. It can subsequently introduce big security threats. In order to efficiently mitigate these web application vulnerabilities and security threats, it is needed to rank vulnerabilities based on severity and consider the severe vulnerabilities during a specific phase of software development lifecycle (SDLC) for web applications. In this paper, we have first verified whether the risk rating methodology of OWASP Top 10 vulnerabilities is a reasonable one or not by analyzing the vulnerability data of web applications in the US National Vulnerability Database (NVD). Then, by inspecting the vulnerability information of web applications based on OWASP Top-10 2010 list and CWE (Common Weakness Enumeration) directory, we have mapped the web-related entries of CWE onto the entries of OWASP Top-10 2010 and prioritized them. We have also presented which phase of SDLC is associated with each vulnerability entry. Using this approach, we can prevent or mitigate web application vulnerabilities and security threats efficiently.
Recently, as modern Internet uses mashups, Web 3.0, JavaScript/AJAX widely, the rate at which new vulnerabilities are being discovered is increasing rapidly. It can subsequently introduce big security threats. In order to efficiently mitigate these web application vulnerabilities and security threats, it is needed to rank vulnerabilities based on severity and consider the severe vulnerabilities during a specific phase of software development lifecycle (SDLC) for web applications. In this paper, we have first verified whether the risk rating methodology of OWASP Top 10 vulnerabilities is a reasonable one or not by analyzing the vulnerability data of web applications in the US National Vulnerability Database (NVD). Then, by inspecting the vulnerability information of web applications based on OWASP Top-10 2010 list and CWE (Common Weakness Enumeration) directory, we have mapped the web-related entries of CWE onto the entries of OWASP Top-10 2010 and prioritized them. We have also presented which phase of SDLC is associated with each vulnerability entry. Using this approach, we can prevent or mitigate web application vulnerabilities and security threats efficiently.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
표 6은 웹 애플리케이션 개발 생명주기에서 우선 고려해야 할 취약점들의 랭킹 및 도입 단계를 보여 준다. 개발자나 테스터가 시간이나 비용 면에서 모든 취약점들을 고려할 수 없을 때, 표를 활용하여 효율적으로 해당 개발단계에서 높은 우선순위 취약점들을 미리 제거하여 웹 애플리케이션 품질도 보증하고 개발 비용을 줄여 주는 것이 본 논문의 주요 기여 중의 하나이다. 또한, 분류 기준이 매우 포괄적인 OWASP Top-10분류에 구체적인 CWE 항목들을 사상하여 웹 애플리케이션 취약점 항목들을 세분화한 것도 주요 기여이다.
이 연구의 결과로 Martin 등은 여러 연구진들과 협력하여 CWE (Common WIFF Enumeration → 후에 Common Weaknesses Enumeration로 변경)2) [4,5,6,8,11] 리스트의 구성요소들을 정의하였다[4]. 또한 CWE 리스트 개발로 얻을 수 있는 효과와 가치 등을 기술하였다[5].
본 논문에서는 OWASP Top 10 목록이 타당한지를 확인하기 위해, OWASP Top 10의 2010 버전에 나타난 취약점들의 비율을 미국 NVD에 등록된 취약점 자료를 분석하여 표 3에 나타내었다. 이 결과는 OWASP Top 10의 각 취약점이 10개의 취약점들 중 차지하는 비율을 NVD에 등록된 취약점수를 기준으로 집계한 것이다.
본 논문에서는 안전하고 효율적으로 웹 애플리케이션을 개발할 수 있도록, 주요 취약점 항목들에 대해 분석하여 대응관계를 도출하고, 주요 취약점 항목들이 어떤 SDLC 단계에서 도입되는지를 제시하였다.
본 논문에서는, 먼저 미국 NVD (National Vulnerab ility Database)[3]의 웹 애플리케이션들에 대한 취약점 데이터를 분석하여, OWASP Top 10의 취약점 우선순위에 대한 타당성을 조사한다. 그리고 OWASP Top 10 2010을 중심으로 CWE(Common Weaknesses Enumeration)[4,5]와의 대응 관계를 검증하고 웹 애플리케이션 취약점 정보를 분석하여, OWASP 분류와 CWE 분류의 웹 취약점들을 사상 (mapping)시켜 우선 고려할 취약점 항목들을 제안한다.
본 논문은 최근 이슈가 되고 있는 웹 애플리케이션 취약점들 항목들 간의 대응 관계를 고려하여 사상시키며, 각 취약점이 소프트웨어 개발 생명주기(SDLC)에서 어느 단계와 관련이 있는지를 다룬다. 이를 위해 기존의 연구 결과들의 유효성을 분석하여 개선한다.
취약점 순위 변화를 미리 예측하는 것은 매우 어려우며, OWASP 그룹과 같이 수많은 전문가들이 취약점 발생 추이와 데이터를 분석하여 체계적으로 순위예측을 하는 것이 한 방법이다. 본 논문의 초점은 웹 애플리케이션 취약점 주요 목록을 제시하고 관련 취약점들이 어떤 SDLC 단계와 대응되는지를 제안하여, 효율적으로 안전한 웹 애플리케이션을 개발하자는 것이다.
이를 해결하기 위해 본 논문에서는, OWASP Top 10의 각 항목에 대응되는 CWE 항목들을 분석하여 대응관계를 재정립하여 웹 취약점 목록을 개선하였다. 즉 표 4의 세 종류의 OWASP-CWE 대응에서 음영 처리한 항목인 중복되는 항목들을 분석하고 중복된 CWE 항목들을 선별하여 OWASP Top-10 항목들에 대응하는 통합된 CWE 리스트를 구축하였다 (표 6 참조).
가설 설정
A2:XSS의 ‘알려진 정도’가 유일하게 0 점의 점수를 갖는다.
제안 방법
OWASP Top 10 취약점들 랭킹 변화를 살펴보고 이 취약점들의 실제 발생 비율을 미국 NVD를 이용하여 분석하여, OWASP Top 10 취약점들 랭킹의 타당성을 검증하였다. 다음으로, 2010년도 OWASP Top 10 리스트를 중심으로 CWE들과의 관련성을 분석하여 더 구체적이고 세분화된 취약점 항목들의 랭킹을 제안하였다.
본 논문에서는, 먼저 미국 NVD (National Vulnerab ility Database)[3]의 웹 애플리케이션들에 대한 취약점 데이터를 분석하여, OWASP Top 10의 취약점 우선순위에 대한 타당성을 조사한다. 그리고 OWASP Top 10 2010을 중심으로 CWE(Common Weaknesses Enumeration)[4,5]와의 대응 관계를 검증하고 웹 애플리케이션 취약점 정보를 분석하여, OWASP 분류와 CWE 분류의 웹 취약점들을 사상 (mapping)시켜 우선 고려할 취약점 항목들을 제안한다. 동시에 주요 취약점들이 웹 애플리케이션 ‘소프트웨어 개발 생명주기’(SDLC)의 어느 단계와 연관이 있는지도 보인다.
OWASP Top 10 취약점들 랭킹 변화를 살펴보고 이 취약점들의 실제 발생 비율을 미국 NVD를 이용하여 분석하여, OWASP Top 10 취약점들 랭킹의 타당성을 검증하였다. 다음으로, 2010년도 OWASP Top 10 리스트를 중심으로 CWE들과의 관련성을 분석하여 더 구체적이고 세분화된 취약점 항목들의 랭킹을 제안하였다. 또한, 각 취약점 항목들이 애플리케이션 개발 단계 중, 어느 단계에서 도입되는 지를 나타내었다.
표 4에서 A1의 CWE-809의 OWASP-CWE 대응에만 존재하는 CWE-90은 표 5에서 알 수 있듯이 CWE-77과 부모-자식 관계를 가지고 있다. 때문에 CWE-809의 OWASP-CWE 대응과 OWASP의 OWASP-CWE 대응에서 중복되므로 최종 통합 CWE 리스트에 포함시켰다.(표 6 참조)
또한, 가장 잘 알려지고 유용한 두 가지 리스트인 “19개의 치명적인 오류들 (sins)”[12]과 “OWASP3) Top 10”[7, 9, 10]과 그들이 제안한 “7가지 계”를 사상시켰다.
본 논문에서는 통합된 OWASP Top-10 와 CWE 대응 목록을 구축하고, 소프트웨어 개발 생명주기(SDLC)에 취약점의 발생 여부 정보를 추가하였다 (표 6 참조). 표 6의 취약점들은 포괄적인 OWASP Top-10 순위를 계승하였으며, 그 바탕위에 CWE 분류를 분석하여 웹 애플리케이션 취약점들을 세부적으로 더 구체화되어 표현하면서 SDLC의 관련 단계들과 사상시켰다는 점에서 의미가 있다.
미국 NVD(National Vulnerability Database)는 미 정부 산업 표준 기관인 NIST가 운영하는 취약점 DB이다[3]. 서로 다른 벤더나 전문가들이 하나의 취약점을 다르게 지칭할 수 있는 혼란을 막기 위해 CVE라는 취약점 식별체계를 통해 NVD가 구축되었다. CVE는 OVAL(Open Vuln erability and Assessment Language), CPE(Common Pla tform Enumeration)와 더불어 미국 정부가 추진 중인 정보보안을 위협하는 기술을 자동화 및 표준화하기 위한 SCAP Security Content Automation Protocol)의 구성 요소이다.
최근에 Tripathi 등은 소프트웨어 도구 및 서비스들의 보안 평가를 위한 취약점 분류체계의 표준화에 대해 연구하였다[6]. 이를 위해 기존 취약점 분류 방법들과 CVE 디렉토리의 범주화에 대해 분석하여 초기 단계에 머물고 있는, 보안성을 개선하고 위험을 평가하는 연구가 지속되어야 함을 지적하였다.
본 논문은 최근 이슈가 되고 있는 웹 애플리케이션 취약점들 항목들 간의 대응 관계를 고려하여 사상시키며, 각 취약점이 소프트웨어 개발 생명주기(SDLC)에서 어느 단계와 관련이 있는지를 다룬다. 이를 위해 기존의 연구 결과들의 유효성을 분석하여 개선한다.
asp를 다시 작성하면 그림 6과 같다. 입력 데이터의 특수 기호 등이 다른 대응 문자로 대체되도록 인코딩하여 처리하고, 입력으로부터 생성된 출력을 또다시 HtmlEncode를 통해 인코딩하여 제공함으로써 기존에 존재하던 XSS에 관련된 취약점을 배포 단계 전에 미리 제거하여 취약점으로 인한 위험을 완화하였다.
이를 해결하기 위해 본 논문에서는, OWASP Top 10의 각 항목에 대응되는 CWE 항목들을 분석하여 대응관계를 재정립하여 웹 취약점 목록을 개선하였다. 즉 표 4의 세 종류의 OWASP-CWE 대응에서 음영 처리한 항목인 중복되는 항목들을 분석하고 중복된 CWE 항목들을 선별하여 OWASP Top-10 항목들에 대응하는 통합된 CWE 리스트를 구축하였다 (표 6 참조).
Martin 등은 [4]에서, 보안 평가도구 및 서비스들의 역량과 커버리지를 정의하는 명명법(nomenclature), 분류체계 (taxonomy), 표준 등이 없음을 지적하고, 소프트웨어 보안취약점들의 표준 분류체계에 대한 연구를 수행하였다. 즉, 널리 알려진 CVE (Common Vulnerabilities and Exposu res)1)[4,5,6,8] 보안 취약점 리스트를 확장하여 새로운 코드 보안 평가 기법을 개발하고 관련 도구 및 서비스 사용을 활성화 시키려고 하였다. 이 연구의 결과로 Martin 등은 여러 연구진들과 협력하여 CWE (Common WIFF Enumeration → 후에 Common Weaknesses Enumeration로 변경)2) [4,5,6,8,11] 리스트의 구성요소들을 정의하였다[4].
성능/효과
결과적으로 OWASP Top-10에 대하여 CWE에서 제공하는 CWE 항목들과 CWE-809를 활용하여 대응시킬 수 있는 CWE 항목들이 서로 달라, 개발자나 운용자가 보안 취약점들을 고려할 때 혼선을 초래할 수 있다.
분석 결과를 보면 2003년부터 OWASP Top 10 2010의“A1:Injection”과 “A2:XSS”가 대상 10개 취약점들 중 약 33~90%에 달하는 큰 비율을 차지하고 있는 것을 알 수 있다.
실제로 NVD의 웹 취약점 자료를 분석한 결과 가장 위험도가 높은 취약점이 가장 많이 발견되고 있지는 않다. 즉, NVD에 등록된 해당 취약점 비율과 OWASP의 위험도 산정 방법 사이에 일관성이 결여되는 부분이 있음을 알 수 있었다.
웹 애플리케이션 취약점을 ‘소프트웨어 개발 생명주기’(SDLC) 프로세스의 초기 단계부터 고려한다면, 보다 안전하고 고 품질의 응용을 개발할 수 있다. 즉, 특정 SDLC 단계에서 관련 주요 취약점들을 미리 고려하여 설계하거나 구현한다면, 배포 및 운영 단계에서 취약점을 패치하는 방법보다 비용과 노력면에서 효율적이다.
동시에 주요 취약점들이 웹 애플리케이션 ‘소프트웨어 개발 생명주기’(SDLC)의 어느 단계와 연관이 있는지도 보인다. 최종적으로는 소프트웨어 개발 생명주기의 특정 단계에서 심각한 주요 취약점을 미리 고려하는 것이 웹 애플리케이션 취약점들을 제거하거나 완화하는데 시간과 비용 면에서 효율적임을 보인다.
후속연구
다른 취약점들도 이와 유사하게 고려함으로써 관련 보안 위협을 완화할 수 있다. 본 논문에서 제안한 기법을 널리 적용된다면 웹 애플리케이션 취약점들의 순위도 변화될 것이다. 즉, 3장에서 기술했듯이 주요 취약점에 대해 보안기법이 고려되면 해당 취약점의 확산이 줄고, 다른 취약점들이 더 많이 악용될 수 있다.
향후, 웹 애플리케이션 통합 취약점 항목들 각각을 개발단계에서 취약점을 제거하거나 완화하는 기법을 더 효율적으로 적용하는 연구를 수행할 계획이다.
질의응답
핵심어
질문
논문에서 추출한 답변
대표적인 소프트웨어 취약점에는 무엇이 있는가?
취약점(vulnerability)은 시스템 보안 정책의 침해나 위반으로 유도될 수 있는 보안상의 결점(flaw)이나 허점 (weakness)으로, 모든 보안 사고의 원인이라고 볼 수 있다. 소프트웨어 취약점의 대표적인 예는 SQL-인젝셕, DLL 인젝션, XSS, 버퍼 오버플로 등이다.
2010년 OWASP Top 10에서 가장 위험한 항목은 무엇인가?
OWASP Top 10의 각 취약점 항목은 순위가 높을수록 위험성이 더 높은 것을 나타낸다. 2010년의 가장 상위 항목인 “A1:Injection(인젝션)”은 SQL 인젝션, XML 인젝션, OS 명령어 인젝션 등을 모두 포함하는 포괄적인 개념으로, 10 개의 각 취약점(위험 요소) 항목들은 크고 추상적인 범주로 분류되어 있다[10].
미국 NVD는 무엇인가?
미국 NVD(National Vulnerability Database)는 미 정부 산업 표준 기관인 NIST가 운영하는 취약점 DB이다[3]. 서로 다른 벤더나 전문가들이 하나의 취약점을 다르게 지칭할 수 있는 혼란을 막기 위해 CVE라는 취약점 식별체계를 통해 NVD가 구축되었다.
참고문헌 (16)
Kukinews, "[Financial hacking is an Emergency] Hacking Method Viewed by Experts", Apr. 11, 2011. Available Online at http://news.kukinews.com/article/view.asp?page1&gCodekmi&arcid0004844041&cpdu Accessed in Oct. 2011
WhiteHat Security, Inc., "Measuring Website Security: Windows of Exposure", WhiteHat Website Security Statistics Report, 11th Edition, Winter 2011,http://img.en25.com/Web/WhiteHatSecurityInc/WPstats_winter11_11th.pdf
National Institute of Standards and Technology. National Vulnerability Database (NVD). Available at: http://nvd.nist.gov, 2011.
R. A. Martin, S. M. Christey and J. Jarzombek, "The Case for Common Flaw Enumeration", NIST Workshop on Software Security Assurance Tools, Techniques and Metrics, November, 2005.
R. A. Martin and S. Barnum, "A Status Update: The Common Weaknesses Enumeration", Proc. of the Static Analysis Summit (NIST Special Publication 500-262), pp. 62-64, July 2006.
A. Tripathi and U.K. Singh, "Towards Standardization of Vulnerability Taxonomy", Proc. of the 2nd International Conference on Computer Technology and Development (ICCTD), pp. 379-384, Nov. 2010.
K. Tsipenyuk, B. Chess and G. McGraw, "Seven Pernicious Kingdoms: A Taxonomy of Software Security Errors", IEEE Security & Privacy, pp. 81-84, Nov./Dec. 2005.
J. A. Wang, H. Wang, M. Guo and M. Xia, "Security metrics for software systems", Proc. of the 47th Annual Southeast Regional Conference (ACM-SE-47), 2009.
A. Wiesmann, A. van der Stock, M. Curphey, R. Stirbei, A Guide to Building Secure Web Applicat ions and Web Services, OWASP, 2005.
The Open Web Application Security Project (OWA SP), Available Online at http://www.owasp.org. Accessed in Sep. 2011
Homeland Security: Common Weakness Enumeration (CWE), Available Online at http://cwe.mitre.org. Accessed in Sep. 2011
M. Howard, D. LeBlanc, and J. Viega, 19 Deadly Sins of Software Security - Programming Flaws and How to Fix Them, McGraw-Hill, 2005
S. Wagner, D. M. Fernandez, S. Islam, and K. Lochmann, "A Security Requirements Approach for Web Systems", Proc. of Quality Assessment in Web (QAW2009), CEUR, 2009.
P. Mell, K. Scarfone and S. Romanosky, "Common Vulnerability Scoring System", IEEE Security & Privacy, pp. 85-89, Nov./Dec. 2006.
Y. Kim, S. Shin, J. Ahn, O. Lee, E. Lee and H. Han, "Analysis and Documentation of Korean Common Weakness Enumeration for Software Security", Communications of the Korean Institute of Information Scientists and Engineers, Vol. 28, No. 2, pp. 20-31, Feb. 2010.
CWE-79 Improper Neutralization of Input During Web Page Generation('Cross-site Scripting'), Available Online at http://cwe.mitre.org/data/definitions/79.html, Accessed in Oct. 2011
※ AI-Helper는 부적절한 답변을 할 수 있습니다.