Segurança da informação

Pilares da Segurança da Informação

Dados são verdadeiros ativos para as empresas e, diante do crescimento número de ataques cibernéticos, a atenção em cima desses ativos deve ser redobrada. Por isso, as empresas têm se atentado aos pilares da segurança da informação, para garantir a proteção desses dados.

Isso justifica o crescente investimento das empresas em relação à segurança, com treinamentos e tecnologia cada vez mais sofisticadas para proteger redes e obter softwares mais seguros.

Cada um desses pilares tem sua importância para um bom funcionamento de todos os processos. Basicamente, um sistema para ser considerado seguro precisa satisfazer esses pilares. Muitas empresas já perceberam a necessidade de implementar essas medidas de proteção.

Veremos a seguir quais são esses pilares.

Pilares da Segurança da Informação

A segurança da informação se baseia em três pilares principais: confidencialidade, integridade e disponibilidade. Estes sustentam as práticas e políticas de proteção de dados nas empresas, servindo como parâmetros para guiar os processos.

Confidencialidade

A confidencialidade está relacionada a privacidade dos dados. Seu objetivo é restringir o acesso às informações, garantindo que ela chegue apenas às pessoas autorizadas.

Por exemplo, existem muitos dados na sua empresa que não chegam até você, justamente por ser limitado por áreas. Uma informação do setor financeiro talvez não precise chegar até você.

A informação não está disponível ou é revelada a pessoas ou processos sem autorização. Já quem recebe, deve manter sigilo e não divulgar a terceiros.

Integridade

A integridade está associada a veracidade e confiabilidade da informação, garantindo à preservação dos dados. Ela deve garantir que as informações estejam livres de qualquer alteração sem autorização, se mantendo conforme foram criadas.

Esse fator é relevante para as empresas. Se alguma alteração indevida for realizada, a informação poderá ser afetada, ficando incorreta o que consequentemente, compromete sua veracidade. Isso faz com que empresas não possam tomar decisões em dados concretos e precisos, por exemplo.

Existem muitas formas de garantir a integridade das informações, como por exemplo, ter controles de acesso, definir permissões, além de fazer a utilização de sistemas de verificação de alteração de dados. Os sistemas também devem trabalhar corretamente, para evitar alguma falha no meio do caminho.

Segurança da Informação - Fundamentos
Curso de Segurança da Informação - Fundamentos
CONHEÇA O CURSO

Disponibilidade

A disponibilidade tem o foco de garantir que dados e sistemas ficarão acessíveis sempre que necessário, sem interrupções, podendo ser acessados por qualquer pessoa ou processo autorizado quando for preciso, bem como ter meios de solicitar a portabilidade dos dados para outro fornecedor de produto ou serviço. Quando um serviço fica indisponível, sua ausência pode dificultar ou até mesmo inviabilizar decisões.

Um exemplo para tentar eliminar falhas e garantir a disponibilidade de informações é ter uma infraestrutura voltada à manutenção e preservação do acesso aos dados, tendo processos de manutenção de hardware, manter as atualizações sempre em dia e buscar eliminar conflitos de software.

Em outras palavras, você precisa guardar uma informação, onde esta só pode ser acessada por pessoas autorizadas (confidencialidade). Isso tudo sem aumentar, diminuir ou distorcer essa informação (integridade), podendo ser consultada quando for preciso (disponibilidade).

Nos últimos tempos apareceram mais dois itens para complementar os pilares da segurança da informação. São eles:

Autenticidade

A autenticidade visa garantir que os dados realmente pertencem à fonte anunciada, onde em um processo de comunicação, os remetentes não se passem por terceiros e nem que a mensagem sofra alterações durante o envio. Por isso, ele deve validar a identidade dos usuários antes de liberar o acesso. Como exemplo temos a utilização de login e senha, mas podem ser utilizados outros recursos também.

Para assegurar que nada foi modificado durante o processo, é possível ter uma assinatura digital onde os dados são criptografados e ficam ilegíveis, podendo assim, ser decifrados posteriormente somente por usuários autorizados.

Legalidade

A legalidade é um princípio jurídico que visa assegurar que todos os procedimentos relacionados à informação sejam feitos de acordo com a legislação, o que pode evitar futuros problemas com auditorias de órgãos fiscalizadores.

Assim as empresas devem ter um valor legal da comunicação em relação à legislação, ainda mais que com a nova LGPD será exigido um maior rigor em relação a isso.

Sendo assim, é necessário elaborar um contrato definindo quais são esses valores e como eles estão conectados com a lei.

Fazendo o uso correto das informações e seguindo os pilares da segurança da informação, temos uma maior segurança dos dados, além de trazer uma maior efetividade na análise de resultados.

Além disso, também podemos prevenir muitas coisas como o vazamento e roubo de dados, restrição na perda de informações e o impedimento de fraudes e ataques maliciosos, como phishing, DDoS, ransomwares, etc.

O que é Engenharia Social?

Nos últimos anos os tipos de ataque não só aumentaram como estão mais sofisticados. É importante conhecê-los para que possamos nos prevenir de uma forma mais assertiva. Vamos conferir neste artigo o que é a engenharia social e como os hackers a utilizam para fazer suas vítimas.

Afinal, o que é engenharia social?

Engenharia Social são as práticas utilizadas que fazem uso da farsa e persuasão para obter acesso a informações importantes não autorizadas ou sigilosas, tanto de organizações quanto de pessoas.

São técnicas utilizadas por pessoas mal intencionadas (hackers) que exploram falhas de segurança das próprias pessoas. Por isso, o golpista pode se passar por outra pessoa ou uma empresa, para conseguir manipular alguém. Por isso, além de investir em processos de segurança, é importante as empresas investirem também no fator humano, a fim de se obter conscientização.

Como isso funciona?

Por exemplo, você recebe um e-mail do “gerente” do seu banco, dizendo por exemplo que o sistema do internet banking está com algum problema e precisa ser atualizado. Para isso, você precisa executar o aplicativo que está em anexo do e-mail. A pessoa pode vir a acreditar que o e-mail é verdadeiro e fazer o download. Geralmente a tela e tudo que contém nela são idênticos ao app da conta bancária que você utiliza. Nisso você acaba passando suas informações para alguém que você nem sabe quem é.

Outro exemplo é quando você entra em um site e aparece uma janela dizendo que foi encontrado um vírus na sua máquina, pedindo para que você baixe um software para eliminar o vírus, mas na verdade, esse software é o próprio vírus.

O simples fato de você encontrar um pendrive, no banco da praça por exemplo, e inserir no seu computador com a curiosidade de saber o que contém nele, você pode colocar seu computador em risco. Por isso deve-se ter cuidado ao utilizar periféricos de fontes desconhecidas.

A engenharia social engloba tudo o que vimos ultimamente aqui no blog, sobre segurança da informação.

Segurança da Informação - OWASP Fundamentos
Curso de Segurança da Informação - OWASP Fundamentos
CONHEÇA O CURSO

Alguns ataques…

Existem diversas maneiras que os hackers utilizam para fazer seus ataques. Temos um artigo aqui no blog que fala sobre os principais termos de segurança que são bastante utilizados, onde contém vários tipos de ataques. Alguns ataques comuns de engenharia social incluem alguns deles.

