Análises avançadas para risco de tecnologia

Author: Mukul Pareek, CISA, ACA, ACMA, PRM
Date Published: 1 May 2019
English

Ao longo das décadas, a segurança dos sistemas da informação evoluiu de diversas maneiras. Os problemas mudaram, assim como as ferramentas. Embora, até então, o foco era em controles internos e de auditoria mais voltados para a parte interna, o risco com o qual profissionais de TI se deparam para oferecer proteção, e aquele para o qual dedicam a maior parte do seu tempo, é o risco de segurança cibernética. Devido à ampla digitalização das coisas, a presença de processadores em diversos aparelhos e, consequentemente, à presença de códigos por toda parte que podem ser comprometidos, o mundo conectado de hoje apresenta ameaças que são muito diferentes daquelas enfrentadas nas décadas de 80 e 90. As ferramentas também evoluíram, partindo de técnicas de auditoria assistida por computador (CAATs) básicas para abordagens analíticas mais avançadas.

Uma visão geral das ferramentas analíticas avançadas

Por muito tempo, começando nas décadas de 50 e 60, diversos especialistas acreditaram que a inteligência no nível humano poderia ser alcançada através de um conjunto grande o bastante de regras explícitas que manipulassem o conhecimento. Essa abordagem era conhecida como inteligência artificial (IA) simbólica e foi, por muito tempo, o principal método para se pensar em IA. Embora ela fosse útil para problemas bem definidos que podiam ser expressos como conjuntos completos de regras hipotéticas (se/então), era difícil aplicá-las em tarefas menos previsíveis, como tradução de idiomas ou classificação de imagens. Mesmo para problemas onde essa abordagem era experimentada, o que ocorria era que as regras se mostravam caras em sua manutenção e toda a abordagem era muito frágil.1 O aprendizado de máquina foge do processo de definir regras precisas, optando, em vez disso, por converter o problema em dados e então aplicar métodos de estatística a esses dados para obter os resultados necessários.

Aprendizado de máquina, IA e processamento de linguagem natural

O aprendizado de máquina é um esforço para automatizar o que são consideradas tarefas intelectuais normalmente desempenhadas por humanos. Isto permite que os computadores possam realizar tarefas sem serem programados explicitamente para elas.

Quando alguém diz que o aprendizado de máquina tem a ver com descobrir as relações entre dados, muitas vezes essa relação é expressa de forma que um conjunto de variáveis pode ser usado para determinar o valor de outra variável (que é desconhecido e interessante de se saber). Por exemplo, se as características de uma mensagem de e-mail (por exemplo, a contagem de cifrões, o quanto letras maiúsculas são usadas ou a presença de links) são conhecidas, é possível determinar se o e-mail é uma tentativa de phishing? Da mesma forma, se os atributos de um aplicativo (isso é, os resultados dos últimos testes de plano de continuidade de negócios ou as características de dependências iniciais) são conhecidos, é possível estimar o tempo de inatividade esperado no caso de uma interrupção?

A primeira pergunta é o exemplo de um problema de classificação e a segunda de um problema de previsão (ou de estimativa). A diferença entre a classificação e a previsão é que, na primeira, um repositório ou categoria ao qual um item pertence é identificada (por exemplo, phishing ou não), enquanto que, na segunda, um número é previsto (por exemplo, tempo de inatividade em minutos). Para que a máquina consiga aprender tal classificação descobrindo os padrões que permitam que ela estime o tempo de inatividade ou o tipo de e-mail, ela precisa receber um conjunto de amostra de dados no qual essas informações já são conhecidas. Esse conjunto de dados rotulados é chamado de conjunto de dados de treinamento. Com esses dados, a máquina identifica padrões que podem não ser observáveis ao olho humano devido ao número e à variedade das variáveis. Esse tipo de aprendizado é chamado de aprendizado supervisionado, uma vez que o computador aprende a partir de um conjunto de dados já classificados e rotulados. Quando recebe uma entrada nova e não rotulada baseada nos padrões que o modelo de computador identifica nos dados pré-rotulados usados para seu aprendizado, pode-se fazer uma previsão sobre a nova observação para a qual a estimativa ou classificação não sejam conhecidas.

Se você acha que isso soa familiar à tradicional modelagem por regressão, é verdade, porque as variantes da análise de regressão se baseiam em diversos algoritmos de aprendizado de máquina diferentes. Na verdade, pode-se dizer que uma explicação excessivamente simples de uma rede neural seria descrevê-la como uma série de regressões lineares empilhadas sequencialmente.

