domingo, 7 de março de 2010

Tipificação *BÁSICA* de Correlação de Eventos

Demorei a postar novamente mas o fato é que ando trabalhando muito, muito mas muito mesmo… Ta f@$#@... Hehehe, graças a este trabalho, a empresa que trabalho esta crescendo absurdamente na região (América Latina e Caribe), não vou mais precisar viajar tanto a América Central e ao Caribe pois vamos contratar um pessoal para cuidar das regiões superiores, ruim né? Não é nada ruim, viajar a trabalho que é ruim, principalmente quando se tem alguem em casa que te espera e por mais louco que seja o destino (ex de alguns que já estive: Jamaica, Ilhas Caimans, Rep Dominicana, Aruba, Costa Rica, Panamá, etc...), você nunca consegue de fato aproveitar.


Ainda nem comecei o post relacionado a casos de uso do post anterior, mas por enquanto, só para constar, vou adicionar alguns tipos IMPORTANTES de correlação que um engine de correlação básico deve possuir, sim, básico pois faz parte de qualquer SIEM possuir os seguintes fatores de correlação abaixo (ou deveriam ter pelo menos 90% disto):



- Correlação Simples

- Correlação Contextual

- Correlação por Consciência de Conteúdo

- Correlação de Múltiplos Estágios

- Correlação para identificação de ataques do tipo “Low and Slow”

- Correlação Geográfica e/ou Localização Física

- Correlação Identidades e/ou Comportamento Humano

- Correlação por Papeis / Perfis

- Correlação derivada de Processamento Complexo de Eventos orientados a detecção

- Correlação Neural (por redes não supervisionadas)

- Correlação derivada de Consciência Situacional

- Correlação por Entropia da Informação

- Correlação Histórica

- Correlação Orientada a Dedução

- Correlação de Imagens (OCX / outros)

- Correlação Cognitiva


Uma vez descritas, de agora para frente vou escrever em meu blog quando possível, exatamente como cada uma destas funcionam e como podem nos ajudar, afinal de contas, este mundo de correlacionamento é muito vasto, o limite é a criatividade!

Aguardem próximos posts, prometo não demorar tanto e com este formato, não escreverei tanto como nos posts anteriores, melhor ne?

Um fato curioso, não existe quase nada em termos de literatura descente de SIEM, coisa seria, sem ser feita por algum “vendor I want sell modafoca”, Ok, trabalho em um, sim, mas tento ser o mais neutro possível nos posts e o mais acadêmico também, devem ter percebido! :)

sábado, 28 de novembro de 2009

Fuzzy Logic aplicada a busca de padrões em Logs



Olá senhores (as),


Seguindo um pouco o gancho do primeiro post real, vou descrever abaixo um modelinho legal para tratamento de logs e busca de padrões onde poderemos utilizar por exemplo, no desenvolvimento de um SIEM de verdade, não estas coisas meramente deterministicas que vemos hoje em dia.

Inicialmente, para quem não conhece logica fuzzy, ela é simples, eu estudo fuzzy desde a época que fui programador na falecida DEC (Digital Equipaments Corporation), REST IN PEACE. Um dia ainda escrevo sobre as facetas legais dos processadores Alpha, tão a frente na época que alguns até diziam ser tecnologia de Aliens.. hahaha, comico dimais... Bem, basicamente, logica fuzzy é a lógica que leva em consideração o meio, aquilo que a lógica convencional descarta, certamente é o que chega mais proximo da lógica humana e porque considera não somente o SIM ou o NÃO, mas tambem o TALVEZ. Essa e a explicação mais simples que costumo dar, obviamente é deveras simples, quem quiser entender mais, googleia logica fuzzy e seja feliz! :)


