Segurança e TICs
Linus Torvalds, aclamado profissional de TI disse “Talk is cheap. Show me the Code”. Em outras palavras, e bom português, é algo como ” falar é fácil. Mostre-me o código”. Por outro lado, tem sido comum a confusão que as pessoas têm feito por conta da inundação de “especialistas” em todos os assuntos nas redes sociais. É provável que 99, 997%(1) dos usuários da Internet não tenham a mínima noção da importância do desenvolvimento de um código seguro, ou até mesmo o que é um código seguro.
Código Seguro
Código Seguro é, precipuamente, para os profissionais de TI especializados em desenvolvimento de sistemas e programas a afirmação de que, qualquer que seja a linguagem, a codificação passou por processos que foram verificados e estão, em certa medida, resistentes a erros, falhas e ações de outros códigos hostis.
Tecnologia
Se você acha que a tecnologia pode resolver seus problemas de segurança,
é claro que você não entende os problemas nem entende a tecnologia.
A confusão que a pandemia provocou desvirtuou alguns conceitos e ideias que deveriam ser melhor detalhados. O assunto tecnologia da informação expandiu de tal maneira que temas como código seguro, por exemplo, ganharam uma projeção inimaginável. Saímos de modelos de melhores práticas de desenvolvimento para técnicas e plataformas de verificação de código antes mesmo que eles sejam colocados em produção, com assinaturas digitais promovidas pelos maiores desenvolvedores do planeta.
Desse modo, alguns termos que aliam o desenvolvimento e segurança passaram a merecer atenção especial e até mesmo são o principal foco de desenvolvimento seguro.
Termos e Conceitos
Exemplos de termos e conceitos associados ao desenvolvimento de códigos:
- Security by Design
- Modelagem de ameaças
- Requisitos funcionais e não-funcionais
- Menor privilégio
- Need-to-Know
- Zero Trust
- Segredos de acessos
- Credenciais hard-coded
- Exposição de credenciais (Wiki e Gafana)
- Trilhas de Auditoria
- Protocolos Seguros (acesso a aplicações)
É provável que esta lista, não seja finita, é um exemplo de temas específicos que, nem sempre, um único profissional detém conhecimento. Os riscos advindos de atribuição a um desenvolvedor conhecido como full stack ( Full Stack Developer ) tem sido negligenciado de maneira perigosa. Dizer que um desenvolvedor full stack não precisa ser experiente e querer que ele domine os temas indicados na lista acima, é um grande passo para problemas.
Show me the code
Abordei recentemente(*) a questão de mostrar o código para que se possam ter noção do que aquele código faz. Dizemos uma noção pois depende muito do processo de desenvolvimento e colocação do código em funcionamento. Em outras palavras, não importa se o programa é compilado, pseudocompilado, interpretado ou alguma nova técnica que possa surgir. No desenvolvimento deve-se pensar, em termos de segurança, em todo o processo e nas possíveis ameaças uma vez que códigos isolados e modulares não são utilizados isoladamente.
No texto ” Show me The Code – Ou a LGPD ´não pega “, abordamos a questão de que deve haver equilíbrio entre as áreas de conhecimento do Direito, Tecnologia e Gestão. O tema é atual e ainda um risco para qualquer CEO das organizações que estão submetidas à legislação. Surpreendentemente, a aceitação e até o debate em torno deste equilíbrio foi prejudicado por uma avalanche de “certificações” pedidas pelas empresas mal orientadas quanto ao processo que eles mesmos não conhecem.
Desse modo, temos a frase de Bruce Schneier praticada por muitas empresas que sequer dominam os rudimentos dos termos e conceitos como “Zero Trust“, “Trilhas de Auditoria“, “Requisitos Não-funcionais” etc. Como se não bastasse, em alguns casos a situação fica pior quando alguns destes assuntos exigem até muitas horas de análise, compreensão e capacitação e as empresas consideram o tema como de domínio na organização.
Mundo novo
Enfim, alguns temas exigem detalhamento em função do público-alvo e até mesmo de usuários, para que eles tenham noção do que acontece quando acionam alguma tecla. Com efeito, o desenvolvimento seguro implica em pensar nos erros comuns que acontecem como trocar letras ou aquele dicionário intrometido substituir palavras de forma indevida.
Sem dúvida, verificamos que a profundidade com que estes rudimentos de segurança necessários a um código seguro têm sido negligenciados a textos com tempo de leitura insuficiente para absorção da ideia de segurança.
Em suma, quando se implementa aplicações ( os famosos apps ), por exemplo o PIX(2), que se tornam um sucesso por fatores alheios à segurança da informação, os usuários deveriam ser melhor informados ou os desenvolvedores deveriam ter cuidado de possíveis vulnerabilidades que não cuidaram. No caso em epígrafe, fizeram uma versão RC, testaram, implementaram com público limitado, testaram, e liberaram quase geral. Portanto, os problemas não param de surgir e o usuário está sendo colocado numa situação que tem provocado prejuízos financeiros e morais irreparáveis.
(1) Este número estatístico não possui nenhum rigor científico e é mera especulação e prática de achismo.
(2) PIX: Os 5 segredos das três letrinhas. É grátis !
(*) Revisado e atualizado em agosto de 2021