Além de previsão e classificação, há ainda outro tipo de problemas, chamados problemas de clustering, que o aprendizado de máquina pode resolver. Como um exemplo, se alguém tem uma lista de servidores de Internet com endereços IP, o número de sites hospedados, os sistemas operacionais executados, o software do servidor da Web, se um servidor de e-mail é hospedado, onde estão situados, o número e os tipos de domínios de alto nível executados e afins, então como esses dados podem ser agrupados para que os servidores mais similares fiquem no mesmo repositório? Nessa situação, algoritmos de aprendizado de máquina criam repositórios, chamados de clusters, nos quais cada servidor deve ser colocado. Os algoritmos podem fazer isso sem qualquer intervenção humana, desta forma, esse tipo de aprendizado é chamado de aprendizado não supervisionado.2 Esses clusters podem proporcionar informações para um analista humano sobre os tipos de servidores, possivelmente com uma perspectiva para embasar uma decisão de bloquear alguns deles. O agrupamento em cluster é um exemplo de aprendizado não supervisionado, porque não exige um conjunto de amostras já exsitente para o aprendizado.

Na realidade, se você olhar atrás da cortina, a frase “aprendizado de máquina” é um tanto quanto errada. Em sua essência, não há qualquer máquina aprendendo algo no sentido de aprendizado que nós humanos temos. A maior parte desse processo envolve matemática aplicada a dados para descobrir relações dentro de um conjunto de dados. Essas relações são então usadas para criar aplicativos que realizam atividades cognitivas complexas, como reconhecimento de imagem ou geração de fala. No atual estado da ciência, o prospecto de máquinas ensinando a si mesmas inteligência geral, se tornando vigilantes e dominarem o mundo é altamente improvável.

Esses desenvolvimentos têm implicações sérias para gestão de riscos, especialmente os riscos de TI. Questões ligadas a um modelo de governança, a controle de alterações em diferentes modelos, ao acesso a conjuntos de dados e à resiliência em situações nas quais um modelo não pode lidar com mudanças externas imprevisíveis precisam ser consideradas por profissionais de riscos de TI. Ao mesmo tempo, profissionais de riscos podem adotar essas tecnologias para escolar e automatizar o próprio trabalho.

Embora o aprendizado de máquina tenha passado por uma ampla adoção recentemente entre diferentes setores e campos de estudo, o tema não é exatamente uma novidade. Muitos algoritmos populares amplamente empregados hoje foram criados há várias décadas (incluindo redes neurais), e alguns têm mais de meio século. Há também muita confusão pelo uso de várias frases usadas para se referir a coisas similares, como, por exemplo, mineração de dados, aprendizado estatístico, aprendizado de máquina, IA, aprendizado profundo, aprendizado raso e IA estreita.

É claro que, a rigor, pode ser possível identificar diferenças sutis entre todos eles, mas, para o profissional da área, mas a verdade é que, em um senso prático, esses são sinônimos quando se fala em criar aplicações. Os problemas solucionados (por exemplo, previsão, classificação e geração de clusters) são basicamente idênticos. Se alguém usar uma regressão linear comum, isso pode ser chamado de mineração de dados; mas, se uma rede neural for usada, podemos chamá-lo de aprendizado profundo.

No entanto, devido à atenção reservada para a IA, pode valer a pena tratar desses temas mais a fundo.

A IA é um campo geral que engloba aprendizado de máquina, do qual o aprendizado profundo faz parte. Programas de computador que usam uma representação do conhecimento disponível como regras fixas, independentemente de sua complexidade, não são consideradas aprendizado de máquina. Dessa forma, programas antigos de xadrez não se qualificariam como aprendizado de máquina embora se enquadrem no conceito mais amplo de IA.

Um subconjunto de aprendizado de máquina é o aprendizado profundo, especificamente modelos que usam redes neurais. O termo “aprendizado profundo” não indica nenhum entendimento mais avançado de informações do que a inteligência geral: ele indica o uso de múltiplas camadas de dados, sendo que cada camada contém uma transformação que alimenta a próxima camada. O uso de múltiplas camadas garante enorme flexibilidade às redes neurais uma vez que tais camadas podem representar basicamente qualquer função. As redes neurais foram usada para alcançar reconhecimento de fala e imagem em nível humano, a capacidade de responder a perguntas de linguagem natural e capacidade de jogar em nível sobrehumano. Embora essas pareçam conquistas mágicas, tudo isso ainda está muito longe daquilo que é considerado inteligência geral como a mostrada por humanos todos os dias. Pelo fato de que redes neurais fazem parte de diversos desses usos avançados, elas, ou o aprendizado profundo, são normalmente comparadas à IA. No entanto, o nome dado a essas técnicas não importa, contanto que saibamos como aplica-las e implementá-las. Como resultado, os termos “ciência de dados”, “aprendizado de máquina” e “analítica avançada” serão usados como sinônimos.

