Vida de Programador Store

Para não correr riscos 01/09/2018 10:27

tirinha
Inclua essa tirinha em seu site
COLE ESSE CÓDIGO EM SEU SITE x
Transcrição ↓

real historia;
string sender = "Hyosung";

Programador: Daí nós criamos um cadastro genérico de promoções onde vocês podem cadastrar qualquer promoção...
Usuário: Muito bom, mas eu preciso das informações separadas. Vai salvar tudo junto?
Programador: Não, internamente as informações ficam em uma mesma tabela, mas são separadas por uma chav...
Usuário: Não! Eu preciso dos dados separados para não misturar!
Programador: Mas são separados pela chave, senão ia ter que ter N tabelas por promoção! Não concorda, chefe?
Chefe: Eu concordo! O cliente está certo... Tem que colocar uma promoção em cada tabela para não correr o risco de misturar tudo!
Programador: PLOFT!
--
Camiseta: Não prefere um caderno?

5 erros graves que impactam a segurança do software 30/08/2018 09:40

Muito tem se falado sobre segurança de dados e transformação digital, mas antes de mais nada, devemos falar em desenvolvimento seguro de software, onde tudo começa objetivando a proteção contra a introdução acidental de vulnerabilidades de segurança nos sistemas.

Defeitos, bugs e falhas lógicas são consistentemente a principal causa de vulnerabilidades de softwares comumente exploradas. Por meio da análise de milhares de vulnerabilidades relatadas, os profissionais de segurança descobriram que a maioria das vulnerabilidades se origina de erros comuns de programação.

Ao identificar as práticas de codificação inseguras que levam a esses erros e instruir os desenvolvedores sobre alternativas seguras, as organizações podem adotar medidas proativas para ajudar a reduzir ou eliminar significativamente as vulnerabilidades no software antes da implantação.

Dada a gravidade deste cenário, tanto as empresas mais desenvolvidas quanto os países como Brasil, e até a União Europeia, estão se movimentando para criar regras específicas e capacitar cada vez mais seus profissionais de desenvolvimento focado na área de segurança.

A LGPD, Lei de Proteção de Dados brasileira, recém sancionada pelo presidente, tem regras específicas que garante maior controle dos cidadãos sobre suas informações pessoais, exigindo consentimento explícito para coleta e uso dos dados e obriga a oferta de opções para o usuário visualizar, corrigir e excluir esses dados.

Outro ponto importante é a criação da figura do encarregado pelo tratamento de dados pessoais que deverá orientar os funcionários e os contratados da entidade a respeito das práticas a serem tomadas em relação à proteção de dados pessoais visando a garantia da segurança dos dados, impedindo acessos não autorizados e qualquer forma de vazamento.

Durante meus últimos 10 anos de trabalho encontrei diversas falhas de desenvolvimento e codificação absurdas que deixaram os muitos dados sensíveis corporativos expostos a ataques de hackers. Abaixo listo os 5 erros mais graves que impactam diretamente a segurança do software com dicas de como evita-los e diversos insights. Se você trabalha em qualquer área de desenvolvimento de software, deve ler cuidadosamente cada um dos itens abaixo:

1. Falha ao Controlar Geração de Código (também conhecida como 'Code Injection')

Embora seja difícil negar a sensualidade do código gerado dinamicamente, os invasores acham isso igualmente atraente. Ele se torna uma séria vulnerabilidade quando seu código é chamado diretamente por pessoas não autorizadas, se entradas externas podem afetar qual código é executado ou se essas entradas são alimentadas diretamente no próprio código

2. Uso inadequado da Criptografia

Criptografia Grow-Your-Own é uma visão bem-vinda para os atacantes. A criptografia é difícil. Se matemáticos brilhantes e cientistas da computação em todo o mundo não conseguem acertar - e estão regularmente desatualizando suas próprias técnicas - então você também não pode.

A codificação de uma conta secreta e senha em seu software é extremamente conveniente - para engenheiros reversos qualificados. Se a senha for a mesma em todo o seu software, todos os clientes ficarão vulneráveis quando essa senha for inevitavelmente conhecida. E porque é hard-coded, é uma dor enorme para consertar.

