最近では攻撃者の手口もかなり巧妙化している。たとえばこんな例がある。攻撃者は、重要な情報を持っているであろうターゲットをまずは特定する。すぐにそのターゲットを攻撃するのではなく、ターゲットと日常的にやり取りしている人を見つけ出し、その人物のメールなどをハッキングする。
そしてメールデータをモニターし、日常的にターゲットとどのようなメールのやり取りをしているかを把握。そこから、まるで普段のやり取りと同じようなマルウェア付きメールをターゲットに送信する。ターゲットにされた人物は、普段やり取りしている関係者からの仕事に関連するドキュメントだと思い込み、添付ファイルを開いてしまうのだ。こんな方法で攻撃されたならば、いくら用心していてもだまされマルウェアに感染してしまうだろう。
日本オラクル 執行役 副社長 クラウド・テクノロジー事業統括の三澤智光氏は「平成27年度上半期の高度サイバー攻撃数の増加率は、前年対比で581%にもなります」と言う。外部からの攻撃は話題になりやすいが、実際の被害は内部から起こっているものもたくさんある。なので外部、内部、両方の対策をどうとっていくが重要となると指摘する。
現状のセキュリティ対策を整理すると、大きくはネットワーク層で守るものとデータ層で守るものの2つがある。「これら2つを守る必要があります。それには多層防御の仕組みが重要だと、Oracleでは言い続けています」と三澤氏。
「残念ながら日本では、これまではデータ層を守る考え方が少なかったのです。これは、なぜなら日本の企業では悪いことする人がいない性善説の発想だったからです。実際、これまではその通りで企業には悪いことをする人が基本的にはいないかった。そのためOracleのデータ層を守るセキュリティ製品は、たとえば米国では100円売れているけれど、日本では1円も売れないというような状況でした」(三澤氏)
データ層の防御が甘かったという事実は、確かにありそうだ。セキュリティと言えば、主にはネットワークの出入り口を防御するイメージが強い。セキュリティと言って、すぐにデータベースを思い浮かべる人はまれだ。商用データベースのセキュリティ機能を見ても、そのほとんどは別オプションだ。オープンソース系のデータベースにおいても、開発の初期で注力されるのは主には性能面だ。だんだんエンタープライズ色が出てくると安定性や可用性が重視されるようになり、次がやっとセキュリティ機能の強化が話題となる。データベースのエンジニアも、チューニングのエキスパートは多いがデータベースセキュリティのエキスパートはまだまだ少ないのが現状だろう。
多重防御ではなく多層防御で守る
「セキュリティは今、かなり深刻なテーマです。最近になり国もさまざまなガイドラインを強化しています。インターネットですべてのコンピュータがつながる時代です。さらに企業のグローバル化もあたりまえです。そんな中、日本の国自体も変わってきています」と三澤氏は言う。始まったばかりのマイナンバーの運用においても、アクセス制御、暗号化、監査といったデータ層に対する防御のガイドラインが明示されている。また2015年12月に経済産業省から出された『サイバーセキュリティ経営ガイドライン』(http://www.meti.go.jp/press/2015/12/20151228002/20151228002.html)でも、多層防御の導入を検討すべきとの記述がある。つまりは日本においても企業などの組織は、データ層への防御を改めて考える時期に来ている。
実際、データベースからデータを抜かれると、大規模な情報漏洩事件となることが多い。データベースにはそれだけ重要な情報が大量に格納されているからだ。さらに困るのが「抜かれるだけでなく、破壊されることです」と三澤氏。そして破壊と同様に改竄もかなり深刻な問題になると指摘する。
「10年前には想像もしなかった世界がやって来るのがコンピュータの世界です。それくらい急激に発展しています。当然ながら、セキュリティの攻撃も変化しています。なので、より深刻な問題に対し早急に手を打つ必要があるのです」(三澤氏)
深刻な問題に対処するために必要なのが多層防御だと言うのが、Oracleの主張だ。似たようなセキュリティ対策に多重防御がある。これは、たとえばネットワーク層に複数の防御の仕組みを入れるもののことだ。「ネットワーク層を多重で守るサービスは、世の中に山のようにあります。とはいえいくら多重に防御しても、相手が国の軍隊レベルだとネットワーク層はすぐに突破されてしまうでしょう」と三澤氏。ネットワーク層を越え侵入されてしまえば、攻撃者は内部でやりたい放題となる。そもそも内部不正などで、ネットワーク層を飛び越え直接内部にアクセスされてしまえば、いくらネットワーク層を多重に防御していても意味はない。
「同じレイヤーにたくさんの防御を置くのではなく、異なるレイヤーごとに適切な防御を置くのです。これがオラクルが提唱している多層防御の考え方です」(三澤氏)
データ層で防御しなければならないのが、なりすましにより特権ユーザーの権限を奪われることだと三澤氏は言う。OS管理者やデータベース管理者などの特権ユーザーの権限を奪われると、ネットワーク層の防御では防げないのはもちろん、暗号化などを施していてもデータを抜かれてしまう可能性は高い。
「一般ユーザーが侵入してきても、大きな被害にならないことが多いです。しかし特権ユーザーを盗られるとそういうわけにはいきません。にもかかわらず、大きな企業でもOS管理者が何人いるのか、データベース管理者が何人いるかなどを管理し切れていない例があります。OS管理者であれば、データベースのデータもファイル単位で持ち出しできるでしょう。さらにデータベースの管理者権限があれば、データベースを自由に参照でき、改竄もできてしまいます」(三澤氏)
つまりはデータ層の防御では、特権ユーザーの管理をいかにして実現するかが重要となる。「データベース管理者の権限分割、アクセス制御できるデータベースはOracleしかありません」と三澤氏。それを実現しているのが、「Oracle Database Vault」の機能となる。
そしてOracleがもう1つ新たに発表したのが、アプリケーション層のセキュリティ対策だ。
「世の中には、セキュリティの機能をアプリケーション側に持たせているものがたくさんあります。その場合はアプリケーションごとにセキュリティポリシーを持ち、アプリケーション用の共有接続権限、データアクセス権限を持つユーザーを設定することが多いのです。そのユーザーであれば正規の権限となるので、、Database Vaultがあってもデータに自由にアクセスできることになります。監査する際にも、ログにはアプリケーションの正当な権限ユーザーがアクセスしたと記録されてしまいます」(三澤氏)
これを防ぐのが「Oracle Real Application Security」となる。これを使うことで、アプリケーションで共有するのは接続権限だけにできる。データアクセス権限はDatabase Vaultに委ねることができるので、個々に正当な権限を持っている人だけがアクセス可能なように管理できるのだ。「アプリケーションユーザーの誰が入ってきたのかで制御します。誰がの結果は監査証跡にも残ります」と三澤氏。このReal Application Securityは、Oracle Database 12cから利用できる機能となっている。
便利でセキュリティ確保の上でもかなり有効な機能ではあるが、Oracle Real Application Securityを既存アプリケーションに適用するのは簡単ではないだろう。アプリケーションの実装を見直し、共有アプリケーションユーザーでの運用を改めなければならないからだ。当然ながら、アプリケーション側に埋め込まれているユーザーIDに関するプログラム部分などは改修が必要になるはずだ。
新規でOracle Database 12cを使ったデータベース・アプリケーションを開発するような場合は、Oracle Real Application Securityを活用してアプリケーションユーザーの権限をきっちりと分割することが、今後は必須になるだろう。
「我々にはネットワーク層だけでなくデータ層を守る、それを根付かせていく責任があります」と三澤氏は言う。この考え方については、DB Online的にも全面的に支持したいところ。データ層に関連するセキュリティの情報については、今後も重点的に取りあげていくつもりだ。