skip to Main Content

OWASP Cornucopia – um agile game para identificar potenciais falhas de segurança em softwares

Você já ouviu falar em codificação segura? Sabe onde encontrar material sobre isto? E sabe onde encontrar cases sobre segurança em software ?

Pois bem, talvez você tenha aberto uma nova aba no navegador e começado  a pesquisar. Garanto que você encontrou poucas referências em português, mesmo a nossa nação sendo um país com muitos incidentes referente a segurança.

Os gráficos abaixo são do CERT.br (Centro de Estudos, Resposta e Tratamento de Incidentes de Segurança no Brasil) e demonstram uma série de incidentes ocorridos na internet brasileira.

Total de Incidentes Reportados ao CERT.br por ano

Fonte: https://www.cert.br/stats/incidentes/ (acessado dia 20/02/2018 às 16h27)

Incidentes reportados ao CERT.br de Janeiro a Dezembro de 2016

 

Fonte: https://www.cert.br/stats/incidentes/2016-jan-dec/tipos-ataque.html (acessado dia 20/02/2018 às 16h28)

 

Mas será que este tema deve ser observado somente por equipes de infraestrutura e redes? Quão importante é um desenvolvedor de aplicações web conhecer possíveis tipos de ataques existentes? E se o desenvolvedor tiver este conhecimento, ele poderia mitigar as vulnerabilidades através da codificação correta e segura de software?

Elmo Vila Sésamo pensativo

Fonte: https://media.giphy.com/media/8acGIeFnqLA7S/giphy.gif

Pensando em facilitar este conhecimento, a OWASP (Open Web Application Security Project) desenvolveu um agile game denominado Cornucopia. O objetivo do jogo é gerar uma lista de bugs potenciais numa aplicação web através de gameficação e participação de diversos interessados no produto (desenvolvedores, analistas, tester, dono de produto ou stakeholders). O game não prevê como serão solucionadas as vulnerabilidades identificadas. Isto deve ser feito em outro momento. O benefício gerado é termos exatamente quais itens de segurança que devem ser tratados pelo time em tempo oportuno.

Cornucopia: Como é o jogo?

Este jogo é composto por um baralho com 6 naipes e 2 curingas. Cada naipe representa uma categoria que deve ser validada no software web. Os naipes disponíveis são:

  • VALIDAÇÃO DE DADOS DE ENTRADA E CODIFICAÇÃO DE DADOS DE SAÍDA
  • AUTENTICAÇÃO E GERENCIAMENTO DE CREDENCIAIS
  • GERENCIAMENTO DE SESSÕES
  • CONTROLE DE ACESSOS
  • PRÁTICAS DE CRIPTOGRAFIA
  • CORNUCOPIA (categoria especial de ataques)
Compartilhe:
Continue lendo
O que é e como usar MVP (Mínimo Produto Viável) no desenvolvimento de Software

O que é MVP e como usar no desenvolvimento de software

Quem trabalha com desenvolvimento de software sabe: o prazo é um dos maiores desafios. O cliente tem pressa de solucionar seu problema, e seu projeto deve sair com a qualidade desejada e num prazo justo. Mas, enquanto você trabalha para que o software supere a expectativa, o cliente continua com um problema em mãos.

O MVP existe para ajudar a resolver isso. Aqui, você entenderá o que essa sigla significa e todo o potencial que ela traz para seu trabalho.

Você encontrará:

  • Uma explicação aprofundada do que é MVP
  • Como utilizá-lo para transformar seu software em um foguete
  • Vantagens de implementar o modelo MVP

Boa leitura!

Compartilhe:
Continue lendo
Mulheres na área de TI

Por que existem menos mulheres na área de T.I?

Na infância, meninos são encorajados a encarar desafios e vencer. Enquanto isso, as meninas aprendem mais características ligadas ao cuidado.Isto acaba influenciando diretamente no futuro, fazendo com que cursos na área de TI possuam uma predominância masculina.

