O livro "Kali Linux from developer"

imagem Oi, habrozhiteli! Os autores apresentarão passo a passo os conceitos básicos e os recursos do Kali Linux. O livro oferece um curso breve sobre o trabalho com a linha de comando do Linux e seus conceitos, descreve os cenários típicos de instalação do Kali Linux. Após ler este livro, você aprenderá como configurar, depurar e proteger o Kali Linux, bem como trabalhar com o poderoso gerenciador de pacotes do pacote de distribuição Debian. Aprenda a instalar corretamente o Kali Linux em qualquer ambiente, incluindo grandes redes corporativas. Finalmente, você precisa se familiarizar com tópicos complexos: compilar o kernel, criar suas próprias imagens ISO, criptografia industrial e proteção profissional de informações confidenciais.


Capítulo 7. Proteção e Controle do Kali Linux


Assim que você começar a usar o Kali Linux para tarefas mais confidenciais e de alto perfil, provavelmente precisará levar a segurança da sua instalação mais a sério. Neste capítulo, discutimos primeiro a política de segurança, destacando os pontos mais importantes na sua determinação e prestamos atenção a algumas ameaças ao seu sistema e a você como profissional de segurança. Também discutiremos medidas de segurança para laptops e desktops e consideraremos firewalls e filtragem de pacotes separadamente. Em conclusão, abordaremos as ferramentas e estratégias de monitoramento e mostraremos as maneiras mais eficazes de usá-las para detectar possíveis ameaças ao seu sistema.

7.1 Definição de diretiva de segurança


É inapropriado discutir segurança em termos gerais, pois esse conceito representa uma ampla gama de conceitos, ferramentas e procedimentos que não são universais. Escolher entre eles exige uma representação precisa de seus objetivos. A proteção do sistema começa com respostas para várias perguntas. A implementação precipitada e imprudente de um conjunto arbitrário de utilitários leva ao risco de definir aspectos de segurança por engano.

É melhor identificar inicialmente um objetivo específico. A abordagem correta para resolver esse problema será a resposta para as seguintes perguntas.

1. O que você está tentando proteger? A política de segurança será diferente dependendo do que você deseja proteger: computadores ou dados. Neste último caso, você também precisa saber quais informações precisam de proteção.

2. Do que você está tentando se proteger? Do vazamento de dados confidenciais? De perda acidental de informações? De uma perda causada por uma falha na prestação de serviços?

3. De quem você está tentando se proteger? As medidas de segurança serão completamente diferentes para proteção contra erros de digitação de um usuário simples do sistema e proteção contra um grupo específico de intrusos.

O termo "risco" é geralmente usado para definir genericamente esses fatores: o que precisa ser protegido, o que deve ser evitado e por cuja falha isso pode acontecer. A modelagem de riscos requer respostas para as três perguntas. Com base no modelo resultante, você pode desenvolver uma política de segurança e implementá-la usando ações específicas.

Bruce Schneier, especialista global em questões de segurança (não apenas em computadores), está tentando combater um dos principais mitos sobre segurança, agindo sob o lema: "A segurança é um processo, não um produto". Os ativos que precisam ser protegidos mudam com o tempo, assim como as ameaças e os meios disponíveis para os possíveis invasores. Mesmo que a política de segurança tenha sido originalmente idealmente projetada e implementada, você nunca deve parar por aí. Os componentes de risco estão evoluindo e os métodos para preveni-lo devem ser desenvolvidos de acordo.

Além disso, restrições adicionais que possam limitar o leque de políticas disponíveis devem ser consideradas. O que você está pronto para fazer para proteger o sistema? Esta questão é de grande importância para a escolha da política. Muitas vezes, a resposta é determinada apenas do ponto de vista dos custos de caixa, mas outros elementos devem ser levados em consideração, como os possíveis inconvenientes que os usuários do sistema sofrerão ou a deterioração de seu desempenho.

Depois que o risco é modelado, você pode pensar em desenvolver uma política de segurança adequada.

Há extremos que devem ser considerados ao se decidir sobre o nível de segurança necessário. Por um lado, é extremamente simples fornecer segurança básica do sistema.