Phishing: Um dos principais são os vírus que se espalham por e-mail. Criadores de vírus geralmente usam e-mail para a propagação de suas criações. Na maioria dos casos, é necessário que o usuário ao receber o e-mail execute o arquivo em anexo ou clique em algum link para que seu computador seja contaminado.

A utilização de e-mails falsos é usado principalmente para obter informações financeiras da pessoa, como número de conta-corrente e senha. Neste caso, o aspecto explorado é a confiança, pois os sistemas dos bancos são muito bem protegidos. Como é inviável tentar burlar a segurança dos sistemas bancários, é mais fácil ao criminoso tentar enganar as pessoas para que elas forneçam suas informações bancárias.

Ransomware: O ransomware dá aos hackers a possibilidade de bloquear seu computador ou criptografar seus arquivos de um local remoto. Todos os tipos de ransomware tem a finalidade de levar a vítima a pagar o “resgate”. Além disso, os hackers colocam um tempo limite ou ainda vão aumentando o valor, caso não haja pagamento, o que acaba mexendo com o psicológico da vítima, ainda mais se os arquivos em jogo forem importantes.

Esses ataques são realizados por diversos motivos, sendo o principal deles tirar dinheiro das vítimas, por isso eles sempre tentarão roubar informações pessoais, senhas, infectar máquinas com malwares e até mesmo intimidar as pessoas com scareware.

Abordamos alguns deles, mas ainda existem muitos outros. Caso queira se aprofundar mais dá uma conferida na nossa categoria de segurança da informação.

Até a próxima!

Termos comuns de segurança: man-in-the-middle

Antes de tudo, já sabemos que o objetivo das ações de hackers é roubar informações, visando a obtenção de vantagens financeiras. Por isso, eles estão sempre em busca de ataques que os ajudem a chegar nesse objetivo. Um desses ataques é o man-in-the-middle, que veremos neste artigo.

O que vem a ser o ataque man-in-the-middle?

O ataque man-in-the-middle (em português homem-no-meio) é um ataque relativamente fácil de ser realizado, porém super poderoso. Nele envolve a interceptação e escuta de comunicação entre um usuário e uma outra parte envolvida, como um usuário e um sites de compras, por exemplo.

Contudo, nem o cliente quanto o servidor sabem que a conexão está sendo controlada por uma terceira pessoa. O atacante se posiciona no “meio” entre essas duas partes, acessando a informação trocada entre os dois, se passando por uma das partes envolvidas.

Qual sua finalidade?

Um ataque man-in-the-middle bem sucedido, permite ao hacker ver tudo o que é enviado como informações de navegação, detalhes de sua conta e login, senhas, dados financeiros, etc. Além de poder visualizar todas essas informações, ele ainda pode fazer um ataque a confidencialidade e integridade dos dados trafegados, sem que as vítimas percebam. Nesse meio tempo, quando as partes envolvidas derem conta, já será tarde demais.

Essa espionagem para a obtenção de informações pode ser sobre uma determinada vítima, apenas para poder “usá-la” em outros ataques, como também pode ser focada em uma pessoa específica para o roubo de informações mais valiosas ou até mesmo de uma entidade.

Segurança da Informação - Fundamentos
Curso de Segurança da Informação - Fundamentos
CONHEÇA O CURSO

Alguns tipos de ataques man-in-the-middle…

Existem muitas maneiras do hacker se colocar no “meio” e interceptar a comunicação. Eles podem aproveitar os pontos fracos de uma rede ou de qualquer um de seus elementos, fazendo a utilização de IPs, DNS e HTTPS falsos, sequestro de SSL / e-mail e interceptação de Wi-Fi. A seguir veremos alguns tipos de ataques mais comuns:

  • Sequestro de sessão:
    Uma sessão é quando você deve ser autenticado pelo site com seu login e senha. Como o navegador acaba gerando os chamados “cookies de sessão”, estes podem conter informações pessoais, nome de usuário e senhas, que podem ser utilizadas por alguém mal intencionado que esteja no meio de sua rede.

  • DNS spoofing:
    Neste caso, o atacante intercepta o tráfego da rede para capturar uma consulta DNS a fim de modificá-la, fazendo com que a vítima seja direcionada para uma página falsa da internet. Depois de visitar o site falso, o invasor pode obter acesso a suas informações confidenciais e dados pessoais, caso a vítima coloque suas informações ali.

  • ARP Spoofing:
    Também chamado de envenenamento de cache ARP, esse tipo de ataque é eficiente para redes locais, onde o atacante que está conectado na mesma rede, possa espionar o tráfego.
    Quando o usuário enviar uma solicitação de ARP, um hacker fingindo ser um dispositivo, envia uma resposta falsa. Com isso, ele consegue alterar o IP e MAC de destino se colocando no meio da comunicação, sem que a vítima perceba.

  • Stripping SSL:
    Nesse caso o hacker tenta se conectar a um site criptografado, tentando fazer com que ele rebaixe de um site de HTTPS para HTTP, retirando o protocolo SSL da conexão de rede do usuário, servindo para você uma versão desprotegida. Dessa forma, todos seus dados, senhas, etc, chegam descriptografados para ele.

Como se proteger?

O man-in-the-middle é um ataque comum e que pode ser bastante eficiente, pois é de difícil detecção. Além disso o atacante pode vir de qualquer lugar.

Como em vários outros ataques, o importante é se atentar a algumas medidas de segurança, a fim de dificultar a sua execução. Algumas medidas de segurança são:

  • Evitar acessar redes wi-fi públicas;
  • Evitar navegar e principalmente digitar informações em sites que não tenham certificado digital (SSL);
  • Estranhe quando uma URL trocar de HTTPS para HTTP;
  • Tenha um antivírus confiável;
  • Fique atento a e-mails de phishing.

Termos comuns de segurança: Honeypot

Quando falamos sobre a área de Segurança dentro da Tecnologia da Informação, é comum que existam termos que até já ouvimos falar, mas não sabemos ao certo o que significam. Por isso, nessa série de artigos, vamos abordar alguns termos comuns de segurança.

A invasão de redes e sistemas é uma realidade que ocorre todos os dias. A cada dia surgem novas ameaças, por isso, as empresas devem sempre estar em busca de recursos que garantem uma maior segurança de seus dados. Para conhecer melhor os atacantes, surgiu então a ideia de criar algo que fosse atraente para eles, surgindo assim o honeypot.

O que vem a ser o honeypot?

Honeypot é uma ferramenta ou um sistema criado que contém vulnerabilidades e pode conter até dados falsos. É como se fosse uma “isca” para fisgar atacantes, onde você configura o computador de modo a deixá-lo vulnerável a invasões.

Quando um invasor tenta acessar seu sistema e consegue realizar a invasão com sucesso, ele realmente acredita que conseguiu invadir uma aplicação, mas na verdade ele está em um honeypot: um ambiente simulado justamente para enganar o invasor.

Com a utilização do honeypot, todos os passos do invasor são vigiados, permitindo o registro e controle de todas as atividades que ele venha a fazer. Com isso, é possível saber quais ferramentas foram utilizadas para a invasão e quais brechas o invasor está utilizando. Todos estes passos são enviados para a pessoa que está monitorando o honeypot.

