Senha
,
Saiu no portal da SANS a lista criada com o consenso entre vários profissionais e empresas do ramo de segurança e desenvolvimento descrevendo os
25 erros de programação mais perigosos para o desenvolvimento seguro. Eu vou traduzir os nomes e informação básicos mas o melhor é ler
o artigo na íntegra, em inglês.
Os erros estão separados em três categorias: Interação insegura entre componentes, Gerenciamento arriscado de recursos, Defensas porosas.
Categoria: Interação insegura entre componentes
- Validação Imprópria de Entradas: Entradas que recebem dados e os aceitam mesmo sem certificar que eles são do tipo/formato esperado.
- Codificação ou Escape Impróprios de Saída: Saídas que não são codificadas ou escapadas corretamente são a maior fonte de ataques de injeção de código.
- Falha ao Preservar a Estrutura da Busca, SQL (conhecido como Injeção de SQL): Se os atacantes podem influenciar as procuras SQL do seu programa, então eles podem controlar o seu banco de dados.
- Falha ao Preservar a Estrutura do Código da Página (conhecido como "Cross-site Scripting"): Assim como o anterior, se os atacantes podem injetar código ou scripts em sua página, eles podem controlar a página.
- Falha ao Preservar a Estrutura de Comandos do Sistema Operacional: Se você permitir que entradas ilegais sejam passadas para aplicativos do sistema operacional, o atacante pode controlar o servidor.
- Transmissão de Dados Sensíveis em Texto Puro: Senhas, dados de cartão e qualquer informação considerada sensível deve ser criptografada.
- Falsificação de Requisição Entre Sites: Um atacante pode criar uma requisição que é enviada a outro site forjando a origem e fazendo o mesmo partir de um usuário inocente, aproveitando credenciais de autenticação e acessos.
- Condição de Corrida: Atacantes vão sempre procurar por condições de corrida no software para conferir se alguma informação importante não é obtida no processo.
- Vazamento de Informações em Mensagens de Erro: Atacantes vão procurar por mensagens de erro que descrevam mais que o necessário, como nomes de campos SQL, objetos e bibliotecas sendo utilizadas.
Categoria: Gerenciamento arriscado de recursos:
- Falha ao Limitar Operações aos Limites de um Buffer de Memória: O conhecido buffer overflow.
- Controle Externo de Dados Sensíveis: Informações críticas que são mantidas fora de um banco de dados por questões de performance não deviam ser facilmente acessíveis por atacantes.
- Controle Externo de de Caminho ou Nome de Arquivo: Quando você usa dados externos para montar um nome de arquivo ou caminho de gravação, você está se arriscando a ser atacado.
- Caminho de Procura Inseguro: Se o caminho de procura de recursos estiver em algum lugar sob controle de um atacante, bibliotecas ou código pode ser inserido a revelia.
- Falha ao Controlar a Geração de Código: Caso o atacante consiga influenciar a geração de código dinâmico (se geração de código dinâmico for utilizada no programa) ele poderá controlar todo seu código.
- Download de Código sem Verificação de Integridade: Se você executa código obtido por download, você confia na fonte. Atacantes podem aproveitar esta confiança.
- Desligamento ou Liberação Impróprias de Recursos: Arquivos, conexões e classes precisam ser corretamente encerradas.
- Inicialização Imprópria: Dados, bibliotecas e sistemas inicializados incorretamente podem abrir margens para problemas.
- Cálculos Incorretos: Quando o atacante tem algum controle sobre as entradas usadas em operações matemáticas, isso pode gerar vulnerabilidades.
Categoria: Defensas porosas:
- Controle de Acesso Impróprio: Se você não garante que seus usuários estão fazendo apenas o que deviam, os atacantes irão se aproveitar de sua autenticação.
- Uso de um Algoritmo Criptográfico Quebrado ou Vulnerável: Utilização de algoritmos fracos ou comprometidos levam a falhas de criptografia e vulnerabilidades.
- Senha no Código: deixar um usuário e uma senha no próprio código traz inúmeros problemas.
- Permissão de Acesso Insegura para Recurso Crítico: Configurações, arquivos de dados e bancos de dados devem ter suas permissões de acesso protegidas.
- Uso de Valores Insuficientemente Aleatórios: Se você usa tipos de segurança que dependem de aleatoriedade, usar um gerador aleatório insuficiente só vai causar problemas.
- Execução com Privilégios Desnecessários: Se seu programa precisa de privilégios elevados para executar suas funções, ele deve abrir mão destes direitos assim que ele termina de executar as ações que precisavam dos privilégios.
- Aplicação de Segurança do Lado do Servidor pelo Cliente: Atacantes podem usar engenharia reversa em um cliente de software e escrever seus próprios clientes removendo testes e aplicações de segurança.
underpop.co.cc: Segurança: os 25 erros de programação mais perigosos
Marcadores: CMS, Cracking, Defacement, Download, PHP, Programming, Scripts, Security, Senha, SQL, Vulnerabilidade, XSS
#
8/07/2009 07:57:00 PM,
Comentários,
Links para esta postagem,
Uma senha que não fornece uma defesa eficaz contra acesso não-autorizado a um recurso.
Uma senha fraca pode ter menos de seis caracteres, conter todo ou parte do nome da conta do utilizador e contar com menos de três das quatro categorias de caracteres seguintes: letras maiúsculas, minúsculas, dígitos de base 10 e símbolos encontrados no teclado, como !, @ e #.
Marcadores: Acesso, Crackers, Descuido, Login, Noob, Perfil, Senha, Utilizador
#
7/23/2007 09:00:00 PM,
Comentários,
Links para esta postagem,
Qualquer fraqueza, processo ou ato administrativo ou exposição física que torne um computador acessível a exploração por uma ameaça.
Marcadores: Cracking, Defacement, Exploit, Exploits, Fraqueza, Security, Senha, Vulnerabilidade
#
7/22/2007 09:00:00 PM,
Comentários,
Links para esta postagem,
Senha forte
Uma senha que fornece uma defesa eficaz contra acesso não-autorizado a um recurso. Uma senha forte tem pelo menos seis caracteres, não contém todo ou parte do nome da conta do utilizador e conta com no mínimo três das quatro categorias de caracteres seguintes: letras maiúsculas, minúsculas, dígitos de base 10 e símbolos encontrados no teclado, como !, @ e #.
Marcadores: Security, Senha
#
7/01/2007 09:00:00 PM,
Comentários,
Links para esta postagem,
Phisher
Um utilizador mal-intencionado ou site da Web que engana pessoas para que revelem informações pessoais, como senhas de conta ou número de carão de crédito. Um phisher tipicamente usa mensagens de e-mail enganosas ou anúncios online como isca para atrair utilizadores desavisados para sites fraudulentos, em que os utilizadores são ludibriados para fornecer informações pessoais.
Marcadores: Security, Senha
#
4/27/2004 09:00:00 PM,
Comentários,
Links para esta postagem,
PIN (número de identificação pessoal - personal identification number)
Um código de identificação secreto semelhante a uma senha que é atribuído a um utilizador autorizado. Um PIN é usado em combinação com um cartão de caixa eletrônico ou smart card, por exemplo, para desbloquear uma funcionalidade autorizada como acesso a uma conta de banco.
Marcadores: Security, Senha
#
4/24/2004 09:00:00 PM,
Comentários,
Links para esta postagem,
Sincronização de senha
Um serviço que replica as senhas dos utilizadores entre vários computadores, dispositivos, pastas ou redes, resultando em os utilizadores terem a mesma senha em cada ambiente.
Marcadores: Security, Senha
#
4/18/2004 09:00:00 PM,
Comentários,
Links para esta postagem,
Propagação de senha
Um processo que coordena as mudanças de senha de cada utilizador em vários computadores, dispositivos, pastas ou redes em sincronização de senha.
Marcadores: Security, Senha
#
4/17/2004 09:00:00 PM,
Comentários,
Links para esta postagem,
Senha
Uma cadeia de caracteres digitados por um utilizador para confirmar sua identidade para uma rede ou computador local. Consulte também senha forte e senha fraca.
Marcadores: Security, Senha
#
4/16/2004 09:00:00 PM,
Comentários,
Links para esta postagem,
Credenciais
Informações que incluem identificação e prova de identificação que são usadas para obter acesso a recursos locais e de rede. Exemplos de credenciais são nomes de utilizador e senhas, smart cardse certificados.
Marcadores: Security, Senha
#
2/05/2002 10:00:00 PM,
Comentários,
Links para esta postagem,
Autenticação
O processo de validar as credenciais de uma pessoa, processo de computador ou dispositivo. A autenticação requer que a pessoa, processo ou dispositivo fazendo a solicitação forneça uma credencial que prove que é quem diz ser. Formas comuns de credenciais são assinaturas digitais, smart cards, dados biométricos e uma combinação de nomes de utilizador e senhas.
Marcadores: Assinatura, Security, Senha
#
1/13/2001 10:00:00 PM,
Comentários,
Links para esta postagem,
Falha em observar práticas administrativas recomendadas, como usar uma senha fraca ou efetuar login em uma conta que tenha mais direitos de utilizador do que o utilizador precisa para executar uma tarefa específica.
Marcadores: Descuido, Direitos, Falha, Login, Noob, Security, Senha, Vulnerabilidade
#
1/08/2001 10:00:00 PM,
Comentários,
Links para esta postagem,