Sistemas Operacionais

Ranieri Marinho de Souza | Segurança da Informação, Dicas de Segurança, Técnicas de Segurança, Ameaças | Terça, 4 de Agosto de 2009

Para compreender o quão complexo é complexo nosso mundo de Segurança da Informação, é importante compreender um elemento importante, este elemeto é o Sistema Operacional.

O sistema operacional é uma coleção de programas que
* inicializa o hardware do computador
* fornece rotinas básicas para controle de dispositivos
* fornece gerência, escalonamento e interação de tarefas
* mantém a integridade de sistema

Há muitos tipos de Sistemas Operacionais, cuja complexidade varia e depende de que tipo de funções é provido, e para que computador esteja sendo usado. Alguns sistemas são responsáveis pela gerência de muitos usuários, outros controlam dispositivos de hardware como bombas de petróleo.

Um Sistema Operacional muito simples para um sistema de controle de segurança poderia ser armazenado numa memória ROM (Só de Leitura - um chip que mantém instruções para um computador), e assumir o controle ao ser ligado o computador. Sua primeira tarefa seria reajustar (e provavelmente testar) os sensores de hardware e alarmes, e então ativar uma rotina monitorando ininterruptamente todos os sensores introduzidos. Se o estado de qualquer sensor de entrada for mudado, é ativada uma rotina de geração de alarme.

Em um grande computador multiusuário, com muitos terminais, o Sistema Operacional é muito mais complexo. Tem que administrar e executar todos os pedidos de usuários e assegurar que eles não interferiram entre si. Tem que compartilhar todos os dispositivos que são seriais por natureza (dispositivos que só podem ser usados por um usuário de cada vez, como impressoras e discos) entre todos os usuários que pedem esse tipo de serviço. O SO poderia ser armazenado em disco, e partes dele serem carregadas na memória do computador (RAM) quando necessário.

Utilitários são fornecidos para
* Administração de Arquivos e Documentos criados por usuários
* Desenvolvimento de Programas
* Comunicação entre usuários e com outros computadores
* Gerenciamento de pedidos de usuários para programas, espaço de armazenamento e prioridade

Adicionalmente, o SO precisaria apresentar a cada usuário uma interface que aceita, interpreta, e então executa comandos ou programas do usuário. Essa interface é comumente chamada de SHELL (=cápsula, manteremos o nome original em inglês) ou interpretador de linha de comando (CLI). Em alguns sistemas ela poderia ser uma simples linha de texto que usam palavras chaves (como MSDOS ou UNIX); em outros sistemas poderiam ser gráficas, usando janelas e um dispositivo apontador como um mouse (como Windows95 ou X - Windows).

As Várias Partes de um Sistema Operacional
Um sistema operacional de um computador que é usado por muitas pessoas ao mesmo tempo, é um sistema complexo. Contém milhões de linhas de instruções escritas por programadores. Para tornar os sistemas operacionais mais fáceis de serem escritos, eles são construídos como uma série de módulos, cada módulo sendo responsável por uma função.

Os módulos típicos em um grande SO multiusuário geralmente são
* Núcleo (Kernel em inglês - também conhecido como “executivo”)
* Gerenciador de processo
* Escalonador (Scheduler, em inglês)
* Gerenciador de arquivo

O Núcleo - Um Executivo em Tempo-Real
O núcleo de um sistema operacional é algumas vezes chamado de EXECUTIVO em tempo real.

Algumas das funções executadas por ele são
* chaveamento entre programas
* controle e programação de dispositivo de hardware
* gerenciamento de memória
* gerenciamento de processos
* escalonamento de tarefas
* comunicação entre processos
* processamento de exceções e de interrupção

Nosso sistema simples de monitoração de segurança não teria todas as funções acima, já que provavelmente seria um sistema mono-tarefa, executando apenas um programa. Como tal, não precisaria processar permutas entre mais de um programa ou permitir comunicação entre programas (comunicação entre processos). A gerência da memória seria desnecessária, já que o programa residiria permanentemente em ROM ou em EPROM (uma forma programável especial de ROM).

Um sistema operacional projetado para manusear um grande número de usuários precisaria de um núcleo para executar todas as funções acima. Programas de usuários geralmente são armazenados em disco, assim precisa ser carregado em memória antes de ser executado. Isso apresenta a necessidade de gerência da memória, já que a memória do computador precisaria ser pesquisada para localizar uma área livre para carregar um programa de usuário na mesma. Quando o usuário tivesse encerrada a execução do programa, a memória consumida por ele precisaria ser liberada e se tornaria disponível para outro usuário quando solicitado.

Gerenciamento e Escalonamento (Scheduling) de processos também são necessários, de forma que todos os programas possam ser executados razoavelmente. Não há como um programa de um usuário específico ser executado numa área de extensão, negando o funcionamento de qualquer outro programa, e fazendo todos os outros usuários esperarem. Adicionalmente, alguns programas poderiam precisar ser executados mais freqüentemente que outros, por exemplo, checando comunicações de rede ou imprimindo. Alguns programas podem precisar ser suspensos temporariamente, e serem reiniciados depois, assim introduzindo a necessidade da comunicação inter-programas.

Programando um computador
Um programa é uma seqüência de instruções ao computador. Quando o programador de software (uma pessoa que escreve programas para serem executados em um computador) desenvolve um programa, este é convertido em uma longa lista de instruções que são executadas pelo sistema de computador.

Em sistemas operacionais nós falamos mais de um processo do que de um programa. Nos sistemas operacionais modernos, só uma porção de um programa é carregada em cada instante. O resto do programa espera numa unidade de disco até que se precise do mesmo. Isso economiza espaço de memória.

Os programas no computador são executados por processadores. Um processador é um chip no computador que executa instruções de programa. Processadores executam milhões de instruções por segundo.

Um Processo
Um processo ou tarefa é uma porção de um programa em alguma fase de execução. Um programa pode consistir de várias tarefas, cada uma com funcionamento próprio ou como uma unidade (talvez se comunicando entre si periodicamente).

