セキュリティ監査ツールLynis

Pocket

 

Lynisとは

Linux向けのセキュリティ監査ツール。
http://www.rootkit.nl/projects/lynis.html

Linux向けではあるが、Linux以外でも使える。
FreeBSD, Solarisに加えてなんとOS Xまで。
このツールを実行すると、OSだけでなく、そこにインストールされているソフトウェアのセキュリティチェックもしてくれる。

Lynisのいいところ

Lynisのポイントは、問題のある設定、状態を指摘してくれるところにある。
具体的には、期限切れになっているSSLや、パスワード設定のないユーザアカウントや、不適切なパーミッションとか、そういったものを指摘してくれる。
指摘のしかたも、「Warnings」で危険性を挙げることのほかに、「Suggestions」で推奨対応方法も教えてくれる。

たとえばこれが「インストールされているソフトウェアに脆弱性があるよ」というレベルであれば大したことない。
FreeBSDの場合、portauditとかpkg auditで十分。
しかしLynisは、上述の通りソフトウェアやOSの設定にまで踏み込んでチェックしてくれるんである。

なじみのないソフトウェアをインストールするとき、初めてのOSをセットアップするときはもちろん、普段から使っているOS、ソフトウェアに対しても、「あ、これ危なかったんだ」と気づきを与えてくれる。

これはありがたい。
さっそく試してみる。

インストール

適当にどうぞ。
FreeBSDならportsにもpkgにもあるよ。
Linuxならapt-getでもyumでもどうぞ。

使いかた

まず最初に、lynisの実行にはroot権限が必要。
使い方はlynis –helpでズラズラと出てくる。

 

フルチェック

-cオプションを与えて実行すればよい、。

 

まず基本的な情報が表示される。
チェック対象ホストの情報と、profile、ログとレポートの場所である。
profileとは、いわばチェック方法の設定のようなもの。指定なしだとdefault.prfが選択される。
lynis.logにはlynisの動作ログが、lynis-report.datにはチェック結果が書き込まれる。

ENTERキーで先に進む。

とまあこんな感じで、1ステップごとにキー入力を求められる。
ウンザリしてきたなら一度Ctrl+Cで止めて、-Qオプションで実行すればユーザ入力を待たずに一気にやってくれる。

 

サマリのみかた

システム強度
実行結果の一番最後の部分は下記のようになる。

lynisの動作に関わるログが/var/log/lynis.logに、レポート結果が/var/log/lynis-report.datに書き込まれているよ、と。

Hardening indexとは、監査対象ホストのセキュリティ強度を示す。
上記の例だと28。28がどんなもんかは公式のドキュメントを見てもよく分からない。
別マシンでやったら33だった。

Warning/Suggestions

上記のさらに上にはWarningsとSuggestionsが表示される。

Warningsから以下の一行を見てみよう。

「UID 0(要するにスーパーユーザ)権限を持つユーザが複数いる」との指摘である。
FreeBSDをお使いの方ならお分かりだろうが、これは“toor”ユーザのことである。

Lynisの監査項目にはすべてIDが与えられており、[test:AUTH-9204]のAUTH-9204がそれ。
[impact:H]で、impactがHigh、つまり危ないぞと教えてくれている。

Suggestionsでは、同じ[test:AUTH-9204]に対して、”toor”ユーザを使ってないならvipwで消してしまえと提案がある。

なおSuggestionはWarningと必ずペア、というわけではない。
危険とまでは言わないけれども、やった方がよい対策も提案してくれる。
以下の例だと、/etc/profileのumaskをもっと厳しくしたら?との提案。

 

対策と再チェック

lynisの結果を受けて、何らかの対策をしたら再チェックをする。
充分なセキュリティを確保できたと判断できるまで、この繰り返しである。

しかしその都度、あんなに長い結果を見せられるのは苦痛だろう。
そういう場合には、-qオプションを与えればWarningだけを表示してくれる。

このあと、vipwでユーザtoorの行をコメントアウトし、もう一回実行すると、変化が現れる。
administrator accountsとUIDsのWarningが無くなっているのである。

また、-qにしてもレポートはしっかり記録されるので、grepを使いながら対策をしていけばいい。

まずレポートからWarningを探す。

監査項目SHLL-6202に注目し、今度はこのIDでgrep。

言われたとおりに/etc/ttysの設定を変えてまたlynis -qで確認。
というように繰り返す。
なお、以下のようにしてSHLL-6202だけ確認することも出来るが、出力が長いままなのであまり勧めない。

指摘されてもどうしようもない項目の対処について

例えば以下のWarning。

UFSマウントポイントが一つもないとの仰せであるが、監査対象マシンのファイルシステムは、実際のところすべてZFSであってUFSは一つもない。
なので、これは筋違い。

こういう場合は、監査項目を無効にする。
具体的には、監視対象マシン向けに専用のプロファイルを作って対応する。

 

Profileの設定。

FreeBSDだと、profileは以下の場所にある。
/usr/local/etc/lynis
デフォルトの状態では、default.prfというprofileがインストールされるはず。

これをたとえばthisHost.prfとしてコピーし、修正する。

 

ここに以下の一行を加えればよい。

 

文字通り、監査項目FILE-6329をスキップする、という指定。
もし複数の監査項目をスキップしたい場合には、スペースで区切って書く。

あとはlynis実行時に、作成したprofileを–profileに続けて指定すればよい。

Querying UFS mount points (fstab)という出力が消えている。

レポートの中身を見ても、以下のようにきれいさっぱり。

 

cronに設定したいとき。

以上の手順を繰り返し、満足な結果が得られたら、あとはcronにlynisを登録し、定期的にチェックしてもらおう。
cronからlynisを呼ぶときは–cronjobを付けるよろし。

 

以上

No tags for this post.

One comment

  1. ピンバック: Linuxでセキュリティに問題のある箇所を教えてくれる監査ツール『LYNIS』 | 俺的備忘録 〜なんかいろいろ〜

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください