Como criar software seguro em dispositivos móveis e desktops

Publicados: 2019-03-06

No mundo moderno, as preocupações com segurança atraem mais atenção do que nunca. Vários hackers e golpistas começaram a florescer com o surgimento de criptomoedas que valem centenas e milhares de dólares por moeda. Dados confidenciais de celebridades, credenciais bancárias, informações sobre transferências de dinheiro ou novas tecnologias – os trapaceiros online se beneficiam de tudo porque as pessoas tendem a ignorar as principais medidas de proteção.

No entanto, um peixe fede da cabeça para baixo. Sem recursos de segurança adequados projetados por desenvolvedores de software, é impossível proteger seus dados no lado do cliente. Considerando o fato de que os dispositivos móveis ganham mais popularidade devido ao aumento constante de funcionalidades, enquanto as plataformas desktop/web permanecem com as melhores classificações, queremos descobrir como os autores podem tornar seus produtos compatíveis e seguros. Você encontrará dicas para usuários na última seção.

Segurança em poucas palavras

Primeiramente, vamos distinguir entre segurança de aplicativos e software de segurança. Esses termos podem parecer sinônimos, mas estão relacionados a diferentes aspectos, onde a primeira definição representa a segurança geral do produto lançado e a segunda abrange os estágios pós-implantação e pré-implantação.

Basicamente, os aplicativos de software são ferramentas simples que ajudam os usuários a interagir com os dados, seja por meio de dispositivos móveis ou plataformas de desktop. Digamos, se você quiser verificar um registro de saúde ou obter informações sobre suas transações recentes, é muito mais conveniente usar um smartphone ou site de hospital/banco em vez de ligar ou visitar esses lugares.

O problema é que o software não reconhece os tipos de dados classificados por sua sensibilidade. Sem categorias e acessos programados manualmente, os aplicativos não conseguem distinguir seu nome dos números CVV/CVC do seu cartão de crédito. Portanto, é importante começar a construir um sistema de segurança adequado desde os primeiros estágios de desenvolvimento. Veja algumas dicas sobre esse processo:

  • Faça uma codificação segura.
  • Classifique os dados e defina os requisitos de autorização.
  • Localize bugs e elimine-os.
  • Avalie a segurança em cada estágio de desenvolvimento.
  • Verifique a confiabilidade de coisas de terceiros.
  • Eduque os desenvolvedores sobre técnicas de fraude.
  • Exigir 2FA dos funcionários.
  • Atualize regularmente o software após seu lançamento.

Problemas de segurança conhecidos

É quase impossível criar um aplicativo protegido sólido sem entender como as plataformas móveis e de desktop são vulneráveis ​​a hackers. Simplificando, existem algumas abordagens tradicionais para invadir dispositivos com arquitetura diferente, então propomos verificá-las agora. Esses pontos devem ajudar durante o estágio de design, quando você planeja as melhores medidas de segurança para produtos móveis e desktop.

Smartphones e tablets

O estilo de vida em movimento apresenta dispositivos móveis obrigatórios. Assim, muitas pessoas agora transferem seus dados principais de computadores para smartphones ou pelo menos sincronizam informações entre duas plataformas. Como resultado, temos outro ponto em que os golpistas podem ter acesso a dados valiosos. Tecnicamente, existem três aspectos vulneráveis:

  • Hardware do dispositivo.
  • Software em si.
  • Redes públicas.

Por exemplo, ladrões podem facilmente roubar seu telefone em uma multidão, fazer root nele e ter acesso a tudo dentro do sistema. O hardware também pode ser manipulado se você comprar gadgets de distribuidores não oficiais. Além desse ponto fraco, os hackers são conhecidos por invadir smartphones e tablets por meio de redes Wi-Fi públicas desprotegidas. Por fim, não vale a pena instalar malware por meio de um jogo comum ou aplicativo de mídia se for baixado da loja não oficial.

Web e desktop

Ambos os navegadores e o software baixado geralmente funcionam de maneira semelhante se exigirem uma conexão com a Internet. Aqui, o aplicativo atua como um lado do cliente que envia solicitações e obtém resultados enquanto o banco de dados principal (e interfaces se você usar um navegador para navegar pelos sites) está localizado no servidor conectado. Assim, os desafios de segurança dividem-se em três partes:

  • Do lado do cliente.
  • Lado do servidor.
  • Processo de troca de dados.

