/proc
私は、PIDとコマンド ライン分析を使用してシステム上のプロセスを検証するプロジェクトに取り組んできました。私のコードはセキュリティ担当者によってチェックされなければなりませんでした。
#!/usr/bin/env perl
$0="I am running wild"; # I had no clue you can do this!
system("cat /proc/$$/cmdline");
print("\n");
system("ps -ef | grep $$");
# do bad stuff here...
私の質問:
コマンドラインで指定されたパスワードを非表示にするなど、上記のユースケースがいくつか見られますが(これも悪い習慣です)、プロセスを非表示にしてスプーフィングできると、さらに多くの問題が発生します
cmdline
。許される理由はありますか?システムの脆弱性ではないですか?これを防止または検出するにはどうすればよいですか?
/proc
マウントオプションを調べました。lsof
また、予期しない動作に基づいてスプーフィングされたプロセスを特定するために使用できることも知っていますが、これは私の場合は機能しません。現時点では、少なくとも 1 つの引数が存在すると仮定するcmdline
少なくとも 1 つの null ( ) 文字が含まれているかどうかを検出する簡単な方法を使用しています。\0
上記のコードでは、そのチェックをバイパスするためにスペースをヌルに置き換える必要があります。これは、Perl で実装する方法が見つからなかったものです。最初の\0
.