A Thread (fileira, linha)
Uma thread é uma parte separada de um processo. Um processo pode consistir de várias threads cada uma das quais sendo executada separadamente. Por exemplo, uma thread poderia tratar refresh e gráficos na tela, outra thread trataria impressão, outra thread trataria o mouse e o teclado. Isso dá bom tempo de resposta em programas complexos. Windows NT é um exemplo de um sistema operacional que suporta multi-thread.

Sistemas operacionais de Multi-processo
Alguns sistemas executam só um único processo, outros sistemas executam múltiplos processos de cada vez. A maioria dos computadores é baseada num único processador, e um processador pode executar só uma instrução de cada vez. Assim, como é possível um único processador executar processos múltiplos? A resposta mais imediata é que ele não faz desse modo. O processador do computador executa um processo por um período pequeno de tempo, e então muda para o próximo processo e assim por diante. Como o processador executa milhões de instruções por segundo, isso dá a impressão de muitos processos serem executados ao mesmo tempo.

Em um sistema de computador que suporta mais de um processo de cada vez, algum mecanismo deve ser usado para intercalar de uma tarefa para outra. Há dois métodos principais usados para fazer essa troca:

* Escalonamento por Cooperação indica que uma tarefa que está sendo executada atualmente deixará voluntariamente em algum momento o processador e permitirá que outros processos sejam executados.

* Escalonamento Preemptivo significa que uma tarefa corrente será interrompida (forçou a se render) e o processador se dedica a outro processo em estado de espera.

O problema da mudança por cooperação é que um processo poderia demorar e assim negar a execução de outros processos e poderia resultar em nenhum trabalho ser feito. Um exemplo de um sistema de cooperação é o Windows 3.1 (Deus me livre!!!!!!!!!).

O escalonamento preemptivo é melhor. Dá mais respostas a todos os processos e ajuda a prevenir (ou reduz o número de ocorrências de) contra o medo de máquinas travadas. Windows NT e posteriormente Windows 2000/2003 é um exemplo de tal sistema operacional.

Nota: Só para programas de 32bits em Windows 95/98 há escalonamento preemptivo. Programas de 16bits ainda são escalonados cooperativamente, o que significa que ainda é fácil para um programa de 16bits travar um computador Windows.

Contexto de Troca
Quando o processador muda de um processo a outro, o seu estado (o processador registra e associa os dados) deve ser salvo, pois algum tempo depois, será reiniciado o processo e continuará como se nunca fora interrompido. Uma vez esse estado tenha sido salvo, o próximo processo em espera é ativado. Isso envolve carga nos registradores do processador e na memória, com todos os dados previamente salvos, e reiniciando na instrução que seria executada quando houve a última interrupção.

O ato de mudar de um processo a outro é chamado troca de contexto. Um período de tempo que um processo execute antes de ser trocado é chamado de time slice ou período de quantum.

Escalonamento (Scheduling)
A decisão de qual o próximo processo deve ser executado é chamado escalonamento (scheduling), e pode ser feito em uma grande variedade de maneiras.

Escalonadores por cooperação geralmente são muito simples, já que os processos são organizados em fila circular (ROUND ROBIN). Quando um processo corrente se deixa, vai para o fim da fila. O processo no topo da fila é então executado, e todos os processos se movimentam um lugar para cima na fila. Isso provê uma medida justa, mas não impede que um processo monopolize o sistema (não se deixando).

Escalonadores preemptivos usam um relógio em tempo real que gera interrupção a intervalos regulares (digamos, a cada 1/100 de um segundo). Cada vez que uma interrupção ocorre, o processador muda para outra tarefa. Sistemas que geralmente empregam esse tipo de escalonamento atribuem prioridades a cada processo, de forma que alguns podem ser executados mais freqüentemente que outros.

Carga do Sistema Operacional
O SO pode ser carregado na memória de um computador de duas maneiras.

* já está presente em ROM
* é carregado a partir do disco quando o computador é ligado.

Se o SO já está presente em ROM (para sistemas tipo controladores industriais, bombas de petróleo, etc), ele ganhará controle imediato do processador ao ser ligado o computador. Para sistemas mais complexos, o SO é armazenado normalmente em mídia secundária (como disco), e é carregado em RAM quando o computador é ligado. A vantagem desse tipo de sistema é que o escalonamento para o SO é mais fácil de fazer e programar.

O PROCESSO de BOOTSTRAP
Descreve a ação da carga inicial do sistema operacional do disco para a RAM. Uma pequena rotina armazenada em ROM, chamada de CARREGADOR de BOOTSTRAP ou IPL (Carregador de Programa Inicial), lê uma rotina especial de carga no disquete. Em sistema baseado em disquete, essa rotina normalmente reside na trilha 00, setor 00 (ou 01), e é chamado de setor de booting. O código contido no setor é transferido para a RAM, e então é executada. Tem a responsabilidade exclusiva de carregar o resto do sistema operacional na memória.

Tipos diferentes de processamentos em sistemas operacionais
Sistemas operacionais são divididos em categorias que definem as suas características. Sistemas modernos podem usar combinações de essas categorias descritas a seguir.

BATCH (em LOTE)
O tipo mais antigo de SO permite só um programa ser executado de cada vez. O programa que é carregado no computador é executado completamente. Os dados usados pelo programa não podem ser modificados enquanto o programa está sendo executado. Qualquer erro no programa ou nos dados significa começar tudo novamente.

INTERATIVO
Esses permitem a modificação e entrada de dados ainda durante a execução do programa. Sistemas típicos são reservas de vôo aéreo e linguagens como BASIC.

TIME-SHARING/MULTI-USUÁRIO
Esses SOs compartilham o computador entre mais de um usuário, e adota técnicas de escalonamento preemptivo.

MULTI-TAREFAS
Mais de um processo pode ser executado concorrentemente. O processador é escalonado rapidamente entre os processos. Um usuário pode ter mais de um processo executado de cada vez.

TEMPO REAL
Principalmente usado em controle de processos, telecomunicações, etc. O SO monitora várias entradas que afetam a execução de processos, mudando os modelos de computadores do ambiente, e assim afetando as saídas, dentro de um período de tempo garantido (normalmente < 1 segundo).