Por exemplo, se um sistema definido para proteção incluir apenas um computador usado, usado apenas para adicionar alguns números ao final do dia, seria uma decisão razoável não fazer nada de especial para protegê-lo. O valor real desse sistema é baixo e o valor dos dados é completamente zero, pois eles não são armazenados no computador. Um invasor em potencial que penetrar neste sistema receberá apenas uma calculadora. O custo de proteger esse sistema provavelmente será mais do que os custos de hackers.

A situação oposta será o caso de proteger a confidencialidade dos dados confidenciais da maneira mais completa, com a superação de quaisquer restrições. Nesse caso, a destruição completa das informações (apagamento seguro de arquivos, destruição de discos rígidos em pequenos pedaços e dissolução desses pedaços em ácido, etc.) é uma solução apropriada. Se houver um requisito adicional de que os dados sejam armazenados para uso futuro (não necessariamente em disponibilidade constante) e o custo ainda não seja um impedimento, a melhor idéia seria armazenar os dados em placas de liga de irídio e platina em abrigos de bombas sob as montanhas ao redor o mundo, cada um dos quais (é claro) é classificado e protegido por um exército.

Embora esses métodos possam parecer exagerados, eles podem, no entanto, ser soluções adequadas para certos riscos, pois permitem atingir seus objetivos com determinadas restrições. Com base em uma decisão informada, nenhuma política de segurança é mais ou menos suficiente do que qualquer outra.

Voltando a um caso mais típico, um sistema de informação pode ser segmentado em subsistemas compatíveis e predominantemente independentes. Todos eles têm seus próprios requisitos e limitações; portanto, a avaliação de riscos e o desenvolvimento de uma política de segurança devem ser realizados separadamente para cada um desses subsistemas. Você deve sempre lembrar que uma superfície de ataque pequena é mais fácil de proteger do que uma superfície grande. As organizações de rede devem ser projetadas desta maneira: os serviços vulneráveis ​​devem se concentrar em um pequeno número de computadores, e os últimos devem estar acessíveis através de um número mínimo de rotas ou pontos de controle. A lógica é simples: é mais fácil proteger pontos de interrupção do que todos os computadores vulneráveis ​​de todo o mundo externo. É nesse ponto que os benefícios da filtragem de rede (incluindo firewalls) se tornam aparentes. Essa filtragem pode ser implementada usando equipamento especial, mas uma solução mais simples e flexível é usar um firewall de software semelhante ao integrado ao kernel do Linux.

7.2 Possíveis medidas de segurança


Como mencionado acima, não há uma resposta única para a questão de como proteger o Kali Linux. Tudo depende de como você o usa e do que exatamente você está tentando proteger.

No servidor

Se você usa o Kali Linux em um servidor público, deve proteger os serviços de rede alterando todas as senhas padrão que podem ser configuradas e provavelmente restringindo o acesso a elas usando um firewall (seções 7.3 “Protegendo serviços de rede” e 7.4 “Firewall ou filtragem de pacotes ", respectivamente, veja abaixo).

Se você transferir informações da conta do usuário diretamente no servidor ou em um dos serviços de rede, defina senhas fortes (elas devem suportar ataques de força bruta). Ao mesmo tempo, você pode configurar o programa fail2ban, o que complica bastante a quebra de senhas ao pesquisar exaustivamente na rede (filtrando endereços IP que excedem o limite de tentativas com falha de login). Você pode instalar o fail2ban usando o comando apt update e, em seguida, o apt install fail2ban.

Se você usa serviços da Web, configure-os para trabalhar com o protocolo HTTPS para que os intermediários da rede não monitorem seu tráfego (o que pode incluir autenticação de cookies).

Em um laptop

O laptop de um especialista em testes de penetração não apresenta os mesmos riscos que um servidor aberto: por exemplo, você é menos suscetível a ataques aleatórios por um cracker amador e, se isso acontecer, provavelmente não terá serviços de rede ativos nesse momento.

O risco real geralmente surge quando você viaja de um cliente para outro. Por exemplo, seu laptop pode ser roubado durante uma viagem ou apreendido pela alfândega. É por isso que vale a pena usar a criptografia completa do disco (consulte a seção “Instalando em um sistema de arquivos totalmente criptografado” na Seção 4.2) e, possivelmente, também configurando a função nuke (consulte a barra lateral “Configurando uma senha de autodestruição para aumentar a segurança” no Capítulo 9): dados que Você coletado durante o seu trabalho é confidencial e requer proteção máxima.

Você também pode precisar de regras de firewall (consulte a seção 7.4 abaixo), mas não para a mesma finalidade que no servidor. Você provavelmente desejará bloquear todo o tráfego de saída, exceto o tráfego gerado pelo seu acesso VPN. Essas configurações são semelhantes às configurações de segurança de rede; portanto, quando a VPN parar de funcionar, você notará isso imediatamente (em vez de retornar ao acesso à rede local). Portanto, você não fornece os endereços IP de seus clientes ao navegar na web ou em outras atividades da rede. Além disso, se você executar uma interação interna local, é melhor monitorar constantemente suas atividades para reduzir o ruído criado na rede, o que pode atrair a atenção dos clientes e seus sistemas de proteção.

7.3 Proteção de Serviços de Rede


É recomendável que você desabilite os serviços que não está usando. O Kali simplifica essa tarefa, pois a maioria dos serviços de rede já está desativada por padrão.
Enquanto os serviços permanecerem desativados, eles não representam um risco à segurança. No entanto, você deve ter cuidado ao ativá-los devido aos seguintes fatores.

1. Por padrão, eles não têm um firewall; portanto, se escutarem em todas as interfaces de rede, estarão amplamente acessíveis ao público.

2. Alguns serviços não têm credenciais e permitem que você os configure no primeiro uso; outros têm credenciais padrão (e, portanto, amplamente conhecidas). Certifique-se de (re) definir uma senha conhecida apenas por você.

3. Muitos serviços são emitidos com privilégios de root (com direitos totais de administrador); portanto, as consequências de acesso não autorizado ou violações de segurança são geralmente graves.

Não listaremos aqui todas as ferramentas que acompanham as credenciais padrão. Em vez disso, você deve verificar o arquivo README.Debian para os respectivos pacotes, bem como as páginas docs.kali.org e tools.kali.org para descobrir se o serviço precisa de manutenção especial para garantir a segurança necessária.

Se você iniciar em tempo real, a senha raiz será toor. Portanto, você não deve habilitar o SSH antes de alterar a senha da conta raiz ou antes de configurar o bloqueio de login baseado em senha na configuração da conta.

Observe também o fato bem conhecido de que o projeto BeEF (do pacote beef-xss já instalado) possui as credenciais padrão: o nome de usuário e a senha da carne, que são definidos "à força" no arquivo de configuração.

7.4 Filtragem de firewall ou pacote


Um firewall é um equipamento de computador com hardware, software ou ambos que analisa pacotes de rede de entrada ou saída (entrada ou saída da rede local) e passa somente aqueles que atendem a determinadas condições predefinidas.

Um gateway de rede com filtragem é um tipo de firewall que protege toda a rede. Normalmente, ele é instalado em um computador dedicado configurado como um gateway para a rede, de forma que ele possa analisar todos os pacotes que entram e saem da rede. Como alternativa, existe um firewall local, que é um serviço de software em execução em um computador específico, para filtrar ou restringir o acesso a vários serviços nesse computador ou, possivelmente, para impedir conexões de saída de spywares que o usuário possa instalar por acidente ou intencionalmente.

O kernel do Linux possui um firewall de filtro de rede embutido. Não existe uma solução única para configurar nenhum firewall, pois os requisitos da rede e do usuário são diferentes. No entanto, você pode controlar o netfilter a partir do espaço do usuário usando os comandos iptables e ip6tables. A diferença entre os últimos é que o primeiro funciona para redes IPv4, enquanto o último funciona no IPv6. Como é provável que ambas as pilhas de protocolos de rede funcionem por muitos anos, as duas ferramentas devem ser usadas em paralelo. Você também pode usar o excelente utilitário fwbuilder baseado em GUI, que fornece uma representação gráfica das regras de filtragem.

No entanto, se você decidir configurar o netfilter (a implementação do firewall do Linux), examinaremos mais de perto como ele funciona.

Comportamento do protetor contra sobretensão do Netfilter

O filtro Netfilter usa quatro tabelas diferentes que armazenam as regras que regem os três tipos de operações nos pacotes:

1. filtro refere-se a regras de filtragem (aceitar, rejeitar ou ignorar um pacote);

2. nat (tradução de endereços de rede) refere-se à tradução de endereços de origem ou destino e portas de pacotes;

3. mangle refere-se a outras alterações nos pacotes IP (incluindo o campo ToS (Tipo de serviço) e opções);

4. Raw permite outras alterações manuais nos pacotes antes que eles (os pacotes) atinjam o sistema de rastreamento de conexão.

Cada tabela contém listas de regras chamadas cadeias. O firewall usa cadeias padrão para processar pacotes com base em condições predefinidas. O administrador pode criar outras cadeias que serão usadas apenas ao transferir uma das cadeias padrão (direta ou indiretamente).

A tabela de filtros contém três cadeias padrão:

1. ENTRADA - refere-se a pacotes cujo objetivo é o próprio firewall;

2. SAÍDA - refere-se a pacotes provenientes do firewall;

3. FORWARD - refere-se aos pacotes que passam pelo firewall (que não são sua origem nem destino).

A tabela nat também possui três cadeias padrão:

1. PREROUTING - para alterar pacotes imediatamente após a sua chegada;

2. POSTROUTING - alterar pacotes quando estiverem prontos para serem enviados;

3. SAÍDA - para modificar os pacotes gerados pelo próprio firewall.

Essas correntes são mostradas na fig. 7.1

imagem

Cada cadeia é uma lista de regras; cada regra é um conjunto de condições e uma ação executada quando as condições são atendidas. Ao processar um pacote, o firewall varre a cadeia correspondente, uma regra após a outra, e quando as condições para uma regra são atendidas, ele salta (daí o parâmetro -j nos comandos) para a ação especificada para continuar o processamento. Os tipos de comportamento mais comuns são padronizados e existem ações especiais para eles. A execução de uma dessas ações padrão interrompe o processamento da cadeia, uma vez que o destino adicional dos pacotes já é predeterminado (sem levar em conta a exceção mencionada abaixo). A seguir, são apresentadas as ações do Netfilter.

1. ACEITAR (ACEITAR) - permite que o pacote avance mais ao longo de sua rota.

2. REJEITAR - rejeite o pacote usando o pacote de erro ICMP (protocolo de mensagens de controle da Internet) (o tipo --reject-with para iptables determina o tipo de erro para rejeição).

3. DROP - exclua (ignore) o pacote.

4. LOG (REGISTER) - registra (através do daemon syslogd) uma mensagem descrevendo o pacote. Observe que esta ação não interrompe o processamento e a execução em cadeia continua a partir da próxima regra; portanto, o registro de pacotes rejeitados requer as regras LOG e REJECT / DROP. Os parâmetros gerais relacionados ao registro incluem:

  • --log-level, com um aviso padrão, indica a gravidade do syslog;
  • --log-prefix permite especificar um prefixo de texto para distinguir entre mensagens registradas;
  • --log-tcp-sequence, --log-tcp-options e --log-ip-options indicam dados adicionais que devem ser colocados na mensagem: número de série do TCP, parâmetros TCP e parâmetros IP, respectivamente.

5. ULOG - registra uma mensagem através do ulogd, que pode ser melhor adaptada e mais eficiente que o syslogd para processar um grande número de mensagens; observe que essa ação, como LOG, também retorna o processamento para a próxima regra na cadeia de chamada.

6. chain_name - vá para a cadeia especificada e avalie suas regras.

7. DEVOLUÇÃO - interrompa o processamento da cadeia atual e retorne à cadeia de chamada; se a cadeia atual for padrão, não haverá cadeia de chamadas; portanto, a ação padrão será executada (definida usando o parâmetro -P para iptables).

8. SNAT (apenas na tabela nat) - aplique a tradução de endereço de rede de origem (SNAT). Parâmetros adicionais descrevem as mudanças exatas a serem aplicadas, incluindo o parâmetro --to-source address: port, que define a nova fonte do endereço IP e / ou porta.

9. DNAT (apenas na tabela nat) - aplique a Tradução de endereços de rede de destino (DNAT). Parâmetros adicionais descrevem as alterações exatas a serem usadas, incluindo o parâmetro --to endereço de destino: a porta que define a nova fonte do endereço IP e / ou porta.

10. MASQUERADE (apenas na tabela nat) - aplique a máscara (caso especial do Source NAT).

11. REDIRECIONAR (somente na tabela nat) - encaminhe abertamente o pacote para esta porta do próprio firewall. Você pode usar um proxy da web para configurar um servidor aberto, que funciona sem configuração no lado do cliente e, embora o cliente acredite estar se conectando ao destinatário, as mensagens realmente passam pelo servidor proxy. O parâmetro --to-ports porta (s) especifica a porta ou o intervalo de portas para onde os pacotes devem ser encaminhados.

Outras ações, especialmente aquelas relacionadas à tabela mangle, não foram incluídas nesta subseção. Para obter uma lista completa, consulte as páginas de manual iptables (8) e ip6tables (8).

Sintaxe dos comandos iptables e ip6tables


Os comandos iptables e ip6tables são usados ​​para gerenciar tabelas, cadeias e regras. A tabela de parâmetros -t indica com qual tabela trabalhar (por padrão, a tabela de filtros).

Equipas

Os principais parâmetros para interagir com os circuitos estão listados abaixo.

1. -L chain lista as regras contidas na cadeia. Usado com a opção -n para desativar a resolução de nomes (por exemplo, iptables -n -L INPUT exibe as regras para pacotes recebidos).

2. -N cadeia cria uma nova cadeia. Você pode criar novas cadeias para vários propósitos, incluindo testar um novo serviço de rede ou repelir um ataque de rede.

3. -X chain remove a cadeia vazia e não utilizada (por exemplo, iptables -X ddos-attack).

4. -Uma regra de cadeia adiciona uma regra no final de uma determinada cadeia. Lembre-se, as regras são processadas de cima para baixo, não se esqueça de considerar esse momento ao adicionar regras.

5. -I cadeia regra_number número insere a regra antes da regra com o número especificado. Assim como na opção -A, considere a ordem de processamento ao inserir novas regras na cadeia.

6. -D cadeia rule_number (ou -D cadeia regra) remove a regra na cadeia; a primeira sintaxe indica que a regra com um determinado número deve ser excluída (o comando iptables -L --line-numbers exibe os números da regra) e a segunda identifica a regra a ser excluída por sua essência.

7. -F chain redefine a cadeia (remove todas as suas regras). Por exemplo, para remover todas as regras associadas aos pacotes de saída, insira o comando iptables -F OUTPUT. Se nenhuma cadeia for especificada, todas as regras da tabela serão excluídas.

8. -P action de cadeia define a ação padrão ou "política" para uma determinada cadeia. Atenção: esta política é aplicável apenas a circuitos padrão. Para remover todo o tráfego de entrada por padrão, você deve emitir o comando iptables -P INPUT DROP.

As regras

: -j _. , ( ) , , , .

-p IP-. tcp, udp, icmp icmpv6. TCP- --source-port --destination-port .



. , -p « , , ». .

-s -s / (source) . , -d -d / (destination).
-i , ; -o — , .

--state ( ipt_ conntrack ). NEW , , ESTABLISHED , , RELATED , , ( ftp- FTP).

iptables ip6tables, . , , — , .
, IP- 10.0.1.5 31.13.74.0/24 C , :

# iptables -A INPUT -s 10.0.1.5 -j DROP # iptables -A INPUT -s 31.13.74.0/24 -j DROP # iptables -n -L INPUT Chain INPUT (policy ACCEPT) target prot opt source destination DROP all -- 10.0.1.5 0.0.0.0/0 DROP all -- 31.13.74.0/24 0.0.0.0/0 

Outro comando iptables é frequentemente usado para permitir tráfego de rede para um serviço ou porta específica. Para permitir que os usuários se conectem ao SSH, HTTP e IMAP, você deve executar os seguintes comandos:

 # iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT # iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT # iptables -A INPUT -m state --state NEW -p tcp --dport 143 -j ACCEPT # iptables -n -L INPUT Chain INPUT (policy ACCEPT) target prot opt source destination DROP all -- 10.0.1.5 0.0.0.0/0 DROP all -- 31.13.74.0/24 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:143 

A regra da boa higiene do computador é limpar regras antigas e desnecessárias. A maneira mais fácil de remover a regra iptables é consultar as regras por número de linha, que você pode obter usando o parâmetro --line-numbers. Cuidado: quando você redefinir uma regra, todas as regras subseqüentes na cadeia serão renumeradas.

 # iptables -n -L INPUT --line-numbers Chain INPUT (policy ACCEPT) num target prot opt source destination 1 DROP all -- 10.0.1.5 0.0.0.0/0 2 DROP all -- 31.13.74.0/24 0.0.0.0/0 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:143 # iptables -D INPUT 2 # iptables -D INPUT 1 # iptables -n -L INPUT --line-numbers Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:143 

Existem condições mais específicas, dependendo das condições gerais descritas acima. Consulte os manuais iptables (8) e ip6tables (8) para obter mais informações.

Criar regras


Cada nova regra requer uma chamada para iptables ou ip6tables. A inserção desses comandos manualmente pode ser entediante, portanto, as chamadas geralmente são armazenadas em um script e, como resultado, o sistema é configurado automaticamente da mesma maneira toda vez que o computador é inicializado. Esse script pode ser escrito à mão, mas você também pode estar interessado em prepará-lo com uma ferramenta de alto nível, como o fwbuilder.

 # apt install fwbuilder 

O princípio é simples. Na primeira etapa, descreva todos os elementos que estarão envolvidos nas novas regras:

1. O firewall em si com suas interfaces de rede;

2. redes com faixas apropriadas de endereços IP;

3. servidores;

4. portas pertencentes a serviços hospedados em servidores.

Em seguida, crie as regras usando ações simples de arrastar e soltar, como mostrado na fig. 7.2 Vários menus de contexto podem alterar uma condição (por exemplo, negá-la). Então você precisa selecionar e configurar a ação.

imagem

Quanto ao IPv6, você pode criar dois conjuntos diferentes de regras para IPv4 e IPv6, ou apenas criar um e permitir que o fwbuilder traduza as regras de acordo com os endereços atribuídos aos objetos.

A ferramenta fwbuilder criará um script que configura o firewall de acordo com as regras que você define. Sua arquitetura modular permite gerar scripts para diferentes sistemas, incluindo iptables para Linux, ipf para FreeBSD e pf para OpenBSD.

Definindo regras para cada inicialização


Para implementar regras de firewall sempre que a máquina é inicializada, é necessário registrar o script de configuração na diretiva up do arquivo / etc / network / interfaces. No exemplo a seguir, o script é armazenado em /usr/local/etc/arrakis.fw.

 auto eth0 iface eth0 inet static address 192.168.0.1 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 up /usr/local/etc/arrakis.fw 

Este exemplo supõe que você esteja usando o pacote ifupdown para configurar interfaces de rede. Se você estiver usando outra coisa (por exemplo, NetworkManager ou systemd-networkd), consulte a documentação apropriada para descobrir como executar o script após iniciar a interface.

7.5 Monitoramento e registro


Confidencialidade e proteção de dados são aspectos importantes da segurança, mas é igualmente importante garantir a disponibilidade dos serviços. Como administrador e especialista em segurança, você deve garantir que tudo funcione corretamente e sua responsabilidade é identificar oportunamente o comportamento anormal e a deterioração dos serviços. O software de monitoramento e registro desempenha um papel fundamental nesse aspecto da segurança, fornecendo uma compreensão do que está acontecendo no sistema e na rede.

Nesta seção, examinaremos várias ferramentas que podem ser usadas para monitorar vários aspectos do sistema Kali.

Monitorando logs com verificação de log


A verificação de log monitora os arquivos de log a cada hora por padrão e envia mensagens de log não padrão para mensagens de email ao administrador para análise posterior.

A lista de arquivos monitorados é armazenada em /etc/logcheck/logcheck.logfiles. Os valores padrão funcionarão corretamente se o arquivo /etc/rsyslog.conf não tiver sido completamente reconstruído.

O programa de verificação de log pode relatar usando diferentes níveis de detalhe: paranóico (paranóico), servidor (servidor) e estação de trabalho (para estações de trabalho). O modo paranóico é muito detalhado e provavelmente deve se limitar a servidores específicos, como firewalls. O modo de servidor é usado por padrão e é recomendado para a maioria dos servidores. O modo de estação de trabalho é obviamente projetado para estações de trabalho e é extremamente compactado, filtrando mais mensagens do que outros "irmãos".

Nos três casos, a verificação de log provavelmente deve ser configurada para excluir mensagens adicionais (dependendo dos serviços instalados) se você não desejar receber lotes por hora de e-mails longos não registrados. Como o mecanismo de seleção de mensagens é bastante complicado, é necessário que o arquivo /usr/share/doc/logcheck-database/README.logcheck-database.gz seja lido em caso de dificuldades.

As regras aplicáveis ​​podem ser divididas em vários tipos:

1. aqueles que qualificam a mensagem como uma tentativa de invasão (armazenada em um arquivo no diretório /etc/logcheck/cracking.d/);

2. tentativas de hackers ignoradas (/etc/logcheck/cracking.ignore.d/);

3. aqueles que classificam a mensagem como um aviso de segurança (/etc/logcheck/violations.d/);

4. avisos de segurança ignorados (/etc/logcheck/violations.ignore.d/);

5. Finalmente, aqueles que se aplicam a outras mensagens (tratadas como eventos do sistema).

Os arquivos ignore.d são usados ​​(obviamente) para ignorar mensagens. Por exemplo, uma mensagem marcada como uma tentativa de hacking ou um aviso de segurança (como regra, armazenada em /etc/logcheck/violations.d/myfile) só pode ser ignorada por uma regra em /etc/logcheck/violations.ignore.d/myfile ou no arquivo /etc/logcheck/changes.ignore.d/myfile- extension.

Um evento do sistema é sempre relatado, a menos que a regra em um dos diretórios /etc/logcheck/ignore.d.{paranoid, server, workstation} / não indique que esse evento deve ser ignorado. Obviamente, apenas esses catálogos são considerados cujos níveis de detalhe são iguais ou superiores ao modo operacional selecionado.

Monitoramento de atividades em tempo real


A ferramenta interativa superior exibe uma lista de processos que estão em execução no momento. A classificação padrão é baseada na carga atual do processador e pode ser obtida usando a tecla P. Outras classificações de instruções contêm a classificação por memória ocupada (chave M), tempo total do processador (chave T) e identificador de processo (chave N). A tecla k finaliza o processo com o identificador inserido. A tecla r altera a prioridade do processo.

Quando um sistema parece sobrecarregado, o top é uma ótima ferramenta para ver quais processos estão competindo pelo tempo da CPU ou consumindo muita memória. Portanto, geralmente é interessante verificar se os processos que consomem recursos correspondem a serviços reais que devem ser hospedados em um computador. Um processo desconhecido que funciona como www-data deve realmente se destacar da lista e deve ser estudado, pois é provavelmente um exemplo de software instalado e executando em um sistema usando uma vulnerabilidade em um aplicativo da web.

A ferramenta superior é muito flexível e seu manual contém informações detalhadas sobre como personalizar sua interface e adaptá-la às suas necessidades e hábitos pessoais.

A ferramenta gráfica gnome-system-monitor é semelhante à top e fornece aproximadamente as mesmas funções.

»Mais informações sobre o livro podem ser encontradas no site do editor
» Conteúdo
» Trecho

20% de desconto no cupom para Linux - Linux

Source: https://habr.com/ru/post/pt422939/


All Articles