Com isto, os invasores podem ser combatidos de forma mais eficiente, pois conseguimos estudar as informações que foram captadas, a fim de podermos criar meios e técnicas para barrar o ataque – verdadeiro – de novos invasores.

Rede de Computadores - Segurança de Redes Wireless
Curso de Rede de Computadores - Segurança de Redes Wireless
CONHEÇA O CURSO

Níveis de serviço

Um honeypot pode ser classificado em dois níveis de serviços: o de baixa interatividade e o de alta interatividade, onde cada um permite um certo grau de interatividade com o sistema.

Baixa Interatividade: nos honeypots de baixa interatividade, são instaladas ferramentas para emular sistemas operacionais e serviços.

Neste caso, é simulado apenas parte do sistema: o sistema real subjacente é inacessível, não permitindo que o invasor interaja com o sistema real. A instalação e configuração é relativamente fácil, pois tem uma arquitetura simples com um funcionamento básico.

Alta interatividade: por outro lado, nos honeypots de alta interatividade, os invasores interagem com o sistema operacional e serviços reais.

É um sistema operacional completo rodando os sistemas de produção, sendo totalmente acessíveis. O atacante pode ganhar total controle sobre esses sistemas, podendo oferecer um grande risco ao sistema, por isso sua implantação acaba sendo mais complexa.

Para evitar riscos, o honeypot deve ser implementado em um local onde se tenha um grande controle da rede através de métodos de proteção e detecção. Com isso, os atacantes acabam perdendo tempo com ataques não efetivos e se torna possível coletar uma quantidade imensa de informações dos atacantes.

Tipos de honeypots

Pesquisa – São ferramentas programadas para observar as ações dos atacantes, permitindo análises detalhadas de suas motivações, ferramentas utilizadas e vulnerabilidades que foram exploradas.

É bastante utilizada com o intuito de estudar o padrão de cada invasor, pois com essas informações pode-se fazer um estudo mais aprofundado para que a equipe possa verificar quais partes os atacantes estão mais tentando acessar e, com isso, tomar os devidos cuidados.

Produção – São utilizadas em redes de produção como complemento ou no lugar de sistemas para detectar, analisar ou ainda desviar ataques contra ativos de rede. Pode ser utilizado por empresas e instituições que visam proteger suas redes. Tem o objetivo de analisar e detectar atacantes na rede.

HoneyNet

Quando falamos de honeypots, é comum que também surja o termo “honeynet”. Uma honeynet é um conjunto de honeypots. Estes simulam uma rede de produção verdadeira, mas configurada para que todas as atividades que passam por ela sejam gravadas, monitoradas e até controladas.

Algumas ferramentas…

Atualmente, existem muitas ferramentas que são utilizadas para esse propósito. Temos como exemplo o Deception Toolkit (DTK), o Cyber Cop Sting, o Honeyd, o KFsensor, o Nepenthes, o Dionaea, o BackOfficer Friendly (BOF), o Specter e o Valhala.

Considerações finais…

Logo, podemos ver que a utilização de honeypots é de grande ajuda, mas sempre devemos utilizá-los em paralelo com outras ferramentas ao mesmo tempo em que trabalhamos com outros meios de prevenção convencionais.

Assim, conseguiremos evitar ainda mais que um invasor possa atacar aplicações e redes essenciais, tendo uma segurança ainda maior.

Github: Pare com as senhas e utilize Tokens de Acesso

Olá Web Developers! Já tem alguns anos que o Github incentiva a troca das senhas por Tokens de Acesso, mas ainda é muito comum que as pessoas utilizem suas senhas. Aqui veremos por que usar os tokens e como é simples começar a utilizá-los.

O que é esse Token de Acesso?

Um token de acesso, de forma simplificada, seria uma chave em um formato como e962e591092e9830f8ec6c2a4166e8655b768e88 que te permite ter acesso a algo. No caso do Github você usaria uma chave assim no lugar da senha da sua conta ao executar operações pela linha de comando ou na API.

Qual a vantagem em relação à minha senha?

A sua senha dá acesso a tudo em sua conta. Quem tiver sua senha pode apagar seus repositórios, alterar seus dados, fazer commits para qualquer repositório privado onde você possui permissões, apagar sua conta, etc. Concorda que se sua senha vazar ou se alguém tiver acesso a uma máquina onde sua senha está salva, esta pessoa terá muito poder?

Já os Tokens de Acesso te dão mais controle. Você pode criar vários e configurar as permissões que cada um vai ter. Se por algum motivo ele vazar, a sua conta continua salva. Se alguém tiver acesso a uma máquina onde seu token está salvo, a pessoa estará limitada a fazer apenas as ações que você liberou para aquele token. E com apenas um clique você pode apagar o token que quiser.

Git e GitHub - Controle de versão
Curso de Git e GitHub - Controle de versão
CONHEÇA O CURSO

O Token de Acesso é algo simples que pode melhorar na sua segurança. Além disso, já faz um tempo que o Github vem avisando que logo desabilitará a autenticação por senha ao utilizar a linha de comando ou a API.

Como criar e usar um Token de Acesso?

Primeiro você precisa que o email da sua conta já tenha sido verificado. Depois, em https://github.com clique na sua foto do perfil e vá em Settings. No lado esquerdo você verá Developer settings. Clique nessa opção e depois em Personal access tokens.

Na parte superior da página você terá um botão para criar seus tokens, Generate new token. Ao clicar nele você pode dar um nome para o novo token, como Trabalho, Projeto da Faculdade, etc.

No restante da página você poderá selecionar as permissões que quer dar para esse token. Para selecionar seus repositórios pela linha de comando, selecione o repo.

No final da página, ao clicar em Generate token, seu token será gerado e exibido para você. Copie agora e guarde em um lugar seguro. Por motivos de segurança, assim que sair dessa página, você nunca mais verá esse token novamente. Se perder, basta criar outro.

Agora, quando for usar a linha de comando para fazer operações de Git ou quando for criar uma aplicação que usa a API do Github, basta usar esse token no lugar da sua senha.

O Token de Acesso funciona apenas para operações HTTPS, não servindo para SSH.

Dicas para proteger seus dados de aplicativos maliciosos

No artigo anterior falamos sobre o perigo do compartilhamento de informações com aplicativos na era digital, já que manter sua privacidade na rede, atualmente tem se tornando uma tarefa desafiadora.

Neste artigo veremos algumas medidas que podemos tomar para tentar nos proteger diante de tantas informações em nosso dia a dia.

Android - Básico
Curso de Android - Básico
CONHEÇA O CURSO

Saiba a procedência dos aplicativos baixados

Saber a procedência dos aplicativos baixados também é uma ótima maneira de se proteger do uso indevido dos seus dados por terceiros.

Algumas empresas renomadas, por exemplo, lançam seus aplicativos para um determinado público alvo a fim de facilitar a interação com o usuário e, ao baixar aquele aplicativo, você estará ciente que se trata da determinada empresa a qual você já confia.

Então, ao baixar qualquer aplicativo em lojas oficiais, perceba qual a empresa desenvolvedora e o histórico dos seus outros aplicativos.

Verifique o escaneamento dos aplicativos pelo Google Play Protect

