Um bug é definido como software que não opera de acordo com as especificações. Agora, se as especificações estão com defeito, não é um erro de software. Se um cliente burro exige que todas as senhas devam ter códigos de três dígitos, sem período de carência entre entradas defeituosas, não é o software que deve ser responsabilizado.
Muitos sistemas têm um "modo de serviço" que pode substituir a segurança e, embora o acesso a ele seja seguro, os códigos geralmente vazam para o público.
Os avanços na matemática comprometem velhos métodos de criptografia. Algo que era viável segurança há 30 anos se torna fraco hoje em dia.
Existem vários métodos de roubo de dados que geralmente são ignorados. Um teclado sem fio tem um alcance de cerca de 2m, devido a pequenas antenas, e o código enviado não é criptografado. Lê-lo do outro lado da rua com uma boa antena é um método bem conhecido.
Às vezes, as trocas de segurança são feitas com total consciência das consequências - os sistemas de criptografia consomem energia e tempo de CPU. Os aplicativos de monitoramento incorporados geralmente enviam seus dados de maneira claramente legível ao público, porque primeiro o valor do comprometimento dos dados é insignificante e, em seguida, o custo extra da implementação da segurança é desnecessário.
Toda a segurança é baseada na confiança. Não é necessária nenhuma engenharia social para o administrador nomeado ficar desonesto e ler seu e-mail.
E, no final, alguém pode considerar aplicar um taco de beisebol no joelho uma técnica social?