[Dicas] Segurança da informação por onde começar?

Pessoal sou programador Java, e aprendi essa linguagem de uma forma autodidata.
Comecei do básico desde lógica de programação , Java pra desktop, e agora já estou dominando Java web, o problema é que percebi que minhas aplicações ou sistemas web podem ser vulneráveis,
E na verdade eu queria é aprender um pouco de segurança da informação para fins de proteção e consequentemente atacar quando preciso.

Mas a minha duvida é a seguinte,
Segurança da informação por onde começar?
Levando em consideração que tenho uma base boa em lógica e algoritmos em Java.
E outra duvida , posso fazer meus testes e até mesmo hackear se for preciso , utilizando essa linhagem?

Peço a dica e conselhos de pessoas que estão nesse ramo, ou estão estudando sobre.
Qualquer dica sobre o assunto é bem vinda!

Creio que o primeiro passo é você estudar e aplicar boas práticas de desenvolvimento de sistemas.
Depois, estudar as mais comuns técnicas de invasão de sistemas, como SQLInjection, Brute force, DoS e DDoS, entre outros.
A partir daí você vai identificando as necessidades que tem no teu sistemas, exemplos:

  • Evitar SQL injection com PreparedStatement
  • Evitar ataque de brute force com limite de tentativas de login
    e assim por diante.
1 curtida

Segurança da informação é um tópico bem extenso, então é bem complicado colocar em um post (e eu não sou especialista, então nem tentarei). Vou colocar algumas observações gerais.

O primeiro ponto a considerar é que não existe segurança total (pode ser que exista, mas acho saudável ter em mente que não há medidas de segurança que garantam 100% de sucesso, sempre). O que existem são práticas que diminuem os riscos e os danos de ataques e outros problemas de segurança.

Você precisa também diferenciar ações defensivas (proteger seus sites e produtos) e ações ofensivas (atacar adversários, concorrentes e outros hackers). São sub-domínios diferentes embaixo do mesmo domínio, embora se combinem em determinados momentos.

Sobre ações ofensivas, eu conheço pouco, então não vou comentar muito. O que posso dizer é que pode ser bem mais tedioso do que pode parecer. Analisar logs, testar portas e capturar quais serviços estão rodando em máquinas locais e remotas, entender vulnerabilidades em serviços e programas, e como se aproveitar dessas falhas etc.

Do lado defensivo, você geralmente tem as ações para evitar ataques (proteger portas, firewall, lidar com ataques DDoS, etc) e minimizar os danos de um ataque (evitar escalada de privilégios, ter backups e rotinas de recuperação, etc). Na aplicação, há uma série de ações que um desenvolvedor pode tomar (como o uso de PreparedStatement citado acima, ou mecanismos de captcha). O security.stackechange e o stackoverflow em geral tem boms tópicos sobre isso, além das recomendações da OWASP. Ex:

Sobre linguagens, não vejo o Java sendo muito usado para a parte de segurança em si (além do que uma linguagem normalmente seria usada, como proteger a memória ou não responder requisições inválidas, por exemplo).

Abraço.

Obrigado amigo, vou analisar passo a passo suas dicas.

Obrigado ,vou dar uma olhada nos artigos.

Sabe me dizer uma linguagem boa pra intrusão?