귀사의 웹 애플리케이션은 안전합니까?
상태바
귀사의 웹 애플리케이션은 안전합니까?
  • 데이터넷
  • 승인 2008.04.29 00:00
  • 댓글 0
이 기사를 공유합니다

웹 애플리케이션 보안
귀사의 웹 애플리케이션은 안전합니까?
애플리케이션 보안성 ‘취약’ … 막대한 금전적 손해 초래 ‘위험’

정부 및 업계의 규제로 인해 기업이 규정 준수 여부를 증명해야 할 의무와 책임이 커지고, 애플리케이션 개발 프로세스에 안전성을 부여한 자동화된 도구에 대한 필요성(또는 그러한 도구 사용으로 인한 이점)이 늘어남에 따라 애플리케이션의 보안은 점점 더 명백한 문제가 되고 있다. 웹 애플리케이션의 관점에서 볼 때 IT 인프라에만 집중한다는 것은 보안이 IT 공격의 증상을 해결하기 위해 존재할 뿐 문제의 근본 원인은 제거하지 않고 있다는 것과 같다. <편집자>


권영원 // 한국HP 이사
young-won.kwon@hp.com

일상적인 업무 운영을 위해 인터넷을 사용하는 기업이 증가함에 따라 웹 애플리케이션의 보안이 매우 시급한 사안이 됐다. 그러나 애플리케이션을 구축하기 위한 기존의 개발 및 품질보증 활동 주기는 기존의 프로세스에 보안을 포함하고 있지 않다. 이에 애플리케이션을 현업에 적용하기 전에 보안의 결함과 같은 취약점을 테스트하거나 이를 개선하기 위한 능력이 떨어진다면, 기업은 IT 공격이나 잘못된 사용으로 인한 위험으로부터 웹 애플리케이션의 중요한 데이터들을 그대로 방치하게 된다.
애플리케이션 보안의 결함으로 발생하는 손실 금액은 어마어마하다. IDC에 따르면, 매년 최고 600억 달러에 이르는 많은 비용이 발생하고 있다. 2003년 9월 발표된 가트너 조사에 따르면, 소프트웨어 개발 프로세스 기간 동안 애플리케이션 보안의 취약점을 발견하고 이를 수정하지 못하면 다음과 같은 비용과 결과를 초래한다.

· 소프트웨어가 운영을 시작한 후 결함을 제거할 경우 개발 및 품질보증 프로세스 단계에서 오류를 수정하는 비용 대비 2~5배가 더 소요된다.
· 코드 및 단위 테스트 기간 동안 결함을 수정할 경우 3~20여 개의 부수적인 요소들에 의해 비용 절감 효과를 거둘 수 있다.
· 소프트웨어 취약점의 50%가 제품 사용 전에 해결될 경우 기업은 관리 비용을 제품당 75%까지 절약할 수 있다.

정부 및 업계의 규제로 인해 기업이 규정 준수 여부를 증명해야 할 의무와 책임이 커지고, 애플리케이션 개발 프로세스에 안전성을 부여한 자동화된 도구에 대한 필요성(또는 그러한 도구 사용으로 인한 이점)이 늘어남에 따라 애플리케이션의 보안은 점점 더 명백한 문제가 되고 있다.

애플리케이션 보안은 품질의 문제
웹 기반 애플리케이션은 이제 인터넷 상에서 비즈니스와 고객을 기업 애플리케이션으로 연결하기 위한 중요한 도구가 됐다. 오늘날 웹 애플리케이션 사용 범위는 가히 압도적인데 온라인 상점, 인터넷 뱅킹, 기업간 거래, 온라인 경매 등 거의 모든 비즈니스 프로세스가 웹 애플리케이션을 통해 인터넷으로 연결된다.
대부분의 기업들은 방화벽, 침입 탐지, 예방 시스템과 같은 보안 게이트웨이가 IT 공격이나 잘못된 사용으로부터 웹 애플리케이션을 충분히 보호할 수 있다는 가정 아래 웹 기반 기술을 사용하고 있다. 그러나 불안전한 애플리케이션은 최악의 상황이 발생될 수 있는 많은 위험에 노출되게 마련이다. 이러한 취약점들은 경계 보안 솔루션으로는 해결될 수 없으며, 일단 애플리케이션이 현업에 사용되면 코드의 수정을 통해서만 서비스 거부, 개인/사유 정보의 도난 등을 예방할 수 있다.
가트너(2003)에 따르면 2007년까지 제품화된 애플리케이션의 최소 80%가 낮은 수준의 품질 문제로 실패할 것이며, 예기치 않은 다운타임의 80%는 낮은 품질 때문이라고 한다.
따라서 불안전한 웹 애플리케이션은 IT 붕괴 및 막대한 금전적 손해를 가져올 수 있는 큰 가능성을 갖고 있는 것이다. 서비스 거부 공격으로 인한 비즈니스 손실, 기업 비밀의 유출, 고객 정보의 손실, 열악한 보안 관행으로 인해 부과되는 주주의 책임 등은 충분히 발생 가능한 손실이다.
사실상 가장 큰 규제가 되는 기타 위험들(법적 규정)만이 많이 인지되고 있는데, 다음과 같이 잘 알려진 규정들은 애플리케이션 수준에서의 보안의 필요성을 강조하고 있다.

