Jump to content

Search the Community

Showing results for tags 'carreira'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Supporter area
    • Tools of the Trade
    • Finance transparency
  • MBConf
    • MBConf v1
    • MBConf v2
    • MBConf v3
  • Mente Binária
    • General
    • Computer Architecture
    • Certifications
    • Quantum computing
    • Cryptography
    • Challenges and CTF
    • Hardware Hacking
    • Electronics
    • Conferences
    • Forensics
    • Games
    • Data privacy and laws
    • Code breaking
    • Networking
    • Pentest
    • Speak to us!
    • Software releases
  • Career
    • Study and profession
    • Jobs
  • Reverse Engineering
    • General
    • Malware Analysis
    • Firmware
    • Linux and UNIX-like
    • Windows
  • Programming
    • Assembly
    • C/C++
    • Python
    • Other languages
  • Operating Systems
    • GNU/Linux and UNIX-like
    • Windows
  • Segurança na Internet's Discussão

Categories

  • Tech basics
    • Text comprehension
    • English
    • Mathematics
  • Computing Basics
    • Lógica de Programação
    • Computers Architecture
    • Cryptography
    • Data Structures
    • Network
    • Operating Systems
  • Specifics
    • SO Internals
    • Web
    • Python
    • Javascript
    • Infrastructure
    • Go
    • Reverse Engineering
    • DevOps
    • C/C++
    • Log Analysis

Categories

  • Crackmes
  • Documentation
  • Debuggers
  • PE tools
  • Books
  • Util
  • Packers
  • Unpackers
  • Virtual Machines

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


GitHub


Twitter


LinkedIn


Website

