Da pedra à nuvem: viajamos à velocidade dos dados

Desde a escrita em pedra até ao uso de um teclado, seja de um smartphone ou de um computador, milénios de evolução trouxeram ao ser humano não só novas formas de expressão, como de arquivo de informação. A história conta-nos que a necessidade de preservar informação, guardando por exemplo documentos oficiais, remonta à Antiguidade. Os Arquivos Reais de Ebla (The Royal Archives of Ebla), uma cidade da Idade do Bronze, descobertos no século XX, são um dos exemplos desta prática. Também a civilização Romana decidiu criar um espaço para arquivar documentos oficiais, o Tabularium.

Contudo, ao contrário dos registos em pedra, a documentação em papiro e, mais tarde em papel, revelou-se mais vulnerável não só pelas características do material utilizado, mas também devido a fatores externos, como conflitos ou desastres naturais, levando a que muitos dados se tenham perdido para sempre.

Com o passar dos anos e a entrada na era digital, aprimoraram-se as técnicas de arquivo e muita documentação passou a ser digitalizada, não só para facilitar a sua conservação, como a sua consulta. O facto de contarmos, atualmente, com máquinas que nos permitem armazenar grandes quantidades de informação, também contribuiu para este processo e, hoje em dia, pastas com ficheiros acumulam-se nos nossos computadores, smartphones e tablets. Mas, à semelhança do papiro e do papel, também esta forma de guardar dados acarreta desafios. Nesta edição da rubrica Spotlight vamos percorrer alguns, num caminho que nos vai levar às nuvens.

 

Rumo à cloud: o desafio do armazenamento de dados

Diariamente, são geradas quantidades vastas de informação digital dados em todo o mundo, sendo que toda a informação é guardada temporária ou definitivamente em dispositivos pessoais ou de uma organização. Graças à facilidade, em segundos, de criar um ficheiro e o guardar num computador – e possivelmente na nuvem, estima-se que até 2025 a criação de dados possa chegar aos 180 zettabytes.[1]

Como forma de dar resposta a este elevado número de dados, começaram a ser desenvolvidas soluções para armazenar toda a informação de forma segura e facilmente acessível. Em 1963, surge a primeira proposta de criação de um serviço, que permitia que, pelo menos, duas pessoas acedessem em simultâneo ao mesmo computador. Estavam lançadas as bases para o sistema que hoje conhecemos como cloud, ou em português, nuvem.

Quase 50 anos mais tarde, em 2009, o conceito nuvem apresentava já alguns desenvolvimentos, motivando a pesquisa sobre o tema, e empresas como a Amazon, Google e Microsoft lançaram os primeiros serviços de computação em nuvem, como explica João Tiago Paulo, investigador no Laboratório de Software Confiável (HASLab) do INESC TEC, relembrando que, por exemplo, serviços de armazenamento remoto de email já existiam antes desta data.

[1] Um zettabyte é, equivale, aproximadamente, a 1 mil milhão terabytes.

Se por um lado, a computação em nuvem veio trazer um conjunto de benefícios, ao permitir que sobretudo as empresas possam rentabilizar tempo e recursos, ao recorrerem a serviços de armazenamento remoto para guardar e gerir os seus dados, a utilização destes serviços trouxe também um desafio: o desenvolvimento de ferramentas que permitam criar um espaço digital com capacidade para armazenar uma grande quantidade de dados, que possam ser consultados a qualquer momento, de qualquer parte do mundo, sem colocar em causa a segurança e a privacidade dos mesmos.

“A partir do momento em que as empresas começam a utilizar a computação em nuvem, esta passa a ser algo que levanta muitos desafios do ponto de vista dos sistemas distribuídos, porque passa a ser um sistema altamente complexo”, avança o investigador, dando como exemplo a utilização da nuvem por negócios de e-commerce.

“No caso de uma aplicação de e-commerce, de vendas, quando tinha o seu sistema a correr numa infraestrutura própria, já teria de ter um profissional ou uma equipa para garantir que tinha armazenamento suficiente para suportar uma grande quantidade de clientes a fazer compras em simultâneo, assegurando que o serviço estava sempre disponível. Se pensarmos que como esta empresa, muitas outras, passaram a usar a nuvem, este serviço tem de ser capaz de suportar não só os milhares de clientes daquele serviço de e-commerce, mas de todos os outros serviços que estão lá a correr. Em termos de sistemas distribuídos é muito interessante, porque estamos a falar de um sistema altamente complexo, que dá recursos de computação e armazenamento, que alivia as pessoas de terem que gerir estes servidores e de terem de se preocupar e resolver problemas como avarias, mas que levanta um problema que é a disponibilização de um serviço centralizado a milhões de pessoas, que deve estar sempre disponível e funcionar”, esclarece João Paulo.

