スプーフィング(ルートとして)Unixソケット(ファイル・システム・ソケット)getsockopt()
によって得ることができるピアクレデンシャル、オプションSO_PEERCRED
に(互換)方法はありますか?UNIXソケット:getsockopt()をスプーフィングすることはできますか?SO_PEERCRED?
背景:
IはSO_PEERCRED
を介してそれに接続するプロセスのUID
をチェックし(私は変更できない)サーバ・アプリケーションに接続する必要があります。 をのアプリケーションに接続するには、情報を偽装したいのですが、もあります。
私は、サーバーが特定のピアUID
/GID
を見ている非侵襲的な方法を探しています:質問を明確にするために
UPDATE
。 ソリューション(等LD_PRELOAD
、システムコールインターセプト)カーネルを変更(またはカーネルモジュールの使用を取る)する必要を推奨またはサーバープロセスまたはその負荷を変化させる/どのような方法で処理を連結しています。
基本的には、特別な要件を必要とせずに任意のLinux(または一般的にはUNIX)サーバーで実行している場合、解決策が機能するはずです。サーバープロセスは既に実行されている可能性があります。
もしあなたが 'root'ならば、' setuid'だけではないのですか?あなたは完全に制御された子プロセスからそれを行うことができますので、実際に特権を失うのを避けることができます。 – nneonneo
私は確信していませんが、Linuxでは、 '/ proc//fdinfo/'に8進数のプレフィックスフラグがあります。 –
alk
サーバープロセスの開始を制御できますか?つまり、LD_PRELOADを使用して、報告された資格情報を変更するためにライブラリ関数/ syscallサンクを変更できますか? –