segurança

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.

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.

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.

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.

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.

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 determinados aplicativos, aumentando a segurança das informações que estão inseridos nestes.

Para que serve o certificado SSL?

O número de pessoas que executam transações sensíveis na internet (como compras online, transações bancárias, etc.) cresce cada vez mais. Porém, com a facilidade que a internet trouxe em geral para a execução destas operações, os cuidados devem ser redobrados. Analisar e verificar os sites onde estas operações são feitas com o intuito de detectar se o site é confiável, real e seguro é algo essencial.

Por isso, aspectos relacionados a segurança em geral em aplicações web merecem uma atenção especial. A sensação de segurança que uma aplicação web passa a seus usuários é algo extremamente importante, pois inspira confiança e credibilidade. Uma aplicação web precisa garantir que é verdadeira e que as informações trocadas estarão criptografadas e seguras. Visando isso, a implementação de um certificado SSL torna-se algo essencial.

O SSL (Secure Socket Layer) é um mecanismo de criptografia com o objetivo de aumentar a segurança na troca de informações entre clientes e servidores, protegendo a integridade e veracidade do conteúdo que trafega na internet. O certificado garante que a informação do navegador chegará de forma segura desde um cliente (como um browser) até o servidor do site. Quando você coloca seu número de cartão de crédito em uma página que utiliza SSL por exemplo, os números serão codificados e embaralhados, dificultando que um invasor ou interceptador consiga ver o número de cartão de crédito informado.

Com a utilização do certificado SSL, o endereço do seu site passa de HTTP para HTTPS, indicando que as informações trafegadas entre cliente e servidor ocorrerão através do protocolo SSL/TLS e que as informações serão criptografadas. Além disso, os browsers modernos passam a exibir o desenho de um cadeado antes da URL, fazendo com que o usuário saiba que a aplicação web é segura.

O HTTPS (sigla para Hyper Text Transfer Protocol Secure ou Protocolo de Transferência de Hipertexto Seguro) é uma derivação do protocolo HTTP com uma camada SSL/TLS adicional implementada, o que adiciona mais segurança ao HTTP. Como o HTTPS utiliza criptografia, as chances de um intruso interceptar as mensagens trocadas entre cliente e servidor e obter acesso ao conteúdo destas mensagens reduz-se consideravelmente, pois as mensagens passam a ser criptografadas através de certificados digitais. Quando falamos sobre aplicações web, essa criptografia é essencial: através do tradicional HTTP, as mensagens são trafegadas como texto puro, ou seja: caso um interceptador capture mensagens HTTP, este terá total acesso a seu conteúdo sem maiores dores de cabeça. Com o HTTPS e sua criptografia inerente, esse risco é drasticamente reduzido.

Além de deixar o seu site mais seguro e confiável, a utilização do certificado SSL traz um outro benefício: a otimização do SEO. São diversos fatores que influenciam o ranqueamento dos sites no Google, sendo que um destes fatores é justamente a utilização de SSL. Como o Google considera o certificado SSL um benefício importante para os usuários, ele prioriza isso ao selecionar os sites que aparecem na busca, melhorando o posicionamento do seu site.

Como ele funciona?

O ciclo de uma transmissão HTTPS começa com um certificado digital. Um certificado digital é como se fosse uma espécie de RG eletrônico, identificando a sua aplicação como sendo uma aplicação confiável e verdadeira. Certificados digitais devem ser obtidos através de entidades certificadoras (ou CAsCertification Authorities), pois somente estas têm as permissões necessárias para gerar certificados digitais válidos. É um processo muito parecido com o RG humano propriamente dito… Um RG não pode ser emitido em qualquer lugar: ele deve ser solicitado somente em locais autorizados a lidarem com a emissão de RGs e que tenham acesso aos sistemas estaduais e nacionais de identificação. É o mesmo cenário com certificados digitais, já que estes irão identificar sua aplicação dentro de toda a web. Algumas entidades certificadoras são Verisign, GeoTrust, Comodo e Amazon. O serviço de geração de um certificado é geralmente pago e deve ser feito peridiodicamente, pois os certificados possuem uma data de expiração. Também existem serviços que emitem certificados de maneira gratuita, como o Let’s Encrypt.

Um certificado é composto basicamente por duas partes: uma chave pública e uma chave privada que são geradas randomicamente pela entidade certificadora. A chave pública é utilizada para verificar os clientes que realizam as requisições, enquanto a chave privada é utilizada para a realização do processo de criptografia.

Quando você se conecta a um servidor que utilize HTTPS/SSL para a transferência de informações, o servidor irá responder inicialmente com a chave pública e o certificado associado à aplicação que está sendo acessada. Cabe ao cliente (como um browser), ao receber esta chave, verificar alguns pontos:

  • Se a chave pública não está expirada (o que ocorre quando o certificado já se encontra expirado);
  • Se a chave pública pertence realmente à aplicação que está sendo acessada;
  • Se o cliente consegue descriptografar a assinatura digital do certificado enviado, o que significa que aquela chave pública e aquele certificado são válidos.

Quando um destes pontos de verificação falha, o cliente (como um browser) aborta a conexão e mostra uma mensagem de alerta para o usuário parecida com a tela abaixo.

Caso todas as verificações ocorram com sucesso, o browser entende que a comunicação está sendo feita com um servidor confiável.

Quando o cliente detecta que a conexão é confiável, o cliente cria uma nova chave, chamada de chave de sessão ou session key. Com a chave de sessão criada, o cliente envia esta chave de volta ao servidor, porém, criptografada com a chave pública validada nos passos anteriores.