MULTI-PROCESSAMENTO
Um computador que tem mais de um processador central dedicados na execução de processos.

Abraços,
Ranieri Marinho de Souza
Segurança da Informação

http://www.segr.com.br/
http://blog.segr.com.br/

Pragas

Ranieri Marinho de Souza | Segurança da Informação, Dicas de Segurança, Ameaças | Terça, 28 de Julho de 2009

Todas as pragas

Vírus: Arquivo que possui instruções em seu código para causar dano à sistemas operacionais, os níveis de dano podem ser até a destruição completa do sistema, inclusive à bios do mesmo. Ex: Vírus Chernobyl.

Adware: programa que se instala praticamente sem a percepção do usuário, sem a permissão do mesmo, promete alguma utilidade, mas, na verdade sua intenção é espionar os hábitos do usuário, traçando um perfil do mesmo, para a Empresa responsável pelo mesmo lhe enviar Spams.

Trojan: (CAVALO DE TRÓIA) uma das mais perigosas pragas existentes, sua função é espionar o usuário em tudo o que faz, e transmitir as informações:
Senhas, E-mail, Login etc., para o Cracker que o enviou. Esta PRAGA, costuma vir em E-mails ou mesmo em programas, muito bem disfarçada, e até existem técnicas para camuflar o Trojan tornando-o indetectável pelo Antivírus ou mesmo outro programa de Defesa.

Worm: VERME, uma variação de vírus com TROJAN, é altamente nocivo e possui instruções para alterar, destruir e se executar em determinado tempo, que pode ser semana, mês, dia e até hora marcadas para sua execução. É uma das mais perigosas PRAGAS existentes. Vêem camuflados e não é fácil sua detecção.

Hijacker: Sua função é alterar a navegação do Browser para sites pre-selecionados, muitas vezes sites pornô; o objetivo principal desta praga é controlar a navegação do usuário traçando o perfil do mesmo para lhe enviar Spam, objetivo principal comercial,outro espionagem.

Keylogger: Praga enviada para monitorar tudo o que é digitado pelo usuário, tanto localmente e principalmente quando o mesmo está on-line, e enviar os dados capturados para o atacante que instalou o Keylogger. O mesmo pode ser instalado tanto a distância como também presencialmente. Todo o cuidado com esse malware é pouco, ele pode capturar às telas e janelas do sistema também.
Essas PRAGAS, estão em todo o Planeta e podem ser enviadas por E-mail, ou mesmo vir disfarçadas em programas aparentemente inocentes.

BackDoor: Uma das piores pragas. Pode ser instalado tanto presencialmente como remotamente, a distância. Sua função abrir portas de comunicação sem o conhecimento do usuário, para que através delas, o mesmo sofra uma invasão ou um ataque. Pode ser usado para a ESPIONAGEM também, e informar ao atacante todos os movimentos da sua vítima. Pode vir disfarçado, burlar o Antivírus e o Firewall e sua detecção não é fácil. O nome se refere a abrir porta de comunicação nos bastidores do sistema, e através dela facilitar a invasão e controle remoto do mesmo, visando inúmeros fins nocivos.

Bots e Botnets: Também extremamente perigosos e difíceis de serem detectados, são na verdade também Rootkits – arquivos maliciosos que vêm com outros programas – aparentemente inofensivos. Mexem no registro do Sistema, alteram parâmetros, e conseqüentemente causam anomalias no sistema. São bastante perigosos e difíceis de detectar. A espionagem também é um dos seus atributos, para envio de Spam, Controle Remoto do Sistema e outros mais perigosos e destrutivos.

RootKits: Arquivos que possuem funções para alterar a navegação do usuário, alteram o controle e comportamento do Registro e de parâmetros do sistema com o intuito de espionagem, alteração da navegação do Browser e também funções de destruição do mesmo, sua instalação é bem camuflada e de difícil percepção, são arquivos bem pequenos.

Exploits: Talvez o mais perigoso do momento, porquê é um programa ou mesmo uma série de códigos enviados ao sistema, que são preparados para explorar vulnerabilidades dos mesmos. Bugs em Sistemas, Protocolos, serviços ou falhas em Browser, falta de atualização propiciam a possibilidade, de se alterar parâmetros e mesmo o controle do sistema, permitindo o controle remoto do mesmo, a alteração do Registro do Sistema e até à sua própria destruição ou instalação de um Backdoor ou Trojan, por exemplo.

Abraços,
Ranieri Marinho de Souza
Segurança da Informação

http://www.segr.com.br/
http://blog.segr.com.br/

Hackers Famosos

Ranieri Marinho de Souza | Segurança da Informação, Notícias de Segurança, Ameaças | Terça, 28 de Julho de 2009

Para muitos o termo Hacker é assustador, e representa um individuo símbolo do vilão cibernético.

Originalmente, e para certos segmentos de programadores, são hackers indivíduos que elaboram e modificam software e hardware de computadores, seja desenvolvendo funcionalidades novas, seja adaptando as antigas. Originário do inglês, o termo é comumente utilizado no português sem modificação. Na língua comum o termo designa programadores maliciosos e ciberpiratas que agem com o intuito de violar ilegal ou imoralmente sistemas cibernéticos.

Existem várias histórias de hackers, a lenda diz que o mais habilidoso dos hackers nunca seja conhecido. Aqueles que ficaram famosos, são em geral, os que falharam e acabaram indo parar na cadeia.

Se você ainda não conhece alguns dos mestre desse mundo confira a lista dos cinco hackers mais famosos de todos os tempos!

Jonathan James - James ganhou notoriedade quando se transformou no primeiro jovem a ser preso por “hackear”. Foi sentencia aos 16 anos à detenção. Em uma entrevista bem humorada, ele confessou: “O divertimento para mim era superar os desafios que poderia encontrar”. James foi condenado a seis meses de detenção por hackear computadores do Pentágono e NASA. Conhecido como “cOmrade” (”Camarada” em português) na Internet, alegou ser culpado de interceptar 3,300 mensagens de e-mail de um Departamento de defesa dos EUA e dados roubados de 13 computadores da NASA, incluindo alguns dedicados para a nova Plataforma Espacial Internacional.

