% 100 mümkündür. Ttys / ptys (metin modu) için en kolay yol, / bin / {ba, da, a} sh (örneğin, ikinci bir .code segmenti, RX) 'e bir şim eklemek ve giriş noktasını değiştirmek (ELF kadar) virüs olur). Buna erişimin engellenmesi, bu durumda, çok basit bir hipotetik model olarak ~ / .profile veya ~ / .bashrc (vb.) Olarak değişiklik yapılabilir:
exec ~ / .malicious_programme
söz konusu kötü niyetli programı gizlemek için dinamik paylaşılan nesne kodunu yükleyebilir (örnek: .profile dosyasının okunmasına ve değiştirilmesine izin verin, ancak satırı gizleyin. Ve / veya programı gizleyin.)
Birisi, fd'nin FD_CLOEXEC ile işaretlenmediğini farz ederek fd_CLOEXEC 'in işaretli olmadığını varsayarak, çatallı bir kabuktaki bütün girdileri kaydetmek için UNIX98 pty (7) sistemini veya hatta basitçe boruyu (2) kullanabilir.
X11'de, kdm / gdm / xdm setuid kökü olarak çalıştırılsa da (veya yeteneklerdeki karşılığı [[setcap (8)]] veya varsayılan olarak kullanmıyorsanız kullandığınız güvenlik modeline bakın), işler açıkça daha karmaşık hale gelir. Kişi ayrıcalıkları yükseltebiliyorsa? iopl (2) veya ioperm (2), x86 üzerindeki 0x60 / 0x64 klavye bağlantı noktalarına doğrudan erişimle hayatı oldukça kolaylaştırır. Yapamayacağınızı varsaydığımızdan, alternatif bir rota aramalıyız. Birkaç tanesini biliyorum, ancak bunun nasıl mümkün olduğu ve ara yüzlerin katılımıyla ilgili bir tez istediğinizden emin değilim.
Tabii ki, 3. halka, süper kullanıcı olmayan truva atları, * nix'te, işlemin izolasyonuna rağmen, kullanıcı modu daemon'ların, örneğin metin sağlaması için özellikler ekleyen çeşitli sorunların (özellikle X ile) bir sonucu olarak oldukça mümkündür. sistemin güvenliğinden ödün vermeyen tüm uygulamalar için konuşma desteği. Ben zaten ttysnoops (son kullanma tarihi geçmiş olan) benzer şekilde çalışan bir ana hatlarını belirttim ve kök gerektirmez. Bu durum için örnek kodum var (X'in içindeki terminalleri içerecektir), ancak henüz yayınlamadım. Daha fazla bilgi istiyorsanız, lütfen benimle temas kurmaktan çekinmeyin.