※ 本記事は2017年7月13日に公開されたものです。

オラクルではセキュリティ修正を含む累積パッチを四半期ごとにCritical Patch Updateとして定期的に提供しています。脆弱性をついた攻撃が発生したときには、これとは別に緊急の個別パッチがでることもありますが、基本的には四半期ごとの累積パッチを適用することで既知の脆弱性への対策ができている最新の状態を保つことができます。

最近のコンプライアンス要件でも、ソフトウェアを最新の状態に保つことが求められています。

 

「個人情報の保護に関する法律についてのガイドライン(通則編)」では、講じなければならない措置として「(3)外部からの不正アクセス等の防止」があり、実現のための手法として「機器やソフトウェア等に標準装備されている自動更新機能等の活用により、ソフトウェア等を最新状態とする」とあります。

「PCIDSS」では、「要件:6.2」で「すべてのシステムコンポーネントとソフトウェアに、ベンダ提供のセキュリティパッチがインストールされ、既知の脆弱性から保護されている。重要なセキュリティパッチは、リリース後 1 カ月以内にインストールする」とあります。

また、「政府統一基準」でも、「6.2.1 ソフトウェアに関する脆弱性対策」の遵守事項として「(1) ソフトウェアに関する脆弱性対策の実施」、「(a) 情報システムセキュリティ責任者は、サーバ装置、端末及び通信回線装置の設置又は運用開始時に、当該機器上で利用するソフトウェアに関連する公開された脆弱性についての対策を実施すること」とあります。この内容は「7.2.4 データベース」の目的・趣旨に「なお、本項の遵守事項のほか、6.1 節「情報システムのセキュリティ機能」において定める主体認証・アクセス制御・権限管理・ログ管理・暗号・電子署名等の機能面での対策、6.2.1項「ソフトウェアに関する脆弱性対策」、6.2.2 項「不正プログラム対策」、7.3.2 項「IPv6 通信回線」において定める遵守事項のうち、データベースに関係するものについても併せて遵守する必要がある」とデータベースでも遵守するように明記されています。

オラクルでは新しくパッチを作成するバージョンをサポートポリシーとして定義しています。具体的には「Critical Patch Updatesの提供」はPremier SupportおよびExtended Support期間中に限られます。Sustaining Support期間中のバージョンに関してはCritical Patch Updatesは提供されません。
Oracle Databaseの場合、2017年7月の時点でのサポート期間、11.2のExtended Supportは2020年12月まで、12.1のExtended Supportは2021年7月までとなってます。この期間以降はパッチが作成されなくなりますので注意が必要です。
パッチが提供されないデータベースバージョンを利用することは各種コンプライアンス要件への違反と判断されるケースもありますので、定期的なアップグレード計画を立てることが重要です。

さて、この四半期ごとに提供されるパッチをすぐに当て続けないとこれらのコンプライアンス要件に準拠できないかというと、実はそんなことはありません。PCIDSSでも「重要なセキュリティパッチは、リリース後 1 カ月以内にインストールする。」と明文化されていますが、「重要な」というように限定がありすべてのセキュリティパッチを即座に適用し続けることは必須の要件とはなっていません。もちろん脆弱性をつく攻撃が起きている場合にはその対策のためのパッチは「重要なセキュリティパッチ」であるため即座に適用しなければなりませんが、すべてのセキュリティパッチを即座に適用する必要があるわけではありません。逆に「重要なセキュリティパッチ」でないからと言って、ずっと当てなくてよいものでもありません。その時点でその脆弱性をついた攻撃がなくても将来的にその脆弱性をついた攻撃が起きるかもしれません。攻撃を受けたときに数年前に修正されていた脆弱性をほったらかしておいたので被害を受けました、ということになっては元も子もありません。

重要なのはパッチの適用計画を準備しておくことです。即座に適用すべき「重要なセキュリティパッチ」の判断基準をはっきりとさせ、そうでないセキュリティパッチの適用頻度を決定し、パッチ適用時の既存アプリへの影響調査を含めた手順を確立しておくことです。

「重要なセキュリティパッチ」かどうかの判断としては、たとえばJPCERTの注意喚起が利用できます。ただし、ここではその脆弱性をついた攻撃が発生していることを紹介しているため、注意喚起の時点で情報漏えいが発生してしまっている可能性もあります。ベンダーやセキュリティ専門会社の注意喚起も併せて確認することをお勧めします。オラクルからも英文ではありますが、セキュリティパッチやセキュリティアラート情報をメール配信するサービスをおこなっています。

また、パッチの内容の詳細までは公開されていませんが、データベースサーバーのどのコンポーネントに対するパッチかは公開されています。たとえば、2017年4月の累積パッチはデータベースのSQL*PlusとJVMに関するパッチが含まれていることが分かります。パッチはシステムが利用しているコンポーネントに対するものかどうか、Base Scoreの値の大きさなども「重要なセキュリティパッチ」かどうかの判断基準にできます。

次に「重要なセキュリティパッチ」ではないパッチの適用周期ですが、これはシステムの重要度やメンテナンス停止が可能な頻度によります。Windowsなどのセキュリティパッチを適用していないことはないと思います。これはWindowsは頻繁にファイル入出力などのアクセスをおこなうためだと思います。同様にサーバーもサービス提供のために、さまざまな端末と通信できる状態にあります。サーバーに対しても定期的にパッチを適用するようにしてください。

(2017/09/26追記) パッチが公開されると、公開されたパッチをリバースエンジニアリングして、脆弱性を突き止め、パッチ未適用環境への攻撃ツールが作成される危険性もあります。この観点からも定期的にパッチを適用していくことは重要です。

さて、パッチを適用する際に重要なのは影響調査です。パッチを適用していない最大の理由はなんらかの悪影響が出てしまうと困るから、影響が分からないからだと思います。影響調査をおこなわず緊急のパッチ適用をしてしまったため、性能トラブルを起こしてしまったなどのケースもあるかもしれません。ただし、これはデータベースのセキュリティパッチ適用時のみに起こることではありません。ハードウェア更新、ソフトウェアのアップグレード、チューニングのためのデータベースパラメータの変更など事前に影響調査をおこなうべき作業はどのシステムにもあります。パッチ適用のためだけでなく、ほかの作業実施時のためにも影響調査の手順は確立しておくことをお勧めします。

パッチ適用やアップグレード時の影響調査を効率的におこなうためにOracle DatabaseではReal Application Testingというテストツールを用意しています。このツールを利用することで、既存の本番データベースのワークロード(指定した期間内で実際に発行されたSQL文と発行されたタイミング)を記録し、別の環境でリプレイ(再現)することができます。このツールを利用することで、パッチ適用前後の環境下での性能や実行計画などの違いを確認することができます。以下にテストツールの概要や使い方、デモなどがありますのでこちらもご参照ください。

DB Upgradeの極意: アップグレードのリスクを軽減!データベーステストのベストプラクティス

~オラクルコンサルタントが語る~ シンジ&アヤノの実践データベース性能テストの極意:Oracle Real Application Testingを使ってみよう 

「もくじ」にもどる