보안 제품정보


[특집-끝나지 않은 전쟁]개발 단계 소스코드 보안으로 보안 수준 UP 2010.09.23

다양하고 진화된 웹 위협이 상존하는 현대의 기업 비즈니스 환경에서 웹 애플리 케이션 보안은 매우 중요하다. 이에 기업들은 웹 애플리케이션 보안 강화를 위해 웹 방화벽, 웹 스캔, 웹 취약점 분석도구, 모의침투 테스팅, 소스코드 분석 등 다양한 방법으로 접근하고 있다. 하지만 최근의 트렌드는 방어와 점검에서 취약점 수정으로 변하고 있다.


웹 취약점 점검도구, 웹 애플리케이션 방화벽, 모의침투 테스팅, 소스코드 취약점 분석 등 웹 애플리케이션 보안에 대한 다양한 접근이 이용되고 있으며 이에 대한 이용 방안 역시 상황에 따라 변화하고 있다. 일반적으로 웹 애플리케이션 보안의 강화를 위한 트렌드는 방어 및 점검 쪽에서 취약점에 대한 수정으로 변화했다.

취약점 수정을 위한 소스코드 분석은 STSS라고 하는 긴 주기를 갖는 보안 담당자 혹은 품질 관리자 주체의 점검 및 이에 대한 수정 보완을 개발자가 하는 방식에서 개발자 주체의 일일 혹은 더 짧은 계속적인 점검을 통한 취약점 검출 및 이에 대한 수정 보완을 수행하며 이에 대한 관리를 보안 담당자 혹은 품질 관리자가 진행하는 방식으로 변화하고 있다. 이러한 변화는 소스코드 취약점 분석이 STSS에서 SDL Implementation으로 보안의 주체가 변화 발전한 것으로 기존의 보안이 보안팀 중심으로 전사적으로 확대될 수 밖에 없었던 것처럼, 웹 애플리케이션 보안 역시 보안팀 중심에서 점검 및 관리가 이루어지다가 일반 개발자 중심으로 점검 및 수정의 주체 및 관리의 주체가 변화하는 것이다.


빠른 취약점 확인

SDL Implementation된 소스코드 취약점 분석은 앞서 언급된 것처럼 큰 의미가 있다. 이는 SDL내의 이전보다 훨씬 빠른 단계에서 소스코드 취약점 분석이 가능하게 되는 것이며 이를 통해 보다 빠른 시기에 취약점을 확인할 수 있고 단순히 주기성을 지닌 점검에서 ‘코딩+보안’이라는 형태의 개발이 가능하게 되는 것이다.

‘코딩+개발’이라는 형태의 SDL Implementation의 장점은 개발자 스스로 보안 테스팅을 진행하여 ‘개발 -> 빌드 -> 테스팅 -> 결과 확인 -> 보고서 전달 -> 오탐제거 -> 픽스 -> 재빌드 -> 재테스팅’이라고 하는 개발에서 테스트에 이르는 STSS를 통한 점검에서 수정에 이르는 주기를 획기적으로 줄일 수 있다는 것이다. 그리고 이를 통해 개발자 하나하나가 보안 테스팅의 주체로서 수정의 주체로서 작업을 수행하여 기간과 비용 및 공정을 획기적으로 단축하여 보안 수준의 향상과 더불어 프로젝트 기간에 관련된 관리에도 편의성을 제공한다는 것이다. 

그림 1에서 보는 것처럼 STSS에서 이루어지는 보안 테스팅과 이에 대한 수정에 소요되는 취약점 단위당 비용은 Unit Test와 Function Test의 중간인 100달러~250달러 사이라 할 수 있으며 모의침투 테스팅이나 웹 취약점 점검을 통해서 소요되는 단위 비용은 250달러~1,000달러 사이, 그리고 운영 환경에서 웹 방화벽을 통한 취약점 보완과 발견된 취약점의 수정의 경우는 그 이상의 비용이 잠재적으로 소요된다.

하지만 소스코드 보안 취약점 점검을 SDL Implementation한 경우는 단위 비용이 25달러 이하로 소요되어 전체적인 프로젝트 소요 비용 및 관리에 대한 비용을 최소화하여 ALM(Appli cation Lifecycle Management) 전반에 걸친 ROI에 있어 최대 효율성을 제공할 수 있다.

이러한 ‘코딩+보안’을 가능하게 하는 SDL Implementation을 이루기 위해서는 다음과 같은 사항을 만족하는 적절한 테스팅 도구가 필요하게 된다.


  • Proven Verification Techniques : 프로그램의 런타임 실행 상태의 모든 가능한 조합을 정적으로 계산하여 판단할 수 있는 기법 지원
  • Compiler Independent : 분석에 포함되는 모든 관련 데이터를 확인할 수 있도록 하는 빌트인 컴파일러로 테스팅이 가능한 단위까지 기다리지 않아도 되도록 함
  • Verification Guarantees Most Complete Coverage : 룰, Heuristics 또는 추측작업을 필요로 하지 않는 기술
  • Low False Positive : 사용자의 오탐 제거 작업을 최소화할 수 있고 신뢰할 수 있는 탐지 기술
  • Full Trace-Back : 탐지된 취약점의 전체 데이터 및 컨트롤 플로우에 대한 추적 정보와 데이터 변환에 관한 정보를 제공하여 문제점을 확신할 수 있도록 하는 정보 제공
  • Easy of Use : 별도의 Batch 작업 및 CLI작업을 필요로 하지 않고 ‘클릭-앤-런’이 가능한 편리한 사용성

코딩+보안테스팅으로 보안품질 향상

이러한 기반 기술의 지원은 개발자의 Coding 작업 가운데 소스레벨의 보안 테스팅을 즉시 가능하게 하는 중요한 지원요소이며 이를 통해 ‘코딩+보안’을 가능케 하는 SDL Implementation을 통한 혁신적인 프로젝트 및 생산성 관리와 애플리케이션 보안 수준 향상을 가능하게 하는 핵심이라 할 수 있다.

현재 이러한 SDL Implementation 수준의 보안 테스팅을 적용하는 다국적 외국 기업 및 대규모 개발 아웃소싱 기업들이 상당수 선진사례로 이러한 방식의 보안 테스팅을 수행하고 있으며 전 세계 수천여개의 고객사로부터 매년 수만개의 애플리케이션을 개발ㆍ유지하는 Global Outsourcing 기업인 Infosys의 경우는 다년간의 SETLabs의 연구를 통해 위에서 언급된 기술을 적용한 ‘코딩+보안테스팅’을 주류로 하는 SDL Implementation을 실현하여 엄청난 수의 유지 및 개발을 수행하는 애플리케이션에 대한 높은 품질의 보안성 향상을 제공하여 기업의 이미지 쇄신 및 개발 애플리케이션의 보안 신뢰도 강화에 한 획을 긋고 있다.

애플리케이션 보안은 이제 보안팀 및 품질관리팀의 과제에서 개발자의 적극적인 참여로 완성되는 형태로 발전하고 있으며 SDL Implementation을 통한 소스레벨의 애플리케이션 보안 테스팅이야 말로 21C초 인터넷 사용자 및 서비스 기업들이 가지고 있는 커다란 과제를 해결할 수 있는 방안으로 떠오르고 있다.  

<글 : 이동일 소프트와이드시큐리티 CTO(jason@softwidesec.com)>


[월간 정보보호21c 통권 제120호(info@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>