Recebo com alguma frequência e-mails de pessoas perguntando algo sobre carreira em segurança da informação. Naturalmente não tenho todas as respostas, até porque sou novo na área, mas tento ajudar tanto quanto possível. Sendo assim, vou colocar aqui o que normalmente respondo, assim pode ser criticado e melhorado por outros pesquisadores, de modo que nos ajudemos mais e a partir de diferentes pontos de vista.
Eu baseio uma carreira profissional em 4C, de prática diária:
Comportamento
Ética e disponibilidade para ajudar. Sempre.
Crítica
Infelizmente (ou felizmente, porque assim você as conhece), pessoas mentem pra você o tempo todo. Nas empresas, mais ainda. Leitura obrigatória aqui são os artigos da série “Profissão: escovador de bit” do Rodrigo Strauss.
Conhecimento
Sem o real conhecimento da sua área de atuação, todo o resto vai por água abaixo. De posse dele, você se torna necessário.
Coexistência
Ou “engolimento de sapo”. Nem sempre faremos o que achamos que gostaríamos de fazer, nem lidaremos com pessoas legais o tempo todo. São só testes, relaxe. Em tudo tem algo a ser aprendido, mesmo que você ache a tarefa chata ou ruim. É importante que você faça e, se caiu pra você, tem que ser você. Agradeça por isso e só faça. ?
Se o objetivo é atuar na área técnica segurança da informação, eu penso que há 5 domínios de conhecimento, ou “blocos”, que precisam ser preenchidos ao máximo, que formam a base da atuação técnica em SI: Hardware, SO, Redes, Software Livre e Programação.
O quanto você vai avançar em cada item (você pode nivelar em básico, intermediário e avançado) vai depender de qual sub-área de SI você deseja. Eu enxergo as macro: Teste de intrusão, hardening, computação forense, análise de malware e pesquisa de vulnerabilidades. Esqueci algo?
O estudo nessas áreas é constante e sempre com foco na (in)segurança e geração de certezas mediante provas de conceito, testes e mais testes. Por exemplo, se ao estudar hardware alguém disser pra você que desconectar um teclado PS/2 da placa-mãe com o PC ligado “queima a saída da placa”, teste, mesmo que isso custe sua placa. Você vai aprender o certo e isso não tem preço.
Voltando aos blocos, vou colocar umas dicas do que fazer neste caminho, baseadas na minha experiência e na de amigos. Definitivamente não é o “caminho para o sucesso”, mas só mais uma sugestão de jornada que pode – e deve – ser adaptada, alterada ou até mesmo completamente ignorada, de acordo com suas opiniões, necessidades e condições. Ou você pode seguir à risca e ver no que dá. Sua conta em risco.
Hardware
Acho que desmontar e montar um PC por completo é obrigação de qualquer profissional de TI. Soa um pouco ilógico um programador web, por exemplo, que “chama um técnico” para trocar o HD ou reinstalar o sistema operacional. Adicionalmente estudar eletrônica é muito interessante e é essencial para o que é conhecido por hardware hacking. As dicas são:
- Ser usuário ativo (perguntar e responder) no Fórum do Clube do Hardware. É uma comunidade gigante de técnicos de hardware e até encontros regionais (muito bons por sinal) são promovidos pelos membros. Recomendo muito.
- Estudar o terceiro volume (Física 3) da série Ramalho, Nicolau e Toledo. Prepare-se para gastar pois este livro é caro. Ah, estudar é diferente de ler.
- Os primeiros capítulos do livro Sistemas Digitais (Tocci/Widmer). Quando você chegar num capítulo que foge muito da computação, você saberá que pode parar de estudá-lo.
- O livro CompTIA A+ Complete Study Guide Authorized Coursewar (Quentin Docter, Emmett Dulaney, Toby Skandier) foi o que mais me deu base sobre hardware, mas ele é antigo. Recomendo buscar literatura autorizada pela CompTIA para a certificação A+, além de fazer esta prova e passar! Essa certificação não é lá muito valorizada no Brasil mas o estudo para ela dá uma base incrível sobre computadores. Eu achava que entendia alguma coisa de hardware até ler este livro.
Sistemas operacionais
No estudo de hardware você já deve lidar com os SOs no sentido de instalá-los e configurá-los por demais, no entanto, este item diz respeito a entendê-los.
- Aqui o estudo dos livros dos Tanembaum não podem faltar. Buscar o Minix (SO desenvolvido por ele) e seguir junto com seus livros pode ser um exercício e tanto.
- A wiki OSDev tem tudo o que é preciso para entender (e até criar) um SO deste o bootloader.
- O Linux From Scratch também é um excelente recurso e te ensina, dentre outras coisas, a criar sua própria distribuição Linux. Não é que você precise manter uma distribuição Linux, mas criar uma sem dúvida vai te dar uma base de Linux sem igual.
- A coleção do Windows Internals é o que há de mais profundo, oficialmente, de material para o SO Windows.
Redes
Sem TCP/IP você está perdido. Não conheço literatura específica além do excelente TCP/IP Illustrated (W. Richard Stevens), mas deve haver umas legais em português. O importante é estudar e por em prática os conceitos! Recomendo tirar uma certificação mínima na área como a Network+ ou CCNA, da Cisco e procurar empregos onde você possa trabalhar junto a administradores de rede, ou até se tornar um. Montar um laboratório em casa com alguns PCs também é essencial. Ao conectar este bloco com programação, também é legal programar para redes e, num futuro próximo, conectando também com servidores web e programação, chegar na web entendendo o HTTP com base de quem entende a pilha TCP/IP, os handshakes, os sockets, etc. Outro nível.
Software livre
Socialmente justo. Esta “modalidade” de desenvolvimento de software tem seus pilares nas comunidades. Estas, por sua vez, obrigam você a estudar e aprender, sempre ajudando. Você aprende muito mais numa comunidade de software livre, acredite. Aprende sobre todos os outros blocos que citei aqui. Muito. Muito mesmo.
- Fazer parte de um grupo de usuários de Linux da sua região e participar ativamente das suas atividades é obrigatório.
- Frequentar os eventos de software livre, tanto os regionais quanto os maiores, como o Latinoware constrói uma rede de networking profissional e aprendizado fantástica. Considere submeter propostas de palestras se você tem algo inédito a dizer. E eu acho que você tem.
- Ficar informado: BR-Linux e VivaOLinux.
- 4Linux. Essa empresa tem sempre uma equipe excelente de Linux. Fazer um curso lá, além de te dar conhecimento, pode te levar a monitor do curso, o que te ajuda a aprender ainda mais e até mesmo a ser contratado por eles.
- Livros: Descobrindo o Linux (Eriberto Mota), Servidores Linux (Morimoto), Programação em shell (Julio Neves).
- Seja qual for o sabor de Linux que você gostar, é essencial procurar se inteirar na comunidade oficial dele.
- Tem que ter uma conta no GitHub e mostrar o que você sabe fazer em software livre. Pode ser o script mais feio do mundo, mostra sem vergonha!
- A carreira de certificações LPI é obrigatória. Da LPIC-1 até a última.
Programação
Um dos, senão o mais importante bloco dessa base. Quem não sabe programar por certo não sabe como um computador funciona.
- Pra lógica de programação tem uma coisa chamada “portugol”. Funciona com algumas pessoas. Boa sorte!
- Estudar Assembly, por mais inútil que possa parecer, mesmo que o básico. Fazer uma calculadora em Assembly é necessário. Recomendo o nasm.
- Naturalmente, depois de Assembly, C. O livro C Completo e Total (Herbert Schildt) é excelente se você ignorar o último capítulo.
- Reimplementar programas existentes como ping, dir/ls etc é muito bom.
- Programar na web é essencial (PHP, Python, Ruby…). Entender o protocolo HTTP também.
- Mais livros: C++/Java (Deitel), Programação Avançada em Linux (Gleicon da Silveira Moraes) .
- Programar pra Linux é ótimo! Fazer seu código funcionar em OS X e também Windows (mesmo que via Cygwin) é muito legal/trabalhoso também!
- Noção de programação orientação a objeto é uma boa.
- O grupo C/C++ Brasil do Google é fantástico, mas se você pedir a resposta de um trabalho/exercício da escola/universidade lá, irá para o inferno sem escalas.
- Programar um Arduino é muito louco!
Algumas dicas gerais, mas não menos importantes:
- Você só é útil se ajudar os outros. É só por isso que está aqui.
- Repasse todo o conhecimento que adquiriu, sem exceção. Do contrário ele morre.
- Você é ajudado. Escolha amigos para ajudar.
- Faça algum trabalho social envolvendo tecnologia em ONGs e afins.
- Prefira usar software livre sempre, mesmo no Windows e OS X.
- Quando gostar de um software livre, compartilhe isso nas suas redes sociais e mande um e-mail ao desenvolvedor (ou grupo de desenvolvedores) agradecendo e explicando porque o software te ajudou.
- Tenha ativo pelo menos 1 software livre seu. Não importa se é inovador ou não.
- Frequente eventos, conferências, palestras, workshops…
- Tire no mínimo uma certificação por ano.
- Faça coisas na empresa que só você sabe fazer, mas que ajude todo mundo.
- Faça um “hello, world” e uma função soma() em todas as linguagens que você sentir vontade de saber o básico sobre como ela funciona.
- Saiba fazer um site HTML/CSS/JavaScript, mesmo que feio.
- Não tenha medo de mandar currículo para empresas como Google, Microsoft, Oracle, Red Hat etc. Tem um monte de gente que não sabe o que você sabe e está ĺá.
- Tenha um site/blog onde você posta suas experiências, estudos e avanços.
- Após ler algo, faça o teste e aí sim, acredite.
- Se quer uma certificação, agenda a prova (e paga) pra daqui há alguns meses e aí sim começa a estudar.
- Não trapaceie em certificações (TestKing, Pass4Sure etc). O único idiota nesse ato é você.
- Agradeça publicamente!
- Admita erros publicamente!
- Se você não viver este vídeo, então seu objetivo é dinheiro. Está errado.
- Se você ainda pensa que é melhor que alguém, por favor assista este outro.
- Não fique obeso fazendo tudo isso.
- 2