私はLinuxのセキュリティについて学び、キャラクターデバイスが付いたUSBスティックが潜在的に危険である理由を理解するのに苦労しています。
setuid rootを含むbash実行可能ファイルを含むUSBスティックがある場合、危険は明らかです。このようなUSBスティックを持っている人は誰でも、次のようなエントリがあれば、私のコンピューターでroot権限を取得できます。
/dev/sdb1 /media/usbstick auto defaults 0 0
私の/etc/fstab
で defaults
suid
が含まれています 。
しかし、キャラクターデバイスはどうですか?キャラクターデバイスが搭載されたUSBスティックがdev
でマウントされた場合、キャラクターデバイスを使用してroot権限を取得したり、何かを壊したりするにはどうすればよいですか? またはdefaults
?
承認された回答:
基盤となるデバイスへのアクセスはデフォルトでファイル権限によってのみ制御されるため、USBスティックにシステム内の実際のデバイスに対応する誰でも書き込み可能なデバイスノードを持つPOSIXファイルシステムが含まれている場合、そのデバイスノードを使用して対応するデバイスにアクセスできます「プレーン」ユーザーとしてのデバイス。オーディオデバイスの1つであるWebカメラ/dev/sda
に対応するデバイスを想像してみてください。 (これは文字デバイスではなくブロックデバイスですが、引数は同じです)…
これは、物事をより明確にするための例です。 /dev/sda
にアクセスするとします (その後、root
になることを可能にするプログラムを植えることを含め、ディスクの内容を使ってほとんど何でもできます。;これはブロックデバイスですが、問題はキャラクターデバイスでも同じです)。ターゲットシステムで、ls -l /dev/sda
ショー
brw-rw---- 1 root disk 8, 0 Sep 8 11:25 sda
これは、/dev/sda
を意味します ブロックデバイス(b
行の先頭)、メジャー番号8とマイナー番号0(8, 0
行の真ん中に)。デバイスにはroot
のみがアクセスできます (読み取り/書き込み)およびdisk
のメンバー グループ(読み取り/書き込みも)。
このシステムでは、root
になれないと想像してみてください。 ただし、何らかの理由で、nodev
なしでユーザーとしてUSBスティックをマウントできます。 。 root
である別のシステム 、USBキーに対応する特殊ファイルを作成できます:
mknod -m 666 usersda b 8 0
これにより、usersda
という特別なファイルが作成されます 、誰でも読み取りおよび書き込み可能。
ターゲットシステムにキーをマウントしてください。usersda
を使用できます。 /dev/sda
と同じ方法でデバイス 、ただしアクセス制限なし…
(これは、復号化されたマッパーデバイスにアクセスできる限り、暗号化されたファイルシステムでも機能します。適切な/dev/mapper
に一致するデバイスを作成します。 エントリ。)