Segurança extrema com LIDS: novos recursos

Quem leu o primeiro artigo sobre LIDS que postei aqui não deve perder esta segunda parte, onde são tratados os novos recursos de sua versão 1.2 e apresentadas as evoluções desse formidável sistema.

[ Hits: 42.673 ]

Por: Anderson L Tamborim em 29/05/2004 | Blog: http://y2h4ck.wordpress.com


LIDS TPE (Trusted Path Execution)



Um dos novos features é o TPE (Trusted Path Execution).

Este novo recurso veio para criar uma lista de paths de execução segura em nosso sistema. Com ele criamos uma ACL que irá verificar toda a execução de programas e scripts em nosso sistema, visando assim barrar possíveis execuções de programas/usuários que não deviam ser executados e em pastas/paths que não deveriam estar.

Para que os binários sejam executados, eles devem ter no MÍNIMO proteção pelo LIDS como READONLY.

Para habilitar essa feature deve-se compilar o kernel com LIDS e habilitar esta linha:

[*] Enable LIDS Trusted Path Execution (TPE) feature.

Para iniciar o modo TPE basta:

# lidsadm -S -- +TPE

Com o TPE podemos solucionar muitos problemas relevantes a usuários executando binários que não deveriam ou de arquivos binários que não deveriam estar sendo executados pela sua máquina a dentro.

Mais a frente vamos ver algumas configurações ilustrativas.

O TPE pode ser dividido em algumas partes interessantes:
  • Trusted Path: um path confiável é aquele que o diretório atual do binário e de propriedade do root (uid=0) é o seu grupo ou então que seja world writable (todo mundo pode escrever).

  • Trusted ACL: essa é a lista onde temos os usuários confiáveis (trusted users). Em adição ao 'root', todo usuário nesta lista será considerado confiável a executar nossos binários.

  • Regras: estas regras serão adicionadas com o lidsadm para dizer se determinado binário será executado ou não levando em consideração a lista de Trusted Path e Trusted ACL.

Digamos que já tenhamos uma lista com o Trusted path e com o Trusted ACL, a lista irá agir da seguinte maneira para verificar o que pode ou não ser executado:

Trusted User + Trusted Path = usuário pode executar o binário.
Trusted User + Untrusted Path = usuário pode executar o binário.
Untrusted User + Untrusted Path = usuário não pode executar.

Esse é um pequeno exemplo de implementação de regras onde apenas usuários não confiáveis e arquivos que não estão no TP irão ser barrados. Esta implementação teve apenas um caráter didático porque se formos realmente verificar, encontraremos muitas falhas de segurança nesse tipo de regra, se um usuário não confiável executar um tipo de ataque que utilize por exemplo, /lib/ld-linux.so.X <executável>, que está no trusted path... veremos que ele não precisa de muito esforço para explorar essas vulnerabilidades.

Página anterior     Próxima página

Páginas do artigo
   1. LIDS: Para os que chegaram de pára-quedas
   2. LIDS TPE (Trusted Path Execution)
   3. Trusted Path - Trusted ACL - Regras
   4. User space
   5. Kernel space
   6. Referências e links
Outros artigos deste autor

Jails em SSH: Montando sistema de Shell Seguro

Análise Passiva: Analisando seu tráfego de maneira segura

OpenVZ: Virtualização para servidores Linux

PSAD: Port Scan Attack Detector

Análise Forense - Aspectos de perícia criminal

Leitura recomendada

Alta disponibilidade com IP compartilhado - UCARP

Race condition - vulnerabilidades em suids

Elevação de privilégios locais

Assinatura e criptografia de dados com GPG

Quad9 - O que é e como usar

  
Comentários
[1] Comentário enviado por vdiago em 29/05/2004 - 09:12h

isso sim é artigo de qualidade.

estou pensando em postar um bom sobre snort.

[2] Comentário enviado por naoexistemais em 30/05/2004 - 03:09h

Caro Vdiago,

Com certeza mais uma artigo com qualidade, enquanto isso tem as pessoas alheias que criticam. Dor de cotovelo...

Spawn parabéns...

Falou

[3] Comentário enviado por cvs em 30/05/2004 - 10:07h

Eu não to vendo nenhum critica aqui... kd as criticas? duh -_-

