Como evitar negação de serviço (CWE-400) no servidor HTTP Node.js?

Como Evitar Negacao De Servico Cwe 400 No Servidor Http Node Js



Com a evolução da tecnologia em todos os campos, as chances de perda de dados e ataques cibernéticos também aumentaram. As novas tecnologias desempenham um papel vital no campo do desenvolvimento ético e, da mesma forma, estas tecnologias também podem ser utilizadas para realizar ações antiéticas de uma forma mais precisa e fácil. Um desses ataques que pode ser feito por um hacker é “ Negação de serviço (CWE-400) ”.

Este guia explica o procedimento para evitar a negação de serviço CWE-400 no servidor HTTP Nodejs.







O que é negação de serviço do servidor HTTP (CWE-400)?

A negação de serviço (CWE-400) é uma tentativa do invasor de tornar um aplicativo indisponível para usuários originais, sobrecarregando o aplicativo com tráfego de bot. Esse ataque também é executado explorando as vulnerabilidades residentes do aplicativo para torná-lo muito mais lento.



Os aplicativos Node Js são vulneráveis ​​a ataques maliciosos?

Sim, os aplicativos Node.js podem ser vulneráveis ​​a ataques maliciosos, assim como qualquer outro software ou aplicativo. Alguns tipos mais comuns e populares de ataques maliciosos são indicados abaixo:



    • Ataques de negação de serviço
    • Ataques de injeção
    • Ataques de script entre sites (XSS)
    • Ataques de sequestro de sessão

Como evitar negação de serviço (CWE-400) no servidor HTTP Node.js?

Para evitar a negação de serviço no servidor HTTP Node.js, o número de solicitações recebidas de um único endereço IP dentro de um período de tempo especificado precisa ser restrito. Desta forma, o tráfego recebido pela sua aplicação é tratado e existem vários outros métodos para mitigar a Negação de Serviço (CWE-400) em Node.js.





Método 1: Uso do Limitador de Taxa

O limitador de taxa é a melhor abordagem para prevenir especificamente o ataque de negação de serviço, pois pode limitar o número de solicitações que podem chegar de cada solicitação por quadro de janela:

const expObj = requer ( 'expressar' ) ;
const Limitação = exigir ( 'limite de taxa expressa' ) ;

const demoApp = expObj ( ) ;

const cusLim = Limitando ( {
janelaMs: 2 * 60 * 1000 , // quinze minutos
máximo: 100 ,
} ) ;
demoApp.use ( cusLim ) ;


A descrição do código acima é a seguinte:



    • Primeiro, instale e importe o “ expressar ' e ' limite de taxa expressa ”Em seu projeto Node Js usando o“ npm i ”comando e“ exigir() ”Método respectivamente.
npm eu expresso


    • Em seguida, crie um aplicativo expresso chamado “ demoApp ”E crie um limitador de taxa atribuindo os valores necessários para“ janelasMs ' e ' máx. ”propriedades do“ limite de taxa expressa ”objeto.
    • O ' janelasMs ”define a duração do tempo da janela e“ máx. ”Define a solicitação máxima que pode ser recebida de um único endereço IP por janela.
    • Agora, aplique o “ usar() ”Método contendo o limitador de taxa com o“ demoApp ”Aplicativo para limitar a solicitação recebida pelo aplicativo “demoApp”.

Método 2: uso de métodos de tempo limite

O ' tempo esgotado ”métodos como“ setTimeout() ',' cabeçalhosTimeout ',' solicitaçãoTimeout ',' tempo esgotado ', e ' keepAliveTimeout() ”São usados ​​​​para sair ou encerrar o“ servidor http ' servidor. Isso evitará a negação de serviço (CWE-400), fornecendo um período mínimo de janela aberta. Por exemplo, a solicitação foi excluída ou a janela será fechada após “ 3 ”Segundos:

servidor const = http.createServer ( ( requerer, res ) = > {
req.setTimeout ( 3.000 ) ;
// Tratamento de solicitação
} ) ;

Dicas adicionais para mitigar a negação de serviço em Node Js

Existem algumas dicas adicionais que ajudam a mitigar a negação de serviço (CWE-400) no servidor HTTP Nodejs, listadas abaixo:

    • O ' Proxies Reversos ”deve ser utilizado para enviar ou receber solicitações para o aplicativo Node Js. Esses proxies oferecem cache, balanceamento de carga e lista negra de IP, o que ajuda muito a mitigar o DoS (CWE-400).
    • O uso de uma rede de distribuição de conteúdo “ CDN ” ajuda a prevenir o ataque DoS (CWE-400), dividindo o código em vários pedaços e enviando-os separadamente em vários servidores.
    • O uso de um Firewall de Aplicativo Web “ WAF ” protege seu aplicativo bloqueando solicitações de uma fonte maliciosa conhecida.
    • A utilização de um “ Balanceador de carga ” divide uniformemente uma carga de solicitações em todos os servidores, evitando que um único servidor fique sobrecarregado.

Observação: Você também pode verificar a documentação autêntica do Node.js para obter mais informações sobre Negação de serviço (CWE-400) .

Isso é tudo sobre prevenção de negação de serviço (CWE-400) no servidor HTTP Node.js.

Conclusão

Para evitar negação de serviço (CWE-400) no servidor HTTP Node.js, use o “ Limitador de taxa ',' Métodos de tempo limite ',' Proxies Reversos ',' CDNs ',' WAF ' e ' Balanceador de carga ”técnicas. Eles limitam o número de solicitações, fecham a janela de solicitação, redirecionam a solicitação para outro site, dividem e carregam o código original em vários servidores e equilibram a carga em cada servidor, respectivamente. Este guia rápido ilustrou o processo para mitigar ou prevenir a negação de serviço (CWE-400) no servidor HTTP Node.js.