3. Validação de entrada incorreta

Certifique-se de que sua entrada seja válida. Se você está esperando um número, não deve conter letras. Nem o preço de um carro novo deve ser um dólar. A validação de entrada incorreta pode levar a vulnerabilidades quando os invasores podem modificar suas entradas de maneiras inesperadas. Muitas das vulnerabilidades mais comuns de hoje podem ser eliminadas, ou pelo menos reduzidas, com validação de entrada restrita.

4. Codificação imprópria e consultas de banco estruturadas inadequadas (também conhecido como SQL injection)

A codificação de saída insuficiente está na raiz da maioria dos ataques baseados em injeção. Um invasor pode modificar os comandos que você pretende enviar para outros componentes, levando possivelmente a um comprometimento completo de seu aplicativo - sem mencionar a exposição dos outros componentes a explorações que o invasor não conseguiria iniciar diretamente. Quando o programa gera saídas para outros componentes na forma de mensagens estruturadas, como consultas ou solicitações, separe as informações de controle e os metadados dos dados reais.

Se os invasores puderem influenciar o SQL que você envia ao banco de dados, eles poderão modificar as consultas para roubar, corromper ou alterar os dados subjacentes. Se você usar consultas SQL em controles de segurança, como a autenticação, os invasores poderão alterar a lógica dessas consultas para ignorar a segurança.

5. Controle de acesso inadequado (Autorização)

Se você não garantir que os usuários do seu software estejam fazendo apenas o que eles têm permissão, os invasores tentarão explorar sua autorização inadequada e exercer essa funcionalidade não autorizada.

Seu software pode precisar de privilégios especiais para executar determinadas operações; empunhar esses privilégios por mais tempo que o necessário é arriscado. Ao executar com privilégios extras, seu aplicativo tem acesso a recursos que o usuário do aplicativo não pode alcançar diretamente. Sempre que você inicia um programa separado com privilégios elevados, os invasores podem potencialmente explorar esses privilégios.

Essa lista de erros durante o desenvolvimento de software atende ao mesmo propósito de aumentar a conscientização das pessoas envolvidas nesse processo. Uma grande parte do sucesso é reconhecer os erros mais comuns e os modos de falha. Assim, você pode - pelo menos em teoria - perceber quais deles você está cometendo.

Nós cobrimos alguns dos erros mais comuns de programação e codificação neste artigo, mas, caso você queira se aprofundar, clique aqui para acompanhar um curso gratuito em desenvolvimento seguro e evite outros erros muito comuns.

Alcyon Junior é Gestor de Segurança da Informação no SEBRAE, Líder do Capítulo OWASP de Brasília, instrutor credenciado pela EXIN, Professor na UnB e IESB e mantenedor do PortalTIC.com. Especialista em Redes de Computador pela CISCO, MBA em Governança de TI e pós-graduado em CyberSecurity. Mestre em Gestão do Conhecimento e da Tecnologia da Informação com ênfase em Segurança Cibernética pela Universidade Católica de Brasília. Doutorando em Engenharia Elétrica com ênfase em Segurança da Informação e Comunicações na Universidade de Brasília (UnB). Além de possuir as certificações: Ethical Hacking Foundation, Information Security Based on ISO/IEC 27002, ITIL® Foundation Certificate in IT Service Management, Cisco Networking Academy Program, McAfee Vulnerability Manager e Linux Server Professional 1.

Redes 29/08/2018 11:10

tirinha
Inclua essa tirinha em seu site
COLE ESSE CÓDIGO EM SEU SITE x
Transcrição ↓

real historia;
string sender = "Fagner";

Programador: Alonso, você entende de redes?
Alonso: Mais ou menos... Tem uma lá em casa, mas faltam aqueles ganchinhos pra pendurar
Programador: PLOFT!
--
Camiseta: Alonso entende de nuvem...

[Vídeo] Verdades que você não pode dizer para sua mãe 27/08/2018 16:59

Como programadores, existem frases que dizemos que podem transmitir sentidos errados e, por isso, temos que cuidar para não falar essas frases perto de alguém que pode pegar fora de contexto e se escandalizar com isso.

