Site icon

런타임 애플리케이션 자가 보호(RASP) 란 무엇입니까?

기업에 배포된 애플리케이션들은 운영체제, 네트워크, 데이터베이스로 구성된 복잡하고 파편화된 환경에 놓여 있습니다. 이로 인해 애플리케이션의 보안 아키텍쳐 또한 파편화가 이루어지며, 이것은 정확하고 검증된 보안 로드맵 구성을 어렵게 합니다.
앱의 설계 결함을 해결하는 대신에, 개발자는 정적이고 전통적인 AppSec 접근 방식을 채택하는 경향이 있습니다. 하지만 이는 복잡한 보안 위협에 비추어 실패하는 경우가 많습니다. 이러한 이질적인 보안 제어 계층은 다양한 구성요소를 지닌 애플리케이션, 인프라, 보안 계층을 다루는데 종종 병목현상의 원인이 됩니다. RASP 솔루션의 출시는 앱 보안이 더 이상 위협에 일시적인 대응으로 해결이 되지 않기 때문에, 복잡하고 다양한 형태의 서비스 구성요소에 대한 효과적인 보안 전략 수립이 필수적이라는 인식이 정착되는 계기가 되었습니다. 런타임 애플리케이션 자가 보호(RASP)의 개념은 개발자가 어떠한 보안 위협에 맞닥뜨릴 때마다 즉흥적이고 임시방편으로 조치하는 것을 근본적으로 해결하기 위해서 개발 되었습니다.

RASP 보안 (런타임 애플리케이션 자가 보호)

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

RASP 보안은 어떻게 작동합니까?

RASP 기술은 애플리케이션이 실행되는 즉시 활성화되는 서버 기반 기술입니다. 즉, RASP는 앱의 소스 코드 내부 함수와 통합하여 호출되거나 완성된 앱의 외부 영역에서 단일 명령으로 RASP를 호출할 수 있음을 의미합니다. 그러나 대부분의 개발자는 비즈니스 요구 사항에 따라 커스터마이징 보안 시스템을 구성하는 경우를 대비하기 위해서 코드 기반 내에서 트리거 호출을 사용하는 것을 선호합니다. 이 방법을 사용하면 불필요한 보안 검사를 피할 수 있어, 보호 파라미터를 정확하게 결정하고 런타임을 최적화할 수 있습니다.

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

RASP는 WAF처럼 위협 요인을 탐지할 뿐만 아니라 위협이 실행될 경우 발생할 수 있는 피해를 막기 위한 조치를 시작하는 강력한 기능을 가지고 있습니다. 구현 방식에 따라서 이는 단순히 사용자 세션을 종료하거나 런타임시 트래픽을 분석하고 취약점의 애플리케이션에 미치는 영향을 모니터링하는 것을 의미할 수 있습니다. 또한 RASP는 애플리케이션 내부의 취약한 코드에 접근하기 때문에 오탐 확률이 낮습니다.

RASP Vs WAF

웹 애플리케이션 방화벽(WAF)과 같은 기존의 보안 접근 방식은 일반적으로 웹 애플리케이션 앞단에 위치하며, 잘 알려진 공격 페이로드 및 비정상적인 사용 패턴을 찾기 위해 인입되는 HTTP 트래픽을 검사합니다. WAF는 WAF 내에 방화벽 규칙을 생성할 수 있는 상황에서만 정상적으로 동작합니다. 

하지만 새롭게 등장한 위협은 개발자가 차단 규칙을 작성하기전까지는 방어할 수 없습니다. 반면에 RASP는 앱 내에 통합되어 위협 요인을 탐지 할 뿐만 아니라 이를 차단하기 위한 조치를 시작합니다. RASP 솔루션은 애플리케이션과 공존함으로써 알려진 취약점을 무력화하고, 사람의 개입없이는 알 수 없는 제로 데이 공격과 같은 위협으로부터 앱을 보호합니다. 따라서 RASP는 웹 애플리케이션 방화벽(WAF)과 같은 기존의 보안 접근 방식과 개념적으로 다른 보안 패러다임을 제공합니다. WAF는 모든 의심스러운 트래픽을 차단하여 앱을 보호합니다.

RASP 보안의 이점

RASP 기술의 가장 큰 장점은 방화벽과 같은 격리된 네트워크 보호 방법으로 남아 있지 않고 응용 프로그램 내부에서 작동한다는 것입니다. 이 특성을 통해 RASP는 코드베이스, API, 시스템 구성, 런타임 데이터, 논리 흐름 등에서 필요한 정보를 가져오는 상황별 서비스를 제공할 수 있습니다.

지능형 침투 테스트: 

RASP 기술을 사용하면 효과적인 침투 테스트를 수행하여 취약점을 탐지하고 제거할 수 있습니다. 앞서 언급했듯이 소프트웨어는 이상을 감지하고 그에 따라 대응하도록 설계할 수 있습니다. 또한 다른 섹션을 편리하게 다시 프로그래밍하고 테스트할 수도 있습니다.

스마트한 사고 대응: 

RASP 기술은 보다 스마트하고 신속한 사고 대응을 가능하게 합니다. 애플리케이션 런타임에 대한 심층적인 가시성과 보다 능동적인 보안 로깅 기능으로 인해 개발자는 애플리케이션 내 동작에 대한 실시간 데이터를 얻을 수 있습니다. 이는 모니터링 기능을 더욱 강화하여 개발자가 보다 효과적인 보안 설계를 만들 수 있도록 돕습니다. 

런타임 공격에 대한 가시성: 