Hoje, como sabem temos uma série de logs em vários sistemas, onde podemos sim encontrar muitas informações importantes no qual certamente mediante a identificação de padrões, podemos criar perfis e então aplica-los posteriormente na descoberta de divergencias, isso pode ser aplicado a segurança como identificar comportamento humano, operacionalmente para identificar tendencias comuns de determinados ativos e não comuns, bem como utilizado no mundo de mining para criar perfis de clientes, parceiros, etc... Hoje o foco é total em segurança, mas apliquem este mesmo algoritmo em qualquer area e terão resultados surpreendentes.

Quando um usuário interage com algum sistema, onde podemos identifica-los seja por endereçamento IP, cookies, informações populadas externamente, listas ativas, listas de sessões, etc, podemos com base nestas trilharmos um perfil do mesmo.
Vamos ver isto por dois pontos de vista, a pessoa (usuário) e o ativo gerador de um evento, o ponto de vista pessoa esta relacionada ao que o mesmo esta fazendo no ambiente computacional ou mesmo físico, e o ponto de vista ativo nos informa as ações realizadas por N formas (logs, telemetria, imagens, flows de rede, fotos, etc...),

O tratamento do usuário pode ser dados de duas formas, a primeira esta relacionada a informação previa existente em sistemas de gerenciamento de identidade ou mesmo mais simplorios como AD, LDAP, etc, e o segundo relacionado a quatro diferentes variáveis, vamos levar em conta o aspecto social, informações que estão nos logs referentes ao mesmo, onde teremos também as ações do mesmo e por fim a sessão, que no nosso caso podemos considerar desde uma sessão de VPN, até mesmo o fator login em um AD, um sessão DHCP, ou até a entrada em uma determinada sala controlada (logs de crachas, informações de cameras / CCTV, etc).

O principal problema neste modelo esta quando não existe uma pre-classificação como sistemas mais completos de gestão de identidade que nos indica informações relevantes como area, acessos factiveis, grupos de acesso, entre outros.

- Pontos importantes na mineração de logs usando Lógica Fuzzy

Bem, a Lógica Fuzzy irá atuar
justamente no modelo de orientação aos logs com foco no usuário, dando muito mais flexibilidade e produzindo informações mais interpretaveis, não somente um monte de outros eventos correlacionados, mas modelos no qual podemos desenhar e identificar visualmente padrões que antes da lógica fuzzy, por serem não lineares eram humanamente complexos no processo de identificação.

As principais técnicas que podemos utilizar para minerar informação com logica fuzzy são Fuzzy Clustering e Fuzzy Associantion Rules. Estas são técnicas que vamos tambem, utilizar para obtenção de perfis genéricos como logs provenientes de AP (Access Points) abertos, sem devida identificação, como muitos utilizam para acesso externo/ataques no qual o perimetro bem protegido falha quando um interno abre uma porta la dentro, muitos Pen-Testers usam isso para conseguir sucesso em suas investidas (se veste de fachineiro, entra na empresa com uma caixa grande, abrem a porta p/ ele, e o mesmo adiciona o mini-AP em algum ponto da rede, normalmente saidas de impressora/VoIP phones que muitas vezes não estão controladas pelos dot1x da vida).

Algoritmos de Fuzzy Clustering como o Fuzzy C-Means (FCM), com o fuzzyc (FCTM) e o fuzzy-c (FCLMedS) são usados para mining em informações no geral, outra aplicação com agrupamento de difusão pode tambem ser utilizado para o mesmo propósito. Aplicamos um algoritmo chamado CARD (Competitive Agglomeration of Relational Data), para agrupas diferentes sessões de usuários e dados.
Para termos efeito, não apenas logs são utilizados, portanto, SIEMs que só levem em consideração os logs
propriamente dito, não podem possuir este tipo de inteligência, estão anos luz disto ainda.
Outro algoritmo muito utiliza
do é o Fuzzy Association, onde com base nas informações extraídas pelos algoritmos acima, tambem podemo tentar PREVER determinados padrões, o que pode ser muito util mediante mudaças do ambiente, ou mudanças de valores financeiros se aplicamos ao conceito de fraude por exemplo, tambem mudarão o comportamento. Isso não é mágica, isso é MATEMÁTICA, pois com a geração de um indice “fuzzy”, podemos criar arvores de acesso ou comportamentos que são dinamicos na sua maioria. Certo? E sim, podemos ser muito eficientes nisto. :)