Ainda outro campo de interesse é o conjunto de processamento de linguagem natural (NLP). O NLP visa extrair significado do texto e expressar tal significado na forma de texto. Esse processamento envolve a conversão de linguagem natural para dados que podem então ser processados para extrair significados, identificados temas, determinar opiniões ou gerar textos em respostas. Aplicações de NLP já estão em nossas vidas, como corretores gramaticais (baseados em regras), bots de respostas automáticas em chats, filtros de spam, resumo de texto, detecção de plágio, análise de opiniões e escrita criativa.3 A maioria das aplicações NLP, embora não todas, usa redes neurais. A Alexa, a assistente de voz da Amazon, usa um serviço chamado Amazon Lex, que precisa de uma capacidade extremamente ampla para responder. A lógica, no entanto, é simples: um conjunto de frases de acionamento que produzem a mesma resposta com base em uma camada hipotética (se/então) simples e de uma só camada. O campo de NLP continua avançando rapidamente.

Criação de modelos

Como discutido, o aprendizado de máquina tem a ver com descobrir padrões em dados. Esses padrões são expressos como uma variável de interesse que é previsível usando outras variáveis ou atributos, muitas vezes chamadas de características. Alguém pode, por exemplo, se interessar em prever se uma determinada atividade na rede é maliciosa ou não, e tais características que podem ser usados para fazer essa previsão incluem endereço IP, tipos de solicitações, tamanhos de pacotes e afins.

