domingo, junho 29, 2008

InSegurança no uso

Depois de um tempo sem tempo para escrever aqui no blog, voltei para alfinetar.
Eu publiquei uma enquete no blog que visava saber com qual usuário de sistema o utilizador costuma acessar internet, ler emails e etc em seu sistema operacional.

Bom houve poucos votos , pois o blog ainda não é visitado por muitas pessoas, mas já deu para ter uma idéia do que anda acontecendo.

A maioria dos utilizadores de computador, utilizam sua conta de administrador para acessar a internet, ler emails e etc achando pela facilidade que isto traz quando vão instalar um programa ou alterar a configuração de algo dentro do sistema de não precisar ficar alternando entre usuários.

Perigo, imaginem um mero utilizador de computador com seu acesso administrativo ao computador, receber um email e :
" Olhe essas fotos, tiramos faz algum tempo, ficaram ótimas... "
E logo no corpo da mensagem tem um link para visualizar as tais fotos. O utilizador de computador muitas vezes curioso (sempre), vai clicar no link, e automáticamente será realizado um download de um arquivo.

O utilizador ingênuo e curioso (sempre) para ver as fotos que " ficaram ótimas..." clica no arquivo para ser executado eeeeeeeeeeeeeeeeeeee.
Não acontece nada. O utilizador decepcionado apaga o arquivo e o email recebido.
Bom acham que não ocorreu nada ?

Para o mero utilizador do computador, não ocorreu nada, mas na verdade ele acaba de ter seu computador comprometido.

Comprometido sim, o arquivo executado estava programado para se auto copiar em executáveis em memória, e para descompactar de dentro de si mesmo um backdoor e coloca-lo em execução e ainda criar um serviço de sistema para enviar Spam, para lista de destinatários que estava dentro do arquivo executado.

Legal, mas poderia ter acontecido mais. Todos os arquivos de inicialização serem removidos ou corrompidos, ser um membro de uma botnet e dai vai da imaginação e propósito do atacante.

Mas porque tudo isso aconteceu e nem o anti-virus (rsrsrsrsr já sabem de qual sistema operacional estamos relatando aqui, mas poderia acontecer com qualquer outro sem exceção) conseguiu pegar as atividades maliciosas realizadas ?

Em primeiro lugar deve-se ter um firewall pessoal que cheque todas as portas abertas, e tráfego de saída e entrada para checagem de qualquer aplicativo que tente realizar algum download sem que o usuário tenha iniciado.

Segundo, um anti-virus sozinho não faz a segurança total, deve-se ter outras ferramentas como um firewall pessoal, anti-spyware e ai vai.

Terceiro, e mais importante, NUNCA faça login no seu sistema operacional como usuário administrativo, só o faça para tarefas em que só um usuário administrador possa realizar.

O ocorrido acima teve sucesso devido ao utilizador do computador estar logado como usuário administrativo, e o executável precisa realizar tarefas em que somente um usuário administrador do sistema operacional poderia realizar, como criar uma porta de serviço.

O ideal é ter uma conta limitada para realizarmos todas tarefas rotineiras para evitar o comprometimento do sistema operacional com códigos maliciosos.

Mas eu estou aqui falando isso, certo, blz. Mas dos que muitos que leêm o meu blog são administradores de rede, analistas de suporte, técnicos em manutenção que não passam isso ao usuário final.

É responsabilidade nossa informar ao usuário o que ele pode estar realizando para evitar que seu computador pare na manutenção todo mês. Lógico não são todos os problemas relacionados com códigos maliciosos que fazem um computador parar na manutenção. Mas deveriamos passar isso ao usuário final que é ingênuo(sempre).

Bom até o próximo post.

domingo, junho 15, 2008

Segurança no Terminal - 2

Bloquear o terminal com a variável TMOUT

No sistema Linux, temos uma variável que não vem setada por padrão. Essa variável é a TMOUT que controla em quanto tempo o terminal será deslogado.
Podemos seta-la manualmente com um tempo pequeno para testarmos:

TMOUT=10