Uma coisa muito legal na lógica fuzzy, é que ela permite a exploração de dados incompletos, informações que muitas vezes são importantes, mas por algum motivo não a temos. Quando construimos um modelo para identificação sem o contexto inicial, podemos rotular uma série de outras informações para nos ajudarem a estabelecer o padrão, entre elas temos o modelo de aproximação, pelo comportamento prévio estabelecido, como perfíes pessoais associados (Fuzzy Association) a transações ou informações não rotuladas/contextualizadas, porêm deveras parecida com de uma determinada pessoa.

- Regras de Associação

As regras de associação relacionam a
s afinidades entre grupos e pessoais por si so, existe dentro disto um conjunto chamado Itens “I”, e um conjuntos chamado de “transações”, onde cada transação sendo um conjunto de “Itens”. Vamos considerar dois conjuntos de itens “I1, I2 ⊆ I” onde “I1 ∩ I2 = ∅”. Uma regra de associação “I1 ⇒ I2”, é uma regra onde aparições de elementos no conjunto de itens I1 em uma transação impliaca a aparição do conjunto de itens I2 na mesma transação. I1 e I2 são chamados de atencedente e a consequantes da regra, respectivamente. As medidas mais utilizadas para descrever as relações entre eles são “Support” e “Confidence”, onde Support é a porcentagem de transações e Confidence, mede a força deste Support mediante o número de vezes que aparece os itens.

Existem vários estudos sobre regras de associação como um fator de generalização quando os dados são “nebulosos/fuzzy”. Mas, por enquanto é somente largamente utilizada, não uma regra, eu particularmente gosto muito dela até mesmo porque a não ser que adicionarmos sets neurais, não temos nada melhor.


As regras de associação podem ser retiradas por meio de um algoritmo de extração, tais como o APioriTID, uma operação fuzzy pode ser definida como um subconjunto não vazio onde τ ⊆ I. E para cada i ∈ I veremos τ(˜i) o grau de adesão de i em uma transação ~i, é definida como:


As operações fuzzy gerenciam as imprecisões e podem dar mais flexibilidade porque nos permite lidar com valores intermediários entre 0 e 1, sacaram a diferença e o poder da mesma? :)


Para avaliação do desempenho das regras de associação, empregamos uma abordagem semântica basea
da na avaliação quantificada. Uma sentença qualificada é uma expressão da forma “Q de F é G”, onde F e G dois subconjuntos fuzzy de um conjunto finito X e Q é um qualificados relativo fuzzy.


Quantificadores relativos são rótulos que podem ser representados por meio ou na maioria das vezes dois conjuntos fuzzy em [0,1], tais como “,” quase ou “muitos”. Desta forma podemos definir medidas estimadas das regras. Vamos observar que as famílias de apoio e “Support” / “Confidence”, podem
ser obtidas em função da avaliação dos dados e o quantificados que escolhemos. Podemos avaliar as sentenças pelo método “GD” que foi mostrado para verificar as propriedades com um desemplenho melhor que outros. A avaliação “Q e F é G” por meio de GD, é definida da seguinte forma:



Outra medida interessante é o fator de segurança de uma regra de associação fuzzy. Dada a A → C, o fator de segurança toma valores em [1, 1]. É positivo quando a dependência entre A e C é positiva, 0 quando não é a independência e um valor negativo quando a dependência é negativo. Falamos que uma regra de associação fuzzy é realmente boa quando seu fator de “certidão” e suporte são superior a dois definidos pelo usuário minCF thresholds e minSupp, respectivamente.

No próximo post, uma representação prática disto... :)

domingo, 22 de novembro de 2009

SIEM como uma ferramenta de Inteligência!