O problema mais perigoso está relacionado ao software legado, pois os invasores online podem facilmente invadir interfaces antigas que não são mais protegidas por sistemas atualizados. Além disso, cache de página, serviços de criptografia ruins e endereços/informações confidenciais expostas por cookies são potenciais links fracos que podem ser utilizados por hackers.

Desenvolvendo Software Seguro

Agora, a pergunta é: como criar um sistema confiável para ambas as plataformas se elas apresentam pontos fracos tão diferentes? Geralmente, existem três abordagens. Você pode escolher o mais adequado, mas não deixe de considerar os prós e contras de cada exemplo.

Celular E Desktop

Nesse caso, os desenvolvedores devem criar dois produtos (para plataformas móveis e para navegadores/desktops) separadamente um do outro. Os aplicativos não são interconectados ou sincronizados, portanto, prepare-se para despesas altas tanto em dinheiro quanto em tempo, pois sua equipe terá que investir duas vezes mais recursos. Como resultado, dois aplicativos separados serão lançados, cada um com proteção própria projetada especificamente para plataformas de destino.

Celular COM Desktop

Essa opção permite o lançamento de um site altamente adaptável, para que ele exiba todos os elementos corretamente para usuários da web e de dispositivos móveis. Como resultado, você obtém uma única plataforma com apenas um ponto fraco com base nas vulnerabilidades da web descritas acima. No entanto, o produto final será menos funcional do que as plataformas móveis nativas, o conteúdo será carregado mais lentamente e os recursos gerais serão limitados.

Desktop móvel PLUS

Em vez de criar projetos separados ou criar um site compatível com dispositivos móveis, existe a opção mais eficiente e segura. Várias equipes, incluindo desenvolvedores da Diceus.com, usam essa abordagem. É necessário criar uma única plataforma de back-end, mas instalar dois sistemas de front-end diferentes sobre ela.

Por exemplo, o software básico pode ser realizado usando a API RESTful, que suporta arquitetura escalável para dispositivos móveis e desktops. Além disso, o React.js é uma boa opção para front-end da Web, enquanto as estruturas Xamarin ou Cordova atendem às necessidades dos desenvolvedores de plataforma cruzada móvel.

Passando para as medidas de segurança, existem alguns métodos comprovados para a abordagem de desktop móvel:

  • Forneça criptografia de alto nível. Para versões web, é necessário ter uma tecnologia de criptografia real que impeça hacks.
  • Incluir detecções. Você poderá detectar malware a qualquer momento se os sistemas front-end tiverem uma forte conexão com a plataforma back-end.
  • Inclua autoproteção. Os aplicativos podem utilizar recursos de tempo de execução, como abandono de sessões inativas ou notificações de falha.
  • Teste o software regularmente. Use SAST para teste de código, DAST para aplicativos e infraestruturas e IAST para verificações de dados.
  • Atualizar e dar suporte a produtos. À medida que os ladinos inventam novos ataques, é melhor responder rapidamente com novas medidas defensivas.

O modelo de desenvolvimento descrito é o mais equilibrado em termos de recursos, funcionalidades e segurança. Você precisa criar e proteger três pontos (um back-end e dois front-ends) em vez de quatro elementos de produtos separados, mas obtém quase a mesma funcionalidade.

Proteção orientada ao usuário

No final do dia, não se esqueça da segurança do lado do cliente. Os desenvolvedores podem criar o melhor sistema possível, mas a negligência dos usuários estraga tudo. Ao usar software específico, independentemente de seu tipo, lembre-se da higiene da Internet: não confie em e-mails suspeitos, verifique novamente os certificados de criptografia dos sites, use antivírus etc. Sempre ative o 2FA para obter códigos de verificação extras via SMS ou aplicativos de autenticação. Use ferramentas de identificação biométrica, como impressões digitais ou detecção de rosto para smartphones e tablets.

No geral, não é difícil proteger os dados quando desenvolvedores e usuários sabem como fazê-lo. Os hackers perderiam o emprego se todos nós seguissemos rigorosamente as regras de segurança.

Tem alguma opinião sobre isso? Deixe-nos saber abaixo nos comentários ou leve a discussão para o nosso Twitter ou Facebook.

Recomendações dos editores:

  • Entrevista com Stu Grubbs, CEO da empresa de software de streaming Lightstream
  • 10 desenvolvedores de software que você deve seguir em 2019
  • 5 dos fornecedores de software de jogos mais populares
  • Aqui estão os maiores e mais bem sucedidos fornecedores de software iGaming
  • Seu software antivírus pode diminuir a velocidade da sua internet?