A pergunta a seguir surgiu várias vezes ao testar a segurança de um sistema ou modelo.
Motivação: As falhas de segurança do software geralmente não provêm de bugs devido a entradas válidas, mas de bugs resultantes de entradas inválidas suficientemente próximas das entradas válidas para passar por muitas das verificações diretas de validade. É claro que o exemplo clássico é estouros de buffer, onde a entrada é razoável, exceto que é muito grande. Compiladores e outras ferramentas podem ajudar a solucionar esses problemas, modificando o layout da pilha e da pilha e por outras técnicas de ofuscação. Uma alternativa é remover os problemas do próprio código-fonte. Uma técnica chamada fuzzing bombardeia o programa com entradas aproximadas das entradas esperadas, mas em alguns lugares não é razoável (valores grandes para campos inteiros ou de seqüência de caracteres). Eu gostaria de entender a difusão (como um exemplo) de uma perspectiva mais formal.
Suponha que o espaço de entradas válidas seja descrito por restrições . Seja o conjunto de soluções de tais restrições, a saber , onde é o espaço de possíveis entradas.
Estou procurando trabalho descrevendo as seguintes noções:
Maneiras de relaxar as restrições a tal maneira que primeiramente e são, em certo sentido, a penumbra sintática de .
"Penumbra" é uma palavra que eu selecionei para descrever o conceito. Pode muito bem ser chamado de outra coisa.
Encontrei inspiração na morfologia matemática , daí a minha metáfora visual, mas os dois mundos estão separados. Existe algum trabalho útil lá? Ou talvez no mundo dos sets ásperos ?
Alguém pode lançar luz?