私はLinuxセキュリティについて学んでおり、文字デバイスがあるUSBスティックが潜在的に危険な理由を理解しようとしています。
bash実行可能ファイルとsetuidルートを含むUSBスティックがある場合、リスクは明らかです。このようなエントリがある場合、そのUSBスティックを持つ人は誰でも自分のコンピュータのルート権限にそのエントリをインポートできます。
/dev/sdb1 /media/usbstick auto defaults 0 0
私が含まれている/etc/fstab
ので。defaults
suid
しかし、キャラクターデバイスはどうですか?キャラクターデバイス付きのUSBスティックがある場合、またはインストールされている場合は、rootアクセスdev
権を取得したりコンテンツを破損したりするためにキャラクターデバイスをどのように使用しますかdefaults
?
答え1
基本デバイスへのアクセスは、デフォルトでファイル権限によってのみ制御されるため、USBドライブにPOSIXファイルシステムが含まれており、システムの物理デバイスに対応するグローバルに書き込み可能なデバイスノードがある場合は、そのデバイスノードを使用して適切なデバイス。デバイスを「一般」ユーザーと見なします。オーディオデバイス(ウェブカメラ)の1つに対応するデバイスを想像してみてください/dev/sda
(これは文字デバイスではなくブロックデバイスですが、パラメータは同じです)...
以下は、状況をより明確にするための例です。アクセスしたいと仮定すると/dev/sda
(ディスクの内容に必要なほとんどすべての操作を実行できます。これはプログラム移植を含むroot
ブロックデバイスですが、問題は文字デバイスと同じです)。ターゲットシステムでls -l /dev/sda
以下を表示します。
brw-rw---- 1 root disk 8, 0 Sep 8 11:25 sda
これは、メジャー番号が8でマイナー番号が0(ラインの中央にあるもの)を持つ/dev/sda
ブロックデバイス(ラインの先頭にあるもの)であることを意味します。デバイスには、グループメンバーとグループメンバーのみがアクセス(読み取り/書き込み)できます(読み取り/書き込みも可能)。b
8, 0
root
disk
このシステムではこれはできませんが、root
何らかの理由で必要なくUSBスティックをユーザーとしてマウントできると想像してくださいnodev
。現在の他のシステムでは、root
USBキーに対応する特別なファイルを作成できます。
mknod -m 666 usersda b 8 0
usersda
これにより、誰でも読み書きできる特別なファイルが作成されます。
usersda
ターゲットシステムにキーをインストールすると、同じ方法でデバイスを使用できますが、/dev/sda
アクセス制限はありません。
(復号化されたマッパーデバイスにアクセスできる限り、暗号化されたファイルシステムでも機能します。適切なエントリに一致するデバイスを作成します。/dev/mapper
)