私は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に一致するデバイスを作成します。 エントリ。)