
Exploit para CVE-2023-37582 visando Apache RocketMQ, uma plataforma de mensagens distribuídas com baixa latência, alta taxa de transferência e suporte para mensagens transacionais, autenticação e criptografia.
Apache RocketMQ é uma plataforma de mensagens e streaming distribuída com baixa latência, alto desempenho e confiabilidade, capacidade em nível de trilhões e escalabilidade flexível.
Ela oferece uma variedade de recursos:
Este parágrafo guia você pelas etapas de instalação do RocketMQ de diferentes maneiras. Para desenvolvimento e testes locais, apenas uma instância será criada para cada componente.
O RocketMQ é executado em todos os principais sistemas operacionais e requer apenas a instalação do Java JDK versão 8 ou superior.
Para verificar, execute java -version:
$ java -version
java version "1.8.0_121"
Para usuários do Windows, clique aqui para baixar a versão binária 4.9.3 do RocketMQ, descompacte-a em seu disco local, como D:\rocketmq.
Para usuários de macOS e Linux, execute os seguintes comandos:
# Download release from the Apache mirror
$ wget https://archive.apache.org/dist/rocketmq/4.9.3/rocketmq-all-4.9.3-bin-release.zip
# Unpack the release
$ unzip rocketmq-all-4.9.3-bin-release.zip
Prepare um terminal e vá para o diretório bin extraído:
$ cd rocketmq-4.9.3/bin
1) Iniciar NameServer
O NameServer escutará em 0.0.0.0:9876, certifique-se de que a porta não está sendo usada por outros na máquina local e, em seguida, faça o seguinte.
Para usuários de macOS e 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...
Para usuários do Windows, você precisa definir as variáveis de ambiente primeiro:
ROCKETMQ_HOME="D:\rocketmq".Em seguida, mude o diretório para rocketmq, digite e execute:
$ mqnamesrv.cmd
The Name Server boot success...
2) Iniciar Broker
Para usuários de macOS e 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...
Para usuários do Windows:
$ mqbroker.cmd -n localhost:9876
The broker[broker-a, 192.169.1.2:10911] boot success...
Você pode executar o RocketMQ em sua própria máquina dentro de contêineres Docker,
a rede host será usada para expor a porta de escuta no contêiner.
1) Iniciar NameServer
$ docker run -it --net=host apache/rocketmq ./mqnamesrv
2) Iniciar Broker
$ docker run -it --net=host --mount source=/tmp/store,target=/home/rocketmq/store apache/rocketmq ./mqbroker -n localhost:9876
Você também pode executar um cluster RocketMQ dentro de um cluster Kubernetes usando o RocketMQ Operator.
Antes de suas operações, certifique-se de que o kubectl e o arquivo kubeconfig relacionado estejam instalados em sua máquina.
1) Instalar CRDs
### 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) Criar Instância do Cluster
### 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
Sempre recebemos novas contribuições, seja para limpezas triviais, grandes novos recursos ou outras recompensas materiais, mais detalhes veja aqui.
Licença Apache, Versão 2.0 Copyright (C) Apache Software Foundation
Esta distribuição inclui software criptográfico. O país em que você reside atualmente pode ter restrições sobre importação, posse, uso e/ou reexportação para outro país de software de criptografia. ANTES de usar qualquer software de criptografia, verifique as leis, regulamentos e políticas do seu país relativos à importação, posse, uso e reexportação de software de criptografia, para ver se isso é permitido. Veja http://www.wassenaar.org/ para mais informações.
O Departamento de Comércio do Governo dos EUA, Bureau of Industry and Security (BIS), classificou este software como Número de Controle de Commodity de Exportação (ECCN) 5D002.C.1, que inclui software de segurança da informação que usa ou realiza funções criptográficas com algoritmos assimétricos. A forma e maneira desta distribuição da Apache Software Foundation a torna elegível para exportação sob a exceção de Licença ENC Technology Software Unrestricted (TSU) (veja os Regulamentos de Administração de Exportação do BIS, Seção 740.13) tanto para código objeto quanto para código fonte.
O seguinte fornece mais detalhes sobre o software criptográfico incluído:
Este software usa Apache Commons Crypto (https://commons.apache.org/proper/commons-crypto/) para suportar autenticação, e criptografia e descriptografia dos dados enviados pela rede entre serviços.