Se seu celular for Android, um recurso que vale a pena conferir é o Google Play Protect.

Dentro das configurações do aparelho, em segurança, este recurso estará disponível. O Google Play Protect realiza o escaneamento dos aplicativos que estão instalados no smartphone e verifica se há comportamentos nocivos nestes aplicativos ou no dispositivo.

Caso algum risco de segurança seja encontrado, o usuário será imediatamente informado.

Cuidado com as “modinhas”

Vários aplicativos surgem todos os dias e nos pegam de surpresa quando, de repente, todos começam a utilizar.

E esta grande onda do uso destes aplicativos muitas vezes é algo planejado, visto que empresas desenvolvem suas aplicações para que estas se tornem virais, mas com o intuito de obter determinadas informações dos usuários, como: Localização, acesso a câmera, entre outros.

Android - Intermediário
Curso de Android - Intermediário
CONHEÇA O CURSO

Leia os Termos de Uso

Por mais entediante e demorado que seja, que tal ler sobre aquilo que você está dizendo concordar e aceitar?

Sei que parece um pouco clichê, mas ler os termos de uso dos aplicativos ou de qualquer serviço que você irá aderir é de fato dever dos usuários. É por meio dos Termos de Uso que as empresas deixarão claro qual a sua política de privacidade em relação aos dados inseridos, quais as restrições para sua utilização, quais as responsabilidades ela irá assumir, qual a conduta esperam do usuário do serviço, dentre outras coisas.

Então, caso você não tenha costume de ler, dedique um pouco do seu tempo a ler e aceitar apenas após saber o que de fato estará estabelecido neste acordo (E essa dica importantíssima fica para todos nós!).

Observe as permissões

Sempre que possível, acesse as configurações do seu aparelho e veja as permissões que determinados aplicativos possuem.

Desta forma você saberá exatamente o que cada aplicativo possui acesso no seu dispositivo e, caso necessário, revogá-lo.

Utilize a loja oficial de aplicativos

Android Package ou Android Application Pack é um software empacotado num formato de arquivo destinado ao sistema operacional Android.

Os APKs podem ser obtidos oficialmente em lojas virtuais como o Google Play ou simplesmente baixados em sites de terceiros, neste último caso, onde mora todo perigo na realização do seu download.

Por exemplo, para a realização do download de um APK fora das lojas virtuais oficiais, será necessário dar a permissão para seu smartphone a baixar aplicativos de qualquer página desconhecida (Fontes desconhecidas).

Os aplicativos que são fornecidos dentro das lojas virtuais passam por uma checagem automática dupla, quando o aplicativo é enviado para loja e quando ele é instalado em qualquer aparelho, fazendo com que seja verificado contra qualquer comportamento malicioso. Já os APKS de fontes desconhecidas podem causar desde danos ao seu aparelho ou qualquer outro tipo de exploração de vulnerabilidades.

Então tenha sempre cuidado ao baixar aplicativos de fontes desconhecidas sem antes checar de fato a sua procedência.

Fique atento aos pequenos e “inofensivos” testes do Facebook

Raros são os usuários que nunca fizeram os “testes” no Facebook, que vão desde: Qual personalidade você se parece ou qual a profissão para seu futuro.

Atualmente, a quantidade destes tipos de aplicativos pode parecer um pouco menor, mas ainda é notável a quantidade de pessoas que se submetem a estes tipos de testes (Beijo, mãe!).

Logo ao clicar sobre estes aplicativos, muitas vezes eles já informam quais os dados que serão coletados, como e-mail, nome, idade, sexo e etc. São por meio destes dados, como informamos no artigo anterior, que algumas empresas utilizam para a propagação de anúncios. Então, nada melhor que verificar em suas redes sociais quais os aplicativos estão conectados a, por exemplo, seu Facebook.

Podemos concluir que…

Mesmo com a melhoria na segurança das lojas de aplicativos, os usuários também precisam fazer a sua parte para manter a sua privacidade.

Neste artigo vimos algumas dicas que poderão ser utilizadas como base para que você tenha uma maior segurança no uso do seu smartphone.

Desenvolvedor Android Júnior
Formação: Desenvolvedor Android Júnior
A formação Desenvolvedor Android nível Júnior da TreinaWeb tem como objetivo ilustrar os tópicos essenciais para aqueles que desejam se especializar na plataforma mobile da Google. Entre estes tópicos, estão a arquitetura básica do Android, as operações necessárias para configuração do ambiente de desenvolvimento, os widgets e as activities, as definições de layout, o armazenamento de dados offline, o consumo de APIs RESTful e a aplicação dos conceitos de Material Design.
CONHEÇA A FORMAÇÃO

O perigo do compartilhamento de informações com aplicativos

O crescimento do uso de aplicativos móveis nos últimos tempos não tem sido novidade no mundo. Grandes ou pequenas empresas tem investido constantemente na realização de aplicativos para facilitar a vida dos seus clientes.

Aplicativos bancários, redes sociais, deliverys, jogos e música, tem se tornado comuns em nosso dia a dia e, sem dúvidas, facilitando muitas tarefas, como simplesmente pedir um almoço.

Android - Básico
Curso de Android - Básico
CONHEÇA O CURSO

Diversas são as vantagens na utilização dos aplicativos, dentre elas:

  • A mobilidade – estar sempre com o aparelho em mãos realizando suas tarefas normalmente de qualquer lugar do mundo;
  • Aumento na eficiência dos atendimentos ao cliente;
  • A interatividade – Um grande aliado na interação com o cliente;
  • Fortalecimento da marca;
  • Diminuição dos custos em marketing – simplificam a comunicação com os clientes, uma vez que a empresa usará o próprio aplicativo para promover ações de marketing, entre outras vantagens.

Sem dúvidas, sua existência nos tem dado a facilidade em inúmeras tarefas cotidianas, mas, você realmente sabe dizer quais os perigos que o compartilhamento de informações com os aplicativos podem nos oferecer?

Envio de localização de GPS

Vários aplicativos solicitam ao usuário a permissão de utilizar o recurso de GPS do dispositivo e muitos desses aplicativos que não necessitam deste recurso ativado, podem fazer o uso destas informações.

Um exemplo que podemos citar em torno do uso de GPS é que diversas empresas poderão utilizar destes dados para mapear os lugares mais frequentados pelo usuário. Com esta informação, por exemplo, as empresas podem direcionar anúncios relacionados a esses tipo de lugar.

Pensando em um anúncio de um restaurante, por exemplo, é algo bem simples e muitas vezes nada assustador, mas o acesso a estes dados por terceiros mal intencionados podem trazer riscos, como a localização em tempo real de um determinado usuário.

Acesso à galeria de fotos

Muitos aplicativos, de fato, necessitam de acesso às fotos armazenadas em seu smartphone. Um exemplo disso são os aplicativos de redes sociais que necessitam desta permissão para compartilhar suas imagens para seus amigos.

Mas não faz sentido que aplicativos que não utilizem o compartilhamento de imagens tenha acesso a esta informação tão valiosa.

Muitas empresas podem utilizar estes dados para, por exemplo, alimentar uma IA para um sistema de reconhecimento facial sem que você saiba ou permita este tipo de coleta.

Android - Intermediário
Curso de Android - Intermediário
CONHEÇA O CURSO

