ロギングツールとセキュリティリスク


Apache Log4jが動作するサーバにおいて、第三者がリモートからでも脆弱性を悪用して任意のコードを実行する可能性があるとのことで、最新のセキュリティ情報を配信してくれているJPCERT/CCからも、2021年12月にJavaベースのオープンソースのロギングライブラリのApache Log4jの任意のコード実行の脆弱性(CVE-2021-44228)に関する注意喚起がありました。

Apache Log4jのログとして記録された文字列から、一部の文字列を変数として置換するJNDI Lookup機能が悪用されると、遠隔の第三者が送信した文字列をログとして記録することで、Log4jはLookupにより指定された通信先もしくは内部パスからjava classファイルを読み込み実行し、結果として任意のコードが実行される可能性があるとのことです。国内においても、この脆弱性を悪用した通信が多数観測されているようです。

このように、ロギングのための道具が悪用される事例により、ログは、保存されたログデータが改ざんされないように完全性を求めるセキュリティ対策だけでなく、ロギングする仕組みについても、脆弱性がないかを注意しなければいけないことが分かります。そして、今回のケースで恐ろしいのは、たとえば、マルウェアが自らの動きの履歴を消すためにログの内容を改ざんしているようなレベルではなく、そのマシンの乗っ取りを可能にするような悪質なコードを実行できてしまっている点です。たとえば、暗号デジタル通貨のマイニングによって、パフォーマンスを低下させるものから、IDやパスワードなどの盗難、機密情報の漏えいなどが報告されています。今回問題となったApache Log4jは、オープンソースのライブラリーであり、あまりにもメジャーで、広範囲のJavaのアプリケーションにて使用されているため、どこで使用され、どの程度影響があるのか把握しづらいという課題も露見しました。

たかがログ出力のためのツールのライブラリーだと思っていても、自己責任でオープンソースを使用すると、日々のバージョンアップを怠ったり、脆弱性を見過ごすとたいへんな事態になりかねないという教訓です。そして、今回はメジャーなシステムやサービス、パッケージソフトウェアでも、内部でこのライブラリは使用されており、影響範囲は非常に大きなものでした。ロギングは、過去の状況を確認できる最後の大切な情報を残し、セキュリティ対策の元データとしても重要なポジションを占めますが、極めてシステムに近い部分なので、OSと同じレベルでセキュリティ対策や管理が必要だと言えそうです。


ロギングツールにも脆弱性のリスクはある


ロギング, 脆弱性