Last Updated on 2월 12th, 2020, By
 In AppSealing News, 앱실링 블로그

RASP Security

기업에 배포된 애플리케이션들은 운영체제, 네트워크, 데이타베이스로 구성된 복잡하고 파편화된 환경에 놓여 있습니다. 이로 인해 애플리케이션의 보안 아키텍쳐 또한 파편화가 이루어지며, 이것은 정확하고 검증된 보안 로드맵 구성을 어렵게 합니다. 런타임 애플리케이션 자가 보호(RASP)의 개념은 개발자가 어떠한 보안 위협에 맞닥뜨릴 때마다 즉흥적이고 임시방편으로 조치하는 것을 근본적으로 해결하기 위해서 개발 되었습니다.

최근 데이터에 따르면 약 38%의 iOS 모바일 앱과 43%의 Android 모바일 앱이 고위험의 보안 취약점을 가지고 있다고 합니다. 이들 모바일 앱 중에 상당수(iOS 모바일 앱의 74%, Android 모바일 앱의 57%)는 허술한 보안 아키텍쳐 때문에 취약점이 발생되었습니다. 프로세스간 통신 과정에서 안전하지 않은 채널을 이용하는 것(Android 앱의 38%, iOS앱의 22%)도 대표적인 취약점이라고 할 수 있습니다.

앱의 설계 결함을 해결하는 대신에, 개발자는 정적이고 전통적인 AppSec 접근 방식을 채택하는 경향이 있습니다. 하지만 이는 복잡한 보안 위협에 비추어 실패하는 경우가 많습니다. 이러한 이질적인 보안 제어 계층은 다양한 구성요소를 지닌 애플리케이션, 인프라, 보안 계층을 다루는데 종종 병목현상의 원인이 됩니다. RASP 솔루션의 출시는 앱 보안이 더 이상 위협에 일시적인 대응으로 해결이 되지 않기 때문에, 복잡하고 다양한 형태의 서비스 구성요소에 대한 효과적인 보안 전략 수립이 필수적이라는 인식이 정착되는 계기가 되었습니다.

RASP 란 무엇입니까?

런타임 애플리케이션 자가 보호(RASP)는 숨겨진 취약점에 대한 가시성을 높여 애플리케이션 계층에 대한 런타임 공격을 효과적으로 대응할 수 있도록 하는 일종의 애플리케이션 보안 생태계의 혁신으로 통용됩니다. 이것은 기본적으로 애플리케이션 또는 런타임 환경과 통합되며, 애플리케이션에 대한 호출을 가로 채서 취약점을 확인하는 보안 소프트웨어입니다. RASP 소프트웨어는 위협이 앱에 영향을 미칠 때까지 기다리지 않습니다. 대신 앱으로 인입되는 트래픽내에서 악성코드를 사전에 찾아내어 앱내에서 악의적인 동작이 수행되는 것을 방지합니다. 

RASP 솔루션은 애플리케이션과 공존함으로써 알려진 취약점을 무력화하고, 사람의 개입없이는 알 수 없는 제로 데이 공격과 같은 위협으로부터 앱을 보호합니다. 따라서 RASP는 웹 애플리케이션 방화벽(WAF)과 같은 기존의 보안 접근 방식과 개념적으로 다른 보안 패러다임을 제공합니다. WAF는 모든 의심스러운 트래픽을 차단하여 앱을 보호합니다.

RASP가 필요한 이유는 무엇입니까?

앱의 공격 경로는 매우 지능적이어서 사람의 개입만으로는 쉽게 탐지 할 수 없습니다. 인입되는 트래픽을 복제한 후 겉으로는 문제가 없는 HTTP 요청으로 위장하여  애플리케이션을 다운시키고 비즈니스 주요 프로세스를 손상시킬 수 있습니다. 최신 애플리케이션은 API, JSON 및 XML 형식을 사용하여 사용자, 백엔드 서버 및 데이터베이스와 상호 연동을 수행합니다. 

만약 앱과 서버 구성 요소의 보안이 제대로 갖추어져 있지 않는다면, 해커는 앱의 코드 또는 사용자 데이터를 (경우에 따라서는 둘다 모두) 쉽게 제어 할 수 있을 것입니다. 기능 업그레이드에 대한 지속적인 요구로 인해 소프트웨어 회사의 애자일 개발 모델 채택이 늘어남으로써 최신 보안 프로토콜이 앱의 전체 아키텍처에 없어서는 안 될 요소가 되었습니다. 따라서 이러한 지속적인 요구사항과 위협 인식에 대해서 실시간 공격 차단을 지원하는 RASP는 효과적이고 완벽한 대응책이라고 할 수 있습니다.

웹 애플리케이션 방화벽(WAF)과 같은 기존의 보안 접근 방식은 일반적으로 웹 애플리케이션 앞단에 위치하며, 잘 알려진 공격 페이로드 및 비정상적인 사용 패턴을 찾기 위해 인입되는 HTTP 트래픽을 검사합니다. WAF는 WAF 내에 방화벽 규칙을 생성할 수 있는 상황에서만 정상적으로 동작합니다. 하지만 새롭게 등장한 위협은 개발자가 차단 규칙을 작성하기전까지는 방어할 수 없습니다. 반면에 RASP는 앱 내에 통합되어 위협 요인을 탐지 할 뿐만 아니라 이를 차단하기 위한 조치를 시작합니다. 앱의 전반적인 성능의 최소한의 영향을 끼치는 RASP의 뛰어난 호환성과 애플리케이션 배포 및 통합 적용의 편리함은 RASP가 이제는 필수 보안 솔루션 중에 하나임을 반증하고 있습니다.

RASP는 어떻게 작동합니까?

RASP 계층은 애플리케이션 코드와 나란히 위치하며 애플리케이션 서버 및 API로 들어오는 트래픽을 모니터링합니다. 위협 요인을 탐지하면 RASP는 런타임 보호 조치를 적용하고 애플리케이션을 부정행위로부터 보호합니다. 애플리케이션과 서버간에 위치해 있는 RASP 계층은 모든 요청에 대해서 앱 성능에 영향을 주지 않도록 검사를 수행합니다. 

클라우드 컴퓨팅이 등장하면서 기존 솔루션은 클라우드에서 호스팅되는 애플리케이션을 포괄적으로 보호할 수 없는 것으로 나타났습니다. 반면에 RASP 프로그램은 앱 프로그램의 코드와 연동되는 프레임 워크 또는 모듈로 통합될 수 있습니다. RASP는 동적 애플리케이션 보안 테스트와 함께 때때로 WAF처럼 위협 요인을 탐지할 뿐만 아니라 위협이 실행될 경우 발생할 수 있는 피해를 막기 위한 조치를 시작하는 강력한 기능을 가지고 있습니다. 구현 방식에 따라서 이는 단순히 사용자 세션을 종료하거나 런타임시 트래픽을 분석하고 취약점의 애플리케이션에 미치는 영향을 모니터링하는 것을 의미할 수 있습니다. 또한 RASP는 애플리케이션 내부의 취약한 코드에 접근하기 때문에 오탐 확률이 낮습니다.

다양한 RASP 배포 모드는 무엇입니까?

RASP는 일반적으로 다음과 같은 모드로 제공되며 요구 사항에 따라서 이중 하나의 형태로 배포할 수 있습니다.

  • 오프 모드 – 모니터링 또는 통화 차단 기능을 제공하지 않습니다. 여기서 모든 요청은 RASP 솔루션의 어떠한 조치 없이도 간단히 전달됩니다.

 

  • 모니터링 / 진단 모드 – RASP 프로그램이 애플리케이션의 위협을 모니터링하고 로그를 기록하며 경고를 발행하지만 요청을 차단하지 않는 모드입니다.

 

  • 차단 모드 – RASP 프로그램이 한 단계 앞서, 모든 불법 요청을 차단하는 모드입니다.

 

  • 경계상태에서의 차단 모드 – 공격을 막기 위해 사전 정의된 특정 규칙 및 RASP 솔루션에 지정된 조치가 있다는 점을 제외하고는 차단 모드와 유사합니다. 공격 경로가 지정된 규칙과 일치하지 않으면 RASP 솔루션이 이를 공격과 동일하게 차단합니다. 이 모드에서 RASP 프로그램은 WAF처럼 동작합니다.

