어떻게 작동합니까?
RCE 취약성을 통해 공격자는 원격 디바이스에서 임의의 코드를 실행할 수 있습니다. 공격자는 다음과 같은 몇 가지 방법으로 RCE를 달성할 수 있습니다.
- 주입 공격: SQL 쿼리와 같은 다양한 유형의 애플리케이션은 사용자가 제공한 데이터를 명령에 대한 입력으로 사용합니다. 삽입 공격에서 공격자는 의도적으로 입력의 일부가 명령의 일부로 해석되도록 하는 잘못된 형식의 입력을 제공합니다. 이를 통해 공격자는 취약한 시스템에서 실행되는 명령을 형성하거나 임의의 코드를 실행할 수 있습니다.
- 역직렬화 공격: 애플리케이션은 일반적으로 serialization을 사용하여 여러 데이터 조각을 단일 문자열로 결합하여 더 쉽게 전송하거나 통신할 수 있도록 합니다. 직렬화된 데이터 내에서 특수하게 형식이 지정된 사용자 입력은 역직렬화 프로그램에서 실행 코드로 해석될 수 있습니다.
- 범위를 벗어난 쓰기: 애플리케이션은 사용자가 제공한 데이터를 포함하여 데이터를 저장하기 위해 고정 크기의 메모리 청크를 정기적으로 할당합니다. 이 메모리 할당이 잘못 수행되면 공격자는 할당된 버퍼 외부에 쓰는 입력을 설계할 수 있습니다. 실행 코드도 메모리에 저장되기 때문에, 적절한 위치에 쓰여진 사용자 제공 데이터가 애플리케이션에 의해 실행될 수 있다.
RCE 공격의 예
RCE 취약성은 현존하는 가장 위험하고 영향력이 큰 취약성 중 하나입니다. 다음과 같은 많은 주요 사이버 공격이 RCE 취약성에 의해 활성화되었습니다.
- Log4J 취약점: Log4J 취약점은 많은 인터넷 서비스 및 애플리케이션에서 사용되는 널리 사용되는 Java 로깅 라이브러리입니다. 2021년 12월, Log4J 취약점에서 공격자가 취약한 애플리케이션을 악용하여 손상된 서버에서 크립토재커 및 기타 멀웨어를 실행할 수 있는 여러 RCE 취약점이 발견되었습니다.
- 이터널블루: 워너크라이(WannaCry)는 랜섬웨어를 가져왔습니다. 2017 년 주류로. 워너크라이(WannaCry) 랜섬웨어 웜은 서버 메시지 블록 프로토콜(중소/중견기업)의 취약점을 악용하여 확산되었습니다. 이 취약점을 통해 공격자는 취약한 시스템에서 악성 코드를 실행하여 랜섬웨어가 중요한 파일에 액세스하고 암호화할 수 있습니다.
RCE의 위협
RCE 공격은 다양한 목표를 달성하기 위해 고안되었습니다. RCE에 대한 다른 익스플로잇의 주요 차이점은 정보 공개, 서비스 거부 및 원격 코드 실행 사이에 있다는 것입니다.
RCE 공격의 주요 영향은 다음과 같습니다.
- 초기 액세스: RCE 공격은 일반적으로 기본 시스템에서 명령을 실행할 수 있는 기능을 부여하는 공용 애플리케이션의 취약성으로 시작됩니다. 공격자는 이를 사용하여 멀웨어를 설치하거나 다른 목표를 달성하기 위해 디바이스에 대한 초기 발판을 마련할 수 있습니다.
- 정보 공개: RCE 공격은 데이터를 훔치는 멀웨어를 설치하거나 취약한 디바이스에서 데이터를 추출하고 유출하는 명령을 직접 실행하는 데 사용할 수 있습니다.
- 서비스 거부: RCE 취약성을 통해 공격자는 취약한 응용 프로그램을 호스팅하는 시스템에서 코드를 실행할 수 있습니다. 이로 인해 시스템에서 이 애플리케이션 또는 다른 애플리케이션의 작동을 방해할 수 있습니다.
- 크립토마이닝: 크립토마이닝 또는 크립토재킹(cryptojacking) 멀웨어는 손상된 디바이스의 컴퓨팅 리소스를 사용하여 암호화폐를 채굴합니다. RCE 취약성은 일반적으로 취약한 디바이스에서 크립토마이닝 멀웨어를 배포하고 실행하는 데 악용됩니다.
- Ransomware: 랜섬웨어 멀웨어는 사용자가 다시 액세스 권한을 얻기 위해 몸값을 지불할 때까지 파일에 대한 액세스를 거부하도록 설계되었습니다. RCE 취약성은 취약한 디바이스에 랜섬웨어를 배포하고 실행하는 데에도 사용할 수 있습니다.
이는 RCE 취약성의 가장 일반적인 영향 중 일부이지만, RCE 취약성은 공격자에게 손상된 디바이스에 대한 전체 액세스 권한과 제어 권한을 제공하여 가장 위험하고 치명적인 취약성 유형 중 하나가 될 수 있습니다.
RCE 공격의 완화 및 탐지
RCE 공격은 다양한 취약점을 이용할 수 있으므로 한 가지 접근 방식으로는 방어하기 어렵습니다. RCE 공격을 탐지하고 완화하기 위한 몇 가지 모범 사례는 다음과 같습니다.
- 입력 삭제: RCE 공격은 일반적으로 주입 및 역직렬화 취약성을 이용합니다. 애플리케이션에서 사용하기 전에 사용자 입력의 유효성을 검사하면 다양한 유형의 RCE 공격을 방지하는 데 도움이 됩니다.
- 안전한 메모리 관리: RCE 공격자는 버퍼 오버플로와 같은 메모리 관리 문제를 악용할 수도 있습니다. 애플리케이션은 버퍼 오버플로 및 기타 취약성을 감지하여 이러한 오류를 감지하고 수정하기 위해 취약성 검사를 거쳐야 합니다.
- 교통 검사: 이름에서 알 수 있듯이 RCE 공격은 공격자가 취약한 코드를 악용하고 이를 사용하여 회사 시스템에 대한 초기 액세스 권한을 얻는 네트워크를 통해 발생합니다. 조직은 취약한 애플리케이션의 악용 시도를 차단하고 공격자의 엔터프라이즈 시스템 원격 제어를 탐지할 수 있는 네트워크 보안 솔루션을 배포해야 합니다.
- Access Control: RCE 공격은 공격자에게 엔터프라이즈 네트워크에 대한 발판을 제공하며, 공격자는 최종 목표를 달성하기 위해 확장할 수 있습니다. 구현하여 네트워크 세분화, 액세스 관리 및 제로 트러스트 보안 전략을 통해 조직은 공격자가 네트워크를 통해 이동할 수 있는 능력을 제한하고 기업 시스템에 대한 초기 액세스를 활용할 수 있습니다.
체크 포인트 방화벽을 통해 조직은 주입 또는 버퍼 오버플로 공격을 통해 RCE 취약성을 악용하려는 시도를 탐지하고 방지할 수 있습니다. 애플리케이션을 방화벽 뒤에 배치하면 조직에 게시하는 위험을 크게 줄이는 데 도움이 됩니다.
체크 포인트는 또한 RCE 취약성을 해결하기 위해 노력하거나 RCE 공격을 받은 조직을 지원할 수 있습니다. RCE 또는 기타 사이버 공격에 대처하는 데 도움이 필요한 경우 contact 체크 포인트 지원.