SAST vs DAST vs IAST: Teste de segurança para complementaridades dos três irmãos, não substituição
As três abreviaturas mais comuns nos testes de segurança da aplicação são SAST, DAST, IAST. A primeira reação de muitas pessoas foi “selecionar um dos mais fortes”, mas foi uma proposição hipócrita — os três irmãos não estavam competindo, mas viam a mesma questão de diferentes perspectivas. A escolha depende não de quem é mais avançado, mas no palco em que você está no ciclo de vida do software, que tipo de brecha você quer encontrar e quanto você pode suportar.
I. DEFINIÇÕES RELATIVAS À PRIMEIRA REFERÊNCIA
- SAST (teste de segurança de aplicação estática)Outro OrganizadorNão executar o programa, sob o qual o código fonte de digitalização / byte encontra uma brecha, que pertence à Caixa Branca.
- DASTOutro OrganizadorExecutando programaSolicitações de lançamento externas, ataques simulados são “caixas pretas” e nenhum código fonte é necessário.
- IAST (Teste de segurança de aplicações interativas)Outro OrganizadorExecutar o programa a partir de dentroO plug-in (agente), combinado com fluxo e contexto de código, pertence à Caixa Cinza.
A chave para entender estes três é que cada um responde a diferentes perguntas: SAST pergunta: "Onde pode haver um erro no código?" A DAST pergunta: "Podemos realmente passar ao correr?" O IAST pergunta: "Nesta operação, qual fluxo de dados realmente flui para o ponto de perigo."
SAST: Estrangular o problema na fase de escrita de código
SAST analisa diretamente o código fonte (ou compila produtos intermediários) e não executa o programa. A vantagem é ser capaz de detectar problemas em uma fase inicial, ou mesmo quando o código é submetido, para localizar documentos específicos e números de linha, com baixos custos de reparação. Ele cobre os "códigos podem ser varridos" e não depende do ambiente de tempo de execução.
Shortboard: A taxa de erro é geralmente alta porque não determina se um determinado número de códigos serão acionados no negócio real; os problemas que são expostos apenas quando em execução (por exemplo, erros de configuração, bypases de garantia, cadeia de chamadas reais de depender da biblioteca) não são totalmente vistos; o código fonte é necessário e o componente de código fechado de terceiros não é funcional.
Cenário típico: Portas de envio de código de linha de streaming CI são fechadas para evitar injeção visível, chave de codificação dura, funções de perigo chamadas para a espinha dorsal.
A verificar "Está mesmo a funcionar?"
A DAST usa o alvo como uma caixa preta para enviar pedidos de fora, construir cargas de ataque e observar a resposta. O seu maior valor é...Perto de um ataque a sério.— O problema do “acesso real à corrida” foi encontrado, com subnotificação relativamente baixa. Nenhum código fonte é necessário, então componentes de terceiros, camadas de configuração também podem ser cobertos.
ShortboardÉ muitas vezes apenas até a implantação que a detecção de detecção tardia e o custo de reparo é alto; a cobertura é limitada a répteis e rotas de teste que podem ser alcançadas pelo exemplo, sem a detecção de pontos funcionais não detectáveis; é difícil localizar o código fonte com precisão, e desenvolvimento e relatórios é muitas vezes só conhecido “qual URL é problemática”; e os custos de configuração são elevados para cenários que exigem login, processos de negócios multi-passo.
Cenário típico: liberação de segurança antes de entrar online, varredura periódica de ambientes implantados.
IV. IAST: Plugs de tempo de execução, balanceando contexto com fluxos de dados reais
O IAST também observa execução de código e fluxo externo ao executar o programa implantando antent na aplicação. Ele pode ver como as solicitações entram, e como os dados fluem para o código, para que ele possa ser dado.Leve a prova completa da pousada.Normalmente é inferior ao SAST e é preciso.
ShortboardA necessidade de ser capaz de implantar sondas no ambiente alvo (dotando-se de preocupações sobre o ambiente de produção); dependência na cobertura do teste, que não pode ser encontrada sem o código ser implementado, que é muitas vezes ligado a testes funcionais / automatizados; diferenças no suporte de linguagem e framework; e certos custos de desempenho.
Cenário típico: executar no ambiente de teste em conjunto com testes automatizados, tanto para validar a funcionalidade e sincronizar conclusões de segurança de saída.
Cinco, três contra um.
| Dimensões | SAST | DAST | IAST |
|---|---|---|---|
| Objecto de Teste | Código/bytes (não em execução) | Alvo ativo (externo) | Aplicações operacionais (plugs internos) |
| Perspectiva | Caixa Branca | Caixa Preta | Caixa Cinza |
| Tempo de intervenção | Codificação/fase de apresentação mais precoce | Após a implantação | Ensaio/tempo de execução |
| Necessita de código-fonte | Sim. | Não é preciso. | Requisito (pode ser ligado) |
| Nível Mal Relatado | Alta | Baixo | Baixo |
| Precisão da posição | Para arquivo/linha | Para URL/ Interface | Ligar para o Inn/Data Stream |
| Sobrepor a Dependência | Limitado (ver parte do código-fonte) | Substituir a exposição durante a execução | Limitado pelo caminho da execução |
| Cena típica | Proibição da Porta do Código CI | Verifique e aceite antes de entrar online. | Combinado com testes automatizados |
VI. Porquê complementaridade em vez de substituição
Se juntarmos os três, eles acham as suas zonas cegas complementares:
- O SAST vê o código mas não sabe se ele será disparado; o DAST sabe se ele pode ser acionado mas não sabe em que linha o problema está; o IAST ambos, mas requer que o código seja executado.
- SAST cobre cedo, largo e alto; DAST tem pequeno ruído, mas intervenção tardia, cobertura estreita; e IAST tem alta precisão, mas pode ligar e correr bem o suficiente.
- Basta ir para o SAST, que é vulnerável a “um monte de burocracia” fadiga; ir para a DAST, onde a lacuna é muitas vezes exposta na linha; ir para o IAST, onde o caminho para o qual não é alcançado é cego.
A resposta à realidade não é uma ou duas, mas uma abordagem fase a fase: o uso precoce do SAST para embalar um padrão claro de mau gosto e perigo, a fase de teste do IAST para ser validada com precisão com o IAST em conjunto com a automação, e o uso up- e down-line do DAST para aceitação externa da perspectiva do agressor. Três superstições constituem um teste de segurança de aplicação laço fechado sem lacunas significativas.
VII. QUESTÕES PRÁTICAS RELATIVAS À Aterragem
1. Equivocando quem lida com isso
De qualquer forma, ninguém corrige o relatório, ninguém o faz. Há um processo de triagem claro: quem vê, quanto tempo para fechar, como marcar " aceitando risco " . Em particular, o SAST necessita de uma gestão de base, caso contrário, o legado da história afogará novos problemas.
Cobertura é mais importante do que as marcas de ferramentas
A capacidade do IAST para descobrir depende diretamente de quantos códigos são cobertos pelo teste; DAST depende de quantas interfaces são alcançadas por répteis. É mais significativo medir “a taxa de detecção” antes de entrar online do que substituir uma ferramenta mais cara.
3. Não tratar testes de segurança como testes pontuais Toma.
Os testes de segurança devem ser incorporados num processo contínuo de I & D, em vez de centralizados antes de entrar em linha. CI corre SAST, testa o ambiente IAST, regularmente faz DAST para a produção, por isso não precisa confiar na carne humana para salvar o fogo.
4. Foco em sinergias entre ferramentas
O estado ideal é que três tipos de resultados podem ser agrupados na mesma visão: a mesma brecha, SAST dá localização de código, IAST dá evidência de fluxo de dados, e DAST valida disponibilidade. Vale muito mais do que as três ilhas destruídas pela guerra.
VIII. Uma lista de decisões
- Sim.Fase de apresentaçãoApenas segure a brecha óbvia no SAST, concentre-se em fechamentos de portas e linhas de base.
- VerificarO sistema implantado é realmente capaz de atacar? • Subir com o DAST, focando na cobertura e configuração de login.
- Para tirar conclusões de segurança.Saída com testes automatizadosE localizar exatamente no IAST.
- Os recursos limitados só podem ser utilizados como primeira prioridade para o SAST estabelecer uma linha de fundo e, em seguida, gradualmente para completar a AIEA/DAST.
- A busca por uma "solução permanente de tamanho único" não existe, mas a forma de organizar e processar é a resposta.
O SAST é possível, o DAST é prático, o IAST é específico — a combinação é um quadro completo.