다양한 RASP 구축 방법을 소개합니다.

RASP가 앱 보안의 성숙한 개념으로 발전됨에 따라서 개발자는 다양한 방법으로 위협을 무력화할 수 있게 되었습니다. 일반적으로 개발자가 앱 또는 서버에서 RASP 보안 계층을 구현할 때 아래 4가지 방법중 하나를 사용합니다.

서블릿 필터, SDK 및 플러그인은 인입되는 HTTP 요청 및 데이터 페이로드가 애플리케이션 코드에 도달하기 전에 모니터링하고 검사하기 위해서 Apache Tomcat 또는 웹 서버내에 구현됩니다. 유사한 취약점은 차단되며, 배포 모드를 기반하여 RASP가 수정 조치를 취합니다.

이진 계측에는 모니터링 및 제어 요소를 애플리케이션에 구축하는 것을 포함하며, 전자는 실행중인 애플리케이션에서 보안 이벤트를 식별하고 후자는 이러한 이벤트의 로그를 기록하고 공격을 차단합니다.

JVM 교체 방식에는 표준 라이브러리(JAR 또는 JVM (Java의 경우))를 RASP 계층으로 바꾸는 것이 포함됩니다. RASP 계층은 라이브러리를 지원하는 호출을 감시하고 호출을 가로챌때 규칙을 적용합니다. 따라서 RASP는 앱 코드베이스 및 시스템 호출 라우팅 프레임 워크를 전체적으로 볼 수 있으므로 애플리케이션 호출의 수동 모니터링을 통해 시스템 동작 및 시퀀스 흐름에 대해 배울 수 있습니다.

컨테이너화된 런타임 보호라고도 불리우는 가상화는 애플리케이션 복사본을 생성하고 애플리케이션 보호 방법에 관해 정의된 규칙을 사용하여 런타임시에 복사본으로부터 애플리케이션의 동작을 계측합니다. RASP는 앱 코드 경로, 논리 구조, 매개 변수화 및 생성된 출력 등을 모니터링하고 이를 학습하여 애플리케이션 요청을 적용합니다. 이것은 악의적인 행위들 중에서 인지하기 용이한 요청을 구분하고, 적절한 조치를 취할 수 있도록 도움을 줍니다.

RASP 솔루션을 선택할 때 고려해야 할 사항은 무엇입니까?

개발자는 RASP 솔루션을 신중하게 선택하기 위해 다음에서 제시하는 요소들을 사용하여 계량화 해야 합니다.

  • 쉽게 배포 할 수 있어야 하고 유지 관리가 용이해야 합니다. 그렇지 않으면 변이된 위협에 효과적으로 대응이 어렵습니다.
  • 기존 또는 잘 알려지지 않은 광범위한 취약점을 탐지하고 처리할 수 있는 다양한 범위를 포괄할 수 있는 기능이 있어야 합니다.
  • 보안 기능이 동작하는 범주내에서 애플리케이션의 성능 메트릭에 최소한의 영향을 끼쳐야 합니다. 개발자는 추가 보안 기능을 위해 사용자의 편의를 해치는 것을 원치 않습니다.
  • RASP 솔루션은 실제 사용자 트래픽을 차단하지 않도록 오탐 빈도가 적어야 합니다.
  • WAF와 같은 다른 보안 도구와의 완벽한 호환성을 제공해야 합니다.
  • 여러 프레임워크 및 개발 언어를 지원해야 합니다.
  • RASP 솔루션은 자율적이어야하며 24시간 모니터링으로 클라우드 분석을 지원하고 악성 공격을 차단해야 합니다.
  • 무엇보다 처리된 모든 런타임 위협에 대한 포괄적이고 실행 가능한 보고서를 제공하고 애플리케이션의 런타임 동작시 수동적 및 능동적 공격으로부터 즉시적으로 애플리케이션을 보호해야 합니다.

