Oi,

Tanto grsecurity quanto selinux e apparmor tem proteção a isso, basta usar.
Eu gosto do grsec+PAX (funtoo hardened).
Alterar kernel é possível sem reboot sim, tem o ksplice, kpatch e kgraft.
De toda forma, se eu já tivesse root em um sistema, a última parte que eu
preocuparia em alterar seria o kernel. :D

Abs.


Att,
Raphael Bastos aka Coffnix

*====================================================*
* Linux Reg. User*: 388431  //  *LPI ID:* LPI000214711
*email:~> $* echo "xgvngkrhgyzuyFngiqyzuxk4ius4hx" | perl -pe \
's/(.)/chr(ord($1)-2*3)/ge'
*Public Key:* 3FBB468B //
http://www.hackstore.com.br/coffnix/coffnix-pgp-key.txt
*Yaxkin/Gentoo Linux* - http://downloads.hackstore.com.br
*Wiki Hackstore* - http://wiki.hackstore.com.br
*Área 31 Hackerspace* - http://www.area31.net.br
*Kankin/Funtoo Linux* - http://kankin.area31.net.br
*====================================================*

Em 22 de dezembro de 2015 22:53, [email protected] <[email protected]>
escreveu:

> 2015-12-22 19:34 GMT-02:00 Raphael Bastos <[email protected]>
> :
>
>> Oi,
>>
>> Não. O procedimento que eu adoto é de compilar o kernel, copiar a chave
>> privada pra um pendrive qualquer, assino os módulos que desejo e em seguida
>> apago a chave privada do disco.
>>
>> Todo módulo compilado externamente necessita da assinatura para ser
>> carregado para o kernel, logo a pessoa pode até obter acesso root, escrever
>> em /lib/modules e tudo, porém não será carregado visto que o modulo (ou
>> rootkit) necessita da chave privada para o tal. Se você remove a chave
>> privada do disco, voilá, sua defesa quanto a isso está feita.
>>
>
> Sim, isso foi o que me intrigou. No entanto, embora seja complicado, se os
> fontes do kernel permanecerem na máquina, o "malfeitor", com acesso root,
> ainda poderia retirar a opção que precisa estar ativa no kernel e
> recompilá-lo. Certo?  Claro, um reset ainda seria necessário e percebido.
> Ou já existe um jeito operacional de "trocar o kernel" sem reset?
>
> Fiquei imaginando que o "hardening" teria que ser tal que, pelo menos
> pelos caminhos "óbvios", um eventual malfeitor não poderia "desfazer" a
> proteção. Deixar a chave guardada em outro lugar pode ser uma opção para o
> caso de alguém assinar qualquer módulo, mas ainda penso que seria
> necessário remover os outros caminhos "óbvios".
>
> Isso se não perdi nenhum detalhe e, claro, sempre haverá uma (ou muitas)
> brecha. :-)
>
> Obrigado.
>
> Cássio
>
> 2015-12-22 19:34 GMT-02:00 Raphael Bastos <[email protected]>
> :
>
>> Oi,
>>
>> Não. O procedimento que eu adoto é de compilar o kernel, copiar a chave
>> privada pra um pendrive qualquer, assino os módulos que desejo e em seguida
>> apago a chave privada do disco.
>>
>> Todo módulo compilado externamente necessita da assinatura para ser
>> carregado para o kernel, logo a pessoa pode até obter acesso root, escrever
>> em /lib/modules e tudo, porém não será carregado visto que o modulo (ou
>> rootkit) necessita da chave privada para o tal. Se você remove a chave
>> privada do disco, voilá, sua defesa quanto a isso está feita.
>>
>>
>> Att,
>> Raphael Bastos aka Coffnix
>>
>> *====================================================*
>> * Linux Reg. User*: 388431  //  *LPI ID:* LPI000214711
>> *email:~> $* echo "xgvngkrhgyzuyFngiqyzuxk4ius4hx" | perl -pe \
>> 's/(.)/chr(ord($1)-2*3)/ge'
>> *Public Key:* 3FBB468B //
>> http://www.hackstore.com.br/coffnix/coffnix-pgp-key.txt
>> *Yaxkin/Gentoo Linux* - http://downloads.hackstore.com.br
>> *Wiki Hackstore* - http://wiki.hackstore.com.br
>> *Área 31 Hackerspace* - http://www.area31.net.br
>> *Kankin/Funtoo Linux* - http://kankin.area31.net.br
>> *====================================================*
>>
>> Em 22 de dezembro de 2015 18:43, [email protected] <[email protected]>
>> escreveu:
>>
>>> 2015-12-22 18:37 GMT-02:00 Raphael Bastos <
>>> [email protected]>:
>>>
>>>> Casfre, não entendi a pergunta.
>>>>
>>>
>>> Raphael, eu ainda não conhecia essa opção. Achei ótimo saber. Mas fiquei
>>> pensativo, a assinatura do módulo (conforme mostra no documento) é feita na
>>> máquina onde estão os componentes? O que me intriga: qualquer um, com
>>> acesso root (imagino que vai escrever em /lib/modules) pode validar
>>> qualquer módulo?
>>>
>>> Obrigado.
>>>
>>> Cássio
>>>
>>>
>>>>
>>>>
>>>> Att,
>>>> Raphael Bastos aka Coffnix
>>>>
>>>> *====================================================*
>>>> * Linux Reg. User*: 388431  //  *LPI ID:* LPI000214711
>>>> *email:~> $* echo "xgvngkrhgyzuyFngiqyzuxk4ius4hx" | perl -pe \
>>>> 's/(.)/chr(ord($1)-2*3)/ge'
>>>> *Public Key:* 3FBB468B //
>>>> http://www.hackstore.com.br/coffnix/coffnix-pgp-key.txt
>>>> *Yaxkin/Gentoo Linux* - http://downloads.hackstore.com.br
>>>> *Wiki Hackstore* - http://wiki.hackstore.com.br
>>>> *Área 31 Hackerspace* - http://www.area31.net.br
>>>> *Kankin/Funtoo Linux* - http://kankin.area31.net.br
>>>> *====================================================*
>>>>
>>>> Em 22 de dezembro de 2015 18:06, [email protected] <[email protected]>
>>>> escreveu:
>>>>
>>>>> 2015-12-22 16:04 GMT-02:00 Raphael Bastos <
>>>>> [email protected]>:
>>>>>
>>>>>> Oi,
>>>>>>
>>>>>> Documentei a mais recente mudança do kernel Linux na versão 4.3.3
>>>>>> referente a assinatura de módulos compilados fora do kernel.
>>>>>>
>>>>>> https://wiki.hackstore.com.br/Assinando_m%C3%B3dulos_do_kernel
>>>>>>
>>>>>> Na prática mudou de:
>>>>>>
>>>>>> # perl /usr/src/linux/scripts/sign-file  <hash algo> <key> <x509>
>>>>>>
>>>>>> para:
>>>>>>
>>>>>> # /usr/src/linux/scripts/sign-file  <hash algo>
>>>>>> /usr/src/linux/certs/signing_key.pem 
>>>>>> /usr/src/linux/certs/signing_key.x509
>>>>>>
>>>>>> Mudanças:
>>>>>>
>>>>>> 1- Trocaram o script de assinatura de perl pra C
>>>>>> 2- Colocaram todos os arquivos de assinatura no diretório
>>>>>> /usr/src/linux/certs/
>>>>>> 3- O arquivo de chave privada agora se chama "signing_key.pem" ao
>>>>>> invés de "signing_key.priv"
>>>>>>
>>>>>> Na oportunidade, atualizei a doc do Gentoo e mais tarde vou atualizar
>>>>>> a do Funtoo. Atualizem vocês a doc do Slackware caso queiram :D
>>>>>>
>>>>>> https://wiki.gentoo.org/wiki/Signed_kernel_module_support
>>>>>>
>>>>>
>>>>> Pensativo aqui: isso seria feito na própria máquina, onde estão o
>>>>> módulo, os sources, o script/aplicativo de assinatura e a respectiva 
>>>>> chave?
>>>>>
>>>>> Obrigado.
>>>>>
>>>>> Cássio
>>>>>
>>>>> --
>>>>> GUS-BR - Grupo de Usuários de Slackware Brasil
>>>>> http://www.slackwarebrasil.org/
>>>>> http://groups.google.com/group/slack-users-br
>>>>>
>>>>> Antes de perguntar:
>>>>>
>>>>> http://www.vivaolinux.com.br/artigo/Como-elaborar-perguntas-para-listas-de-discussao
>>>>>
>>>>> Para sair da lista envie um e-mail para:
>>>>> [email protected]
>>>>> ---
>>>>> Você recebeu essa mensagem porque está inscrito no grupo "Slackware
>>>>> Users Group - Brazil" dos Grupos do Google.
>>>>> Para cancelar inscrição nesse grupo e parar de receber e-mails dele,
>>>>> envie um e-mail para [email protected].
>>>>> Para mais opções, acesse https://groups.google.com/d/optout.
>>>>>
>>>>
>>>> --
>>>> GUS-BR - Grupo de Usuários de Slackware Brasil
>>>> http://www.slackwarebrasil.org/
>>>> http://groups.google.com/group/slack-users-br
>>>>
>>>> Antes de perguntar:
>>>>
>>>> http://www.vivaolinux.com.br/artigo/Como-elaborar-perguntas-para-listas-de-discussao
>>>>
>>>> Para sair da lista envie um e-mail para:
>>>> [email protected]
>>>> ---
>>>> Você recebeu essa mensagem porque está inscrito no grupo "Slackware
>>>> Users Group - Brazil" dos Grupos do Google.
>>>> Para cancelar inscrição nesse grupo e parar de receber e-mails dele,
>>>> envie um e-mail para [email protected].
>>>> Para mais opções, acesse https://groups.google.com/d/optout.
>>>>
>>>
>>> --
>>> GUS-BR - Grupo de Usuários de Slackware Brasil
>>> http://www.slackwarebrasil.org/
>>> http://groups.google.com/group/slack-users-br
>>>
>>> Antes de perguntar:
>>>
>>> http://www.vivaolinux.com.br/artigo/Como-elaborar-perguntas-para-listas-de-discussao
>>>
>>> Para sair da lista envie um e-mail para:
>>> [email protected]
>>> ---
>>> Você recebeu essa mensagem porque está inscrito no grupo "Slackware
>>> Users Group - Brazil" dos Grupos do Google.
>>> Para cancelar inscrição nesse grupo e parar de receber e-mails dele,
>>> envie um e-mail para [email protected].
>>> Para mais opções, acesse https://groups.google.com/d/optout.
>>>
>>
>> --
>> GUS-BR - Grupo de Usuários de Slackware Brasil
>> http://www.slackwarebrasil.org/
>> http://groups.google.com/group/slack-users-br
>>
>> Antes de perguntar:
>>
>> http://www.vivaolinux.com.br/artigo/Como-elaborar-perguntas-para-listas-de-discussao
>>
>> Para sair da lista envie um e-mail para:
>> [email protected]
>> ---
>> Você recebeu essa mensagem porque está inscrito no grupo "Slackware Users
>> Group - Brazil" dos Grupos do Google.
>> Para cancelar inscrição nesse grupo e parar de receber e-mails dele,
>> envie um e-mail para [email protected].
>> Para mais opções, acesse https://groups.google.com/d/optout.
>>
>
> --
> GUS-BR - Grupo de Usuários de Slackware Brasil
> http://www.slackwarebrasil.org/
> http://groups.google.com/group/slack-users-br
>
> Antes de perguntar:
>
> http://www.vivaolinux.com.br/artigo/Como-elaborar-perguntas-para-listas-de-discussao
>
> Para sair da lista envie um e-mail para:
> [email protected]
> ---
> Você recebeu essa mensagem porque está inscrito no grupo "Slackware Users
> Group - Brazil" dos Grupos do Google.
> Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie
> um e-mail para [email protected].
> Para mais opções, acesse https://groups.google.com/d/optout.
>

-- 
GUS-BR - Grupo de Usuários de Slackware Brasil
http://www.slackwarebrasil.org/
http://groups.google.com/group/slack-users-br

Antes de perguntar:
http://www.vivaolinux.com.br/artigo/Como-elaborar-perguntas-para-listas-de-discussao

Para sair da lista envie um e-mail para:
[email protected]
--- 
Você está recebendo esta mensagem porque se inscreveu no grupo "Slackware Users 
Group - Brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um 
e-mail para [email protected].
Para obter mais opções, acesse https://groups.google.com/d/optout.

Responder a