Adrian Lamo - um conhecido hacker norte-americano que admitiu ter penetrado em sistemas de sites tão populares como o Yahoo! ou o New York Times. Foi quando ele invadiu o New York Times, que a coisa ficou séria, ele foi pego e teve que pagar uma pequena bagatela de aproximadamente $65.000 e condenado a 6 meses de prisão.

Kevin Mitnick - Ele se auto declarava como “hacker poster boy”. O Departamenteo de justiça americano descreve ele como “o criminoso mais querido da história dos EUA”. Suas façanhas viraram dois filmes: Freedom DownTime e Takedown.Tornou-se celebridade aos 17 ao invadir o sistema do Comando de Defesa Aérea dos Estados Unidos. Antes de completar 18 anos já estampava páginas de jornais e revistas com uma habilidade incomum e inédita para a época: destrinchar complexos programas de computador. O mais famosos dos Hackers chegou a roubar 20.000 números de cartões de crédito e passeava pelo sistema telefônico com total desenvoltura. Foi o primeiro hacker a entrar para a lista dos dez criminosos mais procurados pelo FBI.

A brincadeira tomou proporções perigosas quando desafiou gigantes da tecnologia como Motorola, Nokia, Novell e Sun Microsystem.Depois de quatro anos na prisão. Mitnick está agora em liberdade!

Kevin Poulsen - Conhecido também como Dark Dante, Pousen ganhou status quando assumiu o controle de todas as ligações da radio KISS FM de Los Angeles, que estava oferecendo um Porsche para o autor da 102º chamada telefônica do dia. Inevitávelmente ele levou o ambicioso prémio. Poulsen passou quatro anos na prisão e hoje é diretor do site Security Focus!

Robert Tappan Morris - Criador de um worm, uma rotina que consistia de menos de 100 linhas de códigos escritos em linguagem C que desencadeou na internet e atingiu quase 6.000 servidores, só nos EUA, causando infecção, sobrecarga e incapacitação. Isso levantou na época uma questão básica: as redes são vulneráveis!

Todos esses hackers renomados são denominados black-hats crackers, Black-hats são especialistas em segurança que utilizam seus conhecimentos para invadir sistemas e roubar informações. Eles descobrem falhas de segurança em computadores alheios e criam sistemas para explorá-las.

Alguns black-hats agem para obter retorno financeiro, outros simplesmente porque gostam do que fazem e alguns por acreditarem que os problemas de segurança, de alguma forma, incentivam as empresas a dar mais atenção aos seus sistemas informatizados.

Saiba mais…………….

Abraços,
Ranieri Marinho de Souza
Segurança da Informação

http://www.segr.com.br/
http://blog.segr.com.br/

Técnicas de Invasão

Invasão é a entrada em um site, servidor, computador ou serviço por alguém não autorizado. Mas antes da invasão propriamente dita, o invasor poderá fazer um teste de invasão, que é uma tentativa de invasão em partes, onde o objetivo é avaliar a segurança de uma rede e identificar seus pontos vulneráveis.

Mas não existe invasão sem um invasor, que pode ser conhecido, na maioria das vezes, como Hacker ou Cracker. Ambos usam seus conhecimentos para se dedicarem a testar os limites de um sistema, ou para estudo e busca de conhecimento ou por curiosidade, ou para encontrar formas de quebrar sua segurança ou ainda, por simples prazer.

Mas também pode ser por mérito, para promoção pessoal, pois suas descobertas e ataques são divulgados na mídia e eles se tornam conhecidos no seu universo, a diferença é que o Cracker utiliza as suas descobertas para prejudicar financeiramente alguém, em benefício próprio, ou seja, são os que utilizam seus conhecimentos para o mau.

Existem muitas ferramentas para facilitar uma invasão e a cada dia aparecem novidades a respeito. Abaixo serão descritas algumas das mais conhecidas.

Spoofing

Nesta técnica, o invasor convence alguém de que ele é algo ou alguém que não é, sem ter permissão para isso, conseguindo autenticação para acessar o que não deveria ter acesso, falsificando seu endereço de origem. É uma técnica de ataque contra a autenticidade, onde um usuário externo se faz passar por um usuário ou computador interno.

Sniffers

Sniffer é um programa de computador que monitora passivamente o tráfego de rede, ele pode ser utilizado legitimamente, pelo administrador do sistema para verificar problemas de rede ou pode ser usado ilegitimamente por um intruso, para roubar nomes
de usuários e senhas. Este tipo de programa explora o fato dos pacotes das aplicações TCP/IP não serem criptografados.

Entretanto, para utilizar o sniffer, é necessário que ele esteja instalado em um ponto da rede, onde passe tráfego de pacotes de interesse para o invasor ou administrador.

Ataque do tipo DoS - Denial of Service

É um ataque de recusa de serviço, estes ataques são capazes de tirar um site do ar, indisponibilizando seus serviços. É baseado na sobrecarga da capacidade ou em uma falha não prevista.

Um dos motivos para existirem esse tipo de falha nos sistemas é um erro básico de programadores, na hora de testar um sistema, muitas vezes, eles não testam o que acontece se um sistema for forçado a dar erro, se receber muitos pacotes em pouco tempo ou se receber pacotes com erro, normalmente é testado o que o sistema deveria fazer e alguns erros básicos. O invasor parte deste princípio e fica fazendo diversos tipos de testes de falhas, até acontecer um erro e o sistema parar.

Este tipo de ataque não causa perda ou roubo de informações, mas é um ataque preocupante, pois os serviços do sistema atacado ficarão indisponíveis por um tempo indeterminado, dependendo da equipe existente na empresa para disponibilizá-lo novamente e dependendo do negócio da empresa, este tempo de indisponibilidade pode trazer muitos prejuízos.

De acordo com um estudo da Universidade da Califórnia, Crackers tentam realizar em torno de 15 mil ataques do tipo DoS por semana. Os alvos mais comuns são grandes empresas.

Ataque do tipo DDoS – Distributed Denial of Service

São ataques semelhantes ao DoS, tendo como origem diversos e até milhares de pontos disparando ataques DoS para um ou mais sites determinados. Para isto, o invasor coloca agentes para dispararem o ataque em uma ou mais vítimas. As vítimas são
máquinas escolhidas pelo invasor por possuírem alguma vulnerabilidade. Estes agentes, ao serem executados, se transformam em um ataque DoS de grande escala. Uma ferramenta chamada DDoS Attack, desenvolvida pelo programador brasileiro que se intitula OceanSurfer, é capaz de causar negação de serviços em computadores na Internet através de uma inundação de conexões em determinada porta.

Quebra de Senhas

Para acessar algo é necessário uma senha de acesso, muitos invasores tentam quebrar estas senhas através de técnicas de quebras de senhas, como tentar as senhas padrões de sistemas ou as senhas simples como nomes pessoais, nome da empresa, datas, entre outros. Mas para facilitar a descoberta da senha, existem diversos programas, como dicionários de senhas e programas que tentam todas as combinações possíveis de caracteres para descobrir a senha.

Vírus

O vírus de computador é outro exemplo de programa de computador, utilizado maliciosamente ou não, que se reproduz embutindo-se em outros programas. Quando estes programas são executados, o vírus é ativado e pode se espalhar ainda mais, geralmente danificando sistemas e arquivos do computador onde ele se encontra. Um exemplo deste tipo de programa é o Worm, criado por Robert Morris.

Os vírus não surgem do nada, ou seja, seu computador não tem a capacidade de criar um vírus, quem cria os vírus são programadores de computador mal intencionados.

Para que o vírus faça alguma coisa, não basta você tê-lo em seu computador. Para que ele seja ativado, passando a infectar o micro, é preciso executar o programa que o contém. E isto você só faz se quiser, mesmo que não seja de propósito. Ou seja, o vírus só é ativado se você der a ordem para que o programa seja aberto, por ignorar o que ele traz de mal pra você. Se eles não forem “abertos”, “executados”, o vírus simplesmente fica alojado inativo, aguardando ser executado para infectar o computador.

Após infectar o computador, eles passam a atacar outros arquivos. Se um destes arquivos infectados for transferido para outro computador, este também vai passar a ter um vírus alojado, esperando o momento para infectá-lo, ou seja, quando for também executado. Daí o nome de vírus, devido à sua capacidade de auto-replicação, parecida com a de um ser vivo.

Por que os vírus são escritos ? Esta pergunta foi feita na convenção de Hackers e fabricantes de vírus na Argentina. As respostas seguem abaixo:
· Porque é divertido;
· Para estudar as possibilidades relativas ao estudo de vida artificial (de acordo com a frase de Stephen Hawkind: “Os vírus de computador são as primeiras formas de vida feitas pelo homem” ). Esta proposta é seguida por vários cientistas.
· Para descobrir se são capazes de fazer isso, tentando seus conhecimentos de computação, ou para mostrarem aos colegas que são capazes de fazer;
· Para conseguir fama;
· Fins militares. Falou-se sobre isso na primeira Guerra do Golfo, em 1991, e os vírus para uso militar são uma possibilidade.

Trojans

A denominação “ Cavalo de Tróia” (Trojan Horse) foi atribuída aos programas que permitem a invasão de um computador alheio com espantosa facilidade. Nesse caso, o termo é análogo ao famoso artefato militar fabricado pelos gregos espartanos. Um
“amigo” virtual presenteia o outro com um “ presente de grego” , que seria um aplicativo qualquer. Quando o leigo o executa, o programa atua de forma diferente do que era esperado.

Ao contrário do que é erroneamente informado na mídia, que classifica o Cavalo de Tróia como um vírus, ele não se reproduz e não tem nenhuma comparação com vírus de computador, sendo que seu objetivo é totalmente diverso. Deve-se levar em consideração, também, que a maioria dos antivírus fazem a sua detecção e os classificam como tal. A expressão “ Trojan” deve ser usada, exclusivamente, como definição para programas que capturam dados sem o conhecimento do usuário.

O Cavalo de Tróia é um programa que se aloca como um arquivo no computador da vítima. Ele tem o intuito de roubar informações como passwords, logins e quaisquer dados, sigilosos ou não, mantidos no micro da vítima. Quando a máquina contaminada por um Trojan conectar-se à Internet, poderá ter todas as informações contidas no HD visualizadas e capturadas por um intruso qualquer. Estas visitas são feitas imperceptivelmente. Só quem já esteve dentro de um computador alheio sabe as possibilidades oferecidas.

Abraços,
Ranieri Marinho de Souza
Segurança da Informação

http://www.segr.com.br/
http://blog.segr.com.br/

Diagnóstico e Projeto de Segurança

Diagnóstico
O processo de “Diagnóstico” consiste em analisar a probabilidade de ameaças explorarem vulnerabilidades, considerando-se os mecanismos de segurança implementados.

Tem como objetivo minimizar o risco, evitar perda de confidencialidade, integridade e disponibilidade, causando, possivelmente, impactos nos negócios.

Qual é a situação atual?

Atualmente as empresas têm reconhecido que a Segurança das Informações desempenha um papel importante para que objetivos sejam atendidos e novos negócios sejam viabilizados. Contudo, as complexas topologias de rede atuais, onde às conexões estão ultrapassando fronteiras, estão cada vez mais em um ambiente hostil: atacantes estão colocando a prova a segurança das informações com uma freqüência cada vez maior e exigindo uma resposta aos incidentes ou ataques de forma cada vez mais rápida. Podemos perceber que no cenário atual, as empresas não são capazes de reagir aos ataques ao seu ambiente computacional a tempo de impedir prejuízos financeiros diretos e indiretos aos negócios. Sendo assim, o maior desafio das empresas atualmente é conseguir gerenciar a Segurança das Informações no seu ambiente tão complexo.