Voltando à analogia de regressão, ela não é muito diferente de uma variável Y descrita como uma função de um número de características (isso é, Y= \[traço 1, traço 2,...traço nj) onde Y seria o que alguém está tentando prever e as diversas variáveis de características são as variáveis independentes. No entanto, essa relação é encapsulada em um modelo e normalmente não pode ser expressa como uma função matemática definida. Um modelo é o artefato criado pelo processo de aprendizado de máquina. Uma vez criado o modelo, um conjunto de características pode ser passado para ele, o que fornecerá uma previsão.

O aprendizado de máquina começa com dados. Pense nos dados como uma grande tabela em uma planilha. Há colunas e há linhas. Como um exemplo, pense em um modelo que precisa classificar conexões de um servidor de e-mails ou da Web como sendo tentativas válidas ou maliciosas. No lado do servidor de e-mail, os características relevantes a serem extraídos, ou colunas na planilha, podem ser hora e data de login de usuário, endereço IP, localização geográfica, cliente de e-mail, privilégios administrativos e atividade de servidor de protocolo de transferência de mensagens simples (SMTP). No lado do servidor, os características relevantes podem incluir endereço IP e localização do usuário, versão de navegador, o caminho das páginas acessadas, os códigos de status do servidor da Web e a utilização de largura de banda associada.4 Para treinar o modelo de aprendizado de máquina, os dados precisam ser pré-classificados como tentativas válidas ou maliciosas. Esses dados são chamados de dados rotulados: a resposta para cada linha já é conhecida. Isso permite que os dados sejam usados como dados de treinamento, ou seja, eles possibilitarão que o algoritmo determine a relação entre variáveis conhecidas e desconhecidas. O processo pelo qual a relação é estabelecida é chamado de aprendizado. Uma vez descoberta a relação, ela é expressa como um modelo.

Esse modelo pode então ser usado para prever se os futuros acessos serão maliciosos ou não, ao avaliar as tentativas de login usando todos os características conhecidos.

Há alguns requisitos para que o aprendizado de máquina funcione:

  • Dados de treinamento—Dados de treinamento são as informações de entrada com os resultados corretos ou esperados já fornecidos. Os dados podem vir não apenas em um formato conhecido, como tabelas de planilhas ou bancos de dados, mas também como imagens, arquivos de som, dados de log etc. Um subconjunto de atributos que são relevantes para a previsão é identificado. Os dados de treinamento precisam conter os rótulos para a saída de interesse. Por exemplo, se a classificação estiver sendo solucionada entre tentativas de acesso maliciosas ou não, dados históricos que já estão rotulados precisariam “treinar” o modelo de aprendizado de máquina.
  • Criação de modelos—Essa é a sequência de etapas matemáticas usada para identificar a relação preditiva e expressá-la como um artefato chamado de modelo. Há centenas de algoritmos de aprendizado de máquina disponíveis: regressão logística, floresta aleatória, modelos de melhoria gradual, máquinas vetores de suporte e assim por diante. Quando falamos de redes neurais, que também são algoritmos, há diversos tipos diferentes, como redes neurais convolucionais para reconhecimento de imagens, redes neurais recorrentes para processamento de linguagem natural etc. A escolha do algoritmo é decidida com base no caso de uso. Muitas vezes, vários algoritmos são testados e o que proporcionar o melhor resultado será selecionado.
  • Uma métrica para medir a eficácia do modelo—Para problemas de classificação, frequentemente a taxa de precisão ou a proporção da amostra corretamente classificada é a métrica para mensurar a eficácia do modelo de aprendizado da máquina. Para problemas de estimativa, nos quais um número precisa ser previsto, pensa-se sobre o quão distantes das previsões as quantidades observadas estão (tecnicamente medidas como a raiz do erro quadrático médio \[RMSE]).

Não é necessário que apenas um modelo seja usado para criar uma solução. É possível combinar múltiplos modelos conjuntamente e alcançar resultados superiores. Essa abordagem, chamada de modelos de montagem, emprega diversos algoritmos simultaneamente. Por exemplo, muitos algoritmos são usados para fazer uma previsão e o valor previsto pela maioria dos algoritmos no modelo de montagem é usado como uma previsão final.

A democratização da ciência de dados

Ao longo dos últimos anos, a ciência de dados foi democratizada pela disponibilidade de software de código-aberto, ferramentas, bibliotecas e recursos informativos. Uma geração inteira de cientistas de dados foi treinada nessas ferramentas e está contribuindo para o desenvolvimento do campo em todo o mundo. Hardware com muito poder de processamento já não está mais fora do alcance de organizações comuns. Unidades de processamento gráfico, ou GPUs, as quais são capazes de realizar cálculos rápidos, já estão disponíveis por menos de mil dólares. A capacidade de criar uma máquina de analíticas rápidas na Amazon Web Services (AWS) ou no Google Cloud Plataform em questão de minutos por menos de um dólar por hora está disponível para qualquer pessoa com uma conexão com a Internet.

A criação de modelos, e a analítica preditiva em grande parte, estão se aproximando rapidamente da comoditização. Os meios para executar dados por um algoritmo e ajustá-lo até estar perfeito podem ser usados como produtos. As competências para fazer tudo isso também estão se tornando cada vez mais conhecidas. No futuro próximo, não seria uma surpresa se algoritmos de aprendizado forem oferecidos como opções de apontar e clicar em planilhas para desktops.

As implicações disso são significativas. Primeiro, tecnologias que até então só estavam disponíveis para as organizações de maior porte agora estão ao alcance de qualquer indivíduo e organização. Segundo, gerentes de nível intermediário a sênior têm o dever de entender a capacidade dessas tecnologias e, especificamente, serem capazes de identificar casos de uso nos quais elas podem proporcionar uma vantagem. Organizações capazes de fomentar uma sólida cultura de dados vão prosperar muito mais rapidamente.

Exceto nas gigantes de tecnologia, como Google, Facebook ou outras situações excepcionais, a maioria dos cientistas de dados nas empresas não está criando algoritmos novos. Praticamente todos os algoritmos já existem. A maioria dos benefícios práticos pode ser alcançada usando o que já está disponível. Isso não quer dizer que invenções não estejam acontecendo: Google, IBM e outras empresas estão trabalhando na área, mas, em grande parte, os modelos já existem. O problema normalmente se limita a determinar qual modelo funciona melhor e gera os resultados mais precisos. Esses modelos existem dentro de bibliotecas e pacotes de software, a maioria disponível como software de código-aberto. Como exemplo, o pacote caret5 no R (que é um software de estatística de código-aberto) oferece acesso a mais de 200 modelos de aprendizado de máquina. É possível realizar tarefas similares no Python, outra linguagem de programação de código-aberto.

É claro que a máquina não escolherá o modelo: os cientistas de dados usam seu conhecimento dos dados para decidir o que funciona melhor em cada situação. Até mesmo essa tomada de decisões está sendo automatizada: há rotinas disponíveis que executarão um conjunto de dados através de todos os modelos possíveis e apresentarão aquele que gerar os resultados mais precisos.

Os desafios

Um número de problemas comuns impactam a maioria dos projetos científicos nas organizações.

O primeiro desafio é obter dados rotulados de boa qualidade para usar em treinamento (para ensinar o modelo). Dados rotulados são dados existentesque já estão classificados para que a máquina possa fazer uma boa estimativa da relação que ela precisa prever. É aí que empresas grandes como Google e Facebook têm uma enorme vantagem em comparação com outras organizações, uma vez que elas possuem acesso sem precedentes a dados de alta qualidade. Como exemplo, toda vez que um usuário ignora uma correção automática do Google em um telefone, o Google recebe mais dados rotulados para descobrir o que está correto. A maioria das organizações não consegue concorrer com isso.

O segundo é o desafio de engenharia. Os dados raramente vêm organizados como uma tabela em um banco de dados ou uma planilha formatada. Eles chegam de sensores, arquivos de log, e-mails, imagens, vídeos e conversas. Uma grande quantidade de trabalho pesado precisa ser realizado para organizar esses dados não estruturados em formatos aos quais algoritmos podem ser aplicados. Os dados precisam passar por um demorado processo de preparação, formatação, tratamento de valores incorretos ou ausentes e devem ser transformados, combinados e ajustados de diversas formas. Uma vez que os dados estejam disponíveis, a extração de características precisa ocorrer, que é o processo de identificar as variáveis que podem ajudar a prever o que é necessário. A velocidade de tudo isso pode ser um problema para qualquer coisa que busque funcionar em tempo real.

Um terceiro desafio é que os modelos realizam múltiplas computações de forma que se torna difícil explicar sua saída. Isso cria um desafio de credibilidade, uma vez que os usuários precisam confiar em um sistema sem uma conexão passo-a-passo detalhada, disponível entre entradas e saídas. À medida em que os usuários se familiarizam com o sistema e a confiança aumenta, o desafio diminui. Os cientistas de dados costumam optar por modelos mais simples mas mais precisos devido à explicabilidade. A explicabilidade do modelo é tratada usando conceitos como explicações agnósticas de modelo interpretável (LIME), que foram implementadas em bibliotecas do Python e R.6

Casos de uso no risco de TI

Os profissionais de TI sempre foram usuários de métodos analíticos. O uso de tabelas de risco de auditoria, técnicas de amostragem e outras abordagens têm origem na estatística, enquanto o uso de CAATs (especialmente ACL) já existe há décadas. No entanto, o uso de técnicas analíticas avançadas abre uma área totalmente nova para exploração de riscos de tecnologia, a implementação efetiva que exige imaginação, formação, criatividade e audácia. Isso porque a analítica tradicional sempre, por definição, olhou para trás: ou seja, ela fornece uma visão do passado. Dados históricos são divididos, separados e resumidos de diversas formas e visualizados usando painéis. Muitas dessas analíticas tradicionais, baseadas em processos sólidos de extração, transformação e carregamento de dados e alicerces de engenharia, continuam fornecendo perspectivas valiosas sobre postura de risco, remediação, causas raiz, padrões e tendências e continuarão sendo o baluarte sobre o qual o gerente de riscos se apoia.

No entanto, essas novas ferramentas analíticas possibilitarão um ângulo de visão totalmente diferente, que é a capacidade de prever o futuro de forma probabilística. As técnicas de ciência de dados podem fornecer estimativas probabilísticas sobre o que pode dar errado, as quais, quando combinadas com a intuição e o discernimento do gerente de riscos, podem ser uma arma potente para melhor gerenciar riscos.

Todo o gerenciamento de riscos se concentra, de uma forma ou de outra, em evitar eventos de riscos adversos. Esses eventos vão desde vazamento de dados a problemas no servidor, de falha de mudanças de TI a privilégios usados incorretamente, passando por detecção de intrusão e identificação de spam.

Contar com petabytes de dados pode ser útil, mas nem todos os dados terão poder preditivo. Existe apenas uma maneira de descobrir, que é o método científico de testar e verificar. Às vezes, explorar modelos de ciência de dados ajuda a identificar associações até então desconhecidas, e essas associações podem fornecer uma solução baseada em regras na qual uma abordagem baseada em modelos pode ser considerada excessivamente complicada. Uma abordagem que pode gerar insights para uma organização pode ser inútil para outra empresa. Isso porque a situação, os dados e o contexto podem ser diferentes.

Como é a produção?

Projetos de ciência de dados, quando aplicados a riscos de tecnologia, precisam fornecer suporte para decisões. A manifestação prática do trabalho feita como parte de um projeto de ciências de dados pode ter diversas formas. Entre os mais comuns, estão:

  • Informações em relatórios ou painéis—É assim que frequentemente a maioria dos novos projetos de ciência de dados são implementados. Os resultados do modelo ou análise de ciência de dados são publicados em painéis ou outras visualizações, onde podem ser combinados de forma vantajosa com analítica tradicional. Às vezes, podem ser publicados como relatórios ou alertas enviados para os consumidores da informação. Esse é geralmente o jeito mais rápido e popular de entrar em produção. No entanto, se esses relatórios ou painéis não forem parte do fluxo de risco ou incentivos de impacto de alguma forma, eles provavelmente cairão em desuso ao longo do tempo quando a novidade se esgotar.
  • Integrados em outros aplicativos—Exigindo maior integração do que a abordagem de painéis ou relatórios, os resultados podem se tornar parte de um aplicativo tradicional, criando uma integração melhor de fluxo de trabalho das competências de ciência de dados da equipe. Por exemplo, um modelo pode, em tempo real, prever uma classificação de risco de um problema, solicitação ou incidente, enquanto a transação é registrada no sistema.
  • Tomada de decisões automática—Nestes casos, o sistema pode tomar uma decisão e implementá-la, realizando diretamente a função de um ser humano que já fez tal julgamento anteriormente. Decisões de aprovação de crédito automatizadas baseadas em características como histórico do solicitante incorporadas em ferramentas de pedidos de crédito on-line são um exemplo de decisões baseadas em aprendizado. No mundo do risco da tecnologia, essa tomada de decisões pode ser usada para direcionar incidentes ou outras transações que exijam intervenção humana.

Casos de uso de risco de TI

Estes são alguns exemplos de possíveis casos de uso para projetos de aprendizado de máquina e ciência de dados para gerenciar riscos de TI:

  • Vazamento de dados—Um risco chave para qualquer empresa, ferramentas de detecção de vazamento de dados podem ser criadas usando aprendizado de máquina, com conteúdo de e-mail e metadados, logs de impressora e acesso. Os fornecedores de grande porte oferecem prevenção contra perda de dados (DLP) como um serviço, com diversos componentes integrados (por exemplo, Macie da Amazon ou interface de programação de aplicativos DLP do Google para clientes do Gmail). Eles podem acelerar a melhoria de práticas de DLP usando os modelos pré-treinados desses fornecedores para os tipos mais comuns de informações sigilosas.
  • Tempo de inatividade de serviço—O tempo de inatividade de serviço pode ser modelado usando logs do SO, middleware, bancos de dados e aplicativos. Os dados de logs podem ser diversos, volumosos e costumam vir na forma de dados de séries temporais, que exigem técnicas especiais de preparação de dados. Se realizados corretamente, modelos para prever tempo de inatividade podem esclarecer as associações subjacentes.
  • Falha de alterações de TI—Falhas de sistema costumam ser o resultado de falhas de alterações de TI que foram agendadas e planejadas com antecedência.
  • Detecção de spam e phishing—Se não fosse pela detecção de spam usando técnicas de LP, o e-mail já estaria morto. A detecção de spam e phishing são casos de uso primários que já estão em operação para praticamente todos, independentemente de usarem uma solução personalizada ou um provedor tal como o Gmail.
  • Detecção de intrusões—A maioria dos sistemas de detecção de intrusões usa dados de nível de pacote (arquivos pcap) entre diversos tipos de protocolos de Internet, como protocolo de controle de transmissão (TCP), protocolo de datagrama de usuário (UDP), protocolo de mensagens de controle de Internet (ICMP) e outros. Pacotes podem encapsular outros protocolos de alto nível como sua carga útil, como protocolo de transmissão de hipertexto (HTTP), protocolo dos correios (POP) e sistema de arquivos de rede (NFS).7 Os dados de fluxo de rede que capturam os fluxos de dados entre determinados endereços IP são outra fonte valiosa de dados para detectar invasões na rede. O agrupamento por clusteres, redes neurais, métodos de montagem e diversos outros métodos podem então ser empregados para detectar anomalias que podem ser investigadas quanto a possíveis atividades maliciosas.
  • Uso indevido de privilégios—O monitoramento de sessões privilegiadas que é muitas vezes ativado em hosts sensíveis pode criar uma enorme quantidade de dados para a qual o custo de uma avaliação humana pode ser totalmente inviável. Um modelo de aprendizado de máquina devidamente treinado pode ajudar a identificar anomalias em relação às atividades privilegiadas normais para investigações adicionais.
  • Riscos envolvendo terceiros— Um estudo recente8 analisou a previsão de chances de uma violação em qualquer organização com base em propriedades observáveis externamente na rede da organização. Usando recursos como resolvedores de DNS aberto mal configurados, certificados não confiáveis, relés SMTP abertos, inclusão em listas de atividades maliciosas, como SpamCop, PhishThank e outras fontes, os autores conseguiram modelar e prever de forma precisa violações futuras com uma taxa de quase 90% positiva, 10% de falsos-positivos e uma média geral de precisão de 90%.
  • Falha de hardware— Logs de hardware, que não podem ser avaliados e interpretados por humanos, são o feed ideal para uma máquina analisar padrões para prever falhas com antecedências.
  • Atividade de rede em servidores de e-mail e da Web—A atividade de rede em servidores de e-mail pode ser analisada usando, por exemplo, data e hora de login de usuário, endereço IP, localização geográfica, cliente de e-mail ou atividades de SMTP e POP. A atividade de rede no lado do servidor da Web pode ser analisada com atributos similares e versão do navegador, códigos de status de servidor da Web, páginas acessadas, utilização de largura de banda etc. Modelos podem prever e bloquear proativamente sessões consideradas maliciosas em tempo real, enquanto também revelam padrões de autenticação anômalos e outros comportamentos incomuns.

Organização e prática recomendada

Implementar soluções analíticas avançadas para riscos de tecnologia não necessariamente exige uma equipe de PhDs com altos salários. A democratização da ciência de dados mencionada anteriormente significa que é possível alcançar resultados reais sem o tipo de investimento em hardware, software e competências que seriam necessárias há apenas alguns anos atrás. Tecnologias de código-aberto e bibliotecas disponíveis em Python e R permitem alcançar resultados mensuráveis com investimento mínimo em tecnologia. É possível criar aplicativos mais avançados usando o Apache Spark. Google,9 Amazon10 a Microsoft11 oferecem a infraestrutura e o conjunto de ferramentas em seus ecossistemas de nuvem para criar produtos de aprendizado de máquina em preços acessíveis dentro dos menores orçamentos.

Competências necessárias

No entanto, essas ferramentas não se implementam sozinhas: as empresas precisam de profissionais e competências para fazê-lo. A adoção bem sucedida dos modelos de aprendizado de máquina em qualquer organização exige diversos pré-requisitos:

  • Suporte da alta gerência
  • Gerência de nível intermediário que entenda os conceitos de aprendizado de máquina e esteja convencida das vantagens que ele pode oferecer
  • Um ou mais profissionais competentes podem criar, avaliar e implementar modelos e ferramentas de ciência de dados.

O suporte da gerência de nível intermediário é extremamente crucial, uma vez que esses são gerentes que precisarão estar convencidos do valor do aprendizado de máquina e das possibilidades que ele oferece. Se eles estiverem hesitantes ou muito presos a analíticas e relatórios tradicionais, ou se encararem as novas abordagens como uma ameaça ao seu próprio poder de decisão na organização, os projetos vão naufragar e nunca alcançarão adoção e uso. Esses gerentes não precisam saber como programar, mas precisam entender conceitualmente o que o aprendizado de máquina pode fazer, o que é necessário como dados e que tipos de problemas podem ser solucionados.

As equipes de ciência de dados são normalmente organizadas compreendendo esses conjuntos de habilidades:

  • Cientistas de dados criam e avaliam modelos, identificam insights de dados e conhecem diversos algoritmos que se aplicam a diferentes situações. Os cientistas de dados possuem competências de programação na plataforma de ciência de dados usada na organização, que costuma ser baseada em Python, R, SparkML ou outras, inclusive tecnologias específicas de fornecedores.
  • Os engenheiros de dados criam pipelines de dados, que são similares a pipelines ETL para armazéns de dados. Os engenheiros de dados identificam fontes de dados relevantes, extraem, formatam, transformam, combinam, resumem e realizam outras atividades para disponibilizar os dados para cientistas de dados. Em organizações de pequeno porte, nas quais cargas de trabalho ou casos de uso podem ser limitados, os cientistas de dados podem também desempenhar a função de engenharia de dados. Os engenheiros de dados são normalmente versados em Structured Query Language (SQL), Python, Powershell ou scripts Unix, conectando APIs e outras tecnologias relacionadas a dados relevantes para a organização.
  • Gerentes de produtos ou entrega são similares a analistas de negócios, mantendo contato com clientes, entendendo requisitos, comunicando-os para os engenheiros e cientistas de dados e testando o produto usando seu conhecimento do domínio e contexto de negócios. Em uma organização de gestão de riscos de TI, esses são especialistas em riscos que possuem conhecimento sobre os conceitos, as possibilidades e as limitações de aprendizado de máquina e ciência de dados.

Operações de ciência de dados de larga escala podem contar com engenheiros de dados adicionais cujo trabalho é conferir os dados de modelos de ciência de dados e outras saídas usando ferramentas de visualização como QlikView, Tableay, D3 e outras ferramentas. Uma nova profissão que surgiu recentemente é a do narrador de dados, cujo trabalho é promover engajamento e adoção usando jornadas narrativas e visuais criativas para soluções analíticas.

Recomendações gerais

Não é necessário dizer que o comprometimento de partes interessadas é essencial para o sucesso de qualquer projeto de ciência de dados.

Com frequência, organizações maiores montam equipes de ciência de dados centralizadas que devem atender a toda a organização, de marketing e recursos humanos (RH) até riscos. Isso é diferente de equipes que são integradas em diferentes funções. Às vezes, as equipes centrais só provisionam hardware e software, deixando as equipes integradas usarem um conjunto comum de tecnologias. Em outros casos, as equipes centrais também detêm o monopólio da contratação de cientistas de dados. Em cada situação, cabe à função individual realizar o trabalho de identificar casos de uso viáveis e iniciar um diálogo com a equipe central.

Independentemente da estrutura organizacional da ciência de dados, diversos pontos adicionais precisam ser levados em conta:12

  • O alinhamento das partes interessadas é essencial—O backlog da equipe de ciência de dados deve ser totalmente direcionado por clientes.O backlog da equipe de ciência de dados deve ser totalmente direcionado por clientes. O que um cientista de dados pode considerar interessante nem sempre pode ser comercialmente útil. Alinhar as metas dos clientes é essencial.
  • Entrar em produção—Embora, de forma superficial, possamos traçar paralelos ao processo de criação de modelos com um ciclo de vida de desenvolvimento de software (SDLC) tradicional, há diferenças marcantes que tornam a ciência de dados diferente do desenvolvimento de aplicativos. Os cientistas de dados não podem trabalhar sem dados de produção, e a DevOps não pode existir para modelagem, o que significa que os controles tradicionais de segregação de funções (SoD), se implementados, podem afetar seriamente os benefícios da ciência de dados.
  • Integração no fluxo de trabalho—A equipe de ciência de dados sempre precisa pensar em integrar seus produtos no fluxo de trabalho de seus clientes. Produtos de ciência de dados independentes podem facilmente cair em desuso.
  • Gerenciar as políticas—Competências técnicas são vitais e necessárias, mas insuficientes para gerar impactos. O interesse próprio das partes envolvidas e incentivos organizacionais existentes que guiam o comportamento precisam ser considerados no design dos projetos de ciência de dados.
  • Um processo disciplinado, não apenas uma arte—Exceto por algumas poucas organizações que operam na vanguarda, as implementações quase sempre envolvem algoritmos já consagrados, dos quais há centenas já disponíveis par atender a todos os casos de uso possíveis. Para a maioria das empresas, os modelos de solução já existem e tudo que as organizações estão tentando fazer é aplicar esses modelos às soluções delas. Os projetos de aprendizado de máquina devem visar criar aplicações voltadas para clientes que solucionem problemas reais e não apenas matemáticos.
  • Nunca pare de entregar—Enviar, ou entregar produtos utilizáveis, é essencial. A equipe de aprendizado de máquina precisa de indicadores-chave de desempenho (KPIs) e metas, assim como qualquer outra equipe. As partes interessadas sempre devem estar envolvidas em definir tais metas, e o aprendizado de máquina deve se concentrar no suporte de decisões reais, não apenas em dados que são interessantes.
  • Disciplina é o segredo—Disciplina e práticas organizacionais, como gestão de desempenho, geração de ideias, aquisição de dados, incluindo gestão de dependências anteriores e posteriores, seleção de modelos, aceitação de usuários, entrega e operacionalização são essenciais para o sucesso em longo prazo.

Conclusão

Analítica avançada e ciência de dados permitem a expansão do alcance de métricas de segurança e medição de riscos de tecnologia. Ao invés de simplesmente realizar análises posteriores do risco, pode ser possível prever o risco e evitar perdas através da capacidade de se antecipar a situações de riscos com base nos dados e adotando medidas preventivas. O campo é o lugar certo para exploração e novas criações. Até hoje, o uso dessas tecnologias tem sido dominado praticamente por produtos comerciais e voltados diretamente para clientes, como, por exemplo, detecção de fraudes para transações on-line ou otimização de rejeições de cartão de crédito. O estado atual do campo, incluindo software, competências e hardware, está em um estágio onde partes interessadas com criatividade podem empregar isso em escala para gerenciar riscos de TI.

Notas Finais

1 Chollet, F.; J. J. Allaire; Deep Learning With R, Manning Publications, USA, 2018, https://www.manning.com/books/deep-learning-with-r
2 James, G.; D. Witten; T. Hastie; R. Tibshirani; An Introduction to Statistical Learning With Applications in R, Springer, USA, 2017, www-bcf.usc.edu/~gareth/ISL/
3 Lane, H.; C. Howard; H. Hapke; Natural Language Processing in Action, Manning Publications, USA, 2019, https://www.manning.com/books/natural-language-processing-in-action
4 GitHub, “Introduction to Artificial Intelligence for Security,” https://github.com/cylance/IntroductionToMachineLearningForSecurityPros
5 GitHub, The Caret Package, https://topepo.github.io/caret/
6 GitHub, “Lime: Explaining the Predictions of Any Machine Learning Classifier,” https://github.com/marcotcr/lime
7 Buczak, A.; E. Guven; “A Survey of Data Mining and Machine Learning Methods for Cyber Security Intrusion Detection,” IEEE Communications Surveys & Tutorials, vol. 18, no. 2, 2016, https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=7307098
8 Liu, Y.; A. Sarabi; J. Zhang; P. Naghizadeh; “Cloudy With a Chance of Breach: Forecasting Cyber Security Incidents,” USENIX, 12-14 August 2015, https://www.usenix.org/system/files/conference/usenixsecurity15/sec15-paper-liu.pdf
9 Google Cloud, “Cloud AI Products,” https://cloud.google.com/products/ai/
10 Amazon Web Services (AWS), “Machine Learning on AWS,” https://aws.amazon.com/machine-learning/
11 Microsoft Azure, “Machine Learning Studio,” https://azure.microsoft.com/en-us/services/machine-learning-studio/
12 Domino, “The Practical Guide to Managing Data Science at Scale,” https://www.dominodatalab.com/resources/managing-data-science/

Mukul Pareek, CISA, ACA, ACMA, PRM
É um profissional que trabalha com gestão de riscos em Nova York, EUA. Ele é co-autor do site Index of Cybersecurity (www.cybersecurityindex.org) e autor do site de educação sobre riscos www.riskprep.com. Ele possui diversas publicações sobre muitos temas envolvendo medição de riscos no ISACA Journal.