21章ツール:構成管理

システム管理者やセキュリティ技術者にとって、ファイルの存在、レジストリの値、ユーザアカウントといった、システムの現在の設定をチェックするツールは非常に有用である。設定の確認に加え、この手法はベースラインとなる設定を記録し、ベースラインとの差異を監視することで、簡易なIDSとしても用いることができる。この手法は、侵入の痕跡を探索するために用いることもできる。

本章では、ファイルやユーザの存在といった、チェックすべき一連の設定を記述したテキストファイルを読み込み、現在のシステムが条件を満たしているかを確認するようなツールを作成する。ツールはWindowsを対象するが、少し修正することでLinuxのサポートもできるようにする。

21.1 実装

validateconfig.shツールは次のようなチェックを行う。

  • ファイルの存在もしくは不存在
  • ファイルのSHA-1ハッシュ
  • Windowsのレジストリ値
  • ユーザやグループの存在もしくは不存在

表21-1にスクリプトが読み込む設定ファイルの構文を示す。

表21-1 ファイルのフォーマット

目的フォーマット
ファイルの存在file ファイルパス
ファイルの不存在!file ファイルパス
ファイルのハッシュhash SHA-1ハッシュ ファイルパス
レジストリの値reg "キーのパス" "" "expected"
ユーザの存在user ユーザID
ユーザの不存在!user ユーザID
グループの存在group グループID
グループの不存在!group グループID

例21-1に設定ファイルのサンプルを示す。

例21-1 validconfig.txt

user jsmith file "c:\windows\system32\calc.exe" ...

Get 実践 bashによるサイバーセキュリティ対策 ―セキュリティ技術者のためのシェルスクリプト活用術 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.