Qual é a situação “ideal”?
As empresas devem gerenciar a Segurança das Informações desenvolvendo estratégias pró-ativas e re-ativas, analisando todos os riscos para o processo de negócio. A elaboração de um trabalho voltado para o “Diagnóstico” da segurança, permite que as empresas analisem com eficiência o estado atual do ambiente, determinando o grau de proteção dos ativos em informações contra possíveis ameaças. Sendo assim, os esforços e orçamentos serão direcionados para atividades mais prioritárias para o processo de negócios.

a) Análise de Risco
b) Análise de Vulnerabilidades
c) Análise de Segurança na Aplicação
d) Teste de Invasão

Análise de Risco
A análise de risco da informação possui três objetivos principais: identificar riscos, quantificar o impacto das ameaças e conseguir um equilíbrio financeiro entre o impacto do risco e o custo da contramedida.

A identificação dos riscos e seu correto entendimento irá direcionar os investimentos de forma consciente obtendo melhores resultados.

Saiba mais…

A análise de riscos é usada para verificar possíveis ataques, ferramentas, métodos e técnicas que podem ser usados para explorar uma vulnerabilidade. A análise de riscos da informação é um método de identificação de riscos e avaliação dos possíveis danos que podem ser causados, a fim de justificar os controles de segurança.

A análise de risco da informação possui três objetivos principais: identificar riscos, quantificar o impacto de possíveis ameaças e conseguir um equilíbrio financeiro entre o impacto do risco e o custo da contramedida.

Um dos desafios da área de Segurança da Informação, ou até mesmo do departamento de Tecnologia da Informação, é integrar os objetivos do programa de segurança aos objetivos e requisitos de negócios. Para que todos os requisitos de negócios sejam atendidos, a empresa deve alinhar os objetivos de segurança com os objetivos de negócios. Apenas dessa forma o programa de segurança será bem sucedido.
A análise de risco ajuda a empresa a delinear um orçamento adequado para um programa de segurança e os componentes de segurança que formam esse programa. Quando a empresa souber o valor dos ativos e entender as possíveis ameaças a que eles estão expostos, a alta direção poderá tomar decisões inteligentes sobre o quanto investir na proteção desses ativos.

A análise de risco tem como objetivos:
• Identificar ameaças em potencial à segurança de TI (Tecnologia da Informação) e sua probabilidade aproximada.
• Identificar o valor dos ativos, inclusive seu valor indireto, caso sejam danificados ou violados.
• Usar esses valores quantificados para identificar as atividades mais adequadas e econômicas para proteger o ambiente.
• Definir e gerenciar uma diretiva formal de gerenciamento de riscos de segurança.
• Integrar o gerenciamento de riscos de segurança ao ciclo de vida da infra-estrutura de TI.
• Definir processos para aprimorar a especialização em gerenciamento de riscos na empresa por meio de iterações do ciclo do gerenciamento de riscos.

Análise de Vulnerabilidades
A confiabilidade, integridade e disponibilidade da informação são fundamentais para o bom andamento dos negócios.

Realizar inspeções de segurança para analisar a chance de perda para um ativo específico, possibilita uma estatística das vulnerabilidades existentes e os impactos resultantes. É uma etapa fundamental para definição correta das medidas de proteção e das necessidades de acerto no ambiente computacional.

O resultado final é uma análise do ambiente existente, comparando a situação atual com o ambiente desejado. São fornecidas recomendações técnicas e administrativas para minimizar os ricos e proteger os negócios.

Um fato muito comum que podemos encontrar em diversas empresas, é o profissional de TI acumular diversas tarefas e quase sempre sendo pressionado a realizar suas tarefas da maneira mais rápida possível e sem causar inconveniências aos usuários. Quando um incidente de segurança acontece, muitos profissionais de TI percebem que a única coisa que têm tempo de fazer é conter a situação, descobrir as causas e reparar os sistemas afetados no menor tempo possível.

A análise de vulnerabilidades identifica a raiz do problema e quais recursos são necessários para resolver o problema e minimizar o risco. A empresa começa a desenvolver uma estratégia reativa de segurança, minimizando o risco do ambiente computacional ser explorado por um atacante ou uma ameaça qualquer, a aproveitando melhor seus recursos computacionais.

Análise de Segurança na Aplicação
As aplicações (softwares e sistemas de computador) são desenvolvidas para automatizar e viabilizar os processos e negócios da empresa. Certificar que essas aplicações operem com a segurança necessária é fundamental para a viabilidade do próprio negócio.

A análise de segurança na aplicação consiste em analisar o contexto tecnológico e não tecnológico relacionado na aplicação e identificar quais os requisitos de segurança que existem ou que deveriam existir na aplicação. Avaliar o nível de garantia de segurança desses requisitos implementados na aplicação.
Todo o processo de avaliação é realizado em conformidade com a norma ISO/IEC 15408 Common Criteria.

O resultado final é a documentação da aplicação, o relatório final da avaliação e em caso de resultado positivo é emitido um Certificado de Segurança para a aplicação.

Quando uma empresa disponibiliza uma aplicação WEB na Internet, Intranet ou Extranet, a imagem da empresa e o seu sistema estão expostos a diversas ameaças. Para minimizar perdas financeiras, a única solução é identificar as ameaças e gerenciar os riscos associados. O desenvolvimento desta atividade permite realizar uma análise e concentrar os recursos nas questões relevantes, maximizando o retorno do investimento e garantindo a continuidade dos negócios.

O desenvolvimento desta atividade, em parceria com nossos clientes, é muito mais econômica e eficiente do que a implementação casual de sistemas de segurança sem o conhecimento preciso das ameaças que cada recurso de segurança deve solucionar.

Esta fase da metodologia BSM tem como objetivo identificar e classificar ameaças existentes na aplicação dos nossos clientes, com base em um conhecimento de vulnerabilidades das aplicações. O resultado das informações obtidas nesta fase possibilita tratar as ameaças existentes com as contramedidas apropriadas definindo prioridades, ou seja, começando pelas ameaças que apresentam maior risco para a organização.

Teste de Invasão
O teste de invasão tem como objetivo analisar os ambientes e seus sistemas de segurança pela ótica do invasor, sendo considerada uma técnica essencial para o bom andamento dos negócios. O objetivo não é causar danos, mas sim testar a eficácia dos mecanismos de segurança existentes.

a) Situação atual
b) Teste de Invasão
c) Macro etapas para o Teste de Invasão
d) Programa de Teste de Invasão

Situação atual
Atualmente, as organizações estão priorizando o aumento da segurança do seu ambiente computacional. Alguns fatores que contribuem com a estruturação da área de segurança dentro das organizações são:

a) Os negócios de qualquer organização são desenvolvidos através de uma rede computadores conectados à Internet.

b) Alguns regulamentos obrigam as organizações a manter as informações seguras, tais como:
1) Sarbanes-Oxley
2) California Senate Bill 1386 (SB 1386)
3) HIPAA (Health Insurance Portability and Accountability Act)
4) Resolução 3.380 do Banco Central do Brasil

c) Aumento da proliferação vírus de computador e ataques ao ambiente computacional.

Teste de Invasão
O teste de invasão é um conjunto de técnicas e metodologias para testar a conformidade com as regulamentações (nacionais e internacionais), normas internas e diretivas de segurança da informação.

É extremamente recomendado para:
a) Detectar vulnerabilidades desconhecidas.
b) Restringir a capacidade de hackers acessarem as informações da organização.
c) Evitar multas por não estar em conformidade com regulamentos (nacionais ou internacionais).
d) Limitar os pontos de exposição das informações da organização.
e) Avaliar a eficiência das medidas de segurança implementadas.
f) Evitar roubo de propriedade intelectual.
g) Evitar indisponibilidade dos negócios da organização.

Macro etapas para o Teste de Invasão

1. Coleta de informações, para levantar todo e qualquer tipo de informação disponível sobre a organização, em especial dados sobre endereços de máquina e redes, nomes de usuários, sistemas utilizados, serviços prestados, estrutura organizacional, etc.
2. Mapeamento do ambiente, após obtidas as informações iniciais, o especialista através de técnicas mais agressivas, procura mapear ainda mais a rede da organização. Enquanto na fase de coleta há pouca atividade diretamente realizada contra a rede avaliada, nessa etapa as máquinas passam a receber tráfego especificamente voltado para o levantamento da rede, como por exemplo port scanning, tcp/ip, fingerprinting, consultas sobre versões de aplicativos, etc.
3. Mapeamento de vulnerabilidades, é uma das partes mais importantes do teste de invasão. De posse do mapeamento do ambiente, o especialista é capaz de mapear vulnerabilidades de um sistema, através de banco de vulnerabilidades ou baseado em sua experiência. Essas vulnerabilidades podem ser tanto operacionais, como usuários com senha trivial, ou vulnerabilidades de software como uma versão insegura do Sistema Operacional ou seus aplicativos.
4. Exploração/Invasão, é a etapa do teste onde o especialista faz uso de ferramentas e técnicas para explorar as falhas observadas.
O teste de invasão envolve o uso de técnicas e ferramentas semelhantes a que os hackers usam para tentar invadir os destinos de negócios confidenciais.

Programa para o Teste de Invasão
O teste de invasão deve ser um processo contínuo:
1. Novas vulnerabilidades são descobertas quase diariamente.
2. Regulamentos e normas internacionais (ISO 27001 e ISO 17799) sugerem que seja realizado o teste de invasão para verificar se os requisitos estão implementados na organização.
3. Novos softwares e sistemas são implementados nas organizações.
4. Somente um programa contínuo de teste de invasão pode detectar os riscos e identificar como reduzi-los.

O programa de teste de invasão pode ajudar sua organização a:
1. Conhecer as necessidades de segurança e implementar medidas de proteção no ambiente de rede.
2. Ter controle total do ambiente de segurança, protegendo dispositivos técnicos e informações estratégicas para os negócios.
3. Reforçar, através da excelência técnica, a área de Tecnologia da Informação como a parceira fundamental no desenvolvimento dos negócios que sustentam a missão da organização.
4. Dotar o ambiente de Tecnologia da Informação com nível de segurança que possa viabilizar novos negócios.
5. Montar uma arquitetura de segurança que especifique as necessidades de segurança do ambiente informatizado.

Diretrizes
As “Diretrizes” consistem em proteger e preservar a empresa, suas informações e seus negócios. Também objetiva a ampliação da conscientização sobre segurança da informação e privacidade.

1. Documentar a visão estratégica da segurança;
2. Buscar a conformidade com a NBR ISO / IEC 17799;
3. Estruturar security officer e áreas de apoio;
4. Assegurar o manuseio, armazenamento, transporte e descarte adequado das informações;
5. Assegurar a continuidade dos negócios;
6. Assegurar conformidade com a legislação;
7. Definir normas e procedimentos de segurança para orientar a conduta adequada na classificação, controle e proteção das informações, com o intuito de minimizar os riscos e diminuir o grau de exposição da empresa sem comprometer o bom funcionamento dos negócios;
8. Ampliar a conscientização sobre segurança e privacidade da informação;
9. Definir responsabilidades.

Determinação de Controles de Segurança

Planejamento geral da segurança baseado nos custos de implementação em relação aos riscos que serão reduzidos e as perdas potenciais se as falhas na segurança ocorrerem.

Quando a empresa conhece as situações de risco e as vulnerabilidades existentes no seu ambiente computacional, o gestor consegue tomar decisões para a implementação de medidas de proteção. Todo o trabalho deve ser direcionado levando em conta os aspectos estratégicos, financeiros e técnicos existentes para a empresa. As informações coletadas durante as fases de análise de risco e vulnerabilidades devem permitir a criação de um quadro que facilite à justificativa de investimentos, a alocação de verbas e a priorização das metas necessárias.

Com a determinação do controle de segurança, o gestor pode elaborar o planejamento geral da segurança baseado nos custos de implementação em relação aos riscos que serão reduzidos e as perdas potenciais se as falhas na segurança ocorrerem, definindo quais metas devem ser trabalhadas, com que prioridade e com qual investimento.