Acesso ao histórico

Algo extremamente preocupante quando vimos que alguns aplicativos solicitam o acesso ao seu histórico de navegação.

Pensando em como estes dados podem ser utilizados, imagine um sistema de recomendação utilizar todo o seu histórico e analisar que há exatas duas semanas você vem pesquisando sobre a compra de um novo teclado.

A partir deste momento, vários anúncios seriam exibidos para você com aquele e outros teclados relacionados.

Lembrando que, mais uma vez, um exemplo que parece simples, já que sistemas de recomendação é algo comum hoje em dia, mas se pensarmos os usos que estas informações podem possuir, veremos que será sempre útil verificar as permissões que estes aplicativos solicitam.

Permissão para habilitar o microfone do smartphone

Normalmente aplicativos como sua câmera, necessitam desta informação até mesmo para gravação de um simples vídeo em seu smartphone. Porém, mais uma vez, pensaremos a respeito de um aplicativo que não necessita diretamente destas informações que serão coletadas.

Desta forma, este tipo de dado poderá trazer uma vantagem competitiva para empresas, identificando as palavras-chave que o usuário proferir em um determinado momento e direcionando anúncios relacionados a este serviço ou produto.

Quem nunca comentou com um amigo ao lado que estava precisando comprar um determinado produto e, momentos depois, se deparou com um anúncio a respeito deste produto? Este tipo de serviço é mais comum do que parece, embora as empresas neguem veementemente o uso destas informações.

Vamos à realidade

Sabemos que manter a privacidade na era digital é algo extremamente desafiador.

Um exemplo real em torno de toda esta situação é sobre a empresa sul-coreana de análise de dados, Rankwave, que está sendo processada pelo Facebook pelo suposto uso indevido de dados coletados dos usuários da rede social para vender serviços de publicidade e marketing.

A empresa e seus aplicativos foram suspensos da plataforma, porém, segundo algumas investigações, ainda podem possuir uma coleção de dados dos usuários do Facebook, o que infringe seus termos de uso na plataforma.

Sem deixar de ressaltar um problema semelhante: O vazamento da Cambridge Analytica, onde cerca de 87 milhões de usuários tiveram as suas informações compartilhadas com uma empresa de consultoria política a partir de um teste de personalidade realizado por um aplicativo dentro da plataforma.

Lembrando que nos exemplos acima, citamos de aplicativos desenvolvidos por empresas terceiras dentro do Facebook, mas existem casos de aplicativos mobile, por exemplo, que estãos sendo investigados pelos usos de imagens dos seus usuários.

Estes e outros exemplos nos mostram como é importante sempre verificar os dados que estamos compartilhando com diversos aplicativos, tentando assim, fazer com que nossa privacidade se torne “um pouco” mais segura na era digital.

Lembrando que o intuito deste artigo é que você possa se atentar as informações que você compartilha com determinados aplicativos e, principalmente, utilizar aplicativos de fontes confiáveis com segurança. 🙂

No próximo artigo, veremos algumas dicas de como proteger seus dados de aplicativos maliciosos, aumentando a segurança das informações que estão inseridos nestes,

Desenvolvedor Android Júnior
Formação: Desenvolvedor Android Júnior
A formação Desenvolvedor Android nível Júnior da TreinaWeb tem como objetivo ilustrar os tópicos essenciais para aqueles que desejam se especializar na plataforma mobile da Google. Entre estes tópicos, estão a arquitetura básica do Android, as operações necessárias para configuração do ambiente de desenvolvimento, os widgets e as activities, as definições de layout, o armazenamento de dados offline, o consumo de APIs RESTful e a aplicação dos conceitos de Material Design.
CONHEÇA A FORMAÇÃO

Checklist de segurança para autenticação

Cuidar da segurança é um dos pilares para a sustentação de qualquer aplicação na web. Sem o mínimo não é possível nem mesmo garantir uma razoável disponibilidade.

Nesse artigo eu listo alguns dos tópicos que acredito serem de fundamental importância para a integridade e confidencialidade nos processo de autenticação (com foco em autenticação por cookie). Nas próximas semanas novos artigos correlatos à segurança serão publicados.

1) Use HTTPS em todo lugar;
2) Armazene as senhas com segurança;
3) Não impeça o seu usuário de criar uma senha forte;
4) Não transporte pela rede, sem motivo, os dados sensíveis do seu usuário;
5) Limite as tentativas de login;
6) Deixe-o opcionalmente resetar a senha;
7) Cuide da criação dos Cookies e, após o logout, destrua os identificadores da sessão;

1) Use HTTPS em todo lugar

Há alguns anos era comum os sites apenas forçarem o uso do protocolo HTTPS em áreas críticas e sensíveis como, por exemplo, no checkout, login ou cadastro.

Hoje, não só pela maior acessibilidade em gerar certificados SSL, é uma recomendação e um padrão que os sites rodem completamente sob o protocolo HTTPS. O HTTP caminha para se tornar defasado e os navegadores em breve emitirão warnings (sem exceção) para sites que rodem nele.

Desenvolvedor PHP Pleno
Formação: Desenvolvedor PHP Pleno
Nesta formação você aprenderá aspectos mais avançados da linguagem PHP, indo adiante nas características da linguagem, orientação a objetos, práticas de mercado, além da parte de integração com banco de dados. Ao final, estará apto a desenvolver sistemas usando banco de dados relacionais.
CONHEÇA A FORMAÇÃO

A Mozilla (mantenedora do Firefox) publicou no final de 2015 um post demonstrando intenção e um projeto para depreciar o HTTP.

Se a sua preocupação é o preço que se paga por um certificado SSL, bom, ela não deve mais existir! Meados de 2016 foi lançado o Let’s Encrypt, uma autoridade de certificação completamente gratuita. Ela é mantida por grandes organizações e através de doações. A ideia é tornar a web completamente HTTPS em alguns anos.

Há de se ressaltar, no entanto, que o protocolo HTTPS em si não garantirá que o seu site seja confiável, ele apenas garantirá a confidencialidade da troca de informações. Se você não cuidar dos dados do seu usuário como, por exemplo, se os trafegar no subterrâneo da web sem segurança, se salvar a senha dele em plain text na base, etc, de nada adiantará.

Ah, falando em protocolo HTTP, muito recomendo o nosso curso de introdução ao http. Com ele você terá uma visão geral muito bacana sobre os “bastidores” de como a web funciona. Essencial para qualquer desenvolvedor:

2) Armazene as senhas com segurança

Nunca armazene as senhas dos usuários em “plain text”, use algum moderno hash de password como o bcrypt (mais acessível) ou o Argon2, vencedor da última competição de password hashing. Ele é o que de mais moderno temos para passwords.

Se sua linguagem suportar nativamente (como é o caso do PHP 7.2) a library Libsodium, que é uma das mais recomendadas entre os especialistas de segurança como uma completa toolkit de criptografia e hashing, por agrupar os melhores e mais sofisticados algoritmos (como o Argon2, anteriormente mencionado), use-a. Mesmo se não suportá-la nativamente (na standard library), certamente haverá uma forma de importá-la para o seu projeto.

