원격 코드 실행이란?

원격 코드 실행(RCE) 공격은 공격자가 조직의 컴퓨터나 네트워크에서 악성 코드를 실행하는 것을 말합니다. 공격자가 제어하는 코드를 실행하는 기능은 추가 맬웨어를 배포하거나 중요한 데이터를 탈취하는 등 다양한 목적으로 사용될 수 있습니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • 원격 코드 실행이란
  • 원격 코드 실행(RCE) 공격의 작동 방식
  • 공격자가 RCE를 사용하는 방법
  • 원격 코드 실행을 방지하는 방법

관련 콘텐츠


계속 알아보시겠어요?

인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!

Cloudflare가 개인 데이터를 수집하고 처리하는 방법은 Cloudflare의 개인정보 취급방침을 참조하세요.

글 링크 복사

원격 코드 실행이란?

원격 코드 실행(RCE) 공격은 공격자가 조직의 컴퓨터나 네트워크에서 악성 코드를 실행할 수 있는 공격입니다. 공격자가 제어하는 코드를 실행하는 기능은 추가 맬웨어를 배포하거나 중요한 데이터를 탈취하는 등 다양한 목적으로 사용될 수 있습니다.

원격 코드 실행(RCE) 공격의 작동 방식

원격 코드 실행 공격은 일반적으로 웹 애플리케이션과 네트워크 인프라의 취약점을 통해 발생합니다.

원격 코드 실행 취약점은 공격자가 대상 시스템에서 악성 코드를 실행할 수 있도록 허용하는 소프트웨어의 결함입니다. 다음 예를 포함하여 여러 유형의 취약점을 RCE에 사용할 수 있습니다.

  • 삽입 취약점: SQL 삽입 또는 명령어 삽입과 같은 삽입 취약점은 잘못된 입력 삭제에 의해 활성화됩니다. 사용자가 신중하게 조작된 악의적인 입력을 제공하면 제공된 데이터 중 일부가 실행할 명령으로 해석됩니다. 이를 통해 공격자는 취약한 시스템이 공격자가 제공한 코드를 강제로 실행하도록 할 수 있습니다.
  • 안전하지 않은 역직렬화: 직렬화는 수신자 시스템에서 압축을 풀 수 있도록 단일 비트 문자열로 압축하여 데이터 집합의 전송을 간소화합니다. 그러나 직렬화된 데이터의 구조가 잘 정의되지 않은 경우 공격자는 압축을 풀 때 잘못 해석되는 입력을 조작할 수 있습니다. 데이터가 저장되고 처리되는 방식에 따라 이러한 잘못된 해석을 통해 공격자는 코드 실행을 달성할 수 있습니다.
  • 범위를 벗어난 쓰기: 버퍼는 데이터를 저장하기 위해 할당된 고정된 크기의 메모리입니다. 안전하지 않은 데이터 읽기나 쓰기는 공격자가 코드 또는 애플리케이션의 중요한 제어 흐름 정보로 해석할 수 있는 위치에 데이터를 배치할 수 있게 합니다.
  • 파일 관리: 일부 애플리케이션에서는 사용자가 서버에 파일을 업로드할 수 있습니다. 공격자는 이러한 액세스 권한을 통해 악성 코드가 포함된 파일을 업로드하고 애플리케이션을 속여 악성 코드를 실행할 수 있습니다.

맬웨어는 공격자가 제공한 코드로 대상 시스템에서 실행되도록 설계되었습니다. RCE 취약점을 통해 공격자가 다양한 방식으로 맬웨어를 간단히 배포할 수 있습니다.

결과적으로 RCE 취약점은 기존 맬웨어와 동일한 목적을 달성하는 데 많이 사용될 수 있습니다. RCE는 취약한 시스템에 맬웨어를 배포하거나, 서비스 거부(DoS) 공격을 수행하거나, 시스템에 저장된 중요한 정보에 액세스하는 데 사용될 수 있습니다.

공격자가 RCE를 사용하는 방법

