RHEL系(CentOS)
---
問題
・Linuxで稼働しているプロセスはどのようなモジュールを利用しているのか知りたい
・モジュールに脆弱性などがないか?どのパッケージ(rpm)を利用しているか知りたい
これらの悩みを以下のコマンドで解決
lsof -p プロセスID
rpm -qf モジュールファイル(フルパス)
活用方法
このコマンド利用して
稼働プロセスがどのようなモジュールを利用して、そのモジュールは、どのような
パッケージを導入してインストールされたのか
関係性が判明してます。
例えば、
あるパッケージに脆弱性が発生したときに、対象サーバで稼働しているプロセスが
脆弱性のパッケージを利用していないか?を確認したり分析したりするのに
利用可能することができます。
また、このモジュールで負荷がかかっている、調査対象のモジュール(ファイル)を
特定することもできます
使っていないと思っていても、以外に想定していないパッケージが利用プロセスで
使われていることが多々あります。
そのようなときに活用できます
具体的な流れを解説
1.TOPコマンドにて対象のプロセスを特定
#top
※#ps -aux
コマンドで代用可能
問題となっている、負荷が高い、異常となっているサービスの「プロセスID」
を特定する
問題となっている「プロセスID」を特定します。
今回は「809」と特定
2.psコマンドで特定した「プロセスID」の詳細を確認
#ps -df |grep 809
3.lsofコマンドでプロセスが利用しているモジュール一覧を表示
#lsof -p 809
「809」という「プロセスID」に関係しているモジュール(ファイル)の一覧が
これで特定できます。
4.rpmコマンドを利用して、これらのモジュールからどのパッケージ(rpm)を利用していたか特定
#rpm -qf /usr/lib64/libssl.so.1.0.2k
#rpm -qf /usr/lib64/libpython2.7.so.1.0
問題となっているモジュールからパッケージが特定できれば、パッケージを
バージョンアップして解決することもできるし、脆弱性があるパッケージ
(バージョン)を確認することも可能
利用してないと思っていても、そのプロセスが別のパッケージを利用している
ということがあるので、この方法でパッケージを特定することができます
コメント