稼働プロセスから利用モジュールとrpmパッケージ明確化し脆弱性を確認(lsofコマンド活用)

Linuxサーバ

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

問題となっているモジュールからパッケージが特定できれば、パッケージを
バージョンアップして解決することもできるし、脆弱性があるパッケージ
(バージョン)を確認することも可能

あいるofほそ
あいるofほそ

利用してないと思っていても、そのプロセスが別のパッケージを利用している
ということがあるので、この方法でパッケージを特定することができます

コメント

タイトルとURLをコピーしました