Estamos setando o valor da variável para 10 segundos. Logo, se o terminal não for utilizado durante 10 segundos, ele será deslogado e o usuário será obrigado a logar-se novamente.
Para melhorar podemos colocar essa variável dentro do arquivo global de variáveis para que ela seja fixa toda vez que o sistema for iniciado.

# vim /etc/profile

TMOUT=360

360s – 6 minutos

até o próximo post.

quinta-feira, junho 12, 2008

SmartHost e Masquerade no Sendmail

Estava eu configurando um server de monitoramento com nagios, e surgiu a dúvida de como ele conseguiria enviar emails para o administrador (mensagens de notificações).
Como o servidor de monitoramento não é um servidor de email registrado na zona de dns do dominio, então pesquisando no google, encontrei a alternativa de fazer relay dos email no servidor de email registrado da zona e mascarando todos os emails.
Mascarando????? Sim, pois os emails do meu servidor que sairem iriam assim no from nagios@server.dominio.com.br. E ai quando chegasse no meu servidor de email seria barrado, pois eu checo se o dominio de dns é válido. E no caso deveria chegar assim nagios@dominio.com.br.
Bom abaixo tenho a solução para o sendmail, no postfix é um pouco mais simples de configurar.

No seu arquivo .mc do sendmail adicionar :

define(`SMART_HOST', `mx.dominio.com.br')
FEATURE(allmasquerade)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_AS(`dominio.com.br')dnl
MAILER(local)dnl
MAILER(smtp)dnl

O procedimento de geração do arquivo sendmail.cf é diferente depende da plataforma. Abaixo está voltado para o FreeBSD.
Após essa alteração é só executar :

# make

e

# make install

e

# /etc/rc.d/sendmail restart

Pronto simples, mas eu penei um pouco pois estava configurando alguns parâmetros incorretos devido os parâmetros do sendmail de alguns versões antigas serem diferentes das novas.

Até o próximo post.

terça-feira, junho 10, 2008

Atendendo a pedidos, um post sobre segurança no Windows

Bom atendendo ao pedido do Cristiano ( hey cris kkkk), estarei mostrando o perigo de uma opção que vem habilitada no Windows XP Pro que visa digamos "facilitar a vida do usuário" .
A função AutoRun é habilatada por padrão para facilitar a visualização de arquivos em mídias removíveis.

Bom é pré-suposto que um usuário insira uma mídia e tente ler os arquivos dentro dela. O que essa função traz de inseguro quando ativa é que é um prato cheio para os worms, principalmente em Pendrives.

Mas como um worm pode se auto copiar para uma máquina ?
- Como a opção AutoRun está ativa, em um disco removível o Windowsão tentará ler e encontrar um arquivo chamado Autorun.inf dentro da mídia removível. Se ele encontrar executará seu conteúdo, e ai que os worms se espalham. E daí em diante o worm pode fazer o que quizer, e se o usuário estiver logado como usuário com privilégios administrativos, ai já era.............

Como desabilitar?

- Simples, basta abrir a opção Meu Computador, localizar a sessão Dispositivos com armazenamento removível e selecionar a Unidade de DVD/CDROM e clicar com o botão direito em Propriedades.

- Após o passo anterior é aberto as propriedades da unidade e deve-se clicar na Aba Execução Automática. Nela devemos selecionar na sessão Ações a opção "Selecionar uma ação a ser executada". E na lista abaixo deve-se escolher o item "Nenhuma ação".

- E o próximo passo é confirmar a modificação realizada clicando no botão OK.

De agora em diante o usuário deve sempre abrir o Windows Explorer e abrir a unidade referente ao seu dispositivo removível.

Pronto mais uma opção utilizada para "facilitar a vida do usuário" que traz brechas ao sistema foi desabilitada.

Até mais pessoal...

Segurança no Terminal - 1

Desabilitar o uso do CTRL+ALT+DEL

Desabilitar o CTRL+ALT+DEL no seu sistema Linux pode ser uma boa idéia, pois não permitirá que alguém pressione essa sequência de teclas e faça com que seu servidor reinicie. Isso é bom principalmente quando seu servidor Linux está no mesmo rack que um servidor com o sistema Windows, assim se evita que em algum momento você pressione CTRL+ALT+DEL no teclado do Linux pensando que é o do Windows rsrsrrsrsrsr.
Editar então :

# vim /etc/inittab

E comentar a seguinte linha

#ca:12345:ctrlaltdel:/sbin/shutdown –t1 –a –r now

Para ativar as alterações no sistema devemos reiniciar ou reiniciar o processo pai init .

# init q

Pronto tente executar a sequência de teclas CTRL+ALT+DEL e você verá que não tem mais efeito. O legal é que a linha é customizavel podendo você inserir outro comando ali no lugar de /sbin/shutdown.

até a próxima

domingo, junho 08, 2008

Teimoso por acertar um Ollie

Ahhh para aqueles que ficam me dizendo :

Ow mas vc não sabe, vc nao vai conseguir......kkkkkkkkkkkkkkk ( isso quando não é tecnologia, eu vou lá e faço e mostro para o infeliz que dá para fazer sim) Mas se tratando de skateboard os infelizes tem razão. Mas seguindo o que já uso em prática ( É com estudo que vem a sabedoria ), é com treino que vem a perfeição no skateboard de uma manobra.
Acertei um mini Ollie, e para os infelizes que não ajudam em nada, e nem sabe o que é um Ollie , vai abaixo o que é:





até mais, quem sabe sai um Ollie perfeito....

Segurança em Sistemas de Arquivos - 3

Utilização de Quotas

Ainda a questão de aplicarmos segurança a partir do sistema de arquivos, podemos utilizar o recurso de quota, pois é por meio dele que iremos controlar a utilização dos sistemas de arquivos entre todos os usuários. Assim, impediremos que um único usuário com poder de escrita em seu diretório pessoal exceda os limites físicos de espaço em um sistema de arquivos e comprometa a sua utilização pelos outros usuários. Além disso, tal procedimento ajudará bastante ter um backup de tamanho controlado.
Em sistemas Debian, devemos instalar os utilitários de administração de quotas:

# apt-get install quota quotatool

Devemos checar como está montado o ponto de montagem /home.

#mount

As quotas devem ser especificadas para partições e não para diretórios. Para isso devemos editar o arquivo /etc/fstab.

Adicionaremos na linha referente ao ponto de montagem /home as opções usrquota,grpquota

/dev/hda2 /home ext3 defaults,usrquota,grpquota 0 2

usrquota - para configurar quotas para usuários
grpquota – para configurar quotas para grupos de usuários

Em seguida devemos entrar no ponto de montagem da partição especificada, no nosso caso /home e criar 2 arquivos.

aquota.user – gerencia quotas para os usuários
aquota.group – gerencia quotas para os grupos

# cd /home
# touch aquota.user aquota.group

Devemos alterar as permissões desses arquivos de maneira que só o root tenha permissão de leitura e gravação.

# chmod 600 aquota.user
# chmod 600 aquota.group

Agora devemos remontar o sistema de arquivos para que as configurações de quota para a partição entrem em vigor. Como na maioria das vezes o sistema de arquivos estará ocupado, recomendo que salve as aplicações e reinicie o sistema.

# reboot

Quando o sistema inicializar, vamos consultar o status de quota para aquela partição.

# repquota –v –a

Vamos definir uma quota por tamanho utilizado para um usuário. Adicionaremos um usuário para testes.

# adduser teste

Agora iremos definir o quanto do sistema de arquivos cada usuário poderá utilizar. O comando para configurar quotas é o edquota.

# edquota -u teste

Definiremos uma quota para o usuário colocando um limite de 30 MB de espaço em disco e um limite máximo de 40 MB.

A quota do usuário será de 30 MB, mas ele terá um bônus de 10 MB por um determinado tempo ( chamado de Grace period ), totalizando 40 MB.

Devemos alterar a coluna soft ( limite que o usuário poderá utilizar, o limite máximo é definido na coluna hard ) inserir 30000
Na coluna hard colocamos 40000 que é o máximo.

Para consultar o status

# repquota –v –a

Consultar a quota por usuário

# quota –u teste

Para realizarmos um teste, vamos logar com o usuário teste criado e executar:

# echo teste > a ; while true ; do cat a >> b ; cat b >> a ; done

Nunca, mas nunca execute o procedimento acima como usuário root ou quando não tiver o suporte a quota ativo. O que ocorrerá é seu sistema de arquivos vai lotar, pois estamos criando 2 arquivos que ficam dando cat do seu conteudo e jogando a saida para dentro do outro arquivo, até dar erro de escrita no sistema de arquivos. Quando um sistema de arquivos lota, pode ocorrer parada de serviços de um servidor, o syslog fica doido, não sabe que faz sem ter espaço em disco.

Alguns comandos para administração das quotas:

Detalhes avançados sobre o uso das quotas nas partições:

# quotastats

Desativa a quota da partição:

# quotaoff –v /home

Ativa a quota da partição novamente:

# quotaon –v /home

A implementação de quota em um sistema de arquivos é de grande necessidade, pois você vai ficar tranquilo quanto a espaço utilizado por seus usuário dentro do servidor.

até o próximo post.

Segurança em Sistemas de Arquivos - 2











Suid Bit e Noexec


Sempre que instalamos um sistema Linux, as boas práticas de instalações nos aconselham a particionar o disco e colocar os principais diretórios em partições separadas. Isso nos proporciona uma maior segurança, pois cada partição tem sua tabela separada.

Logo, se o diretório / (raiz) está em uma partição e o /home em outra, no caso de algum problema no sistema ou até em uma reinstalação, não perderíamos as informações do diretório /home.

Podemos utilizar algumas opções de montagem de diretórios em alguns diretórios visados pelos atacantes que dificultam a execução de aplicativos.

Suid bit – A permissão de Suid bit possibilita que um determinado binário que só possa ser executado, por exemplo, pelo usuário root seja executado por qualquer outro usuário comum do sistema. Muitos binários do sistema já vem com a permissão de Suid bit, pois alguns binários que somente root pode executar precisam ser utilizados por um usuário. Exemplos clássicos desses comandos são o su, o ping, o passwd e muitos outros. Mas em uma coisa devemos pensar: será que todos esses binários que já estão com a permissão de Suid bit vão ser utilizados por meus usuários ?

Você pode perguntar qual o problema de se ter um Suid bit ativado. O problema pode ser muito grande se um cracker souber aproveitá-lo, explorando vulnerabilidades conhecidas para conseguir uma Shell de root.

O ideal que um administrador deve fazer é retirar todas as permissões de Suid bit do sistema e depois setar essas permissões somente para os binários que julgamos fundamentais para um usuário. Mas devemos nos atentar que existem casos diferentes, pois um caso pode ser aplicado em um servidor firewall e não ser aplicado em um servidor de email.

Exemplo: O comando ping que pode ser executado por qualquer usuário do sistema por causa do Suid bit ativado.

ls –l /bin/ping

-rwsr-xr-x

A flag s nas permissões do usuário dono do arquivo representa o Suid bit ativado.
Assim um usuário sem privilégios pode executar o comando ping, mas se retirarmos a permissão de execução suid bit desse binário, somente o dono desse binário poderá executar.

Para checar todos os binários que tem permissões Suid bit ativo:

find / -perm -4000 > /tmp/suidbit

O número 4000 representa a permissão de Suid bit, sendo que os três zeros são as permissões padrões do sistema ( 0 para usuário, 0 para grupo e 0 para outros), e o 4 representa a permissão Suid bit.

Podemos analisar os binários no arquivo de saída e ver quais podem ficar com o Suid bit ativo.
Para retirar a permissão de Suid bit de todos os binários do sistema:

chmod –s –Rv /

s – retira a permissão de Suid bit
R – é recursivo, do / para baixo
v – é o modo verbose

Para ativar o Suid bit em binários que sabemos que é preciso:

chmod +s /bin/ping

ls –l /bin/ping

Podemos fazer outra implementação de segurança mas se tratando de permissões dentro do volume montado.

Usando a opção noexec em uma partição quando ela é montada impossibilitamos a execução de qualquer binário ou arquivo executável dentro dessa partição.

Essa opção pode ser aplicada a todos os diretórios, mas clássico exemplo é aplicá-la aos diretórios /home e /tmp. Crackers podem se aproveitar do diretório /tmp, onde por padrão qualquer usuário pode introduzir backdoors ou qualquer outro programa malicioso para ter um acesso completo ao sistema.

Isso é configurado no arquivo /etc/fstab.
Também podemos ativar com o sistema em execução:

mount –o remount,rw,noexec /home

Mas temos que analisar alguns pontos, quanto mais segurança implementamos no sistema, menos riscos corremos mas temos pouca flexibilidade de se trabalhar dentro do sistema.
Em alguns casos o suidbit,noexec devem ser usados mas em outros não, isso deve ser analisado muito bem pelo administraodor de redes.

até o próximo post.

Segurança em Sistemas de Arquivos - 1











Permissão de arquivos


A segurança dos servidores é obtida a partir de um conjunto de elementos que precisam ser analisados atentamente. A definição das permissões de acesso aos arquivos do servidor é algo fundamental, pois é a partir daí que definimos quais usuários ou processos acessam o “quê”.

Os arquivos /etc/passwd e /etc/shadow costumam ser os principais alvos de ataques. Estes arquivos armazenam informações sobre as contas de usuários (diretório home, Shell, etc) e respectivamente. As informações da conta são armazenadas em passwd e as senhas em shadow (formato md5).

Ter acesso ao /etc/shadow não implica em necessariamente em conhecer as senhas de todos os usuários cadastrados. No entanto, é possível obter as senhas caso o “usuário” (conta) utilizado no ataque possua permissão de leitura em /etc/shadow – utilizando ferramentas de força bruta ou dicionários, como John The Ripper.

Para dificultar a ação deste tipo de ataque devemos restringir a permissão de escrita ao arquivo /etc/passwd, de forma que apenas o administrador possa adicionar, modificar ou remover contas de usuários.

Atualmente, as distribuições do Linux não armazenam as senhas neste arquivo, mas sim em shadow . Portanto, o usuário configurado como dono deste arquivo deve corresponder ao root, sendo este o único com permissão de leitura.
Para verificar as permissões:

ls –l /etc/passwd

-rw- r-- r-- 1 root ..... /etc/passwd

Usuário Grupo Outros

ls –l /etc/shadow

-r-- --- --- 1 root .... /etc/shadow

Ajustando as permissões ( se necessário )

chmod 600 /etc/passwd
chmod 600 /etc/shadow

Os ajustes de permissão são importantes porque inviabilizam diferentes tipos de ataque. Suponhamos que exista um erro crítico de programação em um site hospedado em um servidor de Web Apache e este erro possibilite a leitura do sistema de arquivos do servidor.
Como o serviço Apache executa com permissão de usuário comum, a leitura do arquivo /etc/shadow e /etc/passwd não será permitida, pois apenas o usuário root possui permissão de leitura.

até a próxima.

A experiência de Docente

Umas das coisas mais maravilhosas em se trabalhar com tecnologia é ter seu trabalho reconhecido por seu amigos e a sociedade.

Recebi um convite para ser Docente Convidado em Gerência em Redes Linux e Segurança em Redes Linux da Instituiçao Educacional Senac de Araçatuba. Se você está lendo isso é porque aceitei e conclui o desafio, sim desafio, um grande desafio.

No dia que recebi a proposta eu pensei comigo mesmo. Eu ministrando aulas, vixi ah não sei se vejo eu fazendo isso. Pensei um pouco, perguntei para alguns amigos de serviço o que eles achavam, e decidi encarar o leão heehhe.

Eu já estudei nessa instituiçao por 2 e meios ( 2 cursos ), e então já sabia como era o ambiente. E ainda tive a sorte de:
O Coordenador de todos os cursos do Senac foi meu professor ( Luis)
O Coordenador do Curso em questão ( T.I.) foi meu professor ( Marim )
E com a ajuda de Fernando ( foi também professor, com quem tenho contato até hoje) e Dante ( um das pessoas que conheci que sempre me dá dicas na área de tecnologia), me ajudaram dando dicas de como agir diante dos alunos.

Tive pouco tempo para preparar as aulas, pois foi em cima da hora o convite e estava com receio de falar e começar com os ééééééé então neh hehehhe.

O Primeiro dia:

O primeiro dia foi até legal, o Fernando me ensinou a tecnica de quebrar o gelo. Bom como eu estava com receio, frio na barriga ele me disse:
- Cara, nada mais justo que passar o friozinho da barriga para eles, também hehhehe. A técnica se inicia fazendo que eles se apresentem ( nome, trabalho, o porque do curso ) ai já sai umas piadinhas.
Mas o que me deixou muito a vontade foi poder falar do que eu faço no dia a dia, assim era a experiência técnica que me ajudava.

Sei que teve dias que comecei a explicação de algumas tecnologias e eles não entendiam, ou entendiam assim por cima, e eu voltava, mas um desconto neh, não sou docente profissional ainda, mas a força de vontade de melhorar prevalece.

Foram algumas noites em claro, preparando aulas. Isso mesmo 3 horas da manhã eu lá preparando aula. E também alguns finais de semana e feriados.

Mas uma experiência e tanto para mim, muitos pensaram que eu não concluiria, mas outros me deram força para continuar. Não vou citar os nomes pois cada um sabe o que fez para ajudar.

Conclusão além do dinheiro no bolso hehehhehehehe, mais uma experiência para o curriculum.

Valeu a pena.

Script Script ehhhhh Shell Script


A quase 2 meses atraz fui para sampa fazer um curso avançado na 4Linux de Shell Script.
Adiviem quem era do Docente...............
Ahhh ele mesmo o cara do Shell Script:

Analista de Sistemas, Pós Graduado em Informatica pelo IBAM, Engenheiro de Produção da UFRJ e professor Universitário. Trabalha com Unix desde 1980 ( é tempo para caramba ), quanto fez parte da equipe que desenvolveu o SOX, sistema operacional Unix-Like da Cobra Computadores. Obs um dos primeiros Unix desenvolvidos.

Julio Cezar Neves

Foram 2 finais de semana ( Sabado e Domingo das 09:00 - 18:00 ), corrido, pois eu tinha que sair do interiorsão ( Araçatuba ) na Sexta a noite e viajar de madruga para chegar em Sampa as 06:30 da manhã. E depois ir para o curso, morrreeeeeeendo de sono ( não dá para durmir em busão hehehhe ).
Como diz a música do Rappa ( Andando de minhoca de metal que entorta as ruas heheh ), chegava na casa da minha irmã para tomar um café rápido e ir para o curso.
Eu ficava na base do café o dia todo, mas a aula do Julio era muito boa, eram raras as vezes que o sono batia.
O cara é o cara mesmo, sabe tudo de unix e shell, não me arrependo de perder 2 finais de semana para ficar vendo #!/bin/bash sed, uniq, test, if, for etc.
Mas não posso deixar de falar do Coffe Break, cheio de salgadinhos, bolacha, suco, café, nossa tava esquentando o cérebro mas a barriga estava em dia hehehhe.

O mais legal que no ultimo dia teve um chopps em frente a 4Linux, em um hotel, não vou colocar o nome dele, tava caro a hospedagem hehhehe.

Abaixo está o autográfo que o cara me deu no Livro Programação em Shell Linux ( Sexta edição ) escrito por ele mesmo.



Bom o legal que o curso abriu a mente referente a programação em shell tanto em unix e linux, pois uso muito eles no dia a dia de analista de sistemas de redes.

Bom pessoal vou indo nessa até o próximo post.

2 anos sem blogar nada

Como tempo passa ......

A alguns posts anteriores para esse post tem uma diferença de anos. Quantas coisas não aconteceu
em 2 anos. O legal que sobrou um tempinho para escrever..

Mas estamos ai na atividade.