 |  |
|
난이도 : 중급 Jason Schmitt, Group Product Manager, SPI Dynamics
2007 년 7 월 24 일 IBM® Rational® Software Delivery Platform과 SPI Dynamics를 통합하여 개발 과정 초기에 보안을 테스트 하는 방법을 설명합니다. SPI Dynamics 툴은 웹 서비스의 철저한 보안 분석을 통해 고급 서비스 지향 아키텍처(SOA) 거버넌스를 이룩하고자 하는 IBM의 철학과도 맞습니다.
IBM® Rational® Software Delivery Platform은 엔터프라이즈 레벨 자바 개발용 툴과는 비교되지 않는 소프트웨어 개발 라이프 사이클의 주요 역할과 단계들에 일관성과 기능을 제공한다. 강력한 모델링 툴과 통합 개발 환경으로 개발자를 지원하는 Rational 소프트웨어는 앞선 소프트웨어 품질과 설정 관리 툴 최적의 커버리지와 보다 효율적인 소프트웨어 프로젝트를 위한 설정 관리 툴을 결합했다.
IBM 개발자들은 파트너 네트워크를 통해 작업하면서 강력한 Rational Software Delivery Platform (SDP)를 소프트웨어 개발자와 테스터용 툴로 보완하고 있다. SPI Dynamics 통합으로 개발자와 테스터는 개발과 테스팅 동안 애플리케이션의 보안을 향상시킬 수 있다. 이러한 통합을 통해서, 개발자들은 보안 문제를 조기 또는 개발 중간에 처리할 수 있고, 이는 스케줄에 영향을 주지 않으며, 중요한 기능에 계속 집중하는데 방해가 되지 않는다. SPI Dynamics 툴은 웹 서비스의 철저한 보안 분석을 통해 고급 서비스 지향 아키텍처(SOA) 거버넌스를 이룩하고자 하는 IBM의 철학과도 맞는다.
이 글에서는 SPI Dynamics 솔루션으로 강화된 Rational Software Delivery Platform이 웹 애플리케이션 개발과 품질 보증 프로세스에 보안을 추가하는 방법을 설명한다.
Rational Application Developer의 보안 웹 애플리케이션 개발
많은 웹 애플리케이션 개발자들은 IBM® Rational® Application Developer를 사용하여 고급 웹 애플리케이션들을 디자인, 개발, 조합, 테스트, 프로파일링, 전개하고 있다. Rational Application Developer는 자바 웹 서비스 개발의 모든 측면들을 관리하는 툴을 제공한다.
다양한 웹 애플리케이션 개발 기능을 드러내기 위해 Rational Application Developer는 개발자 환경에서 바로 로딩 및 실행되도록 설정된 샘플 애플리케이션들을 제공하고 있다.
- 이러한 샘플 애플리케이션에 액세스 하려면, Rational Application Developer를 시작한 후에 Welcome 페이지에서 Samples를 선택한다.
-
Samples 페이지에서, Company Web site sample을 선택하여 Samples Gallery를 연다. 여기에서는 샘플 애플리케이션을 반입하고 이를 Rational Application Developer와 IBM® WebSphere® 개발 환경에서 실행하는 방법을 알려준다.
애플리케이션 라이프 사이클 동안, 보안의 가치를 증명하기 위해, 이 글에서는 Company Web site 샘플을 위해 개발된 새로운 페이지, add.jsp를 사용한다. 이 페이지에서는 새로운 작업 포스팅을 작업 섹션에 추가할 수 있다. 새로운 페이지는 jobpost 폴더에 추가된다. (그림 1)
그림 1: Company 웹 사이트 샘플 애플리케이션
Rational Application Developer를 이용한 DevInspect 통합
실제로, 새로운 페이지의 코딩과 단위 테스트를 완료한 후에, SPI Dynamics 툴을 사용하여 변경 사항에 대한 보안 테스팅을 수행할 수 있다. Rational Application Developer용 SPI Dynamics DevInspect
™은 데스크탑 보안 테스팅을 제공하는데, 이는 팀의 모든 개발자가 지속적으로 진화하는 코드의 자동화된 보안 단위 테스트를 자주 수행할 수 있도록 한다. SPI 는 개발자를 위해 보안을 단순화 하는 DevInspect를 설계했다. 이것은 소스 코드 분석의 깊이와 웹과 SOA 애플리케이션의 보안 테스팅용 단일, 협업, 하이브리드 분석 프로세스에서 블랙 박스 테스팅의 정확성을 결합한 유일한 제품이다. DevInspect는 Rational Application Developer와 긴밀히 통합되어 보안 효율적인 보안 테스팅을 가능케 하고, 충분한 보안 교육이나 전문성을 지니지 못한 개발자들에게도 매력적인 제품이다.
DevInspect의 소스 코드 분석 기술은 애플리케이션의 공격 모습을 정의하고 해커에 의해 악용될 수 있는 모든 애플리케이션 인풋들을 규명하기 위해 웹 애플리케이션들을 프로파일링 한다. DevInspect는 개발 환경에 웹 애플리케이션을 전개 및 실행하고, 이 애플리케이션에서 악용될 가능성이 있는 보안 취약점을 규명하기 위해 자동화된 해킹 기술을 사용하여 일련의 공격을 실행한다. 잘못된 설정, 불안한 데이터베이스 액세스, 보호되지 못한 사용자 기밀 같은 악용될 소지가 있는 보안 취약점을 만드는 일반적인 코딩 실수들을 찾는다. 그리고 나서, 소스 코드 분석을 통해 얻은 정보를 사용하여 실행 애플리케이션에 포괄적인 블랙 박스 보안 테스트를 실행한다. 블랙 박스 테스팅 단계에서는 DevInspect는 소스 코드 분석에서 발견된 취약 사항들이 애플리케이션에서 실제로 악용될 수 있다는 것을 확인한다.
애플리케이션의 보안 분석을 수행하려면,
- Rational Application Developer에 추가되었던 DevInspect 메뉴에서 Test for Vulnerabilities를 선택한다.
-
Problems 뷰로 전환하여, 애플리케이션의 빌드 에러와 신택스 문제를 찾고, 결과를 본다. DevInspect는 이러한 보안 문제들을 함수 에러와 같은 가시성 레벨로 보안 문제를 끌어올려서, 이들을 똑 같은 중요성으로 처리할 수 있도록 한다.
예제:
그림 2의 Problems 뷰에서 보듯, add.jsp 페이지를 추가하면, 심각한 크로스 사이트 스크립팅 취약성이 Company Web site에 생겼다.
그림 2: 보안 취약성을 나타내는 Problems 뷰
드러난 보안 취약점에서, DevInspect는 취약성에 대한 상세한 정보를 제공하고(그림 3), 문제의 특성과 이를 해결하는 최상의 방법에 대한 해결책을 제시한다. 이러한 설명들은 개발자들 사이에서 보안 경각심을 불러 일으켜서, 코드의 보안 취약성을 방지하도록 한다.
그림 3: 취약성 상세
Rational ClearQuest 테스트 관리를 사용한 보안 테스팅
두 개의 SPI 보안 테스팅 툴은 IBM Rational ClearQuest 테스트 관리와 통합한다:
DevInspect와 ClearQuest 플러그인 통합
DevInspect는 IBM® Rational® ClearQuest® 테스트 관리 툴과도 작동하여 Rational Application Developer 내의 보안 결점들을 생성 및 추적한다. 이를 통해, 프로젝트 동안 코드의 보안 취약성을 추적하여 해결을 위해 다른 팀 멤버들에게 경고하거나, 기능 결함과 함께 취약성에 대한 보고를 보내서, 애플리케이션의 품질과 보안성에 대한 전체적인 그림을 제시한다. 그림 4의 예제는 ClearQuest 테스트 관리에서 추적하기 위해 생성한 보안 결함이다.
주:
이 기능을 사용하려면 ClearQuest 플러그인을 설치해야 한다.
그림 4: 보안 취약성에 대한 ClearQuest 레코드 만들기
DevInspect는 오류 레코드에 Problems 뷰와 취약성 레퍼런스에서 제공한 보안 상세를 채운다. (그림 5)
그림 5: 보안 취약성 상세
크로스 사이트 스크립팅 취약성 참조에서 제공한 권고를 따른 후에, 필자는 애플리케이션에 크로스 사이트 스크립팅이 존재한다는 것을 깨달았다. 사용자에게서 온 검증되지 않은 인풋을 디스플레이 했기 때문이었다. 이 문제를 해결하기 위해 사용자에게서 온 인풋을 안전하게 검사하여 HTML이나 스크립트 태그가 없는 알파 문자 같은 안전한 인풋만 허용하고, 이 페이지에 작성한 아웃풋에 HTML 코딩을 사용해야 했다. DevInspect 보안 분석을 실행하여 페이지를 수정하고 보안을 확인한 후에, 필자는 ClearQuest 오류 레코드를 해결된 것으로 표시하고 이를 품질 보증 분석가에게 보내서 통합 테스트 환경에서 유효성 검사를 수행하도록 했다.
QAInspect와 ClearQuest 플러그인의 통합
Rational ClearQuest 테스트 관리용 SPI Dynamics QAInspect는 품질 보증 팀이 프로젝트의 소프트웨어 품질 테스팅 단계 동안 자동화 된 보안 테스트를 수행할 수 있도록 함으로써 보안성 확인 기능을 확장한다. QAInspect는 보안에 대한 전문성을 지니지 못한 QA 팀을 위해 보안 테스팅의 복잡성을 줄인다. QAInspect를 사용하여, QA 팀은 테스트 환경에서 웹 애플리케이션에 대한 심도 깊은 블랙 박스 보안 테스트를 수행하여 개발 동안 수행했던 보안 픽스를 검사하고 애플리케이션 설정과 전개하는 동안 생긴 보안 취약성을 발견한다.
DevInspect와 마찬가지로, QAInspect는 상세한 보안 취약성 정보를 제공하고, 테스트 시 애플리케이션에서 발견된 보안 결함에 대해 수정 권고를 제공한다. QAInspect는 보안 분석 과정에서 발견된 보안 취약성에서 ClearQuest 소프트웨어의 보안 결함을 자동으로 만들어서, QA 매니저가 보안 결함을 해당 팀에게 할당한다.
예제:
- 웹 페이지에 생긴 크로스 사이트 스크립팅 취약성은 적절한 인풋에 대한 유효성 검사와 아웃풋 인코딩을 수행하도록 개발자에게 할당된다.
- 디렉토리 취약성은 웹 서버에서 설정 문제에서 기인하기 때문에 QA 팀은 보안 결함을 시스템 관리자에게 위임하여 문제를 해결한다.
QAInspect에 의해서 QA 팀에게 제공된 가이드와 교육은 QA 팀에게 보안에 대한 경각심을 불러 일으킨다. 결국, 전체적인 애플리케이션 보안이 향상되고, 향후 효율적인 보안 테스팅이 가능하다.
QAInspect 보안 테스트 수행하기:
-
Test Plan에서 configured test case를 만든다.
- IBM® Rational® Functional Tester 또는 Rational Performance Tester 스크립트를 에셋 레지스트리의 테스트 케이스와 결합했던 것처럼, QAInspect 보안 테스트 스크립트를 설정된 테스트 케이스와 결합한다.
그림 6은 Test Manager Planning 뷰의 QAInspect 테스트 케이스 모습이다.
그림 6: ClearQuest 테스트 관리에 설정된 테스트 케이스
애플리케이션을 위한 보안 테스트를 설정하기:
-
QAInspect 메뉴에서 QAInspect Settings를 선택한다.
- 설정 다이얼로그의 Policy 필드(그림 7)에서, 보안 테스팅 정책을 선택하여 보안 테스트를 실행하고, QAInspect에 의해 발견된 결함들이 ClearQuest test management tool에 보고되는 방법을 제어한다.
- 보안 테스트 스크립트를 포함하고 있는 설정된 테스트 케이스를 실행하려면, ClearQuest test management 뷰의 Execution 탭으로 전환하여(그림 6), configured test case를 선택하고 Execute를 선택한다.
예제:
이 예제는 다음 URL로 통합 테스트 환경에서 Company Web site 예제를 테스트 한다.
http://webtestsrv:9080/CompanyWebSite.
그림 7: QAInspect 설정 다이얼로그
QAInspect 보안 테스트가 실행되면서, 보안 결함들이 Rational ClearQuest 테스트 관리에 만들어지고, DevInspect가 디스플레이 하는 것과 비슷한 취약성 레퍼런스 정보로 채워진다.
예제:
그림 8은 QAInspect에 의해서 ClearQuest 테스트 관리에 자동으로 기록된 보안 결함 예제를 나타낸다.
그림 8: ClearQuest 테스트 관리에 자동으로 기록된 보안 결함
보안 테스트를 끝마치면서, 보안 확인 팀은 문제의 본성과 위치에 근거하여 보안 결함을 해당 개발자나 개발 팀들에 위임할 수 있다. 또한, 개발자는 DevInspect를 사용하여 고유의 단위 테스팅을 수행하기 때문에, 품질 보증 팀은 개발자가 수정한 보안 결함들을 검토하여 그 문제가 최종 애플리케이션 빌드에서 해결되었다는 것을 입증한다.
Company Web site 예제를 통해서, 통합 테스트 환경에서 애플리케이션의 QAInspect 보안 테스트 후에, 개발 동안 보고된 크로스 사이트 스크립팅 취약성이 실제로 고쳐졌다는 것을 알 수 있다. 단위 테스트부터 품질 보증 동안 마지막 확인까지 보안 결함의 전체 라이프 사이클을 완료한다.
Rational Software Delivery Platform과 SPI Dynamics DevInspect 또는 QAInspect의 결합으로 웹 애플리케이션들을 빠르고 안전하게 구현 및 테스트 할 수 있다는 것을 알았다. 보안에 대한 전문적인 지식도 필요 없고 일반적인 환경에서 이 모든 것이 가능하다.
참고자료 교육
-
Rational Software Delivery Platform (한국 IBM developerWorks®)
-
SPI Dynamics DevInspect and QAInspect.
-
SOA와 웹서비스(한국 developerWorks)
- "Run and Analyze Software Tests with Rational ClearQuest Test Management" (developerWorks 튜토리얼, 2006년 10월).
-
IBM Service-Oriented Architecture (SOA) Solutions (IBM.com).
-
Rational Quality Management 홈페이지 (IBM.com).
-
Rational 소프트웨어 존(한국 developerWorks)
-
RT442: Essentials of Test Management with IBM Rational ClearQuest V7.0 (2007년 6월 11일, 최신 버전 확인).
-
RS203: Essentials of IBM Rational ClearQuest V7.0 (2007년 6월 20일, 최신 버전 확인).
-
RS120: Essentials of IBM Rational ClearQuest V7.0
-
IBM developerWorks 뉴스레터(영문): developerWorks(WW)의 튜토리얼, 기술자료, 다운로드, 커뮤니티 활동, 웹캐스트, 이벤트 등의 주간 업데이트를 받아볼 수 있다.
-
developerWorks Rational 존 뉴스레터(영문)
-
technology bookstore
-
IBM Rational tester eKit
-
FAQ: Enterprise Test Management with IBM Rational ClearQuest, Version 7
-
Enterprise Test Management with IBM Rational ClearQuest: Demo
-
Understanding the IBM Rational ClearQuest Client for Eclipse, IBM developerWorks 기술 자료(2004년 12월)
-
Understanding the Rational ClearQuest Client
- IBM 인터넷 트레이닝 코스, 지도자 과정 (패스워드 필요):
TST 290 Essentials of Test Management with IBM Rational ClearQuest
제품 및 기술 얻기
토론
필자소개  | |  | Jason Schmitt는 SPI Dynamics의 그룹 제품 매니저로서, 제품 전략과 소프트웨어 개발자를 위한 기업 제품 방향을 감독하는 일을 맡고 있다. 제품 관리, 제품 개발, 기술 컨설팅에 오랜 경력을 갖고 있다. 보안 소프트웨어 개발과 관련하여 활발한 기고 활동을 하고 있으며 Secure ASP.NET AJAX Development (Addison-Wesley Professional, 2007)를 집필했다. |
기사에 대한 평가
|  |