· 비자 카드홀더 인포매이션 시큐리티 프로그램(CISP) - 비자(Visa) 금융 서비스 네트워크에 연결하려는 소매업체 또는 서비스 공급자에게 엄격한 입증 책임을 부과하는 온라인 보안 정책으로, 온라인 보안을 위한 상세한 요구사항들을 제시한다. CISP 이행의 실패는 곧 비자 네트워크에 연결될 수 없음을 뜻하며, 이는 비즈니스에 큰 타격이 된다.

· 캘리포니아 법안 1386 (CA1386) - 이는 캘리포니아주 내에 고객 및 운영을 둔 기업이라면 어떤 기업이건 개인 고객 정보의 보호를 위한 엄격한 표준 사항을 준수하도록 하는 규정이다. 캘리포니아주 거주자들에게 영향을 끼칠 수 있는 보안 허점들을 공개할 것을 의무화하고 있다. 이에 따른 부정적인 여론이 대부분이지만 강제성이 있는 개인 정보법이며, 형사상의 처벌은 아직 확정되지 않은 상태이다.

· 사베인즈-옥슬리(SOX) - 최고 관리자들로 하여금 모든 재무 보고서의 정확성 및 법안 준수 여부에 대한 책임을 지도록 하는 규정이다. 허술한 보안 관행을 이용,
객관성을 입증하기 어려운 회계상의 허점을 악용했던 공기업들은 이제 조직 내 모든 단계에서 보안 관행을 강제로 문서화해 증명해야 한다.

HIPAA(의료 기관), 그램-리치-브릴리(Gramm- Leach-Bliley, 금융), 유럽 연합 개인정보 보호 규정, 계속 증가하고 있는 기타 입법안, 명백하고 검증 가능한 애플리케이션 보안의 필요성 등의 증가는 점점 민감한 문제가 되고 있다.
이러한 규정들은 기업들이 보안을 위한 자사의 측정 기준들이 기능적이며 검증 가능한지의 여부를 증명해야 하는 환경을 만들게 한다. 최고 관리 부서는 보안상의 문제가 발생할 경우 조직 및 개인적인 책임을 져야 할 상황에 직면할 수 있다.
하지만 베스트 프랙티스는 부서 관리자, 각 프로그램 개발자, 품질 보증 전문가들이 각각의 베스트 프랙티스로 업무를 처리할 때에야 비로소 입증될 수 있다. 이제 애플리케이션 개발 프로세스는 그 자체로 기업의 지배구조 및 규정 준수의 일부가 됐다.
보안 관점에서 고품질의 애플리케이션과 안전한 코드는 데이터 기밀성과 무결성, 가용성에 대한 불안을 대폭 줄여준다. 반면에 안전하지 못한 코드는 조직들에게 법적 책임, 규정 위반, 주주 책임과 같은 손실을 입힐 가능성을 열어주게 됩니다. 웹 애플리케이션의 선택, 개발, 테스팅 및 배치를 담당하는 각 관리자들은 열악하게 제작되거나 충분한 테스트를 거치지 못한 애플리케이션으로부터 발생하는 어떠한 보안상의 문제에 대해서도 사용자에게 명쾌한 답변을 줄 수 있도록 항상 준비돼 있어야 한다.