Porém, uma coisa é fato: sem a inteligência e o trabalho de mulheres, a tecnologia e a internet como as conhecemos hoje não existiriam. O primeiro algoritmo da história foi desenvolvido por Ada Lovelace. Algumas das mais importantes linguagens de programação foram criadas por mulheres: Irmã Mary Kenneth Keller gerou o BASIC, Grace Hopper é a mãe do COBOL. O protocolo STP, que impede o loop de dados nas redes e na internet, é invenção de Radia Perlman. E a tecnologia usada nos telefones celulares e nas redes wi-fi tem como base o trabalho da inventora e atriz Hedy Lamarr, na época da Segunda Guerra Mundial.

Você, assim como a gente, gostaria de conhecer mais grandes nomes femininos no futuro? Então acompanhe nosso artigo para conhecer os motivos da diminuição de mulheres na área de T.I. Aqui, você descobrirá também o que podemos fazer para reverter esse cenário.

Neste post, você descobrirá:

  • A desmotivação que vem desde a faculdade
  • Qual o lugar da mulher, afinal
  • Como aumentar a representatividade feminina na área de TI
  • Bônus: depoimentos de mulheres que seguiram a paixão por tecnologia
Compartilhe:
Continue lendo
DB1 e Tinbot no The Developers Conference

Bora palestrar? 10 motivos para você palestrar no TDC

Palestrar é uma experiência única. Ano passado tive a oportunidade de palestrar pela primeira vez em um evento nacional, o “The Developers Conference”, ou para os íntimos, TDC. Foi uma ótima experiência. Estava ansioso para começar o ano, saber as datas e me preparar para submeter palestras nos eventos de 2018.

O TDC ocorre três vezes ao ano. O primeiro evento em Florianópolis (4 dias), o segundo em São Paulo (5 dias) e o último evento do ano em Porto Alegre (4 dias). É um dos maiores eventos de desenvolvimento de software que engloba quase todas as áreas, além de permitir que qualquer profissional submeta palestras.

Pensando em convidar outras pessoas para ir palestrar esse ano, eu listei 10 motivos para você ir palestrar no TDC, além de ganhar muitos adesivos, canecas e camisetas!! :)

Compartilhe:
Continue lendo

Construir soluções em vez de só consumi-las: Como DB1 Start pode ajudar nisto

Entre os meses de agosto e outubro, tive a alegria de conduzir um grupo de 32 pessoas incríveis. Elas chegaram até a minha pessoa após um processo severo de seleção e foram selecionadas para fazer parte da segunda turma do DB1 Start.

O que é o DB1 Start

DB1 Start é um curso gratuito com 200h de duração para apaixonados por tecnologia. Ele traz a experiência de fazer um projeto completo de software, através das boas práticas de mercado.

O objetivo do curso é compartilhar práticas utilizadas para a formação de trainees. O curso teve início em 21/08 e término em 01/11. Foram 32 alunos participantes, dentre eles, 31 concluintes e 12 contratados até dezembro.

Estas pessoas chegaram com suas diversas idades e formações. O que as unia era o desejo de participar deste mundo tecnológico tão evolutivo.

Foram 10 semanas muito intensas. O foco era torná-los produtores de tecnologia e não mais apenas consumidores. Resumindo, prazo curto para tantas possibilidades e muitos sonhos envolvidos.

Compartilhe:
Continue lendo
MapReduce para manipular dados

MapReduce e sua utilidade

Um dos grandes desafios computacionais da atualidade é a manipulação inteligente de grande quantidade de dados. Sistemas corporativos, serviços e sistemas Web, mídias sociais e entre outros, produzem um volume impressionante de dados.

A maioria desses dados são armazenados de forma não-estruturada, além de linguagens e formatos diversos, em muitos casos, incompatíveis entre si. Esses se tornaram uma valiosa fonte de informação. Um exemplo de manipulação de grande quantidade de dados é a empresa Google, que não possui um alto valor agregado somente por seu poderoso algoritmo de busca de páginas Web e seus inúmeros serviços disponíveis, mas também por manter um grande volume de dados de seus usuários.

São esses dados que, ao passarem por análises, tendem a se tornar valiosos, permitindo a criação de soluções inteligentes. Neste artigo será abordado o modelo MapReduce e sua utilização para a manipulação de grande quantidade de dados. Esse foi proposto primeiramente pela empresa citada no exemplo anterior: a Google, no ano de 2004.

O funcionamento do MapReduce

