Auditoria em um cluster Linux compatível com PCI-DSS

4

Estou familiarizado com algumas das formas mais comuns de configurar um servidor Linux para estar em conformidade com PCI-DSS 3.2 , pelo menos para os requisitos de SAQ A . Uma preocupação comum é o requisito 8.5, que exige que:

Generic user IDs and accounts are disabled or removed

Isso inclui o usuário root, que obviamente não pode ser desativado, portanto, é necessário um "controle de compensação" (na terminologia do PCI-DSS). Uma receita comum é uma variante dos seguintes itens:

  • desativar logins como root;
  • exigem logins por ssh para usar uma chave SSH;
  • use sudo para obter root;
  • instale pam_loginuid para registrar o ID do usuário de login quando os usuários tiverem raiz; e
  • instale e configure o auditd para registrar as ações raiz e o ID do usuário de login.

No entanto, no caso de eu estar lidando com hoje, não é uma única máquina que estou protegendo: é um pequeno cluster (atualmente com 10 máquinas) e é muito, muito útil para poder ssh (e scp files) entre as máquinas. Ter que fazer isso como um usuário não-root seria uma verdadeira dor: quase sempre o arquivo que você precisa é somente legível para o root e precisa ser colocado em algum lugar onde somente o root possa gravar.

O que eu gostaria de fazer é permitir ssh como root entre as máquinas, usando uma chave SSH presente nos servidores. Isso é bastante fácil em /etc/ssh/sshd_config com PermitRootLogin de comando em um bloco Match Address . Não estou muito preocupado com as implicações de segurança de permitir que alguém que tenha comprometido uma máquina ganhe controle de todo o cluster: as máquinas são semelhantes o suficiente para que, se conseguirem comprometer um, provavelmente possam usar o mesmo processo para acessar o restante .

No entanto, se eu fizer isso, perco a capacidade de rastrear quem está executando o comando, pois o UID sem login não está mais conectado ao processo quando eu ssh para outra máquina. Um controle de compensação no PCI-DSS precisa "atender à intenção e rigor do requisito original do PCI DSS", e a intenção do requisito 8.5 é declarada como sendo para tornar possível "rastrear o acesso e as atividades do sistema a um indivíduo". Sem preservar o UID de login, não estamos mais fornecendo um controle de compensação para permitir que o usuário raiz exista.

O que eu espero encontrar é a maneira de passar o loginuid do servidor para o servidor quando fizer login como root, provavelmente colocando-o no ambiente. Eu não me importo que isso requeira implicitamente confiar no servidor de origem: ele já é. Alguém pode sugerir um meio de fazer isso? Ou, na falta disso, outra maneira de rastrear a atividade do sysadmin como raiz para um usuário específico, enquanto permite fácil ssh e scp entre máquinas?

    
por richard 13.10.2016 / 01:28

0 respostas