Neste contexto, a forma como as empresas gestoras procedem ao armazenamento dos dados, a manutenção dos servidores ativos para o efeito, a constante preocupação em manter o sistema seguro e em funcionamento e a rentabilização de recursos e tempo para as empresas, tornam a nuvem num local onde cada vez mais pessoas e empresas optam por depositar informações pessoais e confidenciais.

 

Depois de clicarmos na opção “guardar”, onde ficam afinal os dados?

Sabemos, quando escolhemos a opção “guardar”, que estamos a colocar um determinado ficheiro, por exemplo, na cloud, mas será que sabemos verdadeiramente onde estamos a armazenar a nossa informação, quem a ela tem acesso e como funcionam os serviços que gerem remotamente os nossos dados? Será que corremos algum risco de a perder? Será mais seguro guardamos as nossas pastas num disco rígido ou numa pen-drive?

Guardar localmente os ficheiros apresenta certos riscos, uma vez que um disco rígido – ou mesmo um computador – pode avariar, e a probabilidade de recuperar os dados guardados é muitas vezes pouca. Por este motivo, cada vez mais as pessoas e empresas optam por guardar os dados na nuvem, acreditando na total eficácia e percentagem de responsividade, pelo rápido acesso ao conteúdo – através de um botão, a partir de uma qualquer localização, desde que com conexão a uma rede de internet – e pela segurança do processo. Existe, claramente, um antes e depois da nuvem no que diz respeito à fluidez do trabalho de uma entidade ou na organização dos ficheiros pessoais.

Mas, afinal, como é que funciona todo este processo?

“Depois de uma pessoa criar uma pasta, os ficheiros são guardados num disco rígido, de forma local, ou no OneDrive, na nuvem, por exemplo, com o auxílio de uma interface. O que acontece é que estes bytes, em vez de estarem guardados, localmente, no meu disco rígido, estão a ser enviados, via rede, para um sítio remoto, um centro de dados na Amazon, por exemplo”, explica João Paulo.

“O que o centro de dados vai fazer é receber esses bytes e guardá-los em discos. O processo é o mesmo, a grande diferença entre este modelo e o modelo anterior é que quando eu queria guardar os meus dados eu fazia-o no meu disco rígido e se o meu disco rígido falhasse, eu é que tinha de me preocupar em fazer backups. A partir do momento em que estes dados chegam à nuvem, são guardados em discos, também, mas toda a parte da gestão e segurança dos dados é feita pelas empresas que gerem os serviços. Fazem-no por mim. No fim, sei que quando aceder aos meus dados, eles vão lá estar”, completa o investigador, acrescentando que a principal diferença é que ao invés de acederem aos seus ficheiros através do próprio computador, os utilizadores vão fazê-lo através da Internet.

Mas, se já não estamos a guardar os nossos ficheiros só nos nossos computadores, se as empresas estão a passar os seus dados para outras empresas que os armazenam e gerem, que preocupações devemos ter?

Conforme explica Bernardo Portela, investigador no Laboratório de Software Confiável (HASLab) do INESC TEC, se pensarmos enquanto utilizadores pessoais, os anseios com a utilização da nuvem dependerão muito das nossas preocupações com a privacidade. Já para as empresas, estas preocupações são “absolutamente centrais”. “Se falarmos de empresas, que são realmente quem beneficia verdadeiramente da utilização do maior poder computacional da nuvem, sem dúvida. Até surgirem alternativas viáveis, em muitos casos, a nuvem não é sequer uma hipótese razoável, precisamente por causa das questões das preocupações de privacidade”, aponta o investigador.

Além disso, relembra Bernardo Portela, há legislação em vigor, como é o caso do Regulamento Geral de Proteção de Dados (RGPD), que impede que as empresas armazenem informação caracterizada como sensível, em qualquer espaço que não seja a sua infraestrutura, o que significa que, nesses casos, não é possível recorrer a serviços remotos.

Contudo, pensando nos casos em que é possível fazê-lo e, numa altura em que se tem verificado uma série de ataques informáticos a várias organizações, incluindo empresas, cujos dados são roubados, sob ameaças de resgate, páginas hackeadas ou eliminadas, a questão da vulnerabilidade dos dados ganha particular relevância, sendo que há alguns setores de atividade mais críticos, dado, como já vimos, o grau de sensibilidade dos dados que armazenam.

 

