
CVE-2023-33246 익스플로잇, Apache RocketMQ 5.1.0 대상, 브로커의 업데이트 구성 엔드포인트에 조작된 패킷을 주입하여 원격 코드 실행을 가능하게 함.
Apache RocketMQ는 낮은 지연 시간, 높은 성능과 신뢰성, 조 단위의 용량, 유연한 확장성을 갖춘 분산 메시징 및 스트리밍 플랫폼입니다.
다양한 기능을 제공합니다:
이 단락에서는 다양한 방법으로 RocketMQ를 설치하는 과정을 안내합니다. 로컬 개발 및 테스트를 위해 각 컴포넌트는 하나의 인스턴스만 생성됩니다.
RocketMQ는 모든 주요 운영 체제에서 실행되며, Java JDK 8 이상만 설치되어 있으면 됩니다.
확인하려면 java -version을 실행하세요:
$ java -version
java version "1.8.0_121"
Windows 사용자는 여기를 클릭하여 4.9.4 RocketMQ 바이너리 릴리스를 다운로드한 후,
D:\rocketmq와 같은 로컬 디스크에 압축을 풀어주세요.
macOS 및 Linux 사용자는 다음 명령어를 실행하세요:
# Download release from the Apache mirror
$ wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip
# Unpack the release
$ unzip rocketmq-all-4.9.4-bin-release.zip
터미널을 준비하고 압축이 풀린 bin 디렉터리로 이동하세요:
$ cd rocketmq-4.9.4/bin
1) NameServer 시작
NameServer는 0.0.0.0:9876에서 수신 대기합니다. 다른 사람이 해당 포트를 사용하지 않는지 확인한 후 다음을 수행하세요.
macOS 및 Linux 사용자:
### start Name Server
$ nohup sh mqnamesrv &
### check whether Name Server is successfully started
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
Windows 사용자는 먼저 환경 변수를 설정해야 합니다:
ROCKETMQ_HOME="D:\rocketmq"를 추가합니다.그런 다음 rocketmq 디렉터리로 이동하여 다음을 입력하고 실행합니다:
$ mqnamesrv.cmd
The Name Server boot success...
2) Broker 시작
macOS 및 Linux 사용자:
### start Broker
$ nohup sh bin/mqbroker -n localhost:9876 &
### check whether Broker is successfully started, eg: Broker's IP is 192.168.1.2, Broker's name is broker-a
$ tail -f ~/logs/rocketmqlogs/broker.log
The broker[broker-a, 192.169.1.2:10911] boot success...
Windows 사용자:
$ mqbroker.cmd -n localhost:9876
The broker[broker-a, 192.169.1.2:10911] boot success...
Docker 컨테이너 내에서 자신의 머신에 RocketMQ를 실행할 수 있습니다.
host 네트워크를 사용하여 컨테이너의 수신 포트를 노출합니다.
1) NameServer 시작
$ docker run -it --net=host apache/rocketmq ./mqnamesrv
2) Broker 시작
$ docker run -it --net=host --mount source=/tmp/store,target=/home/rocketmq/store apache/rocketmq ./mqbroker -n localhost:9876
RocketMQ Operator를 사용하여 Kubernetes 클러스터 내에서 RocketMQ 클러스터를 실행할 수도 있습니다.
작업을 수행하기 전에 kubectl 및 관련 kubeconfig 파일이 머신에 설치되어 있는지 확인하세요.
1) CRD 설치
### install CRDs
$ git clone https://github.com/apache/rocketmq-operator
$ cd rocketmq-operator && make deploy
### check whether CRDs is successfully installed
$ kubectl get crd | grep rocketmq.apache.org
brokers.rocketmq.apache.org 2022-05-12T09:23:18Z
consoles.rocketmq.apache.org 2022-05-12T09:23:19Z
nameservices.rocketmq.apache.org 2022-05-12T09:23:18Z
topictransfers.rocketmq.apache.org 2022-05-12T09:23:19Z
### check whether operator is running
$ kubectl get pods | grep rocketmq-operator
rocketmq-operator-6f65c77c49-8hwmj 1/1 Running 0 93s
2) 클러스터 인스턴스 생성
### create RocketMQ cluster resource
$ cd example && kubectl create -f rocketmq_v1alpha1_rocketmq_cluster.yaml
### check whether cluster resources is running
$ kubectl get sts
NAME READY AGE
broker-0-master 1/1 107m
broker-0-replica-1 1/1 107m
name-service 1/1 107m
Apache License, Version 2.0 Copyright (C) Apache Software Foundation
이 배포판에는 암호화 소프트웨어가 포함되어 있습니다. 현재 거주하고 있는 국가에서는 암호화 소프트웨어의 수입, 소지, 사용 및/또는 다른 국가로의 재수출에 제한이 있을 수 있습니다. 암호화 소프트웨어를 사용하기 전에 해당 국가의 법률, 규정 및 정책을 확인하여 암호화 소프트웨어의 수입, 소지, 사용 및 재수출이 허용되는지 확인하십시오. 자세한 내용은 http://www.wassenaar.org/를 참조하십시오.
미국 상무부 산업안보국(BIS)은 이 소프트웨어를 수출 통제 품목 번호(ECCN) 5D002.C.1로 분류했습니다. 여기에는 비대칭 알고리즘을 사용하거나 암호화 기능을 수행하는 정보 보안 소프트웨어가 포함됩니다. 이 Apache Software Foundation 배포판의 형식 및 방식은 객체 코드와 소스 코드 모두에 대해 License Exception ENC Technology Software Unrestricted (TSU) 예외(BIS 수출 관리 규정 섹션 740.13 참조)에 따라 수출이 가능합니다.
다음은 포함된 암호화 소프트웨어에 대한 자세한 내용입니다.
이 소프트웨어는 Apache Commons Crypto (https://commons.apache.org/proper/commons-crypto/)를 사용하여 서비스 간 네트워크를 통해 전송되는 데이터의 인증, 암호화 및 복호화를 지원합니다.