vulnerabilidades de software constantemente assombrar programadores e desenvolvedores . A seqüência de bug formato é um tal vulnerabilidade , e pode falhar programas ou executar código malicioso. O problema com o formato de seqüência de entrada do usuário gira em torno desmarcada. O comando de impressão em C pode ser um exemplo desse bug . A " printf () " é uma entrada do usuário sem controle que permite a impressão a partir de locais remotos. Usado sozinho , este comando dá hackers oportunidades para seqüestrar código para os seus fins . Descrição
Os desenvolvedores usam a família código printf para formatação de strings ou controle de saída de dados. A família código printf inclui comandos como fprintf , vprintf e sprintf , que dados formato, mas escrever para locais diferentes. Erros cadeia de formato ocorrer quando os desenvolvedores esquecem de colocar restrições necessárias sobre a família código printf . Hackers podem então entrar no seu próprio código através desses códigos livres de restrição, ou lacunas, e sequestrar o código. O resultado , de acordo com os autores de " O Manual Shellcoders , " é que o seqüestrador pode, então, ser capaz de ver as informações privadas e executar código arbitrário.
Tokens Formato
Corrigindo erros
cadeia de formato pode ser indolor , eo desenvolvedor de software só precisa adicionar um símbolo de formato , como "% s" ou "% x". Por exemplo , o desenvolvedor pode entrar " printf (" % s ", de entrada) " na linha de comando .
O token formato restringe entrada de formato e impede que os hackers executar códigos nocivos via lacunas presentes no código de origem. Erros cadeia de formato geralmente ocorrem quando os programadores desenvolver código para grandes programas. Durante o desenvolvimento do código , os programadores podem concentrar-se na grande figura, e, portanto, têm vista para a cadeia de formato . A cadeia de formato desmarcada então age como uma janela de oportunidade que o invasor pode usar para manipular o código.
Buffer overflows
seqüências de formato também pode criar tampão problemas de estouro . Quando um programa derrapagens o limite de buffer durante a gravação de dados, buffer overflow ocorre, eo programa pode sobrescrever a memória adjacente. Esta é uma ameaça significativa em termos de segurança de memória de um programa. Problemas de estouro de buffer são frequentemente associados com as linguagens C e C + +. Os programadores devem certificar-se de verificar os limites de buffer para combater anomalias de estouro de buffer . Quando não existe um formato especificado para uma função de tempo de execução C , qualquer código arbitrário pode ser executado através da brecha especificado. Desde que o código pode não saber os limites do buffer, que pode causar um estouro de buffer, e substituir a memória .
Minimizar os riscos
Você pode evitar erros de string de formato de seguindo algumas regras básicas de programação. Para minimizar a ocorrência de erros de cordas formantes , instalar apenas os utilitários que você precisa, e só permitir o acesso a esses utilitários para aqueles em seu grupo mais confiável, de acordo com os autores de " hack Proofing sua rede . " Lembre-se sempre de especificar um formato de cadeia para uma declaração " printf" . Se houver seqüências de formato personalizado no código, ter um cuidado especial quando se escreve privilégios dessas seqüências de formato de auto- definido.