Depois de armazenados na nuvem, estarão os nossos dados seguros?

“Os ataques aos centros de dados surgem de muitas formas diferentes, e podem ir desde ameaças relativamente inócuas, como ataques de phishing, ou de alguém da parte administrativa de um destes servidores que ou utiliza uma password fraca ou que a revela inadvertidamente. Através de acesso a bases de dados, atacantes recuperam o acesso aos dados”, explica Bernardo Portela.

Segundo o investigador, a partir do momento em que armazenamos um ficheiro na nuvem, podemos não saber, enquanto utilizadores, muito bem onde está o servidor usado para o armazenamento, mas a é verdade é que se trata de um servidor como outro qualquer: “tem acesso à rede, tem acesso a vulnerabilidades”. “Portanto, administradores da rede e administradores do sistema podem aceder ao servidor e ver o que os ficheiros lá armazenados contêm. Se não houver cuidado, se os acessos não forem barrados adequadamente, atacantes podem quebrar uma password de um administrador e com isso aceder aos dados”, aponta, relembrando que a maioria dos ataques decorrem de falhas humanas.

Sob o desafio constante de manter a informação protegida na nuvem, Bernardo Portela explica o trabalho de investigação que tem sido feito nesta área para permitir que os dados sejam armazenados e partilhados de forma segura. Segundo o investigador, é sabido, desde os anos 90, como armazenar dados de forma segura, como os arquivar.

“Utilizo um sistema de cifras para construir criptogramas, que representam os meus dados. O que eu posso fazer é não colocar os meus dados originais, mas estes criptogramas na nuvem. Para a nuvem, estes criptogramas são valores opacos, valores aleatórios, que pode armazenar, mas que não sabe o que significa. Quando eu quero recuperar os meus dados, peço o criptograma e, do meu lado, utilizo uma chave para o decifrar e recuperar os dados originais”, conta Bernardo Portela.

Assimilado este conhecimento, o investigador explica que o grande desafio é, na verdade, capacitar a nuvem não só para armazenar os dados em segurança, mas também para os processar. “Por exemplo, quero colocar uma lista de ficheiros e quero que a nuvem os ordene ou que faça um cálculo sobre os dados que lá estão guardados”, explica, ressalvando que ao armazenar os dados na nuvem com criptogramas ditos standard, esta não conseguirá processá-los porque estará diante de informação aleatória.

Nesse sentido, surge a necessidade de desenvolver novas tecnologias ou explorar as existentes no mercado, no sentido de encontrar uma solução que permita um equilíbrio entre o armazenamento seguro da informação e a capacidade de a processar na nuvem. Bernardo Portela explica que tem havido, ao longo dos últimos anos, trabalho de investigação sobre processamento seguro de dados, mas ainda há um longo caminho a percorrer até se conseguir usar todas as capacidades da cloud – ou as que queremos vir a usar.

SafeCloud: caminho para a privacidade e segurança na cloud

Embora a infraestrutura em nuvem apresente vantagens e contribua para reforçar a competitividade das economias modernas, existem fatores a ter em conta no processo de desenvolvimento destas soluções tecnológicas, sobretudo pensando na necessidade de se encontrar o equilíbrio entre a segurança e o processamento.

Neste contexto, o INESC TEC tem vindo a trabalhar em projetos como é o exemplo do SafeCloud ou do PRACTICE que visam, como explica Bernardo Portela, “canalizar a maior capacidade computacional e todas as vantagens da nuvem, sem cairmos nas desvantagens de estarmos a abdicar do controlo dos dados”.

No caso do projeto SafeCloud, em concreto, João Paulo conta que o ponto de partida para o desenvolvimento do projeto foi precisamente a perceção de que a nuvem é uma realidade e que está a mudar a forma como as empresas guardam os dados e computam sobre eles. “Sabemos que existem os serviços de computação em nuvem e a possibilidade de guardar ficheiros em empresas de armazenamento remoto e de os gerir na nuvem. Isso significa que os nossos ficheiros deixam de estar nos nossos computadores, o que pode ser grave para empresas que lidam com dados sensíveis, como por exemplo hospitais”, esclarece o investigador. Na realidade, entidades que atuam na área da Saúde reúnem dados sensíveis acerca dos seus pacientes, profissionais ou até algumas patentes desenvolvidas por investigadores.

