前回までで,データベースの導入・設定,およびその周辺のデータベースセキュリティ対策を解説しました。今回からは「DB監査ログ」「⁠データベース監視」をキーワードに,さらに一歩踏み込んだデータベースセキュリティ対策を解説していきます。少々テクニカルな話題から外れているかもしれませんが,データベースセキュリティの常識として,おつきあいいただければと思います。データベース監視なのか「データベース監視」を一言で表すとすると「データベースへのアクセスを監視し(含むDB監査ログ取得⁠)⁠,不審なアクセスを早期に発見・管理する仕組み」になります。必要なのでしょう?情報漏洩事件の多くが内部犯行である昨今,いくつかの情報漏洩事件の原因として,関係者による犯行という報道が多くなされています。データベースは,重要情報へアクセスする権限を持つ者に対して無防備です。システム運用者,DB管理者が悪意持って重要情報を取得しようとした場合は,防ぐことができません。そのようなことを考えるのはごく一部の人間でしょうが,脅威として考えられる以上,対策を立てる必要があります。悪意のある第三者に加え,システム運用者やDB管理者も監視対象とするべきなのです。企業で業務プロセスが行われるためには,ほとんど何らかのアプリケーションシステムが利用されており,そのIT基盤として必ずと言っていいほどデータベースが存在します。そのデータベースには,会計報告に利用するデータや,業務上重要な情報が収められています。データベース監視を行うことは,データベースに保管される情報の正当性と安全性を担保し,内部統制されている証明の一部となります。情報が第三者に漏れてから発覚することのないよう,可能な限り対策を行う必要があります。以上のことからも,情報漏洩の積極的対策であるデータベース監視を行うことは必然と言えます。DB監査ログの取得方針を決めるデータベース監視を行うためには,データベースに対するアクセスを確認する必要があります。そのためには,いわゆるアクセスログに当たる「DB監査ログ」を使用します。DB監査ログを取得する手段は,各DBMSの標準機能の使用や,市販されているDB監査ソフトウェアを利用することになります(DB監査ソフトウェアについては次回で触れます)が,その前にどのようなログを取得するべきか目的を明確にして方針(ポリシー)を決定しておきます。方針化することで,運用するデータベースごとに異なったログ取得や,運用となってしまうことを防ぐことができます。DB監査ログ取得方針で明確にしてきたい点は,おおよそ下記の通りになります。取得する項目(いつ,だれが)取得する目的(何を監視するためのログか)取得する操作(なにを,どうした)DB監査ログ管理方針このDB監査ログ取得方針は,DB監査ログを取得する手段にも影響する(される)ので,DB監査ログ取得,データベース監視パフォーマンスを含めた全体とのトレードオフとなります。取得しておきたい項目とはDB監査ログの取得項目は,不審なアクセスの検知,最悪は情報漏洩が発生した場合の被害範囲追跡のために利用します。具体的には以下の項目になります。対象オブジェクト名コマンド種類(SELECT/UPDATE/CREATE/CONNECT等)SQL文(※1)バインド値(※1)アプリケーションアカウント(※2)実行結果(成功/失敗のコード,件数(※1⁠)⁠)等アカウント分離の必要性DB監査ログに記録される「誰が」にあたる「DBアカウント名」「⁠OSアカウント名」ですが,運用者によっては強力な権限を付与した共有アカウントを使ってアクセスしている場合が多々あります。取得したDB監査ログの証拠力を高める意味でも,可能な限りアカウント分離を実施して,個人ごとの専用アカウントでアクセスさせる必要があります※1DBMSの標準機能やDB監査ソフトウェアの機能では取得できない場合があります。方針としてそのような項目を取得すると決めた場合は,取得する手段も絞られることになります。SQLやバインド変数に重要情報が記録される場合もあります。監視側の人間にそれを見られてもいいかということも検討する必要があります。※2システムによっては,データベースへの接続を共有アカウントで行っていることがあります。そのためシステムを利用しているユーザを特定する仕組み入れておく必要があります。監視しておきたい操作とはシステム運用者やDB管理者のような強力な権限を持つ者を監視対象とした場合,データベースに対する脅威として,以下のような行為などが考えられます。データベースを強制的に停止するデータベースへ不正に接続し,重要情報を参照する,または改ざんする不正なプログラムを実行するその対策として,下記のようなDB監査ログを取得し,不審なアクセスの検知および追跡を行えるようにします。データベース起動,停止データベースへの接続データベースの設定変更DB管理者アカウントによる操作プロシージャの実行エクスポート(大量データ抽出)また,重要な情報を保管するテーブルへのアクセスについて,参照,更新などのDB監査ログを取得しておく必要があります。すべてのテーブルへのDB監査ログを取得するためには,多くのログ領域が必要となります。そのため保管する情報にランク付けを行うなどして,取得する対象や操作を限定し,必要なログ領域を減らすことも検討します(表1⁠)⁠。参照されても改ざんされても,不正アクセスされた場合は問題となる。個人や企業がコード管理されていて,参照は問題ないが,改ざんされた場合は問題となる。重要情報ではないがマスタであるため,改ざんされると可用性が問題となる。DB監査ログの管理DB監査ログは,不正アクセスを検知する場合の情報となり,また図らずも不正アクセスが発生した場合の証拠となるものであり,管理には万全を期す必要があります。対策等また,DBMSの標準機能を利用してDB監査ログを取得しようとした場合,その設定をDB管理者しかできない場合があります。DB管理者もログにアクセス可能となることからも対策が必要になります。その点,DB監査ソフトウェアは,収集したログを別の場所へ保管するので,その機能で担保することも考えられます。DB監査ログは,取得しているだけでは使い道が限られますが,データベース監視を行う上で大変重要です。DB監査ログ取得方針により統一的なログ取得を行うことで,無駄なDB監査ログを取得することや,逆に取得漏れがないようにしましょう。次回は,今回決定した方針に基づき取得されたDB監査ログを利用して,データベース監視を行う場合の監視運用に焦点を当てて解説します。長年システム開発に従事し,データベース管理者としてデータベースを利用する立場から,データベースセキュリティの道へ。ここ数年はデータベース監査をテーマにエンドユーザへのコンサルティング等を行う。昨年ついに不惑の40歳を迎え増加するウエストと格闘中。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。