Não devemos, como desenvolvedores, partindo do pressuposto de que a maioria de nós não é especialista em criptografia, criar as nossas próprias bibliotecas para resolver tais questões. Usemos as criadas, testadas e auditadas por especialistas. Andar sobre um terreno desconhecido pode nos levar à nefastas consequências.

Vale a pena reforçar: Descarte qualquer artigo ou referência que indique algoritmos de hashing como o MD5 e SHA1 para armazenamento de passwords (mesmo que com salt’s). Eles não foram projetados para esse propósito. Além disso, não são seguros, principalmente por serem suscetíveis à ataques de colisão. Uma colisão num algoritmo de hashing é, basicamente, uma mesma saída sendo representada para diferentes entradas (sendo que a premissa deles é, em teoria, uma representação (de saída) única para cada entrada).

Leitura recomendada: Password Storage Cheat Sheet.

Se você usa um Web Framework (Rails, Laravel etc), é bem possível que ele já abstraia uma camada de autenticação usando as melhores práticas. Mas é sempre bom tirar um tempo e consultar a documentação.

3) Não impeça o seu usuário de criar uma senha forte

É extremamente comum sites que possuem regras bastante estranhas (quiçá equivocadas) para a definição de passwords. Eu passo bastante por esse tipo de situação pois eu uso um password manager e crio senhas únicas de mais de 32 caracteres para cada serviço, no entanto, não é todo site que as aceita.

Algumas das regras que considero equivocadas:

Exigir que o password tenha apenas letras e números (sem caracteres especiais);

Se o seu site usa um hash de password como comentado anteriormente (e ele deveria usar um), ter a senha com caracteres especiais, números, letras etc, nunca vai ser um problema. Muito pelo contrário, se puder, incentive o seu usuário a criar senhas que usem toda essa pluralidade (mas, sem obrigá-lo, ademais, a segurança também é uma responsabilidade que precisa partir do usuário).

Delimitar o tamanho do password;

Alguns sites delimitam um máximo de 14 ~ 16 caracteres para a senha. Isso não faz sentido. Limitar um mínimo, até faz e, nesse caso, é você prezando (ou ao menos tentando) pela qualidade da senha do seu usuário. Por exemplo: “A senha deve ter no mínimo 6 caracteres”.

Se o seu site lida com informações sensíveis e críticas, você até pode ter um sistema que aceite senhas pequenas, desde que você implemente, por exemplo, autenticação multifator (multi-factor authentication). Um exemplo são os bancos, a senha web é pequena, no entanto, não é possível acessar a interface da conta sem confirmar o token que é gerado por aplicativo ou enviado por SMS.

A estratégia e o critério aqui vai depender do nicho do seu negócio, da criticidade das informações transacionadas por ele.

Como regra geral: Se o seu usuário quer cadastrar uma senha forte, não o impeça disso. É frustrante.

4) Não transporte pela rede, sem motivo, os dados sensíveis do seu usuário

Eu já passei, mais de uma vez, pela situação de o site me enviar no e-mail a senha que eu usei no cadastro. Isso é uma das piores coisas que você pode fazer ao confirmar um cadastro.

A senha do seu usuário é um dado sensível, extremamente sensível, é sagrada. Ela não pode e nem deve ser exposta. Tanto que, ao gravá-la na base de dados, temos o cuidado de usar um hash de password.

Infelizmente a maioria dos usuários ainda não tem a cultura de usar um password manager e, naturalmente, com uma web tão saturada, tantos serviços, tantas redes sociais, as senhas são normalmente reutilizadas em dezenas de serviços. É bem que possível que aquela senha que foi enviada no e-mail seja a porta de entrada para dezenas de outros serviços que o seu usuário utiliza.

5) Limite as tentativas de login

Logins são alvos de bots em ataques de força bruta. Criar um mecanismo para limitar um número de vezes que um determinado IP pode tentar logar (ou IP e username) é uma boa alternativa.

Alguns frameworks já possuem tal implementação, bastando apenas utilizá-la, normalmente é um middleware que precisa ser atrelado à rota de login. Cada tentativa de acesso é salva em cache (de preferência cache em memória) e se ultrapassar o limite estabelecido (por exemplo, 6 tentativas), o usuário fica bloqueado de tentar novamente por um ou dois minutos, por exemplo (a depender da sua escolha).

Se o seu login estiver sob forte ameaça desse ataque, uma opção paliativa é usar um captcha como o reCaptcha do Google, ao menos que temporariamente. O problema dessa opção é que prejudica muito a usabilidade do usuário mas, dependendo da situação, pode ser uma grande aliada.

Se o ataque de força bruta estiver generalizado e vindo de muitos diferentes IP’s, talvez uma boa opção seja utilizar um serviço de segurança que trabalhe como um firewall ainda no DNS mitigando-os (como a Cloudflare).

6) Deixe-o opcionalmente resetar a senha

Essa opção é excelente para a usabilidade do usuário, imagina se ele tivesse que entrar em contato sempre que precisasse alterar a senha? Mesmo que essa não seja uma prática rotineira, seria contra-produtivo.

Mas há de se ressaltar que esse é um processo razoavelmente crítico e que costuma sofrer ataques, portanto, precisa ser bem modelado. Abaixo vou listar o que não deve ser feito ao resetar uma senha e algumas recomendações do que pode / deve ser feito.

O que não deve ser feito:

  • Não envie a nova senha no e-mail;
  • Não envie a senha antiga no e-mail;

Pra começo de conversa, se você ao menos tem o “poder” de conhecer a senha antiga do seu usuário, está errado, pois isso mostra que ela está sendo armazenada em plain text.

O que deve / pode ser feito:

  • Dê opção no seu painel administrativo para o usuário desativar a opção de recuperação de senha.

Pode parecer “estranha” essa hipótese, mas quem usa um password manager pode não ter interesse em ter a função de recuperar senha. Pra ele não faz muito sentido. Tê-la sem que ele vá utilizar, pode vir a ser, no futuro, uma brecha para a segurança da conta. Vamos pensar, hipoteticamente: ele esquece a conta de e-mail logada no computador da empresa onde trabalha. Um usuário a acessa e então pode solicitar a recuperação da senha de algum serviço que ele usa, o e-mail chegará, ele alterará a senha e por consequência, terá o controle da conta.

É verdade que a hipótese acima não aconteceria se houvesse uma verificação adicional como, por exemplo, enviar um token via SMS para o usuário confirmar e só então enviar o e-mail com o link para resetar a senha.

O fluxo padrão de uma recuperação de senha efetiva:

  • Gere um token para recuperação da senha e salve-o no banco de dados;
  • Se uma nova tentativa de recuperar a senha for realizada, remova o token anteriormente criado e gere um novo;
  • Envie o token no e-mail do usuário, em um link, para que ele não precise copiá-lo e depois colá-lo em algum input do site para validação;
  • Após a definição da nova senha, remova o token da base de dados;

Há diferentes estratégias para essa geração e avaliação dos tokens. Existem detalhes conceituais que precisam ser considerados, como: avalio o token diretamente na base de dados ou avalio em constant time usando uma função segura para avaliação de strings? Em constant time é a melhor opção, pois evita timing attack. No PHP temos a função hash_equals() que compara duas strings de forma segura.

O objetivo desse artigo não é adentrar em detalhes de implementação, mas eu deixo aqui uma excelente referência para estudo.

