/etc/fstab の「nodev」がなぜそんなに重要なのか?ハッキングのためにキャラクターデバイスを利用する方法は?

/etc/fstab の「nodev」がなぜそんなに重要なのか?ハッキングのためにキャラクターデバイスを利用する方法は?

私はLinuxセキュリティについて学んでおり、文字デバイスがあるUSBスティックが潜在的に危険な理由を理解しようとしています。

bash実行可能ファイルとsetuidルートを含むUSBスティックがある場合、リスクは明らかです。このようなエントリがある場合、そのUSBスティックを持つ人は誰でも自分のコンピュータのルート権限にそのエントリをインポートできます。

/dev/sdb1 /media/usbstick auto defaults 0 0

私が含まれている/etc/fstabので。defaultssuid

しかし、キャラクターデバイスはどうですか?キャラクターデバイス付きの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ブロックデバイス(ラインの先頭にあるもの)であることを意味します。デバイスには、グループメンバーとグループメンバーのみがアクセス(読み取り/書き込み)できます(読み取り/書き込みも可能)。b8, 0rootdisk

このシステムではこれはできませんが、root何らかの理由で必要なくUSBスティックをユーザーとしてマウントできると想像してくださいnodev。現在の他のシステムでは、rootUSBキーに対応する特別なファイルを作成できます。

mknod -m 666 usersda b 8 0

usersdaこれにより、誰でも読み書きできる特別なファイルが作成されます。

usersdaターゲットシステムにキーをインストールすると、同じ方法でデバイスを使用できますが、/dev/sdaアクセス制限はありません。

(復号化されたマッパーデバイスにアクセスできる限り、暗号化されたファイルシステムでも機能します。適切なエントリに一致するデバイスを作成します。/dev/mapper

おすすめ記事