![]() |
DB技術者に贈るセキュリティ対策の基本
第2回 データベースの設置場所および接続時の勘所
インターネット総合研究所
2003/8/30
「第1回 データベースセキュリティの基本的な考え方」では、データベースセキュリティの基本的な考え方とセキュリティ要素を階層化した場合のネットワークレイヤー以下の部分、つまり、物理的な設置場所などのセキュリティ要素について説明した。
今回は、ファイアウォール機能などの実際のネットワーク構築の現場において必要になる、データベースの設置場所およびネットワーク接続時の勘所を説明する。ファイアウォールに関する具体的な設定方法などの詳しい解説などについては、「【連載】ファイアウォール運用の基礎」などを併読されることをお勧めする。
|
データベースはネットワーク上のどこに置くべきか? |
一言でいうと、データベースは、内部ネットワークに設置し、プライベートアドレスを設定するとセキュリティを高めることができる。データベースへの不特定多数からのアクセスを防ぐことがネットワークにおけるセキュリティ対策の基本。そのうえで、特定のサーバとの通信についてのセキュリティ対策を行うことによって、さらにセキュリティを高めることができる。通信経路でのセキュリティ対策については、次回以降のOracle
Advanced Securityの機能の説明の際に紹介することとする。
一般的に、インターネット上のECサイトなどでOracleなどのデータベースを利用する場合に、多くは図1のようなネットワークになるだろう。ただし、ネットワーク図を見ただけでは、そのネットワークに設置されているデータベースが危険か安全かを詳しく知ることは難しいだろう。
![]() |
| 図1 一般的なECサイトのネットワークでは、外部とのインターフェイスにファイアウォールを立てる |
通常、ファイアウォールの内部にデータベースを設置した方がよいということがよくいわれる。これは内部ネットワーク(DMZの内側のネットワーク)にもファイアウォールが設置されている場合にデータベースの保護として意味があるのだ。その理由として、DMZと内部ネットワークの通信においても、ファイアウォールによって守られていることがあるからなのだ。
| ●コラム サーバの要塞化とファイアウォール Oracleデータベースのサーバの要塞化については、次回(第3回)に詳しく説明する予定だが、ファイアウォールを導入した場合についても、ファイアウォールで許可されたサービスについては、最終的にサーバ側で処理を行わなくてはならないため、サーバの要塞化作業が必要となる。 セキュリティ対策は、ファイアウォールが許可しているサービスだけに施されるものではない。サーバに適切なアクセスコントロールとセキュリティパッチの適用などのセキュリティ対策を行っておくことで、極端にいえばファイアウォールを利用しないでも、ネットワーク上にあるOracleデータベースのセキュリティを保つことができる。 筆者も「サーバの要塞化」を中心としたセキュリティの考え方を先輩に教えていただいたときには、若干ではあるが、衝撃を受けた。バッファオーバーフローを利用した攻撃の多さは、SecurityFocus.comの脆弱性データベースなどを見ていただくと実感できるのではないだろうか。
|
|
ファイアウォールの導入は本当に必要か? |
よくコンサルティングの現場などで、顧客から「データベースを導入する場合には、やっぱりファイアウォールを導入しないといけないですかね?」と聞かれることがある。そもそも、ファイアウォールの導入に関しては、3つの選択肢が考えられる(図3-1〜図3-3参照)。これは、システムの規模や予算によって考え方が違ってくるはずだ。ただし、どの選択肢を選んでも間違いではない。予算が許せば、DMZと内部ネットワークそれぞれにファイアウォールを設置することは可能だが、システム構築において常に付きまとうのがコストの制約。セキュリティ要素についても、その制約を逃れることはできない。
![]() |
| 図3-1 内部ネットワークにもファイアウォールを設置する場合 |
![]() |
| 図3-2 DMZの外側にファイアウォールを設置する場合 |
![]() |
| 図3-3 ファイアウォールを設置しない場合 |
たとえファイアウォールを設置しても、ファイアウォールが通信を許可しているサービスに対するバッファオーバーフロー攻撃までを防ぐことはできない(表1)。ファイアウォールの構築方法はいくつかあるが、Oracleデータベースは、本記事の冒頭でのポリシーに従って内部ネットワークにプライベートアドレスを利用して構築することをお勧めする。そのうえで、Oracleデータベースのネットワーク機能を利用したセキュリティ対策を行うことで、よりセキュアなOracleデータベースを構築することができる。
|
||||||||||||||||||||
| 表1 ファイアウォール導入方法別のファイアウォールの有効範囲 | ||||||||||||||||||||
| ●コラム 内部ネットワーク用ファイアウォール DMZセグメントと内部セグメントの間に置かれるファイアウォールを指す。内部ネットワーク用ファイアウォールの設置は、コスト的な負担になるため、積極的に提案されるソリューションではないが、機能としては、DMZセグメントからの通信について、許可されたホストのみの通信を許可するというものだ。 では、許可されないホストから通信が実行された場合はどういう意味になるだろうか? それは、当該ホストから管理者が間違えてOracleデータベースにアクセスしてしまったケースかそのサーバが不正侵入されてしまった場合などが考えられる。内部ネットワーク用ファイアウォールの設置はこういった行為を防ぐのに有効だ。 さらに、社内ネットワークと接続されている場合などは、社内のほかのネットワークセグメントからの接続について保護を行う場合にも有効なソリューションになる。 ただし、この場合も許可されたホストに対して不正侵入があった場合には、正常なアクセスか不正なアクセスかの区別をファイアウォール自身では行うことができないので、その点については、DMZ上に設置されている各サーバの要塞化を行うなどセキュリティ対策を十分に行う必要がある。 いい換えれば、DMZ上に設置されているサーバについて正しくセキュリティ対策を行っておかないと、そのサーバ経由でOracleデータベースが危険にさらされるということを常に頭に入れておかなければならない。 |
| ●コラム Oracleデータベースのメンテナンスライン インターネットデータセンターなどにOracleデータベースを設置する場合に、そのメンテナンスをどうやって行うかで悩むことが時々ある。社内のサーバルームなどにOracleデータベースが設置されていれば、直接コンソール(ディスプレイ)を叩いて作業を行うことができるが、インターネットデータセンターに設置されているような場合は、設置スペースが限られているラック内にコンソールを設置できない場合がほとんどだ。 Oracle8i以降のOracle管理系ツールは(インストーラも含めて)X Window環境を利用するものが結構多いのが現状だ。Oracleデータベースが、インターネットデータセンターの内部セグメント上に構築されているケースが多く、X Window環境の構築に結構苦労することが多い。 このようなメンテナンスラインの確保についても、ファイアウォールのネットワークデザイン同様にさまざまな対応が可能かと思うが、筆者は、X Windowのセキュリティ対策を行うよりもメンテナンスラインとしてインターネットVPNを利用することで対応することが多い。 |
|
Oracleデータベースにおけるネットワーク接続時の対策 |
Oracleデータベースのネットワーク上での設置場所が決まれば、あとはネットワークの設置だ。Oracleデータベース(サーバ)とアプリケーションサーバ(クライアント)の通信イメージは、図4のようになる。リスナーとは、ネットワーク経由でOracleクライアントからの接続要求の処理を行う。なお、リスナーでのセキュリティ対策については、基本的には、DMZおよびほかの社内ネットワークなどからの不正侵入などに対する有効な対策になる。
まず、Oracleネットワーク設定の基本は以下のとおり。
![]() |
| 図4 Oracleクライアントからのアクセスイメージ(基本的には、リスナーがネットワーク経由での問い合わせを処理する) |
● リスナーポートを変更する(推奨)
通常、リスナーは、1521番ポートを利用しているが、このデフォルトポートは広く利用されているため、そのポートを変更することで機械的に情報収集を行うようなツールに対して有効な情報が提供されるのを一時的ではあるが防ぐことができる。
![]() |
| 図5 リスナー設定例(デフォルトポート番号の変更) |
●リスナーにパスワードを設定する
リスナーはリモートから制御を行うことができるため、リスナーについてパスワードを設定することで、外部からのリスナーに対する攻撃について、セキュリティを高めることができる。
これにより、リスナーの起動や停止の際には必ずパスワードの入力が必要になる。ただし、リスナーの状況を確認するSTATUSコマンドは、パスワード設定後もパスワード入力なしに確認することができる。パスワード設定LSNRCTLコマンドでリスナー管理メニューを起動後、CHANGE_PASSWORDコマンドを利用すればパスワードを設定することができる。正しくパスワードが設定できると、listener.oraに「PASSWORDS_LISTENER」というパラメータが追加される。パスワードは、暗号化されているため、エディタなどでは確認することはできない。
![]() |
| 図6 リスナーへのパスワード設定 |
ここでは、パスワードを入力せずにリスナーを停止され、そのときのエラーを表示している。
![]() |
| 図7 パスワードを設定したリスナーの管理例(パスワード認証によるエラー) |
●IPアドレスによる接続の制限
基本的に内部ネットワークにファイアウォールを設置していない場合などは、DMZ上のどのサーバからもリスナーへの接続が可能な状態になっている。先ほども説明したが、内部ネットワークを守るためにファイアウォールなどを入れる余裕がない場合は、DMZへの侵入がすなわちリスナーへのアクセスを意味する。
IPアドレスによる制御を行うことで、DMZ上やほかの社内ネットワークの許可しないサーバやクライアントからの接続を制限することができる。昨年公開された「Oracle
Net Listenerに対する潜在的なDoS脆弱性」の対応策としてIPアドレスによる接続の制限が指示されているので、この機能については、概要だけでも知っておく必要がある。
この設定は、Oracleのバージョンによってファイルが異なっている。Oracle 8.1.7以前については、$ORACLE_HOME*2/network/admin/protocol.ora、Oracle
9.0.1以降は$ORACLE_HOME/network/admin/sqlnet.oraになる。この設定を行った場合、必ずリスナーを再起動する必要がある。
![]() |
| 図8 IPアドレスによるアクセス先の制御(sqlnet.ora) |
| *2 $ORACLE_HOMEは、Oracleインストール時に設定される環境変数になるので、インストール環境ごとに異なるので、それぞれのインストール先ごとに読み替えるよう願いたい。ディレクトリ名をデフォルトから変更することで、攻撃者が情報の解析などを行うための時間を稼ぐこともできるというメリットがある。ささいなことだが、デフォルト設定を変更するということは、セキュリティ対策の中でも有効な対策だと思う。 |
◇
いかがだっただろうか、今回の記事を読むことで、効率的にセキュアなOracleデータベースのネットワーク構築の知識と配置方法およびDMZやほかの社内ネットワークからのOracleデータベースへの通信部分についてのセキュリティ設定の必要性を理解することができるかと思う。
特に、リスナーのIPアドレスによる接続サーバの制限については、Oracleデータベースを社内システム用にのみ利用している環境においても、情報の内部漏えいをコストを掛けずに防ぐことができるものとして理解できると思う。後半部分のOracle
Net Serviceのセキュリティ対策については、今回紹介したもの以外にもいくつかの方法があるが、今回は、あえてその中でも必要最低限のものを紹介した。さらに、詳しい情報については、Oracle
Technology Network Japan上でOracleデータベースのオンラインマニュアルなどをご覧いただくことで、詳細情報を得ることができるだろう。
次回は、Oracleデータベースの導入および運用時の基本的なセキュリティ対策について説明する。
| 「第3回」へ |
| 筆者Profile |
| 篠田道明(しのだ みちあき) 株式会社インターネット総合研究所 主任研究員。大学時代に社会福祉を学び、現在は、ITコンサルタントとして、活動中。 |
| index | |
| 第1回 データベースセキュリティの基本的な考え方 | |
| 第2回 データベースの設置場所および接続時の勘所 | |
| 第3回 データベース導入/運用時のセキュリティ対策の基本 | |
| 第4回 OracleDBで活用したい「データの保護」と「暗号化」 | |
| 第5回 内部犯行を抑制するデータベース監査 | |
| 最終回 Oracleサーバに対する通信経路の暗号化 | |
| 関連記事 | |
| 連載:Webサイト運営者のセキュリティ確保の心得 第3回 データベースサーバの構築、運用から発生する脆弱点とその対策 | |
| 連載:Webアプリケーションに潜むセキュリティホール第2回 顧客データがすべて盗まれる?! | |
| 連載:データベースセキュリティの基礎のキソ |
ホワイトペーパー(TechTargetジャパン)
- この脆弱性対策エンジンは“永遠に完成しない” (2010/3/9)
パターンファイルに頼らず防御する「要の技術」は、いまも完成にはいたっていない。その理由とは―― - Gumblarがあぶり出す 「空虚なセキュリティ対策」 (2010/3/1)
ガンブラーの脅威は、組織の構造や外部委託問題をあぶり出します。そのセキュリティ対策、建前論になっていませんか? - 決済アプリのセキュリティ基準、PA-DSSとは (2010/2/24)
“ペイメントアプリケーション”のセキュリティ基準を定めたPA-DSS。厳密に定められた14の要件を、PCI DSSと対比させつつ解説します - 「鍵は“J”の中にあるよ」CTF by ダークナイト解答編 (2010/2/22)
ダークナイトからの挑戦状、いかがだっただろうか。WiresharkにNetworkMiner、WinRARを駆使し、“J”に隠された秘密を解き明かせ!
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 New! |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜Java編〜
| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 直属上司が海外にいるのエンジニアに見る 【実例】場所に捉われないワークスタイル |
| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |

