Desenvolvedor Java Web Pleno
Formação: Desenvolvedor Java Web Pleno
A formação Desenvolvedor Java Web nível Pleno da TreinaWeb tem como objetivo a apresentação de tecnologias mais avançadas para o desenvolvimento de aplicações web dentro da plataforma Java. Além de serem abordados frameworks e bibliotecas populares no desenvolvimento web, como o jQuery e o Bootstrap, a formação também dá um foco especial a um dos mais importantes frameworks dentro do ecossistema Java: o Spring, largamente utilizado para criação principalmente de aplicações baseadas na web.
CONHEÇA A FORMAÇÃO

7) Cuide da criação dos Cookies e, após o logout, destrua os identificadores da sessão

Num sistema tradicional de autenticação por cookie, temos essa relação:

A credencial do usuário é validada, um cookie é enviado na resposta da requisição HTTP (e o navegador trata de criá-lo no disco). No lado do servidor, um arquivo que identifica esse Cookie também é criado e é nesse arquivo que alguns dados dos usuários são salvos (id etc), no servidor, isso é o que chamamos de “sessão”. Normalmente é salvo no disco, mas também pode ser salvo em memória (memcached, redis etc). Sempre que o seu usuário fizer logout, essa referência que ficou no servidor (esse arquivo de sessão), precisa ser forçadamente removido.

Segurança:

Sempre crie os seus Cookies configurando-os como “Secure” e “httpOnly”.

Quando criado como “Secure”, ele só roda sob HTTPS. E quando criado como “httpOnly” não é possível resgatá-lo via JavaScript, isso previne que algum ataque XSS bem sucedido roube-o.

Leitura recomendada: httpOnly

Ah, claro, outra boa prática: criptografe o conteúdo dos seus cookies. Se você observar novamente a última imagem, mais especificamente na key “content”, verá que é um conteúdo criptografado. A ideia é não expor facilmente alguma informação sensível.

Novamente, vale reiterar: se você usa um framework importante da sua linguagem, teoricamente ele segue (ou deveria) as melhores práticas acima mencionadas. Mas é bom certificar-se de tais pormenores.

Previna ataques cross-site utilizando SameSite cookies:

SameSite é um atributo relativamente novo disponível para a criação de Cookies. Ele foi colocado como recomendação da IETF no ano passado (em 2016).

Esse atributo é suportado pelo Chrome desde a versão 59. O suporte completo você pode conferir aqui. Ele resolve a maioria dos ataques de CSRF.

Um ótimo case é do Dropbox, a equipe de engenharia deles explica aqui como aplicarem esse novo atributo e o que ele resolve para eles.

Aproveite e também leia: Cross-Site Request Forgery (CSRF) e abordagens para mitigá-lo

Concluindo

Há, certamente, outros tópicos importantes intrinsecamente ou não relacionados à autenticação e que certamente abordarei em outros artigos como, por exemplo, cuidar da validação dos dados recebidos, na camada de acesso ao banco de dados usar queries parametrizadas e assim por diante.

Até a próxima!

Aumente a segurança na Digital Ocean com o Cloud Firewalls

A Digital Ocean é uma empresa de cloud computing que está sempre com novidades e um ponto que chama atenção é a contínua melhora da plataforma. A empresa está sempre lançando novos recursos que são documentados através de uma comunicação clara com os desenvolvedores, seja através do blog, documentação ou contato direto com a comunidade. Outro fator relevante é a facilidade de se usar os novos recursos e esse é, certamente, outro ponto forte da plataforma.

Segurança na nuvem

Ao configurar qualquer servidor ligado na internet a segurança é uma das primeiras coisas que devemos pensar. Antes da Digital Ocean possuir o recurso Cloud Firewalls que veremos nesse artigo, era necessário configurar iptables manualmente no Linux. O grande problema da configuração manual não está quando temos apenas uma máquina para rodar determinado serviço, mas quando várias máquinas são utilizadas ou quando existe uma rede com Load Balancers e outros recursos dentro da plataforma e aí esse trabalho de configuração manual pode se tornar bastante complexo.

Em outras plataformas a utilização de firewall padrão não é novidade, por exemplo, na AWS e no Google Cloud Plataform esse recurso já existe há algum tempo.

HTTP - Fundamentos
Curso de HTTP - Fundamentos
CONHEÇA O CURSO

Conceitos básicos do Cloud Firewalls

Antes, alguns aspectos que precisamos conhecer:

  • No firewall existem as regras de entrada e as regras de saída;
  • Dentro de uma regra é possível selecionar o protocolo, porta única ou range de portas e quem terá permissão de acesso;
  • Por fim, temos as VPSs e tags que esse firewall será aplicado. Um VPS pode ter muitos firewalls e um firewall pode ser aplicado a vários VPS’s;

Veremos na prática alguns exemplos.

Gerenciamento do Firewall

Para criar um novo firewall podemos acessar o gerenciador de 2 modos, na tela principal no menu Networking > Firewalls ou nas configurações de uma Droplet específica no menu Networking > Firewalls > Manage Firewalls. No gerenciador basta clicar em Create Firewall para criar um novo.

Por padrão, o firewall aceita conexões na porta 22 (SSH) de qualquer IP, seja IPv4 ou IPv6. Veja a imagem:

Imagem porta de entrada padrão

Vamos supor que você queira liberar a porta do SSH somente para um IP específico (e essa prática é encorajada):

Liberação porta de entrada ip especifico

Outro recurso legal é o uso de Tags. Dentro da plataforma é possível criar tags para agrupar recursos, por exemplo, vamos supor que você queira liberar o acesso à porta do MySQL somente para as droplets que possuam a tag servidor-web:

Abertura porta de entrada para uma Tag

Nas regras de saída temos algo bem parecido:

Portas de saída padrão firewall

Por padrão as regras de saída são:

  • Permite tráfego ICMP de qualquer endereço IPv4 e IPv6
  • Permite tráfego de saída TCP para todas as portas em qualquer endereço;
  • Permite tráfego de saída UDP para todas as portas em qualquer endereço;

É possível configurar essas regras para ficarem mais restritivas, apesar do tráfego de saída não ser tão perigoso como o de entrada.

Por fim, deve ser escolhido o local onde o firewall será aplicado, pode ser em um ou mais Droplets ou Tags:

Locais onde o firewall será aplicado

No exemplo acima está sendo aplicado a todos os recursos com a Tag servidor-web e ao Droplet treinaweb-test.

Conclusão

Um dos princípios de segurança mais importantes é a permissão mínima. Sempre que for configurar seu firewall libere apenas as permissões mínimas necessárias para as conexões usadas no seu servidor. Serviços como SSH e MySQL preferencialmente devem ser liberados para acesso somente ao IP do administrador ou de alguma outra máquina que acesse esse serviço e, com isso, restringe-se a maioria dos ataques possíveis.

Por fim, vale destacar os limites do Firewall da Digital Ocean:

  • Quantidade total de regras de entrada e saída de um firewall: 50
  • Quantidade de Droplets por Firewall: 10
  • Firewalls por Droplet: Ilimitado
  • Tags por Firewall 5.
  • Droplets por tag: Ilimitado

