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.
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:
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.
[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) ?
[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.
[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