Found 10 results

  1. Nos últimos meses, dividimos algumas dicas para quem tem curiosidade acerca das possibilidades de carreiras em Segurança de Aplicações. Afinal, seja para uma transição de carreira, ou mesmo para quem está ingressando agora no mercado de trabalho, ela é apontada como uma das áreas mais promissoras para os próximos anos. Desta vez, para mostrar como é a rotina e quais são os desafios de um jovem profissional que está desbravando uma das muitas possibilidades de carreiras dentro de Segurança de Aplicações, resolvemos conversar diretamente com alguém que acabou de ingressar neste universo. Nosso bate-papo de hoje é com o Antony Leite, de 17 anos, que há cinco meses é estagiário no time Pentest as a Service (PTaaS) da Conviso, e que, no momento, está estudando para aprimorar suas skills técnicas em relação a Pentest Web e Pentest Mobile. Foi a partir de uma conversa com um professor e com a ajuda de uma comunidade online que ele passou a ter interesse em uma carreira na área e acabou encontrando esta oportunidade na Conviso. Ele nos conta um pouco sobre como é a sua rotina enquanto um profissional que está começando nesta área, quais foram suas primeiras impressões e o que mais o surpreendeu em relação ao dia a dia de uma empresa de AppSec. Confira! Antony, antes de entrar na Conviso, qual era o seu conhecimento sobre Segurança de Aplicações? Já ouvia falar a respeito da área nos cursos que frequenta? Antes de entrar na Conviso eu estava terminando o curso Pentest Profissional e o Pentest Experience da DESEC (já terminei ele e só estou esperando a minha DCPT - Desec Certified Penetration Tester chegar). Eu fiquei sabendo da Conviso por conta do seu produto - o AppSec Flow - em um dos bate papos na Boitatech. Antes de trabalhar na Conviso, você considerava uma carreira em AppSec? Ou aconteceu “por acaso”? Sim. O meu interesse pela a área de AppSec surgiu no início da pandemia e isso se deve a dois fatores. O primeiro é o meu professor Jocenio, que ministrava a matéria de Sistema de Comunicação, ao qual tive o prazer de ter alguns bate-papos sobre as possibilidades de trabalho nessa área. Naquele momento eu percebi que existia um mundo de possibilidades. O segundo fator foi a comunidade Boitatech, eles foram responsáveis pelo meu engajamento inicial na área, meu desenvolvimento em relação às skills técnicas e metodologias de estudo, durante esse tempo sempre estive presente nela, conheci pessoas incríveis que sempre me ajudaram. O que mais te surpreendeu a respeito da rotina de um profissional de AppSec? As possibilidades de trabalho. Antes de entrar na área eu tinha uma visão muito pequena de como funciona toda a operação de AppSec, achava que tinha poucas possibilidades, mas não - existem várias! "A parte mais gratificante acho que é o autodesenvolvimento, a sensação de sempre estar evoluindo, aprendendo algo novo, principalmente na Conviso, onde um dos valores é crescer 1% por dia" Como é a sua rotina de trabalho? A minha rotina de trabalho na Conviso inicia na segunda-feira, com uma reunião semanal, onde são separadas as análises que serão executadas durante a semana e quem será o responsável por cada uma. Normalmente eu fico acompanhando um analista em um projeto. No final da semana, na sexta-feira, acontece a reunião de Review, onde cada membro do time mostra o que ele realizou durante aquela semana, se enfrentaram alguma dificuldade na realização do projeto ou algo do tipo. Depois de 15 dias temos uma reunião de retrospectiva, onde apontamos pontos positivos, pontos que devem ser melhorados e ações para que o time possa melhorar - é uma dinâmica muito legal e produtiva. A cada 30 dias temos ainda a reunião One-a-One que acontece entre você e o seu líder, onde você levará pontos que possam ser melhorados no seu dia a dia, planos para o seu PDI - Plano de Desenvolvimento Pessoal, ou qualquer assunto que caiba a você e ao seu líder. Depois de algum tempo no estágio, acompanhando os analistas, você irá escolher um tema para fazer um blog post, onde a Conviso irá divulgar em seu blog. Para você, qual a parte mais gratificante de trabalhar nesta área? E qual a mais desafiadora? A parte mais gratificante acho que é o autodesenvolvimento, a sensação de sempre estar evoluindo, aprendendo algo novo, principalmente na Conviso, onde um dos valores é crescer 1% por dia. A parte mais desafiadora é quando encontramos a fronteira do nosso conhecimento. Na minha área, isso ocorre quando estamos analisando uma aplicação e encontramos novas tecnologias do mercado ou tecnologias implementadas de forma mais robusta, o que acaba nos levando a ter que estudar esse assunto mais a fundo, levando em conta as especificidades do sistema do cliente. Posso garantir que é bem desafiante, mas, por outro lado, é muito gratificante quando avançamos nessa fronteira do conhecimento. Você pretende seguir carreira em AppSec depois de formado? Se sim, qual direcionamento pretende tomar dentro da área? Sim, pretendo seguir na carreira de AppSec com foco na parte ofensiva. Que dicas você daria para alguém que tem interesse em ingressar na área de AppSec? Frequentar comunidades voltadas para essa área, participar de eventos e buscar se manter sempre atualizado sobre as novas tecnologias e tendências é um ótimo início, como também participar de CTFs, visto que temos ótimas plataformas como o TryHackMe, HackTheBox, PicoCTF. Porém, ressalto que estudar, buscar cursos e certificações voltadas para essa área é muito recomendável, pois são os momentos que você consegue dar alguns saltos de conhecimento. Além disso, junto aos cursos, buscar sempre praticar, testar a teoria e experimentar novas abordagens são também iniciativas que sempre garantem muito aprendizado e um amadurecimento/evolução na área de AppSec. Segurança de Aplicações - possibilidades de carreira vão muito além do Pentest Se assim como o Antony você tem interesse em uma carreira em Segurança de Aplicações, a Conviso tem vagas para variados perfis - desde estagiários a profissionais sênior - e em diversas áreas da empresa. No caso do Antony, ele gostou tanto da experiência no time de Pentest as a Service (PTaaS), que pretende seguir na carreira de AppSec com foco na parte ofensiva. Mas vale lembrar que existem muitas outras áreas em que um profissional pode atuar quando falamos sobre AppSec. Na Conviso, por exemplo, um Analista de Segurança da Informação tem uma série de possibilidades. Este profissional pode trabalhar tanto na área de Consulting - atuando em projetos que têm como objetivo entregar processos, programas e atividades que tenham como foco em AppSec; como pode também atuar no time de Managed Security Services - MSS, como o responsável por diversas etapas do ciclo de desenvolvimento seguro, análise de requisitos, modelagem de ameaças, revisão de código e recomendações de melhores práticas de segurança; e pode ainda também atuar na área de PTaaS, testando aplicações nos mais variados contextos possíveis, subvertendo software e construindo soluções criativas. E vale lembrar que até aqui abordamos apenas algumas das atividades relacionadas aos analistas que atuam nos times de Professional Services. Profissionais como um Desenvolvedor, que se dedica ao desenvolvimento de software, ou mesmo um Account Executive, que atua no time de Sales e tem contato direto com os clientes, também são imprescindíveis para que uma empresa de AppSec funcione e prospere! Se você tem interesse em saber mais sobre a rotina de outros profissionais que fazem uma empresa de Segurança de Aplicações acontecer - como Desenvolvedores Ruby on Rails, bem como time de Sales, Marketing e People Hacking, sinalize nos comentários, e certamente traremos este conteúdo em um próximo texto. Até lá, não deixe de conhecer as vagas abertas na Conviso. 😉
  2. Você ainda acha que a função de um analista de segurança é restrita apenas a Pentest? Então este artigo é para você. Afinal, esse é um dos erros mais comuns de profissionais em início de carreira. É claro que Pentest é, sim, uma parte essencial na segurança de aplicações. Mas AppSec vai muito além do Pentest! Na primeira parte deste artigo sobre carreiras em AppSec, abordamos alguns papéis como Product Manager - essencial em empresas de produto, como é o caso da Conviso - bem como profissionais de Sales e de Engineering. Nesta segunda parte, vamos abordar as diferentes possibilidades de direcionamento de carreira que um Analista de Segurança da Informação pode seguir. Na Conviso, por exemplo, há três times diferentes de Professional Services em que um Analista de Segurança da Informação pode trabalhar: PTaaS - Pentest as a Service, Consulting e MSS - Managed Software Services. Isso porque a empresa trabalha com as melhores práticas de segurança de aplicações e, para isso, entre suas ferramentas, utiliza também o modelo da OWASP SAMM, que sugere um conjunto de práticas de segurança que atende todo o ciclo de vida do software. Desenhando soluções seguras O Omayr Zanata (foto ao lado), que é Tech Lead do time de Managed Services, explica que a área de MSS atua em três dos cinco pilares propostos pelo SAMM - Design, Implementação e Verificação. No pilar de Design, por exemplo, ele conta que o time de MSS atua ajudando o cliente a desenhar uma solução pensando em segurança desde o início. "A gente bola a parte da arquitetura segura, executa a modelagem de ameaças, e elencamos os requisitos de segurança necessários, para desenhar uma arquitetura segura. Tudo isso em parceria com o cliente, para garantir a segurança da aplicação desde o início - que é justamente o que manda o famoso conceito Shift Left", explica. "A segurança tem que ser pensada na etapa desde os desenhos iniciais de arquitetura", reforça. Na parte de Implementação, entra a segurança no DevOps, com o building seguro, o deploy seguro e a gestão dos defeitos, por exemplo. Já na fase de Verificação é quando é realizado o Assessment de Arquitetura, bem como os testes baseados em requisitos e os testes de segurança, como por exemplo SAST, DAST, SCA - que, aqui, são automatizados, diferentemente dos Pentests e Code Review, que são manuais. Quanto ao perfil de analista que atua na área de MSS, Omayr explica que é bastante importante que o analista tenha background de desenvolvimento e dois perfis são bastante interessantes para a atuação na área: o primeiro é um perfil mais orientado a DevOps e um segundo perfil mais orientado à arquitetura. "Muita gente acha que precisa ter experiência em pentest para atuar com segurança, e na verdade, os maiores diferenciais nessa área são o background de desenvolvimento e experiência com desenhos de arquitetura, cloud, microsserviços e esteiras de desenvolvimento", afirma. Ele conta ainda que uma boa dica para quem busca uma colocação na área é ganhar familiaridade com o modelo da OWASP SAMM e o OWASP ASVS. Quer trabalhar com o Omayr? Confira as vagas no time dele! Treinamentos e capacitações Dentro dos pilares do SAMM, a área de Consulting é voltada para de Governança e Operações - e atua também em Design. Neste time, o Analista de Segurança tem em sua rotina inúmeras atividades que abrangem desde uma documentação de procedimentos até a condução de treinamentos; além disso, deve prestar uma assessoria aos clientes internos e externos em relação às soluções e boas práticas de desenvolvimento e gerenciamento de segurança em seu ambiente. Evandro Pinheiro de Oliveira (foto o lado), que é Analista de Segurança, conta que faz parte do seu dia a dia na área ministrar treinamentos para os times, com a estratégia de formar Security Champions. Isso significa preparar materiais, capacitar pessoas. Ele também atua na parte política, de dar consultoria no suporte a regras e normas - isso tudo o que faz parte do pilar de Governança do SAMM. Já na fase de Design, atuam com o levantamento de Requisitos, aplicando uma estratégia de análise de ameaças, que ocorre na construção de software. No pilar de Operações, é feita a observação de indicadores. “Para trabalhar em Consulting, o pessoal precisa ser mais comunicativo, justamente por estar mais no dia a dia com o cliente - além, é claro, do conhecimento técnico necessário, uma vez que ainda é essencial conhecer as lógicas de programação, para falar com propriedade, embasamento”, reforça. Ele conta que embora o time conte com profissionais de experiências variadas - de júnior a sênior - trata-se de uma excelente porta de entrada para o mercado de AppSec, justamente por exigir de pesquisas e estudos constantes sobre todo o ciclo de desenvolvimento - assim, o profissional consegue ter uma melhor compreensão de qual área ele se identifica mais. E o próprio Evandro é prova disso - ele trabalhou por 10 anos com desenvolvimento e tinha paixão por Segurança de Aplicações. Estudou bastante, buscou se familiarizar mais com os conceitos da área e foi atrás de uma colocação no mercado - e foi assim que chegou até a Conviso. É claro que tem vaga nesse time, né? Saiba mais! E, enfim, o Pentest! Heitor Pinheiro(foto ao lado), Tech Lead da Área de Pentest as a Service, conta que neste time, em específico, os analistas exercem três grandes práticas: Operations; onde executam todos os projetos, nos mais variados contextos e escopos possíveis. “Resumidamente o objetivo é entregar valor aos nossos clientes através da identificação de vulnerabilidades”, afirma Heitor. A segunda prática é Research, onde os profissionais fazem pesquisa de vulnerabilidade em softwares e serviços utilizados de forma abrangente, buscando proporcionar aprimoramento técnico e comercial através do compartilhamento dos resultados obtidos. Já a terceira se chama Tooling, e eles contam com a ajuda de especialistas em automações, onde eles são responsáveis por nos prover recursos que nos permite operar em alta velocidade e em larga escala. “Um exemplo básico é auxiliar outras equipes especializadas em segurança em seus esforços de automação, definir e possuir métricas e KPIs para determinar a eficácia das automações criadas”, detalha. “De forma muito geral, para atuar em um time de Pentest, o profissional precisa ter uma boa base em desenvolvimento de software/aplicações, redes, sistemas operacionais e muita vontade de aprender, pois nesse universo existem novos desafios todos os dias”, aconselha. Outra dica que ele dá para quem busca trabalhar na área é arriscar-se. Segundo o Tech Lead, boas formas de fazer isso são participando de competições de CTF, contribuindo para a segurança de um projeto open-source; ou mesmo mantendo um projeto ou blog sobre o tema. “Através desses desafios, é mais rápido e divertido de entender o que funciona no mundo do AppSec - e também é uma forma de conseguir maturidade com casos reais”, conclui. Curtiu? Então vem trabalhar com o Heitor!
  3. Com 8 anos de idade, Ana Carolina da Hora já sabia que queria ser cientista. Aos 12, já tinha começado a programar. Nascida em Duque de Caxias (RJ), Nina, como é conhecida, sempre gostou de computação, e aproveitou o apoio da família durante a infância e adolescência para explorar a área com recursos que tinha dentro de casa mesmo. Nina vem de uma família de professoras, então a educação sempre foi muito forte em seu ambiente familiar. "Aqui faltava qualquer coisa, menos livro. Eu lia livros de ciência para crianças em quadrinhos. Também li 'O homem que calculava', de Malba Tahan, que é antigo e fez parte da infância de muitas pessoas. Muita gente fala que se interessou pela matemática por conta desses livros. Eu lia e ficava imaginando como foi possível para esses cientistas e filósofos terem as ideias que eles tiveram", conta Nina. Interessada em tecnologia, Nina desmontava aparelhos de DVD e minigames em casa, até que um dia aproveitou o computador de sua tia para programar. "Sempre tive muita liberdade para fazer isso mesmo sem as ferramentas que as pessoas ricas ou de classe média tinham. Os livros me ajudaram muito, e os desenhos e programas que eu assistia de ciência também, além de professores que nessa fase me ajudaram a buscar conhecimento de formas diferentes". Mesmo com todo esse interesse, Nina não sabia direito o "nome" da profissão que ela queria seguir, até que ela descobriu que era Ciência da Computação. "Não só pelo título de cientista, mas por querer passar pelo caminho e pela história da computação, e não só fazer parte do resultado. Eu fui saber isso com quase 17 anos, quando fui prestar vestibular", conta. Foi com essa idade que Nina foi aprovada em uma universidade pública. Alguns anos depois, em 2015, ela migrou para a PUC-Rio, onde está agora finalizando o último ano de curso, aos 26 anos. "Desde que entrei na faculdade eu já trabalhava. Fiz curso técnico em informática e comecei atuando nessa área como estagiária. Virei professora porque me dava bem com os alunos e tirava dúvidas deles no laboratório". Foi assim que Nina passou a dar aula de programação com 18 anos. Depois disso, ela foi trabalhar como desenvolvedora em inteligência artificial, mas seu objetivo mesmo sempre foi seguir na área acadêmica. "Por isso eu fiz muita coisa, participei do Apple Developer Academy 2018-2020 e de programas de pesquisa da PUC. Durante a universidade, trabalhei em duas startups de robótica no Brasil desenvolvendo produtos e robôs. Também trabalhei em ONG por dois anos, com a ideia de democratizar a computação. Trabalhei em escolas, startups, empresas, ONGs e laboratórios de pesquisa", diz. Agora, perto de se formar, Nina já vai direto iniciar seu doutorado. "Sempre vou atuar na sociedade civil, mas eu gosto da pesquisa e de dar aula, pois acho que é uma forma de se manter sempre atualizado". Toda essa trajetória de Nina converge para a criação de um instituto de computação em Duque de Caxias, que é o próximo projeto no qual ela quer investir. "Para isso preciso ter minhas experiências, entender o que é necessário para esse ambiente". Nina conta que o instituto será focado em educação tecnológica de computação. "O foco é desenvolver cientistas, e não só preparar pessoas para uma carreira profissional. O objetivo é parar de pensar nas pessoas como objeto de mercado de trabalho. Meu público-alvo será os mais jovens e negros, que geralmente querem entrar nessa área e não tem oportunidade, mas também quero atingir um público mais velho". Desafios e preconceito A carreira de Nina é repleta de conquistas e aprendizados, mas quem vê de fora nem imagina as dificuldades de ser uma mulher negra em uma área predominantemente composta por homens brancos. "Continua sendo um desafio, acho que as pessoas têm bastante problema em lidar com mulheres negras em posições de tomada de decisão", diz. Segundo ela, essa dificuldade vem de uma ideia de que as decisões dentro da área devem ser objetivas e frias. "Quando colocam mulheres negras, que são pessoas que humanizam os projetos nas ciências exatas, por todo nosso background, há uma dificuldade das pessoas em saber lidar, porque não seguimos os padrões e estereótipos dessa área". "A dedicação que tenho que ter é o triplo da dedicação que um homem branco que trabalha na mesma área que eu" Mesmo tendo encontrado muitas portas abertas ao longo de sua trajetória, Nina conta como é a pressão de ter que se reafirmar para ser aceita como profissional e cientista. "Ninguém tem noção de quantas vezes por dia eu tenho que provar que sei o que estou fazendo. Hoje em dia eu sei provar mais rápido. Mas a dedicação que devo ter é o triplo da dedicação que um homem branco que trabalha na mesma área que eu". Nina conta que por ser uma mulher negra e fazer parte da comunidade LGBTQIA+, ela acompanha muito de perto a dificuldade que há nas empresas em trabalhar com diversidade e inclusão. "Não adianta colocar essas pessoas em um ambiente tóxico, pois elas serão prejudicadas. Até mesmo nas redes sociais, quando tenho que criar conteúdo, sou cobrada a provar que sei sobre o que estou falando. Mas eu sou assídua na internet, e eu respondo o que sei responder. Se eu não souber, eu falo que não sei. Ainda assim, as pessoas estão sempre esperando que a gente responda a altura do que elas consideram o certo". Nina participou do Apple Worldwide Developers Conference (WWDC) em 2018 Dificuldades na área de cibersegurança Nina também trabalha com ética e inteligência artificial responsiva, e a cibersegurança sempre esteve muito perto das outras áreas em que atuou. "Não tinha a oportunidade de colocar em prática, mas quando comecei a fazer pesquisas, fui para o estudo de criptografia. Agora estou mais perto de projetos focados na segurança digital no Brasil. Não posso revelar o nome de todos, mas também sou conselheira de segurança do TikTok". Esse conselho consultivo foi pensado para a segurança da informação, explica Nina. "Tem sido interessante colocar em prática a experiência que eu tive". Mas na área de segurança, Nina também vê diversos problemas. "É um setor muito fechado, não acostumado a ter mulheres negras protagonizando, participando das construções de projetos". Ela conta que muitas decisões prejudicam a vida de pessoas negras. "Não dá para lutar pela abertura dos dados, por exemplo, se você não luta pela segurança. Temos muitas mulheres parlamentares negras sendo ameaçadas porque os dados delas estão abertos, sem segurança, personalizando a pessoa. O cruzamento das informações é prejudicial para o que queremos construir em cidadania digital e segurança", aponta. "O cruzamento das informações é prejudicial para o que queremos construir em cidadania digital e segurança". Ela conta que nessa área é preciso entender o contexto em que uma ferramenta será inserida. "Precisamos reconhecer que estamos em contextos diferentes para falar em segurança digital. Estou participando da construção de ferramentas que lidam com violência política, por exemplo. Como foi fazer uma ferramenta para ser usada por uma parlamentar negra de São Paulo e ao mesmo tempo por uma parlamentar indígena do Nordeste? É preciso adaptar sem perder a essência. Esse é um exemplo, e não é fácil, mas as pessoas precisam não ter medo dessa dificuldade e complexidade, senão somente avançaremos com as ferramentas, que daqui a pouco não serão mais usadas, mas não avançaremos com pensamento crítico". Hacker Antirracista "Em todos os lugares que eu passei, vi coisas parecidas, desde pessoas falando abertamente que não gostavam da minha atuação porque sou negra e que eu não tinha que levar questões raciais para a empresa, até pessoas que não queriam que a pesquisa que eu estava fazendo na época abordasse questões raciais. Não tem como a gente estar nesses ambientes e não lutar por respeito", diz Nina. "Quando vou em um evento, se me chamam de novo para o mesmo evento eu falo que não, que tem que chamar outra pessoa negra. Isso é ser Hacker Antirracista". Acompanhando – e vivendo – de perto todas essas questões, ela iniciou um movimento ativo para gerar a desconstrução desses padrões, e hoje se autointitula uma Hacker Antirracista. "Ainda não estamos perto do ideal. Por isso, quando vou em um evento, se me chamam de novo para o mesmo evento eu falo que não, que tem que chamar outra pessoa negra. Isso é ser Hacker Antirracista. Eu gero uma corrente para que essas questões não fiquem centralizadas em uma pessoa só". Menos30 Fest, festival de empreendedorismo e inovação da Globo que Nina participou Nina também trabalha com iniciativas que promovem o conhecimento sobre pessoas negras que atuam na área de ciências. O Ogunhê é um podcast que trata desse assunto. "Eu criei porque mantinha um diário desde a adolescência, quando descobri a área que eu queria atuar. Minha mãe e minha família ficaram com medo, por ser uma área de pessoas brancas e muitos homens, e aí eu comecei a pesquisar sobre cientistas de outros países, criei um diário e ele virou o Ogunhê. É mais uma prática antirracista, mas não só do meio tecnológico. Eu trago pesquisas alinhadas à sociedade", explica. Apoio da família Sem a ajuda da família, Nina não teria chegado onde chegou. Foi sua mãe e suas tias que deram todo o suporte e o incentivo para ela descobrir, inclusive, o que realmente queria fazer. "Elas me faziam perguntas e me incentivaram a conversar sobre isso em casa. Eu não tinha muita gente com quem conversar sobre esses assuntos, e mesmo elas não sendo da área de exatas, – são todas da área de humanas e biológicas – me incentivaram a pensar em formas de buscar conhecimento para que eu não me limitasse". O incentivo continua até hoje. Em casa, Nina é "provocada" a pensar no coletivo. "Não existe estar numa área como da computação e não pensar no que estou oferecendo para a sociedade. A computação só existe por conta de outras áreas, como engenharia elétrica e filosofia. Por isso sempre fui provocada pela família para explicar aqui em casa o que faço para minha avó, mãe, tias, e meus irmãos. São os primeiros testadores de qualquer coisa que eu coloco na rua. Se eles se entenderem, qualquer pessoa vai entender". "Você não está sozinha em nenhum ambiente tóxico, por mais que façam você acreditar nisso". Se você é uma mulher negra, ou representante de qualquer grupo de diversidade, e quer entrar na área de tecnologia, Nina tem um recado: "vocês não estão sozinhas". Ela diz que há muitas pessoas por aí que passam pelas mesmas dificuldades nesse caminho e que quando ela percebeu isso, viu que não iria desistir. "Você não está sozinha em nenhum ambiente tóxico, por mais que façam você acreditar nisso. Quando percebemos que não estamos sozinhas, conseguimos colocar os problemas na luz e ver como resolver, sempre coletivamente". Nina contou ainda com uma base religiosa para conseguir seguir em frente diante das dificuldades, mas diz que independente de acreditar ou não em religião, todo mundo pode encontrar portas de saída. "Qualquer forma de ver a vida e qualquer perspectiva de base precisa ser revisitada nos piores momentos da sua vida", complementa.
  4. Atuando na área de segurança há cerca de 10 anos, Fernando Pinheiro (@n3k00n3) possui uma trajetória admirável de alguém que começou a se interessar sozinho por hackear e a partir disso desenvolveu uma carreira que o levou ao cargo de pentester. Mas sua história tem outro fator ainda mais relevante. Se considerando uma pessoa não-binária, Fernando não se identifica com o gênero feminino ou masculino. Esse é um fato que, dentro de sua caminhada profissional, nunca passou a ser relevante ou participar do seu dia a dia. Mas na sua visão, existem poucas oportunidades de conversar sobre o tema na área por ser um ambiente predominantemente masculino e machista. Fernando conta que esse assunto ainda é considerado um tabu na profissão, apesar de nunca ter interferido na sua carreira, que iniciou em Salvador (BA), onde nasceu. Fernando sempre consumiu muito conteúdo da comunidade de segurança da informação, mas o que despertou isso não foi um desejo pela profissão em si. "Meu interesse na área começou logo depois de ver uns jogos na lan house. Tinha que pagar para poder jogar e eu não tinha dinheiro. Eu via meus amigos aumentando de level e eu não conseguia evoluir tanto quanto eles, uma vez que não conseguia pagar as horas. No início foi estranho, mas me deu esse start. Foi aí que eu achei uma vulnerabilidade no aplicativo de gerência da lan house e consegui administrar as horas de todas as pessoas, tendo hora o suficiente para jogar o dia todo", conta em entrevista ao Mente Binária. Depois de um tempo, o administrador da lan house descobriu e criou uma nova versão do aplicativo. Mas Fernando insistiu no hacking até ser expulso da lan house. "Eu já tinha visto em filmes, entendia a ideia dos hackers, mas meu objetivo não era ser hacker, era só jogar. Foi o início de tudo, que chamou minha atenção", diz. E foi mesmo a vontade de jogar que despertou mais a sua curiosidade sobre hacking. Em casa, Fernando pesquisava sobre computação para tentar melhorar seu próprio computador, e acabou encontrando blogs com bastante informação sobre o tema. "Comecei a estudar mais, buscar conhecimento sobre, por exemplo, como funcionavam as vulnerabilidades de aplicações web". Na época com aproximadamente 15 anos, Fernando lia revistas para entender a parte de sistemas operacionais, mas ainda assim não levava tão a sério a história de virar hacker. "Aprendi umas coisas básicas do sistema que ajudaram mais tarde. Meu pai foi um dos maiores apoiadores na época, trazia revistas com CD de computação ou com vários jogos e uma revista digital que ensinava algo. Isso me levou a estudar mais sobre computador em si. Meu pai gostava e me influenciou", destaca. "Só consegui emprego nesse setor quando fui morar em São Paulo" Carreira – Fernando não sabia que dava para trabalhar na área de segurança, mas tinha conhecimento sobre a atividade de programação ou no suporte. "Eu tinha de 19 para 20 anos quando descobri a área de pentest como profissão e que as pessoas pagavam para alguém encontrar falhas. Eu falava para meus amigos 'como assim estavam pagando por isso e a gente fazia de graça?'", lembra. Mesmo depois de descobrir que existia essa profissão, Fernando ainda passou por uma trajetória até virar pentester. "Eu trabalhei com suporte de Linux e como designer ligado à computação. Era legal enquanto não aparecia nada para trabalhar com segurança em si. Apesar de saber que existia a profissão e empresas que contratavam, parecia um mundo distante", diz Fernando, afirmando que em Salvador não tinha empresas na área, e que até hoje dificilmente se encontra uma empresa de segurança ofensiva na região. "Só consegui emprego nesse setor quando fui morar em São Paulo", conta. Mas enquanto ainda trabalhava com suporte de Linux, Fernando estudou e fez cursos sobre manutenção de computadores e redes. "Esse estágio foi em uma cooperativa de software livre, e foi onde eu me encontrei usando Linux, que era algo que eu gostava, pois era uma das base de segurança e estava no meio de uma comunidade ainda maior, com a filosofia hacker vivendo dentro desse ambiente", disse. Fernando ficou nessa empresa/cooperativa durante um pouco mais de 1 ano e depois conseguiu uma vaga como voluntário na Universidade Federal da Bahia (UFBA) para trabalhar como pentester. "Foi meu primeiro trabalho nessa área, mas não era só pentester, eram vários tipos de trabalho. Um deles era resposta a incidentes na automatização de tarefas. A Universidade era muito grande, não era o maior foco achar falha de segurança, mas esse foi o pontapé para a área", conta. Fernando participando do Nullbyte, encontro da comunidade hacker, em 2015 Experiência na área de segurança – Depois da Universidade, onde ficou por uns 6 meses, Fernando participou de um projeto de verão chamado Rails Girls Summer of Code. Lá, aprendeu a desenvolver a linguagem de programação chamada Ruby on Rails para ajudar na segurança da aplicação. "Esse projeto durou cerca de 3 meses, e aí fui para uma empresa de segurança defensiva para implementar soluções de segurança como firewall, antivírus e WAFs. Era o outro lado da moeda", conta. A partir dessa experiência, Fernando conseguiu ver como eram implementadas as soluções de segurança para impedir ataques e como esses ambientes eram gerenciados. "Isso chamou minha atenção sobre como explorar de forma melhor. Eu passei por vários clientes, principalmente de governo, e dava para entender como estavam as falhas e por que existiam. Isso me ajudou bastante a entender uma aplicação ou uma infraestrutura". Depois disso, Fernando foi para São Paulo trabalhar na Cipher, onde atua até hoje. No meio disso, ainda passou por uma empresa de consultoria. "Basicamente, meu dia a dia é encontrar falhas de segurança em aplicações web, aplicações mobile, API, e infraestrutura. Cada semana tem um projeto novo, com linguagens de programação diferentes e desenvolvidas por pessoas diferentes". Dá uma olhada nas publicações que Fernando faz com base em pesquisas que também realiza no tempo livre em seu Blog. Fernando esteve entre os finalistas do Hackaflag em 2014 Quebrando tabus – Fernando destaca que o fato de não se pronunciar muito sobre seu posicionamento de gênero dentro da comunidade LGBTQIA+ talvez seja um dos motivos que fizeram com que esse tema nunca tenha interferido em toda a sua trajetória. "Eu já vi algumas situações em que isso interferiu na vida de outras pessoas, como se isso fosse um demérito ou influenciasse na questão técnica de alguém. Isso é bem diferente do que a comunidade em si e a história do hacking diz", afirma. Citando o Manifesto Hacker, Fernando diz que o que importa é o conhecimento técnico, e não a identidade de gênero ou a sexualidade de alguém. "Isso não quer dizer nada para a comunidade, e sim seu conhecimento científico/técnico e como isso ajuda a comunidade. Esse manifesto fala sobre isso, mas em muitas situações eu vi o oposto", lamenta. Por ainda ser um tema delicado diante de um universo com a mentalidade mais fechada, Fernando não costuma levantar esse assunto com receio da reação da comunidade, de como as pessoas veriam e como isso afetaria sua vida profissional. Contudo, conta uma experiência em que pôde falar mais abertamente sobre o assunto em um hacker space – Raul Hacker Club – em Salvador, onde várias pessoas da área de hacking, TI e desenvolvimento falavam sobre a pauta. "Hacking é liberdade, é quebrar padrões" O verdadeiro hacking – Nas redes sociais, Fernando se classifica abertamente como não-binário, mas ainda assim acredita que falta um debate em si na área de segurança que aborde a comunidade LGBTQIA+. "Se pessoas da comunidade colocam isso em seus perfis, acho que chama atenção para um debate. E publicar sobre isso chama atenção para o assunto, já que são pessoas que estão na área há um tempo e isso não influencia em nada na vida profissional em termos de conteúdo técnico. Isso não deixou ninguém menos hacker, menos desenvolvedor", pontua. Fernando observa que nesse último ano houve uma mudança no cenário, e neste mês de junho, no qual é celebrado o Orgulho LGBTQIA+, o número de pessoas que publicaram sobre o assunto em suas redes aumentou. "Pessoas técnicas, que geralmente postam algo técnico, publicaram sobre o orgulho LGBTQIA+. Existem mais pessoas trans na área falando sobre isso e ajudando outras pessoas a entrarem na área", diz, citando ainda que houve uma recente visibilidade e reconhecimento de mulheres trans na comunidade hacker. Para Fernando, falar sobre o tema é se auto afirmar, lembrar que existe, e faz parte da filosofia dos hackers. "Hacking é liberdade, é quebrar padrões, é achar maneiras de subverter algo. Essas pessoas estão hackeando um padrão estabelecido há muito tempo. Somos hackers, por que não exercer isso na área de segurança? Por que não falar sobre o assunto?", questiona. Fernando incentiva a todos a abordarem esse assunto sem medo. "Seja seu melhor, independente de sua crença, de sua orientação. Falar sobre isso vai ser bom, e não influencia no seu quesito técnico. Falem sobre isso, hackeiem!". 🏳️‍🌈
  5. 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.
  6. A presença de Security Champions nas equipes de desenvolvimento pode trazer uma visão mais estruturada acerca da segurança de aplicações. Além disso, ele pode ser um grande influenciador da cultura de segurança dentro da empresa. Mas você sabe qual é o papel deste profissional? Conversamos com o Rodrigo Maués, Tech Lead na Conviso Application Security, para entender melhor quem é e qual o papel do Security Champion dentro de um time de segurança. O que é o Security Champion De acordo com Maués, dentro de empresas que produzem softwares, é comum existir um atrito ocasional entre duas áreas. Para a área de desenvolvimento, as equipes de segurança são pontos de gargalo dentro de um processo já bem pressionado e com prazos apertados. Do outro lado, temos as equipes de segurança que, por vezes, entram em conflito ao buscar introduzir mais segurança nos produtos entregues pelos desenvolvedores. “Este conflito nem sempre é facilmente solucionado, pois vai contra algo que, do ponto de vista comercial, é bem mais forte que a validação de um código: as demandas de um mercado cada vez mais inovador e ágil”, contextualiza o Tech Lead. É aí que entra o papel do Security Champion. No mundo de Segurança de Aplicações, entendemos os Security Champions como sendo os membros das equipes de desenvolvimento que receberam treinamento específico para atuar como ponto focal de segurança de aplicações dentro do time. Quando um membro do time de desenvolvimento se torna um Security Champion, ele estabelece uma melhor comunicação com seus pares e muda a cultura do desenvolvimento de dentro para fora, já que acessa a mesma linguagem dos membros envolvidos na produção do software. “Desta forma, o time de Desenvolvimento consegue compreender muito melhor a informação passada, uma vez que recebe o conhecimento de um dos seus”, esclarece Maués. Ou seja: o Security Champion trabalha como uma ponte entre as duas áreas, de forma conciliadora, para garantir que a cultura da segurança seja mantida sem desgastar as equipes. Quais as responsabilidades de um Security Champion? Entre as principais responsabilidades dos Security Champions está a mudança cultural dos desenvolvedores, que devem passar a ter um olhar mais cuidadoso no trabalho de codificação, aplicando as melhores práticas de desenvolvimento seguro e buscando ter um olhar cada vez mais focado em segurança desde o início da criação de seus produtos. Um Security Champion, de forma geral, é um transformador cultural para as equipes de desenvolvimento, e atua também como uma ponte de ligação entre as áreas de desenvolvimento e de segurança. “É ele quem consegue manter um entendimento dos dois mundos, amenizando os conflitos e disputas”, esclarece Maués. Algumas atividades comuns do dia a dia de um Security Champion são: Ajudar na realização de revisões de segurança; Ajudar com a observação de melhores práticas de segurança; Desenvolver Modelagem de Ameaças para aplicativos novos e em evolução; Participar de movimentos de P&D – Pesquisa e Desenvolvimento; Orientar na identificação de requisitos de segurança; Avaliar e estudar bugs em código; Servir de elo de contato entre as demais equipes da área de segurança. No entanto, é muito importante ressaltar que o Security Champion não realiza essas tarefas sozinho. Tudo é feito em colaboração com o time! Afinal, o papel do Security Champion não é o de centralizar o conhecimento - e sim, de disseminá-lo nas equipes. Como se tornar um Security Champion? Existe um perfil específico? É comum que Security Champions sejam desenvolvedores treinados e devidamente capacitados para suportar as iniciativas de segurança. No entanto, isso não é regra - é possível que profissionais egressos de outras áreas, mas com algum conhecimento em desenvolvimento, recebam treinamento para atuar como Security Champions caso cumpram outros requisitos. De todo modo, é preciso ressaltar que Security Champions não são profissionais de segurança de aplicações que são focados exclusivamente em segurança. Essa confusão é muito comum, mas é uma concepção errada. A escolha dos Security Champions dentro de cada time gera uma noção de pertencimento e ajuda no trabalho com os desenvolvedores. É imprescindível um trabalho cauteloso, que começa por um mapeamento de times. Para isso, é preciso identificar e capacitar membros dos times de desenvolvimento que tenham esse perfil, para que atuem como facilitadores de segurança. E este papel exige características comportamentais, como iniciativa e autogestão. Mas caso você sinta afinidade com essa carreira, esse já é um ótimo indício! Vagas na Conviso A Conviso, mantenedora aqui do Mente Binária, está com muitas vagas abertas. São vagas para áreas variadas dentro da empresa - de Desenvolvedor a Analista de Segurança da Informação. Caso você sinta afinidade com a especialidade da Conviso - Segurança de Aplicações - não deixe de se inscrever, ou mesmo de se cadastrar em nosso banco de talentos. É só clicar no botão abaixo:
  7. Em um momento em que, mais do que nunca, tem sido crucial proteger as aplicações de negócios e instituições contra tentativas de invasões, as empresas passaram a entender a necessidade de investir em produtos e serviços que possam ajudar a manter a infraestrutura de TI de uma organização segura. Afinal, proteger aplicações envolve proteger também os clientes e até mesmo a reputação de uma empresa. E com o endurecimento de legislações e penas no mundo todo para empresas que exponham os dados dos clientes em vazamentos, a tendência é que a busca por esse tipo de profissional apenas aumente. Elencamos alguns motivos para você considerar uma carreira em segurança de aplicações: 1 - Oferta e demanda: profissionais de AppSec estão em falta no mercado É a famosa lei da oferta e da demanda. As oportunidades são muitas, mas os profissionais são escassos. Desta forma, nunca faltarão vagas ou oportunidades de crescimento para os bons profissionais que investirem em uma carreira no setor. É claro que isso não significa que o profissional de AppSec possa se acomodar - trata-se de um setor que evolui diariamente, então os estudos e o desenvolvimento constante são necessários. 2 - É apontada como uma das carreiras mais promissoras para os próximos anos! Em um artigo publicado pelo Business Insider, duas carreiras relacionadas à infosec- Information security analysts e Software Tester ficaram, respectivamente, em 16º e em 1º - sim - 1º lugar como apostas de carreiras mais promissoras para os próximos anos. Vale ressaltar que Segurança de Aplicações é uma subcategoria de infosec ainda mais valorizada atualmente. 3 - Trabalhe de onde quiser, de qualquer lugar do mundo Isso não é regra, mas por não ser um trabalho que dependa necessariamente da presença física dos times, é comum que muitas empresas de segurança de aplicações adotem o trabalho remoto ou, pelo menos, tenham uma flexibilidade maior neste quesito. Na Conviso - empresa pioneira em segurança de aplicações no Brasil e uma das mantenedoras aqui do Mente Binária - esta mobilidade já faz parte da cultura da empresa, e toda a equipe trabalha remotamente, de cidades, estados e até mesmo países diferentes. Os times atendem a clientes do mundo todo - a empresa é global - de onde se sentirem mais confortáveis. 4 - AppSec não envolve apenas carreiras técnicas Uma empresa de segurança de aplicações não é feita apenas de analistas focados na parte técnica do negócio. É necessária uma equipe de marketing que tenha um bom conhecimento do negócio e também do seu público-alvo, que será bem nichado. São necessários também tech writers que estudem o tema para produzir artigos, documentações e materiais essenciais para a rotina da empresa. É necessária uma equipe de vendas que se especialize em segurança de aplicações para aprender a vender os produtos e serviços da empresa de forma assertiva. Ou seja: caso você tenha afinidade com o tema, mas seja de outras áreas, nada impede que você trabalhe com segurança de aplicações. E você, tem interesse em ingressar em uma carreira em segurança de aplicações? A boa notícia é que a Conviso está com o banco de talentos aberto e contratando profissionais que queiram ingressar neste mercado. Para cadastrar o seu currículo, acesse a página de Carreiras da Conviso. E caso este artigo tenha te deixado curioso para investir em uma carreira em AppSec, não deixe de ler as 4 dicas dos experts Conviso para quem deseja ter uma carreira de sucesso em Segurança de Aplicações!
  8. Essas são algumas gafes que vez ou outra flagramos a galera de TI caindo. Na prática são termos confusos que já foram utilizado de forma inadequada muitas vezes e a intenção deste artigo é desmistificar, de uma vez por todas, alguns conceitos. ? Programação em HTML HTML (HyperText Markup Language), como o próprio nome sugere, é uma linguagem sim, mas não é de programação. Para ser, esta precisaria expressar um algoritmo que pudesse utilizar-se de estruturas de controle e loop, por exemplo, recursos fundamentais para qualquer linguagem de programação. Logo, quem sabe HTML sabe criar páginas em HTML. Programar é outra história… Estabilizador não serve pra nada Infelizmente ele serve pra estragar sua fonte. Isso mesmo, o trabalho de estabilização feito por estes componentes é tão mal feito e lento, que ao tentar corrigir uma anomalia na energia ele atrapalha a fonte, que seria capaz de corrigir sozinha, mas é obrigada a esperar o estabilizador fazer seu trabalho porco e corrigir a anomalia duas vezes! O investimento correto deve ser feito na fonte do computador, sem economia porca. Um filtro de linha pode ser prático no caso de um spike (grandes descargas de curto prazo, como as geradas por raios) porque o fuzível dele pode abrir e proteger o da fonte (que é mais chato de trocar porque tem que tirá-la do computador e abri-la), mas proteção mesmo é na fonte e por isso é interessante adquirir uma boa, mas só faz sentido para desktops montados. No mundo atual, onde os laptops dominam, estabilizadores não servem para nada mesmo. ? O positivo e negativo da tomada… O tipo de corrente que chega em nossas tomadas é chamado de alternada. Neste tipo não há pólos positivo ou negativo, mas sim fase e neutro. Na fase há a tal alternagem de polaridade, entre positivo e negativo, cerca de 60 vezes por segundo no caso das capitais brasileiras. O neutro é ligado à terra em algum momento e ao conectar algum componente (como uma lâmpada) entre este caminho fase-neutro você faz com que energia passe pelo componente. No caso da lâmpada, ela acende. ? Vale a pena estudar o básico sobre corrente contínua e corrente alternada porque o assunto é longo. Baixei o drive da placa de… Você baixou o driver, filhão. Com ‘r’ no final. Drive, sem ‘r’, diz respeito aos dispositivos físicos como drive de CD-ROM, drive de disquete, ZIP drive etc. Já driver, com ‘r’, é um programa responsável por controlar e permitir o uso de um determinado dispositivo em um sistema operacional. Essa placa é show, nem precisa de driver! Ah precisa. ? O que ocorre é que seu sistema já vem com drivers para vários dispositivos e você pode notar o dispositivo funcionando sem precisar instalar nada além do próprio sistema. Na verdade o driver para aquele dispositivo não estava em uso, mas foi instalado e agora está em uso quando da inserção do dispositivo no PC. Vou formatar essa HD aqui Formatar é criar um formato. Não se formata HDs, mas sim partições. Dizer “vou formatar uma partição como NTFS” é correto. Tanto é que pra formatar você precisa especificar um sistema de arquivos desejado. Adicionalmente, o HD (Hard Disk), já que é um disco, possui gênero masculino, então o correto é dizer “o HD”, como em “o disco”. Meu HD não tá particionado! Em geral para instalar um sistema operacional é preciso, sim, criar nem que seja uma única partição e depois disso formatá-la com um filesystem para o qual o sistema operacional tenha driver e saiba trabalhar. Logo, seu disco deverá ter, no mínimo, uma partição e por isso ele está particionado sim. Uma partição. ☝️ Formatar não apaga tudo, rapá! Formatar é criar um formato. A ilusão de que a partição está vazia após a formatação deve-se ao fato de que a estrutura do filesystem presente naquela partição foi recriada e a referência aos arquivos é perdida, por isso os arquivos não são mais exibidos, mas nenhum foi apagado. Lembrando que nos dias atuais apagar de um disco via software é impossível. Uma vez que ele tenha sido escrito/magnetizado, por assim dizer, o que se pode fazer é substituir os bytes contidos nele por exemplo, para simular deleção. Remover os bits (energia) não é impossível, mas não é comum. Põe o HD no congelador que ele volta a funcionar! Embora haja um agrupamento de moléculas sob baixas temperaturas, que são responsáveis inclusive pela falsa sensação de carga de pilhas também colocadas no congelador, o efeito não é comprovado e, caso haja algum benefício, será fulminante. Duvido muito que dê tempo para recuperar algo. HD com problema na placa lógica pode ter a placa lógica substituída, mas HDs com problemas físicos, em geral, não têm conserto. Faz uma formatação de baixo nível que tira os bad blocks! Bad blocks (ou setores defeituosos) caracterizam um problema físico, um câncer que se espalha. Não se resolve hardware com software. É como tentar anexar um suricate num e-mail. Além disso, já parou para se perguntar o que significa formatação de baixo nível, também conhecida como LLF – Low Level Formatting? Uma dica: ZeroFill (famoso programa que preenche com zeros todos os setores do disco) não é. É possível recuperar dados de um HD formatado até X vezes! Repita comigo: HD não se formata (pelo menos não mais, com a extinção da LLF). NINOVO, a formatação de uma partição dá a ela um formato. Se você formatar 4, 7, 12 ou 7038 vezes, dá no mesmo. Os dados continuam íntegros. Agora, se você fizer um zerofill uma vez, já f*** tudo. Se ao invés de zeros, escrever bytes randômicos, piorou. Como comento na gafe 8, não se apaga nada de HD, só se sobrescreve. Esse barulho é a agulha do HD! Quem tem agulha é sua avó! HD tem cabeça de leitura e gravação e ela, pasme, não enconsta na superfície do prato. É eletromagnetismo. Favor esquecer a analogia com toca-discos. Venho por meio deste… Segue em anexo… Não precisa tentar enfeitar. Se você tá escrevendo um e-mail, é óbvio que é por meio dele que vai informar alguma coisa. Difícil seria informar algo “por meio de outro e-mail”. E o que tá anexo, tá anexo. De onde vem esse “em”!? Nunca minha rede foi atacada, nunca pegamos vírus! O ataque bem sucedido não faz ‘barulho’. Quando você não sabe é justamente quando dá certo. ? Instala um antivírus gratuito! Esse aqui é muito bom! Trabalhando na indústria de AV eu vi coisas horríveis. O esforço pra tentar ficar na frente dos criadores de vírus é gigante, caro e por vezes frustrante. Todos os antivírus mais caros das companhias com mais dinheiro sofrem para tentar chegar lá. Desculpe, mas os antivírus gratuitos não têm a menor chance de oferecer qualquer segurança. Quem não investe num antivírus pago hoje para computador e smartphone, pra mim, é maluco(a). Não existe vírus pra Linux Este sistema é o mais utilizado em webservers no mundo. Você acha mesmo que não haveria vírus capazes de se propagar neles? Faz uma busca por “linux malware” só. Ah, e o Android, sabia que já atingimos a marca de 1 milhão de vírus diferentes para esta plataforma (que é Linux)? Guarde isso: o crime segue o dinheiro. Não importa o sistema utilizado, se o cibercrime ver valor em ameaças para ele, vão surgir. Gateway da placa rede O Windows é craque em ensinar errado. O que ele chama de gateway na verdade é a rota padrão para pacotes fora da rede local. É Highlander: só pode haver um! Essa zona que ele cria colocando a configuração de gateway por placa de rede só confunde. E mais, tem gente que acha que sempre precisa de gateway ao configurar uma rede no Windows, o que não é verdade. Se você não vai sair da rede local (para internet ou outra rede), não precisa definir uma rota para fora dela. Hackers roubaram… Quem comete crime é criminoso. Quem faz hacking de qualquer coisa é hacker. Uma coisa não implica a outra. Tá fora do ar! ‘Pingei’ e ele não respondeu. O ping dispara pacotes ICMP. Se o alvo ignorar pacotes ICMP, você não vai ter resposta e mesmo assim ele pode estar na rede funcionando normalmente. Com o nmap você tem mais chances de saber se um host está realmente no ar ou não. Quebrei o SSL! Parece coisa de maluco mas já ouvi umas vezes. Não que seja impossível, mas não confunda man-in-the-middle com quebra da criptografia. Tem um abismo entre estes tópicos! Não uso software livre porque ninguém me dá suporte! Primeiro: sim, você já usa, mas não sabe. Segundo: várias empresas nacionais e internacionais oferecem suporte, é só procurar. Terceiro: Muitas das próprias organizações que fazem software livre oferecem versões pagas destes softwares, com suporte. Pois é, livre é diferente de gratuito. Um software pode ser gratuito e proprietário enquanto outro pode ser livre e pago. Legal né? Não dá pra ganhar dinheiro com software livre! Errou. Errou feio, errou rude. O modelo de negócios muda. Há várias empresas e investidores, grandes clientes como bancos e governos. Se você ainda pensa assim, não deve estar ganhando dinheiro no mundo proprietário também, porque o problema está em você! Linux é difícil Outro mito. Há vários casos de crianças que sempre usaram Linux dentro de casa e acharam o Windows difícil quando foram usar na casa de amigos. É questão de costume. MP3 com qualidade de CD Se existisse já seria ruim. Ao ripar de um CD há perda de qualidade, sempre. Na conversão de analógico para digital já há, por isso ainda há tantos amantes do vinil. Lembre-se que MP3 é um codec (compressor/decompressor), e se na maioria dos casos de compressão de áudio há perda, mesmo que seu ouvido não note! Java roda em qualquer lugar! Java só roda em “lugares” que possuem a JVM (Java Virtual Machine). Além disso, há várias máquinas virtuais Java diferentes, com suportes diferentes. Linguagem C é velha Velho é o seu professor que ensina como calcular a média de três alunos no Turbo C. A última atualização da linguagem C foi em 2011 e as principais suítes de compiladores como gcc, llvm, Visual Studio, continuam em constante desenvolvimento. Mais da metade do universo é escrito em C. Portanto, vá estudar C! ??‍? Aperta o Del pra entrar na BIOS! Pelo sangue de Chessus, não dá pra entrar lá não. Pressionando a tecla Del, F2, F10 ou qualquer que seja no seu computador, você acessa o SETUP, que é um software de configuração do BIOS. E é “o” BIOS porque ele é um sistema (Basic Input/Output System), logo, gênero masculino. A voltagem e a amperagem… Talvez de tão faladas já sejam aceitas, mas expressões como essas não soam muito elegantes. Em português, o que é medido em Volts (V) é a tensão elétrica (às vezes chamada de força eletro-motriz ou diferença de potencial). Já o ampère (A) é usado para intensidade de corrente [elétrica]. Espero que não criem ohmagem, wattagem, metragem (opa… essa já criaram!), quilagem, hertzagem… Senha forte: números, letras maiúsculas e minúsculas, caracteres espaciais plunct plact zum! Ok, ok. Aí vem o usuário danadinho e põe “Senha1”. Assim que expira ele muda: “Senha2”. O problema dessa gafe não é a validade técnica mas a efetividade de jogar essa responsa para o coitado do usuário que mal sabe o motivo de ele ter uma senha tão chata. Se você facilita, fica fácil pra força bruta, se dificulta, ele cola no monitor. Solução: PENSA. O sucesso de um ataque de força bruta depende de duas coisas: a complexidade da senha, o que inclui tamanho, não possuir palavras de dicionário, conter alta entropia etc e o poder computacional do atacante. Mas não precisa complicar muito. Uma senha “Meng0==========” pode ser mais forte que “5!8@6_(hiKij9” (que é bem ruim de decorar). Não é feitiçaria, o nome é entropia. Como o link enaltece, o padding (sinais de igual neste caso) deve ser criado pelo usuário, ou seja, se você ensinar seu usuário a criar algo pra colocar “antes e/ou depois” da senha várias vezes, ele vai se lembrar e ainda assim terá uma senha forte. Assim, uma pessoa sensível que queria usar a senha “Amor” agora pode.. Basta adicionar os amantes felizes e saltitantes: “\0/ Amor \0/”. Mais forte, mais fácil de lembrar, mais amor pro seu coração! Curso de hacker Você consegue ensinar alguém a ter ideias? Há vários picaretas no Brasil divulgando e ministrando “cursos hacker”. Todos não passam de leitura de slides e apostilas copiadas de páginas de manuais e tutoriais em sites na Internet. Na sala de “aula” o aluno vê e faz mágica, mas no cenário real a grama muda de cor. ? No entanto, não fique triste, ainda dá tempo de aprender segurança de verdade. Minha internet é de 10 megabaites! O mercado (sempre ele) cria estas babaquices pra vender. A unidade de medida aqui é o Mb (megabit) e não MB (megabyte). Pois é, muda tudo. Se a sua internet é de 10 “megas”, ou seja, 10 Mbps (megabit por segundo) você baixaria aproximadamente 1,25 MB em um segundo, não 10. O macete é dividir por 8 já que 8 bits formam um byte. O mesmo se aplica às placas de rede de 100 Mbps, 1 Gbps, ou as sem fio de 54 Mbps, 108 Mbps, 3G de 1 Mbps etc: é tudo bit, não byte.
  9. Você gosta de software de código aberto? Gosta quando encontra um programa bem feito, que atende a sua necessidade, sem custo, é atualizado, os desenvolvedores colocam novos recursos, você pode até opinar, sugerir mudanças e várias são aceitas? Saiba que por trás destes milhares de programas livres há um mundo de pessoas que dedicam seu tempo (muitas vezes seu tempo livre) para entregar software de qualidade pra você sem nem te conhecer. Isso é muito louvável. Agora mesmo estou usando o WordPress para escrever este artigo, um software de código aberto. Não paguei nada por ele e ainda modifico da maneira que eu quiser, respeitando sua licença. Não é fantástico isso? Para este artigo motivei-me dos vários programas de código aberto que já vi nascerem e morrerem por falta de apoio, então resolvi escrever um manual de como ajudar a manter os programas que você gosta no ar. Preparado? O primeiro passo é entender o que é de código aberto (ou open source). Eu poderia tentar explicar com minhas palavras, mas há um vídeo que literalmente desenhou e explicou com LEGO. Incrível, não? E com legendas em Português do Brasil. Por favor assista, mesmo que você pense que já saiba o que é: Se você usa algum software de código aberto (e eu tenho certeza que sim), você pode ajudar com: Tradução - Nem todo mundo fala inglês no mundo. É importante que um software socialmente viável seja acessível e você pode contribuir com isso ajudando a traduzir as novas versões para sua língua nativa. Divulgação - Publicar no seu site, seu Twitter, Facebook ou qualquer outra rede social sobre sua experiência com o software, estimulando outras pessoas a o utilizarem. Reconhecimento - Enviar um e-mail de agradecimento aos desenvolvedores. - Publicar na sua rede social, ou na dos desenvolvedores (se houver) um depoimento sobre sua experiência com o software. - Se o software está no Github e você tem uma conta de usuário lá, é só ir na página dele e começar a segui-lo (follow) e dar uma estrelinha (star) também. - Se o software está no SourceForge você pode dar uma estrelinha (star), avaliar o software (rating) e também dar seu comentário (user reviews). Preferência - Mesmo que haja um software proprietário equivalente, estimular o uso de software de código aberto é muito importante. Ele é socialmente mais justo e depois de ver o vídeo do item 1 você já deve saber o motivo. Documentação - Se você já domina algum recurso do software, é legal escrever algo no seu blog ou gravar um vídeo no YouTube ensinando outras pessoas a fazê-lo. Isso faz com que mais e mais usuários sejam beneficiados e aumenta as chances de adesão do software em questão. - Ajudar a escrever a documentação oficial do software, coisa que te faz aprender muito e toma muito tempo dos desenvolvedores. Tempo este que eles poderiam dedicar a corrigir problemas e adicionar novos recursos. Só depende de você. Suporte - Se cadastrar nos fórums e listas de discussão sobre o software para ajudar outros usuários te faz estudar muito, ajudar muito e contribuir muito com o ecossistema que mantém o software vivo! Código - Claro que se você conhecer a linguagem de programação utilizada no software você pode – e deve – contribuir via código. Só tome cuidado com o egocentrismo aqui. Não é porque você fez um patch que ele tem que ser aceito. O software de código aberto é democrático e não serve pra você tentar provar pra ninguém que é bom. Basta querer ajudar e atender ao pedido de todos, não do seu ego. - Se você é programador e costuma desenvolver software freeware por exemplo, considera transformar em código aberto. Ele vai crescer muito mais e ter muito mais adeptos. Você pode se espantar com o tamanho que o projeto pode assumir quando se tem a colaboração da comunidade open source. Reportar problemas - Se você acreditar que encontrou um problema no software (bug), avise aos desenvolvedores. Normalmente isso é feito por um sistema de bug tracking ou issue tracking. Com certeza no site do desenvolvedor você terá mais informações sobre como fazê-lo. Pode ser que te peçam logs e outras informações para que eles possam reproduzir o erro e corrigir, mas vale a pena continuar e ir até o fim. Você vai ajudar muita gente no final. Doações - Muitas equipes que desenvolvem software de código aberto precisam de dinheiro para comprarem hardware, aluguel de infraestrutura ou mesmo para promoverem eventos entre os desenvolvedores para alinharem o futuro do software. Doando você pode ajudar nisso. Se você tiver condições, apoie. Se informar - Empresas como Microsoft, Apple, Red Hat, dentre outras são grandes contribuidoras com projetos de código aberto, inclusive com o Linux. - Software livre e software de código aberto são diferentes. O primeiro movimento é criado pelo Richard Stallman, que explica as diferenças aqui. Essa lista não é definitiva e naturalmente deve haver várias outras formas de ajudar, mas escolhi escrever sobre as mais simples, que estão somente há alguns cliques de distância de você. Nos anos que venho dedicando a apoiar os projetos de código aberto, inclusive criando alguns, fiquei muito surpreso com as colaborações que meus projetos receberam e também tive a oportunidade de contribuir com muitos outros. Isso significa ajuda efetiva para pessoas e projetos. De verdade. As empresas também gostam disso (afinal são pessoas que trabalham nelas né!?) e várias propostas de emprego já surgiram através do Github. Não fica de fora dessa. O mundo open source precisa de você. E as pessoas também.
  10. Introdução Em muitas faculdades brasileiras a linguagem C é ensinada aos alunos de cursos de tecnologia. Mesmo assustando os novatos, vários alunos resistem e vencem a matéria. O problema é entender por qual motivo o C foi escolhido para iniciar o curso de programação. Seria uma linguagem didática para se aprender a programar? Um teste para ver quem tem ou não o “jeito pra coisa”? Alguns diriam que o correto seria começar com Pascal, mas há quem defenda linguagens mais modernas como Python, Perl, Ruby ou PHP. E aí, para que serve o C no primeiro período? Neste artigo farei uma análise sobre o que se aprende da linguagem, o motivo pelo qual ela surge no início do curso, seu valor de mercado e o que é possível fazer com esse start que a faculdade nos dá. A linguagem C A importância histórica da linguagem C é inegável e dispensa maiores comentários. Sabemos que até hoje a maioria dos softwares mais poderosos são feitos em C e/ou C++ (um super conjunto de C, orientado à objetos). O kernel Linux e outros núcleos de SOs são feitos basicamente em C. Muitos drivers de dispositivos como placas de rede, som, vídeo etc são feitos em C. Se contarmos o C++ nesta conta, chegamos perto de 100% dos kernels e drivers. Os interpretadores e compiladores das principais linguagens de programação também não fogem à regra e são feitos em C. Existe uma frase que afirma: metade do universo é feito em C. E é bem verdade. Pelo visto, a linguagem serve para alguma coisa… Ensino da linguagem C Você acabou de entrar na faculdade, está tendo aulas desta linguagem e não está entendendo nada? Não se preocupe, você não está sozinho. Algumas instituições de ensino acham que C é uma liguagem didática, quando não é. Para se aprender a programar, usa-se pseudo-linguagem, PORTUGOL e ferramentas do gênero. Nem mesmo o Pascal, considerado mais fácil de se aprender que o C, é atraente ou interessante à primeira vista. O grande monstro que aterroriza o aluno é a pergunta: “Por que eu vou fazer isso? Para que?”. Pois é, para que escrever um programa em C que calcule a média de três alunos e imprima na tela? Qual a lição tirada disso? A resposta é simples: nenhuma. A maneira como a linguagem é lecionada tenta empurrar o C guela abaixo em estudantes que viram, por exemplo, Visual Basic e Delphi no segundo grau. Isto é, se é que estudaram tais linguagens ou lembram-se delas. Não poderia dar certo mesmo. Antes de criar um programa, o aluno tem que saber o que está fazendo. O que é um programa, para que serve isso, o que é um arquivo executável, um binário, bits, bytes, o processador, dentre outros conceitos importantíssimos antes de se escrever o primeiro “Hello World”. O resultado do ensino forçado é o alto íncide de reprovação, abandono, mudança de curso e desistência. É comum encontrar alunos que estão no fim do curso de programação mas ainda não passaram nas matérias mais básicas de C. É o terror da faculdade. Definitvamente, a linguagem C vira uma vilã e a frase mais ouvida nos corredores sobre o assunto é que “C é chato”. Por que a linguagem C é chata? Porque ela não te mima. Numa escala onde o nível mais alto é o mais próximo da linguagem usada pelo ser humano e o mais baixo, da linguagem usada pelos microprocessadores, a linguagem C é considerada de nível médio. Assembly, por exemplo, é de baixo nível, enquanto Object Pascal (usada no Delphi), de alto nível. Isso significa que para programar em C é preciso conhecer conceitos mais próximos do hardware, que as linguagens de alto nível abstraem para o programador, tornando o trabalho mais fácil. Por isso temos a impressão de que C é chato, difícil, sem sentido. Realmente, sem os conceitos básicos de computação bem sólidos, um código em C pode tornar-se incompreensível. Vejamos um exemplo. Um código em PHP (alto nível) para se declarar uma variável e armazenar uma frase nela: <?php $str = “Essa é minha string”; ?> Um código equivalente em C, seria: void main(void) { char str[] = “Essa é minha string”; } No código em C, uma função teve de ser escrita (a main, que é a função principal de um programa), inclusive com seu tipo de retorno e parâmetros, onde usei void para não retornar nem receber nada. Além disso, foi criado um vetor de caracteres (char) para armazenar a frase. Em C, entende-se como string um vetor de caracteres (ou ponteiro para um conjunto deles) onde o último caracter é o NULL, código 0x00 na tabela ASCII. Tá vendo por que se precisa dos conceitos de computação até para começar uma frase em C? Agora perceba a jogada: #include <string.h> void main(void) { char str[21]; strcpy(str, “Veja, sou uma string”); } A função strcpy(), fornecida pelo header string.h, copia caracteres para uma variável do tipo vetor (ponteiro, na verdade, mas isto é outro assunto) de caracteres e adiciona um caractere nulo (NULL), zerado, na última posição. Perceba que iniciamos o vetor de char com 21 posições, para abrigar os 20 caracteres da frase proposta mais o NULL, que é um caractere só. As coisas começam a fazer sentido, apesar de “feias”, não? E assim é o C. Exigente, porém elegante. Se tem os conceitos de computação, sem dúvida não terá grandes dificuldades com a linguagem. Usando o C na vida e no mercado de trabalho Certo, você se convenceu de que C é legal de aprender, poderoso e aprendeu. E agora, faz o quê? Tem um colega seu ganhando dinheiro fazendo sites em Ruby on Rails. Outro faturando uma grana fazendo sistemas em Delphi para clientes, com imagens, botões brilhantes e multimídia. O que você, recém-estudado programador em C vai fazer com aquela tela preta pedindo dados com scanf()? Nada. Não é assim que se trabalha com C, ou pelo menos, não mais. Já foi o tempo em que os sistemas eram feitos dessa maneira. Além disso, mesmo nesse tempo a linguagem C foi rapidamente substituída neste meio pela linguagem CLIPPER no mundos dos PCs e pelo COBOL, nos mainframes. O forte do C hoje são aplicações desktop, inclusive as baseadas em rede e daemons (serviços). C também é útil para escrever compiladores e interpretadores para outras linguagens, por exemplo. Sabia que o PHP é escrito em C? Pois é, assim como Python, Ruby, BASH e muitos outros interpretadores. Então tem alguém ganhando dinheiro com C por aí, concorda? Vale a pena citar também o desenvolvimento embarcados, para microcontroladores e vários microprocessadores, incluindo ARM (usado em vários aparelhos Android). Em novembro do ano passado houve uma edição de um evento chamado Universidade Livre em que Olivier Hallot, diretor da ALTA (antiga BrOffice.org) falou durante alguns minutos numa faculdade carioca da dificuldade de encontrar programadores para contratar e fez um apelo para que os alunos levem a sério que o mercado está muito carente de bons programadores, principalmente em C/C++. Também em setembro do ano passado uma empresa publicou uma vaga no Rio de Janeiro buscando um profissional com os seguintes conhecimentos: Sistema Operacional Linux; Banco de dados MySQL; Criação e manutenção de tabelas, relacionamentos, scripts, etc.; Linguagem C, e das APIs: (V4L2), GTK, além de OpenGL; Adobe Flex. O salário inicial era de R$ 5.000,00. A vaga deve estar aberta até hoje… Em dezembro de 2011, uma grande operadora telefônica abriu nada menos que 20 vagas para desenvolvedores em C no Rio de Janeiro. Empresas que atendem infraestrutura, telecomunicações, embarcados, móveis, desenvolvimento do Linux e kernels derivados também precisam muito de programadores deste tipo. Enfim, vagas não faltam! Então por que aprendo Java na faculdade? A faculdade tenta ser a mais moderna possível, mas esquece de verdadeiramente orientar na profissão. Java é uma linguagem potente, flexível e poderosa mas tem um fim completamente diferente da linguagem C. Com Java se programa para web, dispositivos móveis, aplicações locais (pouco usada), sistemas de informação, embarcados etc. A flexibilidade é enorme, mas o foco é outro. Não se faz uma suíte de aplicativos em Java, simplesmente porque existe o C pra isso. Um sniffer de rede ou um software ping, por exemplo, são feitos em C, porque C é pra isso. Já uma interface de um aparelho GPS, é feita em Java. Questão de adeqüação. O mercado de Java é tão grande quanto o de C no mundo, mas é maior no Brasil. No entanto, o que não pode é a faculdade tratar a linguagem C como uma introdução à programação, para que o aluno depois aprenda Java. Uma coisa não tem nada a ver com a outra. São dois nichos completamente diferentes e em ambos os casos, é possível conseguir um bom emprego e alavancar na profissão, tanto aqui quanto fora. Minha faculdade usa Python para ensinar a programar. É legal? Não creio. Python é super divertido e viciante mas não exige os conceitos de computação que todo programador deve ter. A resposta é a mesma para todas as linguagens de alto nível. Como escrevi anteriormente, se começa a programar com uma pseudo-linguagem, para desenvolver a lógica. Antes do estudo de programação médio/alto nível, é preciso estudar computação, do ponto de vista da arquitetura em si (que vai incluir Assembly, SO etc) e aí sim, subir de nível. Se bem gerenciado, é possível manter estas disciplinas em paralelo, mas o programa deve ser cuidadoso (o que as instituições não andam respeitando – Eu já vi projeto de bancos de dados no segundo período. O aluno, teoricamente, nunca usou uma mysql.h ou outras bibliotecas para acesso a SGBD’s em outras linguagens). Quem aprende direto no alto nível e se dá bem, ótimo – e está de parabéns. Mas o objetivo do artigo é trazer a linguagem C à tona e não competir com outras linguagens. Venho comprovando a tese de que aprender “de baixo para cima” dá certo. Já consegui fazer um amigo escrever um programa em Assembly do zero para calcula a média de alunos. Aí sim ele viu o que é obter dados do teclado, calcular e exibir. Teve de entender por completo a tabela ASCII, uso de registradores gerais, syscalls e interrupções de software. Quando foi para o C, não teve o menor problema. E o que dá pra fazer com o C aprendido na faculdade? Só com ele, não muita coisa, mas com um pouquinho de pesquisa e afinco, gera-se resultados. Um exemplo é o grupo Coding 40°, onde eu e mais três alunos do curso de Ciência da Computação nos unimos para estudar e acabamos desenvolvendo um pequeno software, capaz de imprimir informações sobre executáveis PE (.exe, .dll etc) na tela. Nada complicado, agora que já está pronto. rs Sabe quando você está no Windows e vai nas propriedades de um .exe ou .dll e há uma aba “Versão” como na imagem abaixo? A proposta inicial era criar um software capaz de conseguir essa informação, recebendo como entrada o caminho do arquivo executável. O software deveria funcionar no Linux, já que nesse SO não é possível ver esta aba “Versão” nas propriedades dos executáveis de Windows, obviamente. Foi aí que fizemos o pev. Hoje ele já exibe várias outras informações sobre o executável além da versão. Conclusão Estudar C, C++, Assembly e outras linguagens tidas como “terríveis” é, sem dúvida, uma boa pedida. Há inúmeros projetos no mundo todo precisando de bons programadores nessas linguagens. Não encare o “C de faculdade” como um vilão ou uma introdução à programação porque não é. A linguagem C é uma linguagem poderosa e comercial. Nada de dizer que C é coisa de maluco. Ainda não sabe o que fazer com C? Está em dúvida sobre seus aspectos modernos? Nós temos um curso de programação moderna utilizando a linguagem C para você
×
×
  • Create New...