Sou estudante de TI e agora estou no terceiro ano na universidade. Até agora, estudamos muitos assuntos relacionados a computadores em geral (programação, algoritmos, arquitetura de computadores, matemática etc.).
Tenho certeza de que ninguém pode aprender tudo sobre segurança, mas com certeza há um conhecimento "mínimo" que todo programador ou estudante de TI deve saber sobre isso e minha pergunta é: qual é esse conhecimento mínimo?
Você pode sugerir alguns e-books ou cursos ou qualquer coisa que possa ajudar a começar com esse caminho?
Respostas:
Princípios a serem lembrados se você deseja que seus aplicativos sejam seguros:
Existem alguns excelentes livros e artigos on-line sobre como proteger seus aplicativos:
Treine seus desenvolvedores nas melhores práticas de segurança de aplicativos
Codebashing (pago)
Inovação em segurança (paga)
Bússola de segurança (paga)
OWASP WebGoat (grátis)
fonte
Regra nº 1 de segurança para programadores: não crie seu próprio
A menos que você seja um especialista em segurança e / ou criptografador, sempre use uma plataforma, estrutura ou biblioteca de segurança bem projetada, bem testada e madura para fazer o trabalho por você. Essas coisas passaram anos sendo pensadas, corrigidas, atualizadas e examinadas por especialistas e hackers. Você deseja obter essas vantagens, não descartá-las, tentando reinventar a roda.
Agora, isso não quer dizer que você não precise aprender nada sobre segurança. Você certamente precisa saber o suficiente para entender o que está fazendo e verificar se está usando as ferramentas corretamente. No entanto, se você estiver prestes a começar a escrever seu próprio algoritmo de criptografia, sistema de autenticação, desinfetante de entrada, etc., pare, dê um passo atrás e lembre-se da regra nº 1.
fonte
Todo programador deve saber escrever código de exploração.
Sem saber como os sistemas são explorados, você acidentalmente interrompe as vulnerabilidades. Saber como corrigir o código não faz absolutamente sentido, a menos que você saiba como testar seus patches. A segurança não é apenas um monte de experimentos mentais, você deve ser científico e testar seus experimentos.
fonte
A segurança é um processo, não um produto.
Muitos parecem esquecer essa questão óbvia de fato.
fonte
Sugiro revisar os 25 erros de programação mais perigosos do CWE / SANS . Foi atualizado para 2010 com a promessa de atualizações regulares no futuro. A revisão de 2009 também está disponível.
De http://cwe.mitre.org/top25/index.html
fonte
Um bom curso para iniciantes pode ser o curso do MIT em Redes e Segurança de Computadores . Uma coisa que eu sugeriria é não esquecer a privacidade. A privacidade, em alguns sentidos, é realmente fundamental para a segurança e geralmente não é abordada em cursos técnicos sobre segurança. Você pode encontrar algum material sobre privacidade neste curso sobre ética e direito no que se refere à Internet.
fonte
A equipe de segurança da Web da Mozilla montou um ótimo guia , que respeitamos no desenvolvimento de nossos sites e serviços.
fonte
A importância de padrões seguros em estruturas e APIs:
fonte
Você deve saber sobre os três A's. Autenticação, Autorização, Auditoria. O erro clássico é autenticar um usuário, embora não verifique se o usuário está autorizado a executar alguma ação, para que um usuário possa ver fotos particulares de outros usuários, o erro da Diáspora. Muitas outras pessoas esquecem-se do Audit, é necessário, em um sistema seguro, poder saber quem fez o que e quando.
fonte
fonte
Eu adicionaria o seguinte:
Entenda como diferentes vetores de ataque funcionam:
Você pode facilmente pesquisar no google por tudo isso. Isso lhe dará uma boa base. Se você deseja ver as vulnerabilidades de aplicativos da web, existe um projeto chamado google gruyere que mostra como explorar um aplicativo da web em funcionamento.
fonte
quando você está construindo uma empresa ou qualquer um de seu próprio software, deve pensar como um hacker. Como sabemos, os hackers também não são especialistas em tudo, mas quando encontram alguma vulnerabilidade, começam a investigar reunindo informações sobre todas as coisas. as coisas e, finalmente, atacar o nosso software. para impedir esses ataques, devemos seguir algumas regras bem conhecidas, como:
você pode encontrar mais recursos de segurança nos seguintes links:
para obter mais informações, google sobre os fluxos de segurança do fornecedor do aplicativo.
fonte
fonte
Para informações gerais sobre segurança, recomendo a leitura de Bruce Schneier . Ele tem um site, seu boletim informativo sobre criptografia , vários livros e fez muitas entrevistas .
Eu também me familiarizaria com a engenharia social (e com Kevin Mitnick ).
Para um bom (e bastante divertido) livro sobre como a segurança se desenvolve no mundo real, eu recomendaria o excelente (embora um pouco datado) 'O ovo do cuco', de Cliff Stoll.
fonte
Verifique também a Lista das 10 principais da OWASP para obter uma categorização de todos os principais vetores / vulnerabilidades de ataque.
Essas coisas são fascinantes de se ler. Aprender a pensar como um invasor o treinará sobre o que pensar ao escrever seu próprio código.
fonte
Sal e hash as senhas de seus usuários. Nunca salve-os em texto sem formatação no seu banco de dados.
fonte
Só queria compartilhar isso para desenvolvedores web:
guia de segurança para desenvolvedores
https://github.com/FallibleInc/security-guide-for-developers
fonte