Seguem aqui algumas frases que você tem que cuidar para não falar perto da sua mãe ou de pessoas sensíveis.

Camiseta Coffee In Code Out

Nova aba 27/08/2018 03:11

tirinha
Inclua essa tirinha em seu site
COLE ESSE CÓDIGO EM SEU SITE x
Transcrição ↓

real historia;
string sender = "Rodny";

Usuário: Sabe o sistema de controle de estoque que vocês fizeram pra nós? A gente quer usar pra nossa outra empresa, só que são outros produtos e clientes, e também a gente controla os estoques um pouco diferente lá...
Programador: Tudo bem, a gente pode analisar as necessidades dessa outra empresa pra desenvolver uma solução que atenda a ambas. Talvez adaptar para um controle multi-empresa ou criar uma base de dados separada...
Usuário: Não! É só criar uma abinha "Nova empresa", daí vocês nem vão precisar cobrar...
Programador: PLOFT!
--
Camiseta: Foi simples assim montar outra empresa?

Insinuação 23/08/2018 14:27

tirinha
Inclua essa tirinha em seu site
COLE ESSE CÓDIGO EM SEU SITE x
Transcrição ↓

real historia;
string sender = "Fabrício Olmo Aride";

Usuário (por telefone): Oi, Programador! Estou usando aqui o sistema e notei um comportamento estranho...
Programador: O que está acontecendo?
Usuário: É que no canto inferior esquerdo apareceu um texto "versão 4.0.0.1"
Programador: Ah, fique tranquilo, isso sempre esteve ali...
Usuário: Você está insinuando que eu não enxergo bem?
Programador: PLOFT!
--
Camiseta: Foi um hacker

Faz um Google 20/08/2018 09:52

tirinha
Inclua essa tirinha em seu site
COLE ESSE CÓDIGO EM SEU SITE x
Transcrição ↓

real historia;
string sender = "Bruno Almeida";

Alonso: Cara, eu tava pensando...
Programador: Não faz isso, Alonso! Você não está preparado...
Alonso: É que não é difícil fazer um google... Não sei porque outras empresas não fazem...
Alonso: É só uma query!
Programador: PLOFT!
--
Camiseta: Estou sem sorte!

if (false) 15/08/2018 14:53

tirinha
Inclua essa tirinha em seu site
COLE ESSE CÓDIGO EM SEU SITE x
Transcrição ↓

real historia;
string sender = "Crazyardo";

Programador: Alonso, dá uma olhada aqui
Alonso: Tá.
Programador: Por que razão você criou um "if (false)" só com um comentário dentro?
Alonso: Ah... É um comentário seguro. Garante que o programa não vai parar ali no comentário
Programador: PLOFT!
--
Camiseta: Por razões de segurança, não toque no código

Fechadura 14/08/2018 11:38

tirinha
Inclua essa tirinha em seu site
COLE ESSE CÓDIGO EM SEU SITE x
Transcrição ↓

real historia;
string sender = "Ewerson Carvalho";

Recepcionista (por telefone): Alô, é do T.I.?
Programador: Isso.
Recepcionista: Você pode dar um pulo aqui na recepção? A fechadura não está funcionando.
Programador: Desculpe, aqui a gente trabalha com programação. Você devia chamar o chaveiro.
Recepcionista: Mas é que a fechadura é eletrônica!
Programador: PLOFT!
--
Camiseta: Não arrumo nada que eu não possa jogar a culpa no Windows

O print 13/08/2018 14:50

tirinha
Inclua essa tirinha em seu site
COLE ESSE CÓDIGO EM SEU SITE x
Transcrição ↓

real historia;
string sender = "Marcelo Gomes Martins";

Usuário (por telefone): O sistema de vocês não está funcionando!
Programador: O que está acontecendo?
Usuário: A gente está usando o sistema, daí dá uma tela azul e desliga tudo...
Usuário: Vou tirar um print e mandar...
Programador: PLOFT!
--
Camiseta: Boa sorte com isso

 

↑ Voltar ao Topo