Como forma de encontrar uma solução viável para tornar a nuvem capaz de processar dados sensíveis, e considerando a preocupação com a privacidade e a segurança sobre os dados guardados, o Projeto SafeCloud, que decorreu entre 2015 e 2018, surgiu com o intuito de arquiteturar as infraestruturas em nuvem, dividindo os dados em vários domínios administrativos, que aparentam pouco risco de colisão.

O projeto pretendeu, assim, assegurar que as tarefas de transmissão, armazenamento e processamento de dados são divididas por diferentes domínios, tornando os dados mais seguros. Parte deste conhecimento impulsionou a criação de uma start-up – Safecloud technologies -, que oferece serviços de consultoria altamente especializados em privacidade de dados, sistemas distribuídos e infraestruturas de grande escala, e permitiu que outras pessoas pudessem integrar outros projetos na área do Blockchain e densidade de dados, por exemplo.

 

Qual a melhor arquitetura para o software que vai correr na cloud?

A par do trabalho de investigação sobre a privacidade e a segurança dos dados na nuvem, o INESC TEC tem vindo também a trabalhar na conceção de boas práticas para o desenvolvimento de software para a cloud. “Quando desenvolvemos software para a cloud, é importante conseguir tirar o máximo proveito das suas potencialidades”, ressalva Filipe Correia, investigador do Centro de Computação Centrada no Humano e Ciência da Informação (HumanISE) do INESC TEC. Desta forma, segundo o investigador, emerge a necessidade de adotar boas práticas para o desenvolvimento de software para a cloud.

Apesar de já existirem muitos artigos e livros acerca de boas práticas a ter em conta no processo de desenvolvimento de software para cloud, o investigador reconhece que por vezes estas boas práticas não são bem aplicadas, ou são aplicadas fora do contexto adequado, o que as torna em “más práticas”.

Como forma de estabelecer e documentar estas boas práticas, Filipe Correia aponta para a relevância do conceito de padrões de software, e para o seu foco em três aspetos importantes: a deteção da questão problemática, que deve ser analisada e tomada em conta, a solução a aplicar para resolver o problema, e, por fim, o contexto em que esta pode ser aplicada, de modo a uma boa prática não se tornar uma má prática.

O artigo A Survey on the Adoption of Patterns for Engineering Software for the Cloud, que assenta precisamente em boas práticas de desenvolvimento de sistemas na cloud, relata o trabalho desenvolvido por Tiago Boldt Sousa, Hugo Sereno Ferreira e Filipe Correia, e foi publicado na IEEE Transactions on Software Engineering, uma das mais prestigiadas revistas internacionais na área da Engenharia de Software.

“Neste trabalho, o que fizemos foi descrever um conjunto de padrões de desenvolvimento para a cloud, com base na nossa experiência, e que validamos com a contribuição de um conjunto alargado de profissionais de software”. O investigador acrescenta que, antes de se avançar para estudos empíricos, na produção do artigo acima mencionado, houve um longo trabalho de documentar estas soluções com base na experiência pessoal e na literatura.

“Depois questionamo-nos se estes problemas seriam os que as equipas que estão no terreno estão a sentir, por isso, perguntamos a um conjunto de developers em que medida é que utilizam as práticas apresentadas no seu dia-a-dia”, conta. Posto isto, os investigadores traçaram quais as melhores práticas e em que fase do projeto é mais adequado serem aplicadas. “Por fim, tentamos identificar a dependência entre estas práticas”, para que, no final, face ao projeto que os profissionais de desenvolvimento de software tivessem em mãos, “soubessem que práticas faria mais sentido aplicar”, remata o investigador.

“Seguramente que ainda existem vários desafios no desenvolvimento e otimização dos sistemas para operarem no contexto da cloud. Estas são questões que requerem um esforço significativo dos profissionais, e em que a investigação tem dado contribuições interessantes”, assegura o investigador.

Para o futuro, os investigadores acreditam que ainda há um longo caminho a percorrer, até que a utilização da tecnologia da nuvem esteja completamente amadurecida. Certo é que a nuvem parece estar, como lembra Filipe Correia, “em todo o lado”. E, com a constante evolução tecnológica, será que o caminho que nos levou até à nuvem nos pode levar ainda mais longe?

 

Os investigadores mencionados no artigo têm vínculo à UP-FCUP, UP-FEUP, U.Minho e INESC  TEC.

PHP Code Snippets Powered By : XYZScripts.com
EnglishPortugal