전통적으로 개발자는 애플리케이션 실행시의 보안 데이터를 수집할 수 없었기 때문에, 당시의 보안 구조는 추측을 기반으로 설계되어야 했습니다. 하지만 RASP 소프트웨어의 통합으로 많은 부분이 변경될 수 있습니다. RASP는 개발자에게 애플리케이션 실행시의 보안 이벤트에 대한 광범위한 가시성을 제공하여 개발을 실시간 이벤트와 보다 정확하게 일치시킬 수 있도록 합니다.

규정 준수 개발 지원: 

보안을 제공하는 것 외에도 RASP 기술은 애플리케이션 개발 측면에서도 적지 않은 도움을 줍니다. 심층 테스트 및 실시간 데이터를 통해 개발자는 주요 공격 대상이 되는 에셋과 취약점을 손쉽게 식별할 수 있습니다. 이를 통해 매번 보안 취약점이 줄어든 더 안전하고 규정을 준수하는 애플리케이션을 개발할 수 있습니다.

레거시 애플리케이션 보호: 

레거시 애플리케이션은 기업의 소중한 자산입니다. 그러나 현대의 발전으로 레거시 애플리케이션을 보호하는 것은 쉽지 않습니다. 대부분의 레거시 앱은 예전 방식으로 개발되어 최신 위협에 대응할 수 있는 보안 기능을 제공하기 어렵습니다. 하지만 RASP 기술은 이러한 문제를 해결하여, 기존 코드 기반을 건드릴 필요 없이 진보된 보안 기능을 레거시 앱을 쉽게 적용할 수 있도록 지원합니다. 

보호 계층 추가: 

기존 WAF 및 IPS 보안 설정과 결합하면, RASP는 보안을 더욱 강화하고 취약점을 줄이는 추가 보호 계층 역할을 합니다. 방화벽이 들어오는 위협으로부터 앱을 보호하는 동안, RASP 기술은 실행시점에서 능동적으로 앱을 모니터링하고 위협을 제거합니다.

자가 보호: 

일단 배포되면 RASP는 최소한의 사람의 개입으로 위협을 감지하고 제거하는 독립적인 보안 시스템으로 작동합니다. 따라서 애플리케이션이 스스로를 보호하고 정확한 보안 이벤트 및 런타임 데이터로 보상하는 자가 보호 애플리케이션 런타임을 제공합니다.

비용 효율성: 

RASP는 제공하는 보안 수준을 고려할 때 매우 비용 효율적인 솔루션입니다. 위협으로부터 애플리케이션을 보호하고 보안 이벤트 로그를 능동적으로 제공하는, 유지 관리에 소모되는 노력이 적게 필요한 기술입니다. 따라서 더 나은 보호, 분석 및 개발 이점을 얻을 수 있는 올인원 패키지라고 할 수 있습니다.

더 나은 개발자 교육: 

개발자 교육은 애플리케이션 개발의 취약성을 크게 줄여주기 때문에 모든 보안팀의 필수적인 부분입니다. RASP 데이터를 적극적으로 사용하면 애플리케이션 구조 내에서 취약점과 공격을 받기 쉬운 영역에 대한 보다 정확한 정보를 제공할 수 있습니다. 따라서 다음 버전에서 더 나은 애플리케이션 보안 개발을 가능하게 합니다.

RASP 보안 배포 모드

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

  1. 오프 모드 – 모니터링 또는 통화 차단 기능을 제공하지 않습니다. 여기서 모든 요청은 RASP 솔루션의 어떠한 조치 없이도 간단히 전달됩니다.
  2. 모니터링 / 진단 모드 – RASP 프로그램이 애플리케이션의 위협을 모니터링하고 로그를 기록하며 경고를 발행하지만 요청을 차단하지 않는 모드입니다.
  3. 차단 모드 – RASP 프로그램이 한 단계 앞서, 모든 불법 요청을 차단하는 모드입니다.
  4. 경계상태에서의 차단 모드 – 공격을 막기 위해 사전 정의된 특정 규칙 및 RASP 솔루션에 지정된 조치가 있다는 점을 제외하고는 차단 모드와 유사합니다. 공격 경로가 지정된 규칙과 일치하지 않으면 RASP 솔루션이 이를 공격과 동일하게 차단합니다. 이 모드에서 RASP 프로그램은 WAF처럼 동작합니다.

RASP 보안 구축 방법

RASP가 앱 보안의 성숙한 개념으로 발전됨에 따라서 개발자는 다양한 방법으로 위협을 무력화할 수 있게 되었습니다. 일반적으로 개발자가 앱 또는 서버에서 RASP 보안 계층을 구현할 때 아래 4가지 방법중 하나를 사용합니다.
서블릿 필터, SDK 및 플러그인은 인입되는 HTTP 요청 및 데이터 페이로드가 애플리케이션 코드에 도달하기 전에 모니터링하고 검사하기 위해서 Apache Tomcat 또는 웹 서버내에 구현됩니다. 유사한 취약점은 차단되며, 배포 모드를 기반하여 RASP가 수정 조치를 취합니다.

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

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

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

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

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

결론

RASP 보안 솔루션은 AppSec 테스트 및 WAF 솔루션과 함께 당신의 팀이 정교한 위협 환경에 대해서 빠르고 효과적으로 대응하는데 필요한 중요한 도구임을 입증 할 수 있습니다. RASP의 모니터링, 트래픽 분석 및 학습 기능을 통해 당신의 애플리케이션에는 공격을 정확하게 차단할 수있는 RASP 계층이 장착될 수 있습니다. RASP의 끊김없이 매끄러운 코딩 없는 배포 및 통합 방식은 앱의 전체 성능에 미치는 영향을 최소화합니다. 기존의 보안 접근 방식을 넘어서 보다 빠르고 비용 효율적인 인앱 보호를 위해 RASP를 활용하십시오.

 

Exit mobile version