원격 코드 실행은 악성 코드를 실행할 수 있는 기능이 공격자에게 다양한 옵션을 제공하기 때문에 위험합니다. RCE 취약점이 더 일반적인 공격에 사용될 수 있는 몇 가지 방법은 다음과 같습니다.

  • 원격 액세스: RCE 취약점은 일반적으로 공격자가 기업 네트워크에 초기 발판을 마련한 다음 확장할 수 있는 발판을 마련하는 데 사용됩니다. 예를 들어 RCE 취약점을 통해 공격자는 로그인 자격 증명을 탈취하여 VPN을 통한 네트워크 액세스를 허용할 수 있습니다.
  • 맬웨어 배포: RCE 취약점을 통해 코드 실행이 가능하지만 이 코드는 범위가 제한될 수 있습니다. 공격자는 이러한 제한을 우회하기 위해 RCE를 사용하여 더 파괴적인 다른 맬웨어를 다운로드하고 실행할 수 있습니다. 예를 들어 RCE는 취약한 시스템에서 랜섬웨어를 다운로드하고 실행하는 데 사용될 수 있습니다.
  • 데이터 도난: RCE 취약점으로 인해 공격자는 취약한 애플리케이션 내에서 명령을 실행할 수 있습니다. 이를 통해 파일 시스템, 데이터베이스 및 기타 중요한 기업 및 고객 데이터가 저장된 저장소에 액세스할 수 있습니다.
  • 데이터 파괴: RCE 취약점을 통해 공격자는 데이터베이스 내에서 DROP 명령을 실행하거나 시스템 터미널 내에서 코드를 실행할 수 있습니다. 이 액세스 권한은 합법적인 사용자에게 부여되는 것과 동일한 파일 삭제 기능을 제공합니다.
  • DoS 공격: 범위를 벗어난 쓰기 취약점을 통해 공격자는 중요한 코드를 덮어써 애플리케이션이 충돌할 수 있습니다. 다른 RCE 취약점으로 인해 프로세스가 종료되거나 중요한 데이터가 삭제될 수 있습니다.

원격 코드 실행을 방지하는 방법

원격 코드 실행 공격은 기업 웹 애플리케이션의 취약점을 통해 가능합니다. 회사가 RCE 공격에 대한 노출을 줄이기 위해 사용할 수 있는 몇 가지 방법은 다음과 같습니다.

  • 취약점 스캐닝: 잘 알려진 취약점 패턴을 식별하는 정적 코드 분석과 퍼징과 같은 동적 분석을 결합하면 악용되기 전에 RCE 취약점을 식별하고 수정하는 데 도움이 될 수 있습니다.
  • 업데이트 및 패치: 애플리케이션 또는 애플리케이션이 의존하는 타사 라이브러리에서 RCE 취약점이 발견될 수 있습니다. 업데이트와 패치를 즉시 적용하면 취약한 코드가 악용될 수 있는 기간을 줄일 수 있습니다.
  • 입력 유효성 검사: 대부분의 RCE 취약점은 애플리케이션이 사용자가 제공한 데이터에 대해 가정하는 잘못된 입력 유효성 검사와 관련이 있습니다. 강력한 입력 유효성 검사를 통해 대부분의 RCE 취약점 위협을 제거할 수 있습니다.
  • 네트워크 모니터링: 웹 애플리케이션 및 API 보호(WAAP) 솔루션으로 RCE 악용 시도를 감지하고 차단할 수 있습니다. 웹 애플리케이션에 앞서 네트워크 보안 솔루션을 배포하면 패치되지 않은 취약점으로 인한 잠재적 위험을 줄일 수 있습니다.

Cloudflare One을 통한 RCE 방지

웹 애플리케이션이 점점 더 클라우드 기반 호스팅으로 이동함에 따라 악용으로부터 웹 애플리케이션을 보호하는 것이 더욱 어려워지고 있습니다. Cloudflare 웹 애플리케이션 방화벽은 방대한 글로벌 위협 인텔리전스를 사용하여 원격 코드 실행 시도를 차단합니다.

또한 Cloudflare의 보안 액세스 서비스 에지(SASE) 플랫폼인 Cloudflare One은 기업 내부 애플리케이션을 위한 강력한 보안 및 모니터링을 제공합니다.