ホーム > GNU/Linux > NFSでnosuidしてないと最悪ディスクデバイスにアクセスできる

NFSでnosuidしてないと最悪ディスクデバイスにアクセスできる

昨日の続きです。

sshポートフォワーディングにより、NFSサーバに対してrootを除く任意のユーザ・グループとしてアクセスする道が開けました。
NFSクライアントでマウント時にnosuidが設定されていない場合、そのクライアントマシンのブロックデバイスファイルに対してアクセスが可能となるケースがあります。
重要な点として、NFSのroot squashはuid/gidが0でないと機能しません。

【ddの所有グループをdiskとし、setgidします】

FedoraとRHEL、CentOS、Debian7で確認した限り、ディスクのデバイスファイル/dev/sd?や/dev/sd??はdisk(gid=6)グループの所有となっており、660です。
(FreeBSDではroot:operatorの640だったので読み込みしかできなさそうです)
このgid=6に対してはroot squash機能が働かないため、以下の手順でデバイスファイルにアクセスする道が開けます。

1. 昨日の記事のように、NFSをローカルマシンにマウントする
2. ローカルマシン上の一般ユーザアカウントに対し、diskグループを付与
3. NFS上にddを配置、グループをdiskに変更
4. chmod g+s
5. NFSクライアント側にログイン
6. NFSクライアント側で、egid=6なddを実行可能となり、ディスクデバイスファイルへの無制限アクセスが可能となる。即ちroot獲得と同義である。

対策
nosuidつけましょう。

実は発見の経緯は逆で、nosuid付いてなかったシステムへの攻撃方法を考えているときにポートフォワード案がでてきてしまい、
「NFSサーバに接続できちゃった時点でnosuidとかどうでもいいだろー」と思ってしまったのですが、まさかこれが最後のピースとなってしまうとは。

広告
カテゴリー:GNU/Linux
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。