Quando o servidor recebe a chave de sessão do cliente, ele utiliza a chave privada (que nunca é trafegada entre as requisições) para tentar obter a chave de sessão informada pelo browser. Um conteúdo criptografado com a chave pública só pode ser descriptografado com a chave privada, o que garante a autenticidade e legitimidade das informações que são trafegadas criptografadas com a chave pública. Caso o servidor consiga realizar este processo, é enviado de volta ao cliente uma resposta de que “está tudo OK”, também chamada de ACK (acknowledgement ou reconhecimento). Esse processo todo é chamado de handshake, pois agora somente o cliente e o servidor têm conhecimento das chaves públicas e de sessão que foram trocadas. É como se o cliente e o servidor tivessem se identificado um com o outro e, após existir a confiança entre os dois, ambos apertassem as mãos e disessem: “sei que você é você mesmo de fato e, por isso, confio nas informações que vamos trafegar entre nós”.

A partir deste momento, o servidor passa a responder as informações de volta ao cliente criptografando-as com a chave de sessão que somente o cliente e o servidor têm conhecimento. O cliente passa a utilizar a chave de sessão para descriptografar as informações enviadas pelo servidor. Quando o cliente precisa enviar informações para o servidor, este utiliza também a chave de sessão para criptografar o conteúdo, enquanto o servidor utiliza a mesma chave (que somente este cliente e o servidor possuem conhecimento) para descriptografar o conteúdo.

Veja que o processo de confidencialidade é bem forte neste processo: se algum interceptador interceptar estas mensagens, este não terá a chave de sessão vinculada ao cliente para descriptografar as mensagens. Ele também não conseguirá obter esta chave de sessão, mesmo que ele tenha acesso à chave pública do certificado: não se esqueça que o conteúdo criptografado com a chave pública só pode ser descriptografado com a chave privada. A única maneira de um invasor conseguir descriptografar o conteúdo é se este, de alguma maneira, tiver acesso à chave privada do certificado do servidor ou à chave de sessão do cliente.

Um ponto interessante é que esse processo de criptografia que é utilizado no HTTPS é chamado por muitos de criptografia assimétrica, já que existem duas chaves de criptografia utilizadas durante o processo: uma estática, mas que fica escondida no cliente (no caso da chave privada) e no cliente (no caso da chave de sessão); e uma chave pública, cujo conteúdo só pode ser descriptografado justamente com a chave privada. Veja que esse processo é diferente da criptografia “tradicional”, que também é dita como criptografia simétrica, onde só existe uma chave estática para a realização do processo de criptografia e descriptografia.

Protegendo suas aplicações Python de SQL Injection

Um dos maiores problemas que assombram os desenvolvedores de software é o SQL Injection. Essa técnica pode permitir que um código SQL seja executado através da aplicação cliente sem qualquer tipo de restrição e, assim, alterar os dados sem qualquer conhecimento dos administradores do sistema. Parece grave, certo? E, realmente, é. Sendo assim, neste artigo falaremos um pouco sobre o SQL Injection e como proteger aplicações Python deste tipo de ataque.

O problema

Como dito anteriormente, o SQL Injection permite que código SQL seja executado através da aplicação cliente diretamente no banco de dados. Isso permite que hackers consigam alterar dados de forma irrestrita e sem consentimento dos administradores do sistema, o que é um problema muito grave em relação a segurança de um sistema. Para entender melhor este problema, vamos a um exemplo prático.

Imagine uma aplicação simples em que seja possível atualizar clientes passando seu nome e idade. Focando apenas no back-end da aplicação e sem qualquer tipo de verificação de SQL Injection, o código responsável por atualizar clientes seria basicamente da seguinte forma:

nome = 'João'
cursor.execute(f"UPDATE cliente SET nome={nome} WHERE idcliente=13")

O código acima irá atualizar o nome do cliente com id 13 para “João”. Até aí, tudo bem. Estamos apenas atualizando o nome de um cliente em nosso banco de dados. Porém, imagine que, ao invés de passar apenas ‘João’ para a variável nome, passarmos um código SQL:

nome = "'Carlos' , idade = 80"
cursor.execute(f"UPDATE cliente SET nome={nome} WHERE idcliente=13")

O código acima permitirá que o nome e idade do cliente com id 13 sejam alterados simultaneamente, sem permissão ou consentimento do administrador do sistema. Até pode paracer bobagem não permitir a edição da idade de um cliente, porém, imagine um sistema bancário com este mesmo problema e que permita que o valor do saldo seja alterado pelo usuário… Complicou, né?

A solução

Para solucionar o problema do SQL Injection, precisamos parametrizar as querys utilizadas em nosso programa e, assim, não permitir que um código SQL seja executado pelo lado cliente da aplicação. Para isso, alteramos a query da seguinte forma:

nome = "'Carlos' , idade = 80"
cursor.execute("UPDATE cliente SET nome=%(nome)s WHERE idcliente=13", ({'nome': nome, }))

Com o código acima, não vamos mais executar o código presente na variável "nome" no UPDATE. Ao invés disso, todo o conteúdo desta variável será armazenado como nome do cliente com id 13. Fazendo com que, o nome do cliente com id 13 seja "Carlos, idade = 80" e a sua idade permaneça inalterada.

Concluindo

Desta forma, não vamos mais permitir que os campos de uma determinada tabela sejam alterados sem permissão do sistema e, assim, garantimos muito mais segurança para a nossa aplicação.

JUNTE-SE A MAIS DE 150.000 PROGRAMADORES