Esta é a primeira etapa para diagnosticar você mesmo o problema do New Relic IAST. Use este guia para resolver os problemas rapidamente.
Se você não encontrar seu problema listado aqui, você pode entrar em contato com o suporte da New Relic.
Vá para one.newrelic.com > All capabilities > IAST > Tests. Clique em um aplicativo para verificar a eficiência dos testes do aplicativo, vulnerabilidades, API coberta e chamadas de métodos, entre outros dados.
O IAST exige a reinicialização do aplicativo depois de habilitado.
Se este for um aplicativo novo, o firewall pode estar impedindo a comunicação com a plataforma NR. Verifique a seção de estatísticas de serviço no arquivo com o timestamp mais recente em nr-security-home/logs/snapshots. Todos os 6 itens dessa lista devem dizer OK. Caso contrário, revise o registro para obter informações adicionais ou entre em contato com o suporte da New Relic. Você também pode ver a documentação padrão do firewall.
Se você puder ver seu aplicativo na interface do usuário do New Relic e o agente de segurança tiver iniciado o IAST com êxito, mas não encontrar vulnerabilidades na interface do usuário, verifique o seguinte:
- O nível de eficiência do seu aplicativo: Vá para one.newrelic.com > All capabilities > IAST > Tests. Procure seu aplicativo e verifique a seção de resumo. Se a cobertura do IAST for baixa para seu aplicativo, adicione casos de teste adicionais ao seu aplicativo para obter um nível mais alto de eficiência de teste. 
- A cobertura do IAST: vá para one.newrelic.com > All capabilities > IAST > Tests. Procure seu aplicativo e clique nele. Na seção de resumo, verifique se a cobertura da análise IAST é alta e nenhuma vulnerabilidade foi detectada, o que significa que seu aplicativo está seguro. 
- Framework ou categoria de vulnerabilidades do seu aplicativo não é suportada. - Se depois de verificar isso você ainda não estiver vendo vulnerabilidades no IAST, entre em contato com o suporte da New Relic. 
Se você não vir seu aplicativo em one.newrelic.com > All capabilities > IAST > Tests, verifique o seguinte:
- Seu aplicativo está instalado e funcionando: verifique o processo do aplicativo ou a página APM e serviços.
- O log do aplicativo para descobrir se há algum problema.
- A versão do seu agente APM e atualize-a, se necessário.
- O arquivo de configuração newrelic.ymlinclui a modificação do parâmetro conforme indicado na página de instalação.
- Vá para o diretório nr-security-home/logse localize a linha[SETP-8]no arquivoLANGUAGE-security-collector-init.log. Verifique se há um erro inesperado e saiba o que falhou.
- O aplicativo tem tráfego. Gere algum tráfego para permitir que o IAST teste seu aplicativo.
- Proxy ou firewall bloqueando o acesso. Coloque na lista de permissões os seguintes IPs 3.134.136.130, 18.219.177.104, 18.117.21.106para o domínio csec.nr-data.net, os seguintes IPs3.130.22.102, 3.138.243.136, 3.139.218.150para o domínio csec-gov.nr-data.net e os seguintes IPs18.185.235.118, 3.125.193.113, 3.75.166.122para o domínio csec.eu01.nr-data.net. Mas nossa recomendação é adicionar domínios na lista de permissões em vez dos IPs, pois esses IPs podem mudar a qualquer momento.
- O certificado TLS está correto. Adicione o certificado Let's Encrypt CA (baixe em Let's Encrypt Certificates) ao seu armazenamento confiável local. Inclua os certificados raiz e intermediários (ISRG Root X1 e Let's Encrypt R3) para estabelecer a cadeia de confiança completa.
- Framework ou categoria de vulnerabilidades do seu aplicativo é suportada.
Importante
Se você estiver usando o modo de alta segurança do APM, o agente não funcionará.
Para desativá-lo, você precisa entrar em contato com o suporte da New Relic.
Quando o agente de segurança está funcionando corretamente:
- Você vê seu aplicativo em one.newrelic.com > All capabilities > IAST > Tests. O aplicativo é iniciado e há tráfego gerado. 
- No diretório - nr-security-home/logs, procure o arquivo- LANGUAGE-security-collector-init.log. Substitua- LANGUAGEno nome do arquivo pelo que você está usando. Pesquise estas etapas para ver onde está o problema:- [PASSO-1]: O agente de segurança está iniciando.
- [PASSO-2]: O agente de segurança gera um identificador exclusivo. Para conexão de soquete da web, você verá cabeçalhos de autenticação do Node.
- [PASSO-3]: O agente de segurança coleta informações sobre seu aplicativo.
- [PASSO-4]: A conexão do web socket com o validador SaaS foi estabelecida com sucesso.
- [PASSO-5]: Os threads do agente de segurança foram iniciados.
- [PASSO-6]: A instrumentação do aplicativo foi bem-sucedida.
- [PASSO-7]: O aplicativo recebe e aplica suas políticas e configuração.
- [PASSO-8]: Você vê um primeiro evento enviado para validação, o que significa que o agente de segurança foi iniciado com sucesso.
 - Aqui está um trecho de um arquivo de log do agente de segurança - LANGUAGE-security-collector-init.log:Init Log File initiated.Init Logger configured successfully with level: INFO and rollover on max size 52428800.2023-05-26 10:45:02 : [8] [New Relic RPM Connection Service] INFO : com.newrelic.api.agent.security.Agent - [STEP-1] => Security agent is starting2023-05-26 10:45:02 : [8] [New Relic RPM Connection Service] INFO : com.newrelic.agent.security.AgentInfo - [STEP-2] => Generating unique identifier: 8a6d79c3-ad67-35d6-b811-17f7515b7f292023-05-26 10:45:02 : [8] [New Relic RPM Connection Service] INFO : com.newrelic.api.agent.security.Agent - [STEP-3] => Gathering information about the application
Você pode verificar se o IAST está funcionando, mesmo se estiver vendo seu aplicativo na interface do IAST e o agente de segurança tiver sido iniciado com êxito. Siga estas etapas para verificar:
- Vá para one.newrelic.com > All capabilities > IAST > Tests. 
- Procure seu aplicativo na aba Application tests e clique nele. 
- Veja os detalhes do teste, incluindo APIs covered, methods calls e application testing efficiency. - Além disso, se você definir o nível de log como debug/finest, poderá procurar por Fuzz request received no arquivo - nr-security-home/logs/java-security-collector.log. Isto mostra que a análise do IAST está em andamento.
O IAST inicia os testes quando detecta que há tráfego, então verifique se o seu aplicativo funciona ou tem algum tráfego direcionado a ele. Execute a interface do aplicativo ou endpoints de API.
Estas podem ser as razões pelas quais o IAST não detecta vulnerabilidades conhecidas:
- IAST não oferece suporte framework de aplicativo. 
- Não há instrumentação para o módulo. 
Seu aplicativo pode apresentar alto tráfego e latência por algum tempo como parte do IAST. Isso deve ser resolvido em alguns minutos quando o teste IAST for concluído.
Você também pode verificar o arquivo de log do snapshot na pasta nr-security-home/logs/snapshots . O arquivo de log mostra o status do agente de segurança, o uso de recursos e os últimos cinco erros.
Se o seu aplicativo tiver a funcionalidade de criar arquivos e diretórios como parte do atendimento a uma solicitação HTTP, o IAST tentará testar o caminho do código e, portanto, criar esses arquivos e diretórios. O código do aplicativo, sob a influência das solicitações HTTP recebidas, cria esses arquivos. O agente não pode excluí-los.
Se você tiver certeza de que nenhuma API pode criar arquivos e diretórios, compartilhe a configuração e o log do seu aplicativo com o suporte da New Relic.
Como parte do IAST, o agente de segurança envia novas solicitações ao aplicativo que aumenta a carga, resultando em um aumento na utilização de recursos. Essa análise IAST também pode expor erros ou exceções não detectados em seu aplicativo.
Se o aplicativo travou devido à falta de recursos, aumente os recursos, reinicie o aplicativo e execute o IAST novamente.
Você pode atualizar o appId na consulta abaixo e executá-lo no criador de consulta para encontrar todas as vulnerabilidades relatadas para sua aplicação.
SELECT * FROM Vulnerability WHERE issueType = 'Application Vulnerability' AND appId = YOU_APPLICATION_IDAtualize o status de suas vulnerabilidades se achar que o IAST relatou um falso positivo. Siga esses passos:
- Pesquise seu aplicativo: Vá para one.newrelic.com > All capabilities > IAST > Tests. 
- Clique na guia Todos os aplicativos e selecione as vulnerabilidades que não são vulnerabilidades reais. 
- Na seção de detalhes de vulnerabilidades, você pode atualizar o status das vulnerabilidades relatadas. Você pode atualizar seu status para: - Falso positivo
- Resolvido
- Não resolvido
 
- Se quiser listar as vulnerabilidades para as quais você atualizou o status, você pode aplicar o filtro na lista de vulnerabilidades exploráveis detectadas. 
- Para Golang, certifique-se de importar os pacotes de instrumentação necessários para a biblioteca e estrutura que seu aplicativo usa. - Por exemplo, vamos supor que sua aplicação esteja usando biblioteca para Mongo DB. Para esta biblioteca específica, você precisa importar este pacote de instrumentação do newrelic: import ("github.com/newrelic/go-agent/v3/integrations/nrsecurityagent""github.com/newrelic/go-agent/v3/newrelic""github.com/newrelic/csec-go-agent/instrumentation/csec_mongodb_mongo""go.mongodb.org/mongo-driver/mongo")- Dependendo dos requisitos do seu aplicativo, existem outros pacotes que você pode precisar importar. Confira aqui a lista de pacotes suportados. - Certifique-se de importar o pacote correspondente para cada módulo. 
- Se você estiver abrindo um endpoint de protocolo HTTP, coloque a função - newrelic.WrapListenao redor do nome do endpoint para ativar a varredura de vulnerabilidades nesse endpoint:http.ListenAndServe(newrelic.WrapListen(":YOUR_PORT_NUMBER"), nil)- Importante- Você pode pular esta etapa se estiver em um ambiente Linux. 
- Para um caso específico de Outbound HTTP Request ou chamadas para serviços externos, é necessário atualizar o método do seu aplicativo. 
O IAST é compatível com o ambiente Windows. No entanto, para alguns aplicativos Java, você pode enfrentar classCirculatoryError e precisar desabilitar a instrumentação de baixa prioridade na configuração do agente da seguinte forma:
- Desative a instrumentação de baixa prioridade na configuração de segurança: low-priority-instrumentation:enabled: false
- Exclua a classe de instrumentação de baixa prioridade do transformador de classe. Para fazer isso, adicione as linhas fornecidas na seção - class_transformerdo arquivo de configuração:com.newrelic.instrumentation.security.low-priority-instrumentation:enabled: false
Não, não temos nenhuma API para baixar as descobertas do IAST.
O IAST envia novas solicitações ao aplicativo com base no que observa durante o teste. O objetivo é determinar se comportamentos maliciosos são possíveis, o que envolve a invocação API adicionais e chamadas de métodos usando uma carga útil de exploração. Isso pode resultar na manipulação indesejável dos dados dos clientes e no acionamento de serviços de proteção de tempo de execução.