장일수 스패로우 대표
장일수 스패로우 대표
장일수 스패로우 대표

4차산업혁명이라는 거창한 이야기를 하지 않더라도 현대 비즈니스 환경에서 소프트웨어 개발 생명 주기는 점점 짧아지고 개발은 점점 재촉되고 있으며, 반대 급부로 출시되는 웹 애플리케이션들의 위험은 점점 높아지고 있다. 빠르게 변하는 개발 주기를 맞추기 위해 오픈소스 등 소프트웨어의 재사용은 점점 늘어나 실제 구현은 빨라졌으나, 여전히 가장 빈번하게 나타나는 보안취약점은 전혀 줄어들지 않고 오히려 증가 하고 있는 추세다.

그렇다고 국내 기업 및 기관들이 취약점 진단을 위한 노력을 하지 않는다는 이야기는 아니다. 보안취약점 진단 도구의 선택에서 활용까지 어떤 문제점과 비효율이 있는지 살펴보자. 대부분의 기업 및 기관에서 개발된 애플리케이션을 릴리즈 하기 전 보안테스트의 일환으로 동적분석(Dynamic Application Security Testing, 웹스캐너)도구를 사용해 취약점 점검을 수행한다. 릴리즈 해야 하는 하는 시스템이 많을 때에는 취약점 점검 결과가 나올 때까지 상당시간을 기다려야 하며, 검출된 취약점을 제거하기 위해 엄청난 리소스가 투입되는 코드 수정과 테스트를 진행해야 한다. 이는 진단 도구가 개발 프로세스와 동떨어져서 사용되기 때문이다. 즉 대부분의 웹취약점 진단 도구가 독립적으로 구동되고 있으며, 각 도구의 진단결과를 공유하거나 가져올 수 있는 API가 부족하고 설계 및 구현 단계에서 개발도구와 연동이 돼있지 않기 때문이다.

DAST를 효과적으로 사용하기 위해서는 개발 프로세스와 통합이 용이해야 한다. 특히 DevOps를 적용하고 있다면 자동화된 프로세스에 적용할 수 있도록 취약점 점검, 정책 설정 그리고 점검결과를 확인할 수 있는 다양한 API를 제공하는 것이 중요하다. 이런 API를 사용하면 DevOps를 구현하기 위해 사용되는 빌드 및 배포 자동화 도구와 연동하여 코드 수정과 동시에 취약점 점검이 자동으로 수행되는 프로세스를 쉽게 구축할 수 있다. 위와 같이 구축할 경우 수시로 취약점 점검이 이루어지므로 여러 애플리케이션을 대상으로 취약점점검을 수행해도 무리가 없는 확장성과 빠르고 정확한 취약점 탐지 성능이 보장돼야 하며, 검출된 취약점의 수정여부를 빠르게 확인하기 위해 검출된 취약점과 관련된 부분만 재현해 테스트하는 효율적인 기능도 필요하다. 또한 빠르고 정확한 취약점 탐지를 위해서는 최신 애플리케이션 개발 기술을 분석할 수 있어야 한다. 특히 Ajax와 같은 동적으로 발생하는 이벤트를 분석할 수 있어야 원페이지 애플리케이션과 같은 복잡한 웹 애플리케이션의 취약점을 검출 할 수 있다.

최근에는 IAST(Interactive Application Security Testing) 기술을 활용해 취약점 검출 정확도를 높이는 것도 효과적이다. IAST 기술을 사용하면 서버 내의 동작을 정확히 파악 할 수 있기 때문에 SQL인젝션, 커맨드 인젝션과 같이 기존 DAST에서 서버 내 동작을 정확히 파악 할 수 없어 검출이 어려웠던 취약점들을 찾아낼 수 있다. 아울러 DevOps과 통합되면서 DAST뿐 아니라 SAST(Static Application Security Testing, 시큐어코딩)등 다른 종류의 보안 취약점 도구를 사용하는 경우가 많다. 이 때 하나의 취약점이 각 도구에서 각각 검출되므로 애플리케이션에서 검출된 취약점을 통합적으로 관리할 필요가 있다. 각 도구에서 검출된 취약점을 분석해 같은 취약점을 구분해 주거나, 다른 도구에서 검출된 취약점 정보를 사용하여 취약점 검출 성능을 높이는 상호작용기능을 제공해 주는 통합관리 시스템을 사용하면 애플리케이션의 취약점을 효과적으로 검출 및 관리할 수 있다.

요약하면, 첫째, 개발과정에 쉽게 적용할 수 있도록 API 등이 사전에 설계가 돼있고 Ajax등 최신 개발 기술은 물론 오픈소스에 알려진 보안 취약점을 검출해 주는 기능까지 포함돼 검출력이 높아야 한다. 둘째, SAST와 같은 다른 취약점 점검도구에서 얻을 수 있는 소스코드 내의 로직 정보, URL 매핑 정보 등을 활용해 정확도와 커버리지를 높이는 상호작용 기능을 지원해야 한다. 이와 같이 스마트한 보안취약점 진단도구를 선택하고 활용한다면, DevOps나 애자일과 같은 현대 비즈니스에 필수 불가결한 개발 프로세스 상에서도 보안과 개발 효율이라는 두 마리 토끼를 모두 잡을 수 있다.

[저작권자 ⓒ디지털타임스 무단 전재-재배포 금지]

기사 추천

  • 추천해요 0
  • 좋아요 0
  • 감동이에요 0
  • 화나요 0
  • 슬퍼요 0