Caso queira mais de detalhes, você pode acessar o exemplo oficial.

Administrador AWS Júnior
Formação: Administrador AWS Júnior
Nesta formação você aprenderá os conceitos fundamentais para trabalhar com cloud computing, além de conhecer na prática a lógica de trabalho na Amazon Web Services (AWS) e seus principais serviços.
CONHEÇA A FORMAÇÃO

Segurança em SOA: Como proteger os web services?

No último artigo sobre SOA, vimos sobre a Arquitetura Orientada a Serviços e como ela funciona. Vimos que uma implementação dessa arquitetura pode ser realizada com qualquer tecnologia baseada em web, mas geralmente a SOA é implementada utilizando Web Services, já que estes são fáceis de implementar e distribuir. Estes mesmos web services também são responsáveis por expor, através de uma rede, um determinado serviço. Sendo assim, eles precisam de uma atenção especial quanto à segurança. Como saber se meus web services estão realmente protegidos?

HTTP - Fundamentos
Curso de HTTP - Fundamentos
CONHEÇA O CURSO

Serviços

Antes de qualquer coisa vamos retomar à definição sobre o que é um serviço. Para que se possa ter uma real governança em TI em uma empresa é necessário saber que isso não é atingido do dia para a noite. É um processo de longo prazo, por isso exige muita cautela dos processos como um todo, mantendo um alinhamento estratégico entre o negócio e a TI. O Negócio e a TI precisam trabalhar juntos!

Um dos autores mais famosos deste segmento, Thomas Erl, escreveu o livro SOA: Princípios do Design de Serviços, onde ele aborda 8 “regras” para definir um serviço. Nesse livro, ele enumera o que considera essencial para fazer uso da SOA “de verdade”. São eles:

Serviços são reutilizáveis

Essa é talvez uma das principais regras. Para isso acontecer, é necessária a interação da TI e do negócio. Quanto mais um serviço for genérico e puder ser reaproveitado, melhor!

Serviços compartilham um contrato formal

Todo serviço deve vir acompanhado de um “contrato”, onde ele deve informar o que o serviço faz e como ele se comunica.

Serviços possuem baixo acoplamento

Baixo acoplamento significa que certas implementações de um serviço podem ser modificadas, evoluídas e até mesmo substituídas, sem afetar negativamente os consumidores deste serviço.

Serviços abstraem a lógica

Serviços não devem expressar as regras de negócio. Os serviços SOA devem guardar os detalhes de sua implementação, até mesmo caso seja preciso modificar a lógica do negócio, não comprometendo as obrigações do serviço escritos no seu contrato.

Serviços são capazes de se compor de outros serviços

A composição também é uma forma de reutilização. Sendo assim, um serviço pode muito bem chamar um outro serviço para executar a sua tarefa.

Serviços são autônomos

Um serviço também deve ser autônomo, ou seja, apenas ele é suficiente para executar sua lógica.

Serviços evitam alocação de recursos por longos períodos

Quando um serviço é reutilizado, devemos tomar alguns cuidados. Não se deve criar muitas instâncias de um mesmo serviço, pois isso pode sobrecarregar a infra-estrutura. Para isso não acontecer, o serviço deve evitar reter informações específicas em uma determinada atividade.

Serviços devem possuir a capacidade de serem descobertos

O que eu quero dizer é que a capacidade dos serviços serem descobertos significa a visibilidade deles.

Para que isso ocorra, o contrato deve ser bem descrito, evitando que novos requerimentos resultem em serviços redundantes.

Agora que já entendemos um pouco melhor sobre como nossos serviços devem se comportar, vamos a um outro ponto do nosso artigo.

Imagine que uma empresa esteja fazendo o uso de SOA. O que pode acontecer se ela estiver utilizando um web service onde suas informações estão trafegando pela rede sem proteção???

a imgem exibe três macacos

Isso mesmo: acessos indevidos e possíveis interceptações das informações que trafegam pela infraestrutura dos serviços SOA!

Sendo assim, a necessidade de se proteger os recursos envolvidos com a aplicação da SOA no ambiente de TI é uma necessidade real.

Flask - Desenvolvimento de APIs REST
Curso de Flask - Desenvolvimento de APIs REST
CONHEÇA O CURSO

Conheça o WS-Security: Segurança para Web Services

A tecnologia WS-Security (Web Services Security) é um padrão que tem a intenção de apoiar a SOA no sentido de prover segurança quando os dados são trocados. O WS-Security disponibiliza um sistema rico para prover segurança, tanto em confidencialidade quanto em autenticação.

Apesar disso, o WS-Security não funciona sozinho. Ele funciona em conjunto com as especificações WS-Policy e WS-SecurityPolicy. Essas especificações têm por objetivo, respectivamente, estabelecer políticas gerais a respeito de segurança, qualidade de serviço, confiabilidade; além de estabelecer quais são as políticas de segurança aplicáveis a um determinado serviço.

Na figura abaixo, podemos ver a estrutura de segurança que é fornecida pelo WS-Security, fazendo também uso da estrutura do WS-Policy.

estrutura do ws-security

Esses conceitos são baseados em cinco requisitos comuns de segurança: identificação, autenticação, autorização, confidencialidade e integridade.

Se um solicitante quiser acessar os serviços em segurança, primeiramente ele deve fornecer informações que expressem a sua origem. O WS-Security armazena essas informações em um cabeçalho padronizado, cujo ponto é referido como um token.

A autenticação requer a prova de que a mensagem que está sendo entregue ao destinatário é realmente do remetente que alega ser, fornecendo uma prova de que sua identidade reivindicada é verdadeira.

Após a autenticação, o destinatário pode precisar determinar se o solicitante está autorizado a fazer o que ele tenta fazer. Isto é chamado de autorização. Já a confidencialidade está diretamente ligada com a proteção e privacidade do conteúdo da mensagem, onde a mensagem deve ser mantida como confidencial e nenhum serviço ou mensagem não autorizada deve ver seu conteúdo.

Por último, temos a integridade, que garante que a mensagem não foi alterada desde a sua saída do remetente, garantindo que a mensagem permaneceu intacta a partir do momento de transmissão para o ponto de entrega.

Percebe a necessidade de se proteger as estruturas SOA em uma organização? Os benefícios adquiridos são muitos. Fazendo o uso correto das normas de segurança, a empresa poderá se beneficiar com o uso da SOA sem se preocupar com a integridade de suas informações, ponto de preocupação este que é de certa forma recorrente em organizações que iniciam o processo de adoção de uma arquitetura SOA.

Desenvolvedor ASP.NET Full-Stack
Formação: Desenvolvedor ASP.NET Full-Stack
A formação Desenvolvedor ASP.NET Full Stack da TreinaWeb tem como objetivo abordar as duas principais plataformas dentro do ASP.NET: o ASP.NET MVC, para criação de aplicações web seguindo o padrão MVC/MVW; e o ASP.NET WebAPI, para criação de APIs RESTful que sigam os padrões mais atuais da indústria.
CONHEÇA A FORMAÇÃO

© 2004 - 2019 TreinaWeb Tecnologia LTDA - CNPJ: 06.156.637/0001-58 Av. Paulista, 1765, Conj 71 e 72 - Bela Vista - São Paulo - SP - 01311-200