O MapReduce possui um conjunto de informações único, que é dividido em unidades e estas unidades são mapeadas paralelamente. Logo após, possuem-se as etapas de sort e shuffle: o sort ordena esses dados e o shuffle é a distribuição dos dados organizados em grupos para serem atribuídos aos nós de Redução.

Esse modelo demonstrou ser adequado para trabalhar com problemas que podem ser particionados ou fragmentados em subproblemas. As funções Map e Reduce podem ser aplicadas separadamente a um conjunto de dados. Se os dados forem suficientemente grandes, podem ainda ser divididos para serem executados em diversas funções Map ao mesmo tempo.

MapReduce processo de contagem de palavras

Figura 1

Para entendermos melhor vamos analisar a Figura 1 com um grupo de palavras a serem analisadas:

Compartilhe:
Continue lendo

JHipster – Um grande aliado no desenvolvimento de aplicações Java e Angular

Hoje, há uma crescente demanda de software no mercado. Cada vez mais empresas necessitam de um produto específico para seu negócio, e para empresas acima de médio porte, possuir soluções customizadas é quase que inevitável.

Do outro lado, as empresas de software buscam soluções que aumentem a produtividade do desenvolvimento, mas por muitas vezes, estas soluções acabam se tornando mais custosas do que produtivas.

Passei quase sete anos da minha carreira, trabalhando com ferramentas que prometiam produtividade, mas quando surgia a necessidade de sair do padrão da ferramenta… pronto! Toda produtividade do início do projeto com as automações de configuração e geração de CRUDs ia por água abaixo.

Em 2015, quando conheci o JHipster através de um amigo, de cara já pensei: lá vem mais uma ferramenta que engessa o código e que no final vai me trazer mais prejuízos do que benefícios. Foi aí que me enganei.

Compartilhe:
Continue lendo
a importância da integração contínua usando jenkins e sonarqube

A importância da Integração Contínua, utilizando Jenkins e SonarQube

Produzir software de qualidade é uma tarefa difícil, que exige um constante monitoramento para mantê-lo íntegro.

A integração contínua é uma técnica de desenvolvimento que busca diagnosticar os bugs (defeitos) e problemas de integração mais rapidamente, utilizando um repositório de código único e executando o build (construção) do software diariamente.

 

Qual o principal ganho nos projetos com a Integração Contínua?

Imagine vários desenvolvedores codificando módulos de um mesmo projeto, é natural que colisões de código possam surgir. É bem provável que, em algum momento, um desses módulos seja alterado, simultaneamente, por dois ou mais desenvolvedores ocasionando problemas

A integração contínua atua exatamente antecipando tais situações, permitindo que o time reaja imediatamente e garanta uma evolução muito mais segura do produto. Afinal, “é melhor prevenir que remediar”’.

Compartilhe:
Continue lendo
Saúde DB1 agiliza atendimento da saúde pública

Saúde DB1 possibilita acompanhamento 24 Horas pelo celular

Utilizado em Maringá desde 2008, o sistema Saúde DB1 é referência em todo o Brasil, sendo recomendado pelo Ministério da Saúde. Aplicado em Pará de Minas este ano, o software já mostra avanços na celeridade dos serviços. Prova disso é a Unidade de Pronto Atendimento – UPA 24 horas, que desde a inauguração já trabalha utilizando o Saúde DB1 e tem diagnósticos mais precisos e ágeis.

Elias Diniz, prefeito de Pará de Minas, interessou-se no Saúde DB1 com o objetivo de qualificar e aumentar a eficiência do atendimento aos pacientes da rede pública. Hoje, Elias e o secretário municipal e interno da Saúde, Paulo Duarte, monitoram os atendimentos realizados na UPA 24 horas em forma de dados estatísticos e gráficos, mostrados pelo aplicativo de celular.

Compartilhe:
Continue lendo

Container, DockerFile e Docker Compose

A manutenção em ambientes de Desenvolvimento, Homologação e Produção gera grande impacto no ciclo de vida de uma aplicação.  Para mitigar os riscos neste cenário são utilizadas tecnologias com o intuito de aumentar a produtividade e facilitar a criação dos ambientes citados anteriormente. A tecnologia que melhor atendia era a Máquina Virtual, porém atualmente o conceito de Container ganhou um enorme espaço.

Que conceito seria esse? Como funciona?

Compartilhe:
Continue lendo
Back To Top