불안전한 웹 애플리케이션이 왜 정상인가?
불안전한 웹 애플리케이션이 어떻게 시장에 자리 잡을 수 있는가의 배경에는 몇 가지 요인들이 존재한다. 시장 출시에 대한 압박이 웹 애플리케이션의 개발 시간과 구축 스케줄을 단축하고 이는 곧 품질 보증 부서에 막중한 부담을 주는 경우가 종종 발생한다. 이러한 경제적 측면의 여건은 애플리케이션이 품질 보증을 통과한 후에는 보안을 위한 테스트를 별도로 거치지 않는다는 것을 의미하며, 특히 품질 보증 전문가를 위한 자동화된 보안 테스팅 도구가 없는 경우엔 더욱 자명한 일이 된다.
기존의 품질 보증 베스트 프랙티스들은 애플리케이션의 성능이나 무결성은 평가하지만 보안성의 측정은 간과되곤 했다. 보안 전문 지식은 만약 이용만 할 수 있다면 IT 조직 내 어디서나 찾을 수 있다. 보안 전문가들은 네트워크와 운영 시스템 보안에는 항시 주의를 기울이고 있지만 그에 반해 애플리케이션 개발에는 많은 노력을 투자하지 않고 있다.
그 결과 보안 관련 제품 및 서비스는 보통 보안 관리자나 IT 관리자의 요구사항 해결에만 집중하게 됐다.
웹 애플리케이션의 관점에서 볼 때 IT 인프라에만 집중한다는 것은 보안이 IT 공격의 증상을 해결하기 위해 존재할 뿐 문제의 근본 원인은 제거하지 않고 있다는 것과 같다.
잘못된 개념 역시 이러한 결점들이 계속 남아있는 이유 중 하나다. 첫째로, 보안은 적은 비용으로 더 많은 기능에 대한 요구를 충족하고 애플리케이션 개발이 더 빨리 완성돼야 한다는 막중한 부담을 이미 가진 상태에서 단지 애플리케이션 개발 프로세스의 시간을 연장시키기만 할 뿐이라 여겨지고 있다. 둘째, 보안은 기술 전수 또는 측정이 어렵다고 잘못 인식돼 있다. 셋째, 테스팅 도구는 기능 또는 성능의 결점 파악에만 주력할 뿐 코드 수준의 보안 결함을 검사하는 능력은 없다고 간주되곤 한다.
이에 개발자 및 품질 보증 담당자들은 이제까지 애플리케이션 보안과 이로 인한 비즈니스의 위험, 허술한 보안 관행으로 인한 손실에 대해 책임지려 하지 않았다. 이들의 목표는 애플리케이션 개발 프로세스에서 안전성을 확보하려는 동기 없이 제품을 가능한 빨리 출시하는 것이었으며, 보안 문제는 사고가 발생하기 전까지는 중요하게 여겨지지 않았던 것이다.

그 결과
웹 애플리케이션 개발 프로세스 내 보안성의 결핍은 애플리케이션을 구현하고 안정화하는 관리자에게 온라인 업무 처리를 안전하게 해야 한다는 부담을 지우게 됨을 뜻한다. 이러한 역할을 수행하는 관리자들은 일반적으로 애플리케이션의 복잡성을 이해하지 못하며, 심각한 비즈니스 피해를 포함한 보안상의 사고를 어떻게 예방해야 할지 모르는 경우가 많다. 이는 코드 수준의 보안 취약점의 대부분이 일반적인 프로그래밍 상의 오류로부터 발생하기 때문이다.
많은 애플리케이션들이 시간이 흐를수록 그 취약점을 스스로 드러내겠지만, 그러한 약점들이 언제 드러날 것인지는 예측이 불가능하다. 따라서 애플리케이션 개발자 및 품질 보증 부서는 취약점들이 발견될 때마다 새로운 제품에 대한 관심을 심각한 보안의 결함 쪽으로 전환시켜야 한다.
이러한 대응적인 자세는 애플리케이션 개발에 비용 발생 또는 혼란을 유발하며, 애플리케이션 구상부터 출시까지의 공정이 얼마나 순차적이고 체계화돼 있느냐에 따라 차이가 있다.
요약하면, 코드 수준의 수정은 새로운 개발 및 품질 보증 리소스들을 필요로 하며, 여기에는 웹 애플리케이션이 기능적이면서 안전하도록 하기 위한 새로운 구축 및 테스트 주기 등이 포함된다. 애플리케이션이 운영된 후 보안 및 기능상의 결함을 복구하려면, 기업은 제품 단계 이전에 복구됐을 경우보다 자원 및 시간 면에서 훨씬 많은 비용을 지출하게 된다.
어느 누구도 타인의 코드에 책임지고 싶어 하지 않을 것이다. 예를 들어, 마이크로소프트의 애플리케이션 보안에 대한 일반적인 불만족은 마땅한 것일까? 마이크로소프트의 불안전한 애플리케이션은 리눅스와 같은 대안 제품 개발에 대한 관심을 증폭시켰다. 이에 대해 마이크로소프트는 ‘신뢰성 높은 컴퓨팅 이니셔티브(Trustworthy Computing initiative)’로 응답해, 애플리케이션 보안이 기업의 성공을 위한 기본 조건이 되도록 했다. 웹 애플리케이션은 반드시 이렇게 진화와 같은 과정을 따라야 한다.

