Resposta curta: nenhum perigo prático ainda, mas continue lendo para uma maneira melhor ...
O que é essa coisa de ptrace ?
% bl0ck_qu0te%-
Não, a proteção ptrace é uma medida deliberada de segurança do kernel introduzida pela primeira vez no Ubuntu 10.10. Não é um bug e, por isso, não será "consertado".
-
Em termos simples, o valor
ptrace_scope
padrão de1
impede que um processo examine e modifique outro processo a menos que o segundo processo (filho) tenha sido iniciado pelo primeiro processo ( pai). -
Isso pode causar problemas em alguns programas no Wine devido à maneira como
wineserver
fornece "Serviços do Windows" para esses programas.
Quais são os riscos na configuração de ptrace_scope
para 0
?
-
Isso restaura o comportamento antigo em que um processo pode "rastrear" outro processo, mesmo se não houver um relacionamento pai-filho.
-
Em teoria, um malware pode usar isso para prejudicar você / seu computador; por exemplo. ele pode se conectar ao Firefox e registrar todos os seus URLs / senhas, etc. Na prática, isso é extremamente improvável, a menos que você instale cegamente debs binários de sites aleatórios, etc.
-
No que diz respeito à depuração, as configurações de
0
são realmente necessárias para quegdb
,strace
, etc. sejam anexadas a não-crianças, a menos que você as execute com privilégios elevados (sudo). / p>
Quais são os problemas com a solução alternativa?
- A solução alternativa é um pouco problemática porque
ptrace_scope
é um valor global e, embora esteja definido como0
, todos os processos em seu sistema estão isentos da restrição não-infantil. - Se você usar a solução alternativa, coloque-a em um script bash simples que a habilite, execute o programa do Windows e, em seguida, desative (define como 1) ao sair.
-
NÃO torne
ptrace_scope
world-writable (666) como recomenda a publicação no fórum - isso é um enorme risco de segurança, porque agora qualquer processo pode alterá-lo à vontade!
-
NÃO torne
Existe uma solução melhor?
-
Uma solução melhor, mais segura e que não requer modificação repetitiva do ptrace_scope , é conceder capacidades de ptrace do Wineserver .
-
Em um terminal:
sudo apt-get install libcap2-bin sudo setcap cap_sys_ptrace=eip /usr/bin/wineserver sudo setcap cap_sys_ptrace=eip /usr/bin/wine-preloader
-
Isso isenta os binários wineserver e wine-preloader da restrição ptrace não-filho e permite que eles rastreiem qualquer processo.
- Só precisa ser feito uma vez e é mais seguro porque esses binários geralmente são de uma fonte confiável - os repositórios oficiais ou o oficial Wine PPA, portanto, não serão malware.
-
Se você estiver usando o Crossover
Instale a libcap2:
sudo apt-get install libcap2-bin;
Em seguida, adicione uma exceção ao Crossover:
sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wineserver; sudo setcap cap_sys_ptrace=eip /opt/cxoffice/bin/wine-preloader;
Por fim, adicione suas bibliotecas ao ld.so.conf (ou você obterá "erro ao carregar bibliotecas compartilhadas: libwine.so.1: não é possível abrir o arquivo de objeto compartilhado: Nenhum arquivo ou diretório"):
echo /opt/cxoffice/lib/ | sudo tee /etc/ld.so.conf.d/crossover.conf sudo /sbin/ldconfig