Muito bom mesmo esse artigo... fazendo do jeito que ensinei hein Spawn... heheheheh :D _o/

[4] Comentário enviado por naoexistemais em 30/05/2004 - 21:44h

Caro CVS,

O Spawn sabe do que estou falando, que excepcionalmente esse aqui não criticaram..(risos)

Os incompetentes.. sabe criticar..

[5] Comentário enviado por y2h4ck em 30/05/2004 - 22:28h

nem me fala wrochal rsrs...

Bom por enquanto ta tudo tranquilo,
eheheh vamos ver quanto tempo dura !!

;)

Espero que o pessoal esteja curtindo o Artigo.

[]s a todos

Spawn Locoust

[6] Comentário enviado por mpsnet em 01/06/2004 - 09:38h

Li recentemente seu primeiro artigo sobre o LIDS, e vi uma observação interessante. Pelo que percebi não é muito viável instalar o LIDS em desktop's. A pergunta é !
Não é viavel somente devido as configuraçoes ?
Se for configurado adquadamente ele roda (leve e normalmente) ?

Grato !
Abraço

[7] Comentário enviado por y2h4ck em 01/06/2004 - 11:23h

Bom como disse o problema na viabilidade dele e o seguinte ... pense comigo em um cenario:
Voce tem um servidor de emails, so voce tem acesso a ele, oq vc faz
instala o LIDS, configura ele robustamente, e modifica as capacidades do sistema para que somenete determinados binarios possam ter capacidade de SETUID e SETGID... trava o kernel dele e pronto vc estara seguro e podera ter certeza que mesmo um atacante ganhando acesso shell ao seu sistema, ele nao conseguiria elevar os priviegios dele ( a menos que o sistema explorado seja oq tem permissao para essa capacidade ).

Agora esse tipo de proteção vc nao conseguiria na sua estação pq imagine os transtornos que vc teria com os seus programas.

Agora eu uso o lids no meu destop sim ele roda leve e normalmente,
oq vc pode fazer e proteger seus binarios, logs e tudo mais :)

assim alguma miguinho seu que tem acesso na maquina nao vai zuar suas coisas e adicionar usuarios novos ..

Mas vale a pena sentar e deixar ele rodando legal mesmo em seu Desktop.

valew :) []s

[8] Comentário enviado por mpsnet em 01/06/2004 - 15:38h

Valew pela dica !!!!

os: Se vc puder me enviar um .conf do LIDS eu agradeço
("não sou preguiçoso, vou tentar configurar sozinho, é só pra ter
um suporte")

[]s

[9] Comentário enviado por y2h4ck em 01/06/2004 - 17:52h

Bom vc lendo o primeiro artigo vc vai ter o suporte necessario para realizar a configuracao que vc precisa :)

boa sorte []s

[10] Comentário enviado por mpsnet em 06/06/2004 - 23:12h

pq qdo tendo usa o comando :
# lidsadm -S -- +LIDS_GLOBAL
retorna um erro dizendo que nao encontrou o diretório ou arquivo
/proc/sys/lids/lock

valew!

[11] Comentário enviado por peregrino em 20/12/2004 - 17:49h

Tive alguns problemas para instalar o LidsTools no slackware 10.0, sempre quando tentava compilar o lidstool dava uma mensagem de erro.

cd . && /bin/sh /sistema/source/lids-1.2.2-2.4.28/lidstools-0.5.6/missing --run aclocal-1.6
/sistema/source/lids-1.2.2-2.4.28/lidstools-0.5.6/missing: line 46: aclocal-1.6: command not found
WARNING: `aclocal-1.6' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them. Check the `README' file,
it often tells you about the needed prerequirements for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing `aclocal-1.6' program.
make: *** [aclocal.m4] Error 1

Resolvemos esse problema com a seguinte solução, na pasta do lidstools digete os seguintes comandos.

ln -s /usr/bin/autoconf /usr/bin/autoconf-1.6
ln -s /usr/bin/automake /usr/bin/automake-1.6
./configure --prefix=/usr --sysconfdir=/etc/lids
./missing --run aclocal
make
make install

Achamos que seria interessante colocar essa dica no tutorial, falow

Peregrino - peregrino_273@hotmail.com
K0r34 - k0r34@hotmail.com


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts