セキュリティソフトウェアの修正とログ

セキュリティソフトウェアの修正とログ

ソフトウェアの不具合の修正は簡単ではない

ソフトウェアの不具合(脆弱性など)の修正は、ハードウェアの部品交換のように簡単ではありません。その原因は、ソフトウェアの開発におけるある法則が関係しています。その法側とは「ソフトウェア開発では、工程が進めば進むほど、問題解決に必要なコストが急増する」というものです。

ソフトウェアは一般的には、要求分析→設計→実装→テストという開発工程をて完成します。この工程の早期段階、すなわち要求分析や設計ですべての問題が解済できていれば大きな問題にはならないのですが、実装やテスト段階で問題が顕在化すると、簡単には修正できず、修正コストも膨大になります。セキュリティ関連の不具合もこの法則から逃れることはできません。

開発工程におけるセキュリティ解決の難しさ

そのような法則は多くの開発者が知っているのですから、早期発見.早期解決に努めればよさそうに思えますが、残念ながら話はそれほど簡単ではありません。特にセキュリティ対策に関しては「セキュリティの特性」に起因する難しさがあります。まず、セキュリティ対策を考えるうえでは、第三者の悪意の想定が必須です。このような、セキュリティの脅威を見つけ出し、どの程度問題となるのかを見積もる作業のことを「脅威分析」といいますが、要求分析や設計段階で脅威分析を適切かつ十分に行うことは非常に困難です。

実際に運用してみると、想定外の脅威が発生しがちです。また、要求や設計どおりにできているかを確認するためのセキュリティテストでは「異常な挙動を引き起こす(攻撃に近い)テストデータ」を用意する必要があり、のテストが十分でないと脆弱性の残った製品を出してしまうことになるのですか、しのテストを実際の運用前に完全に行うことも困難です。なお、このようなセキュリティを考慮した開発工程(ライフサイクル)のことを、SDL(Security Development Lifecycle) といいます。代表的な SDLにはMicrosoft の SDL があります。

各種ログ

テキストルーターやコンピューターなどに保存されるログ(動作記録)は、各機器そのもの機器が設置されているシステム全体が正常に稼動しているかを確認するために冷とともに、機器やシステムが攻撃を受けたか否かを確認するためにも用いられます。

ネットワーク機器のログ

ネットワーク機器のログを確認することで、通常では発生し得ない不審な通信を発見できることがあります。たとえば、ルーターやスイッチなどの機器で、指定外の通信を行わせないように設定している場合に、指定外の通信を止めたことを機器に記録するように設定しておけば、指定外の不審な通信が発生したことを確認できます。通信は止めないが、発生した通信を記録するようにしておいても、不審な通信発生を確認できることがあります。

サーバーのログ

サーバーなどのコンピューターに保存されるログは、保存する項目をうまく溜べば、不審なプログラムの起動を確認するのに役立ちます。また、性能ログを取得する。ようにしておくと、負荷の推移を残すことが可能になります。負荷の推移を確認することにより、攻撃者が何らかのプログラムを起動したタイミングなどを推し量れることがあります。ログに記録する内容や期間と記録する機器の時刻同期が大切ログにはなんでもかんでも保存するのではなく、適切な記録項目および記録する機器を選ぶことが大切です。

そして、ログを記録する機器は時刻を同期しておき、後数のログの間で記録された情報の突き合わせを行いやすいようにしておくことか大切です。上記以外にどんな種類のログが取得可能かを見極めることも大事です。また、何を記録するかに加え、「どのくらいの期間記録できるか」というのも重です。必要な調査を行う段になって「記録がなかった」という事態を避けるためにも何を「どの期間」記録できるか/できているかを見極める必要があります。

セキュリティカテゴリの最新記事