Determinação de Controles de Segurança
Planejamento geral da segurança baseado nos custos de implementação em relação aos riscos que serão reduzidos e as perdas potenciais se as falhas na segurança ocorrerem.

Quando a empresa conhece as situações de risco e as vulnerabilidades existentes no seu ambiente computacional, o gestor consegue tomar decisões para a implementação de medidas de proteção. Todo o trabalho deve ser direcionado levando em conta os aspectos estratégicos, financeiros e técnicos existentes para a empresa. As informações coletadas durante as fases de análise de risco e vulnerabilidades devem permitir a criação de um quadro que facilite à justificativa de investimentos, a alocação de verbas e a priorização das metas necessárias.

Com a determinação do controle de segurança, o gestor pode elaborar o planejamento geral da segurança baseado nos custos de implementação em relação aos riscos que serão reduzidos e as perdas potenciais se as falhas na segurança ocorrerem, definindo quais metas devem ser trabalhadas, com que prioridade e com qual investimento.

Plano de Continuidade de Negócios
A Continuidade de Negócios é um conceito de importância cada vez maior, na medida em que antigas fórmulas não garantem o que efetivamente é necessário: a segurança da continuidade diante de eventos adversos.

Não podemos mais falar de forma isolada em Redundância, Backup Site, Recuperação de Erros… Nossa realidade atual é a de Análise de Risco e Análise de Impacto. E o que pode nos dar segurança é a existência de um Plano de Recuperação de Desastres, de um Plano de Contingência Operacional e de um Plano de Continuidade de Negócios que se complementem de forma harmoniosa, eficiente e eficaz.

O PCN (Plano de Continuidade de Negócios) realístico é de vital importância para que os nossos clientes possam cumprir os compromissos assumidos junto aos seus clientes, independentemente de interrupções maiores no uso de softwares, hardware, infra-estrutura, etc.

Implementação

Definição, organização e preparação da estrutura de gerenciamento para iniciar e controlar a implementação da segurança da informação dentro da empresa.

Implementação de Controles de Segurança

Após analisar a probabilidade de ameaças explorarem vulnerabilidades e definir as normas de segurança para orientar a conduta adequada na classificação, transporte, manuseio, controle e proteção das informações, com o intuito de minimizar os riscos, o próximo passo é a implementação de um projeto de segurança e treinar toda a equipe envolvida com a segurança da informação.

Os sistemas operacionais contam com diversos recursos para aplicar medidas de proteção aos ativos da empresa em conformidade com as regras estabelecidas na política de segurança. Sendo assim, a implementação de um projeto de segurança nem sempre representa investimentos diretos em hardware e software.

A configuração dos sistemas operacionais, seguindo as regras estabelecidas na política de segurança, aumenta o nível de disponibilidade, auditoria, contingência, etc. Uma gestão eficiente de segurança da informação deve aproveitar essas características para assegurar a proteção e o bom funcionamento do ambiente computacional.

Porém, dependendo das necessidades de segurança, as configurações do sistema operacional não são suficientes para assegurar o nível de proteção exigido para os negócios. Dessa forma, será necessário complementar com mecanismos adicionais de segurança. As soluções devem ser integradas, baseadas nas necessidades dos negócios, em conformidade com a política de segurança e de acordo com as melhores opções existentes no mercado.
Campanha de Divulgação

É importante que a empresa disponha de uma política de segurança atualizada e alinhada às necessidades do negócio, porém, é fundamental que a política de segurança seja reconhecida pelos usuários como o manual de segurança da empresa.

A campanha de divulgação assegura que os usuários estejam cientes das ameaças e das preocupações de segurança da informação e estarão aptos a apoiar a política de segurança da organização durante a execução normal do seu trabalho.


E a política, como vai?

Um outro aspecto importante que deve ser levado em consideração quando da elaboração de uma Política de Segurança é a classificação das informações. É preciso que elas sejam claramente classificadas para que seja possível controlar o acesso aos dados, evitando, dessa forma, que pessoas não autorizadas tenham acesso às informações.

Para tanto, é preciso classificar todas as informações segundo grau de importância e teor crítico:
a) Informações Confidenciais: são aquelas que devem ser disseminadas somente para empregados previamente definidos;
b) Informações Corporativas: devem ser disseminadas somente dentro da empresa;
c) Informações Públicas: podem ser divulgadas dentro e fora da empresa.

É importante também que o responsável pela Política de Segurança execute ações para manter o controle de eventos logados nos sistemas corporativos. São elas:
a) Trilhas de auditoria;
b) Definição de políticas de backup, de uso de software, de acesso físico às instalações da empresa e de acesso lógico;
c) Controle anti-pirataria;
d) Definição da linha mestra do software utilizado no ambiente computacional da empresa;
e) Controle de acesso físico e lógico (dia e hora do acesso, endereço eletrônico do usuário, ações executadas, log de acessos);
f) Definição de ambientes físicos de alto grau crítico;
g) Monitoramento de ambientes;
h) Definição de perfis de acesso aos ambientes e aplicativos, definição e controle de senhas e user identification;
i) Criptografia e certificação digital;
j) Configuração de firewall

Normas de acesso externo
Outra questão relevante para a estruturação de uma Política de Segurança é a definição de normas de acessos externos à empresa. Não basta instituir uma série de regras a serem cumpridas internamente. Para garantir a segurança de uma empresa é necessário estabelecer procedimentos para o acesso de parceiros externos à corporação. Confira alguns deles:

a) Definição de convênios para acesso às bases corporativas e da política de uso da intranet e Internet;
b) Definição de modelo de identificação de pirataria; de gerenciamento de rede; de distribuição de versões de software e de padrões de home page;
c) Detecção de inatividade de modems ligados à rede;
d) Definição do padrão de atualização de anti-vírus e do acesso de empregados ao provedor corporativo;
e) Padronização da home page institucional e da home page comercial;
f) Implantação, roteamento, criptografia e certificação digital
g) Configuração de firewall

Abraços,
Ranieri Marinho de Souza
Segurança da Informação

http://www.segr.com.br/
http://blog.segr.com.br/

« Página AnteriorPróxima Página »