RASP 적용 사례

최신 보안 프레임워크의 적용 가능성을 높이고, RASP의 포괄적인 기능을 적용하기 위해서는 RASP를 어디에 적용할 수 있는지 이해하는 것이 중요합니다. 다음은 몇 가지 사용 사례 입니다.

  • RASP는 CSRF, CSS 공격, SQLi, HTTP 메서드 변조, Regex DOS 등의 애플리케이션에서 알려 지거나 알려지지 않은 취약점에 대한 공격을 처리 할 수 ​​있습니다.
  • 애자일 방식의 애플리케이션 개발 방법론의 확산과 함께 RASP는 특히 효과적인 보안 솔루션이 되었습니다. 개발팀이 취약점을 식별하고 해결 방법을 모색하는 동안 RASP는 보호 계층의 역할을 수행합니다. 특히 지속적인 통합과 배포를 수행하는 DevOps를 사용하거나, 완료 시간이 촉박한 애자일 워크플로우에 유용합니다.
  • RASP는 일반적인 웹 사이트보다 복잡하고 중요한 API를 보호하는데 유용합니다. 일반적으로 복잡한 API들은 코드내에 적절한 매개 변수화를 위해 메소드의 데이터 전송에 관하여 주석으로 설명하고 있습니다. API는 종종 WebSocket과 같은 비 HTTP 프로토콜을 사용합니다. RASP는 애플리케이션 계층에서 작동하므로 네트워크 프로토콜 및 데이터 구문 분석이 완료된 후 API를 적절한 공격으로부터 보호하기 때문에 어떠한 방식을 사용하더라도 적용이 가능합니다.
  • RASP는 또한 데이터베이스, 파일 공유 인터페이스, 3rd-party 연동, 데이터 소스 및 소켓 연결로부터 애플리케이션 환경을 보호 할 수 있습니다.
  • 애플리케이션 위협에 관한 상세 정보는 공격중인 애플리케이션, 공격을 가하기 위해 채택된 기술 및 즉각적인 대응에 유용한 세부 정보를 자세하게 파악하는데 필수적 입니다. 이러한 가시성은 내부 및 외부 엔터프라이즈 애플리케이션의 가치를 지키는데 반드시 필요합니다.
  • RASP는 보안 이벤트가 애플리케이션에 미치는 영향을 식별하고, 디버그 및 진단에 도움을 주는 향상된 보안 로깅을 제공합니다.

결론

RASP 솔루션은 AppSec 테스트 및 WAF 솔루션과 함께 당신의 팀이 정교한 위협 환경에 대해서 빠르고 효과적으로 대응하는데 필요한 중요한 도구임을 입증 할 수 있습니다. RASP의 모니터링, 트래픽 분석 및 학습 기능을 통해 당신의 애플리케이션에는 공격을 정확하게 차단할 수있는 RASP 계층이 장착될 수 있습니다.

Dustin Hong
Dustin Hong
Dustin은 잉카엔트웍스의 앱실링 비즈니스 개발을 이끌고 있습니다. 그는 사이버 보안, IT, 컨텐츠 및 애플리케이션 보안 분야의 소프트웨어 개발과 혁신에 많은 관심을 가지고 있습니다. 또한 사이버 보안 세계에서 주요 사건의 대상, 이유 및 방법에 대해 다양한 사람들에게 공유하고 토론하는 것을 좋아합니다. 업계 동향 및 모범 사례에 대한 그의 견해는 기사, 백서에 실려있으며, 여러 보안 행사에서 유사 주제로 발표를 하였습니다.

Leave a Comment