Senha

Segurança - os 25 erros de programação mais perigosos

, 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
  1. Validação Imprópria de Entradas: Entradas que recebem dados e os aceitam mesmo sem certificar que eles são do tipo/formato esperado.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. Transmissão de Dados Sensíveis em Texto Puro: Senhas, dados de cartão e qualquer informação considerada sensível deve ser criptografada.
  7. 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.
  8. 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.
  9. 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:
  1. Falha ao Limitar Operações aos Limites de um Buffer de Memória: O conhecido buffer overflow.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. Desligamento ou Liberação Impróprias de Recursos: Arquivos, conexões e classes precisam ser corretamente encerradas.
  8. Inicialização Imprópria: Dados, bibliotecas e sistemas inicializados incorretamente podem abrir margens para problemas.
  9. 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:
  1. 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.
  2. Uso de um Algoritmo Criptográfico Quebrado ou Vulnerável: Utilização de algoritmos fracos ou comprometidos levam a falhas de criptografia e vulnerabilidades.
  3. Senha no Código: deixar um usuário e uma senha no próprio código traz inúmeros problemas.
  4. 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.
  5. 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.
  6. 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.
  7. 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
Reblog this post [with Zemanta]

Marcadores: , , , , , , , , , , ,



# 8/07/2009 07:57:00 PM, Comentários, Links para esta postagem,

Senha fraca

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: , , , , , , ,



# 7/23/2007 09:00:00 PM, Comentários, Links para esta postagem,

Vulnerabilidade

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: , , , , , , ,



# 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: ,



# 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: ,



# 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: ,



# 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: ,



# 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: ,



# 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: ,



# 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: ,



# 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: , ,



# 1/13/2001 10:00:00 PM, Comentários, Links para esta postagem,

Vulnerabilidade administrativa

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: , , , , , , ,



# 1/08/2001 10:00:00 PM, Comentários, Links para esta postagem,