Primeiro Post real!

Bem, gostaria de mostrar algumas funções legais neste mundo
"SIEM", porem, muito pouco exploradas.

Sim, analise geografica, temporal e principalmen
te associando entidades a eventos populados externamente podem transformar o seu SIEM que atualmente relaciona suas informações de infra estrutura básica em uma ferramenta realmente POWER, onde tu pode transforma-lo facilmente em uma ferramenta de inteligência, para governos isto é o supra-sumo, pois mediante fontes externas e informações de infra crítica como ferramentas de DPI (Deep Packet Inspection), com os devidos protocolos de "Interceptação Legal" sendo seguidos, e requeridos a terceiros (geralmente, provedores de redes/telcos), juntamente com informações de triangulação obtendo latitude e longitude, seja via redes moveis/GPSs/HAM/etc, dos "atores", facilmente um BOM SIEM pode ligar os pontos e salvaguarda questões políticas/legais/privacidade resguardada pelos procedimentos legais de "IL".

Comercialmente, fujindo do mundo "Cybe
r Espionage", isto pode ser deveras util como por exemplo, monitoração de pessoas chaves para organização, não apenas o que fazem no dia a dia, mas onde estão e quais suas ligações pessoais com terceiros. Hoje em dia investe-se muito em ferramentas de DLP, mas muita gente esquece que o simples fato de um encontro casual com um concorrente, mesmo em uma entrevista, a pessoa acaba muitas vezes involuntariamente deixando vazar informações classificadas.

Não é tão complicado assim obter esse tipo de informação, desde que você tenha uma conta jurídica, muitas empresas de telco moveis hoje em dia já disponibilizam a informação de latitude/longitude.

O mesmo pode ser utilizado para monitoração de cargas ou mesmo para mapear infraestrutura física e relacionar os eventos ao local de sua origem, não somente o que e como, mas o ONDE.


Em uma situação de incidente mais grave, ataques complexos e planejados principalmente com objetivo de espionagem industrial, isso faz toda diferença, e um mapa como os colocados acima ajudam muito no processo de investigação.

Veja o exemplo abaixo, um mapa estrutural pode ser completamente mapeado no sentido de classificar regioões sensiveis do complexo como DataCenters, Salas Cofres, Laboratorios, Gerencia, etc...
Com informações como estas mapeadas e devidamente categorizadas, tu poderá extrair resultados muito bons, como por exemplo, pessoas que não deveriam estar em determinadas salas, acessando dados destas, ou mesmo fora do complexo utilizando redes wireless amplificando com antenas simples (como a antiga antena de Pringles).

Com relação a privacidade, esqueçam, principalmente quando integramos a eventos oriundos de fontes de identificação facial como IDS físicos.

Muito se fala em monitoração de pessoas/paises e todos estes medos que se tornam cada vez mais possíveis com a tecnologia atual, e tendem a piorar. Fato é que, isso hoje já e possível sem que se tenha informações mais apuradas como de satelites dedicados a vigilança e outras fontes como grandes "projetos secretos e colaborativos".

Bem, fica a dica, use seu SIEM de verdade e monte uma mini-CIA dentro da empresa desde que você tenha acesso aos dados no qual são necessários para tal, como:

- Triangulação de Antenas (Telco Movel), extraido das CDRs;
- GPS (Satelites);
- DPI em BackBones;
- SIEM que seja possua correlação neural e aceite latitude/longitude em seu "schema", tratando de fato lat/log como tal, não como uma string comum (senão pode jogar o seu SIEM no lixo);
- etc... :)

É isso ai galera.


Just starting!

Olá!

A ideia aqui é iniciar um blog relacionado ao meu dia-a-dia, principalmente tecendo textos informativos relacionados a rede neural, AI, complex event processing, parsing, geo correlation, e todas essas coisas que normalmente se tem em SIEM... SIM, NAO, SEM, COM, etc... :)

Enjoy ur ride...