안전한 애플리케이션 개발 프로세스의 필요
일반적인 웹 애플리케이션 개발 주기를 볼 때, 품질 보증 부서는 기능 및 성능 상의 결함을 테스트한 후 그 결과를 개발 부서에 보고해 그들이 지정된 기간 내에 결함을 수정할 수 있게 한다. 하지만 안타깝게도 보안의 많은 취약점들이 애플리케이션이 제품으로 출시되기 전에는 발견되지 않는다. 만약 애플리케이션이 내부적으로 구현돼 있다면 IT 인프라를 감시하는 보안부서는 돌발 상황에 대비하기 위해 네트워크와 서버들을 모니터링하면서 차후 문제가 될 수 있는 결함들을 미리 발견할 수도 있다. 하지만 판매를 위해 제작된 애플리케이션은 치명적인 결함을 파악하기 위해 고객 및 기술 지원 보고서에 의존하는 경향이 크다.
일단 보안의 문제가 발생하면 개발 부서는 (신제품 출시를 위해 배정해 두었던 IT 자원을 전환해) 코드 수준에서 변경 작업을 해야 한다. 품질 보증 부서는 보완된 코드 또는 웹 애플리케이션 전체를 다시 테스트해 문제가 됐던 취약점이 더 이상 재발하지 않도록 확실하게 해결해야 한다.

품질 보증 위한 웹 애플리케이션 보안 솔루션
애플리케이션 보안 테스트 도구의 기능은 안타깝게도 극히 제한돼 있다. 코드 검사기(Code checker)와 같은 기존의 도구들은 사용이 복잡할 뿐만 아니라 품질 보증 조직에서 거의 이용할 수 없는 보안 및 취약성에 대한 전문 기술들을 요구한다. 기업은 제조 일정과 IT 자원에 영향을 주지 않으면서 애플리케이션 개발 및 품질 보증 프로세스에 보안/취약점 전문 기술만을 부여해주는 보다 간단하고 비용 효율적인 테스트 도구를 필요로 한다.
SPI 다이나믹스의 QA인스펙트는 이에 대한 다양한 요구사항들을 모두 만족시켜 주는 제품이다. 이 테스트 도구는 애플리케이션 보안에 대한 전문 기술을 품질 보증 환경 내에 통합시켜, 애플리케이션 개발 및 보안을 위한 고도로 자동화되고 통합된 접근방법을 제시한다.
과거에 분리돼 있던 프로세스들을 사용하기 쉽도록 하나로 통합해준 QA인스펙트는 다음과 같은 업무상의 현실적인 문제들을 반영해 고객들의 큰 만족을 얻고 있다.

· 웹 애플리케이션은 여러 가지 플랫폼과 프로토콜이 서로 얽혀있는 복잡하고 동적인 것이다.
· 웹 애플리케이션은 네트워크 경계를 침해하기 때문에 보안상의 위험을 유발한다.
· 웹 애플리케이션이 정교해지고 그 수가 증가하면서, 애플리케이션의 치명적인 약점을 발견하고 적합한 패치를 적용하기도 전에 이미 그 여파가 훨씬 커지는 경우가 생긴다.
· 품질 보증 담당자, 소프트웨어 테스터 및 애플리케이션 개발자는 보안 전문가가 아니며, 보안 전문가 역시 품질 보증 담당자 및 소프트웨어 테스터 또는 애플리케이션 개발자가 아니다.
· 웹 애플리케이션들은 동적인 환경에서 운영된다. 보안 테스트는 반드시 이러한 현실을 반영해야 하며, 애플리케이션 출시 이전에 애플리케이션이 사용자들의 요구사항을 지속적으로 만족시킬 수 있도록 올바른 방향을 제시해야 한다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.