研究会 運用技術

情報処理学会第46回インターネットと運用技術研究会で発表をしました

研究会 運用技術

ペパボ研究所 研究員の野村(@Komei5296)です。 2019年6月14日に開催された、第46回インターネットと運用技術研究会(IOT46)で、ペパボ研究所から発表を行いましたので紹介します。

Webアプリケーションテストを用いたSQLクエリのホワイトリスト自動作成手法

Webサービスでは、データベース上に保管された機密情報を保護することは重要です。 しかし、攻撃者はWebアプリケーションの脆弱性をはじめとして、様々な手段で機密情報を窃取しようとします。 このような攻撃は、開発者の想定外のクエリ(不正クエリ)を発行することで実施されます。 そのため、不正クエリの発行を検知する仕組みが必要です。

不正クエリへの対策として、Webアプリケーションが発行する正常なクエリを手動でホワイトリストに定義し、リストにないクエリを検知する方法があります。 しかし、大規模なWebアプリケーションでは、発行されるクエリ数が膨大となるため、全てのクエリをリストに定義することは難しくなります。 また、Webアプリケーションの改修によって発行クエリは変化するため、ホワイトリストは継続的に更新する必要があります。 このような運用者への負荷を低減するために、ホワイトリストを自動で作成する手法が2種類、提案されています。 1つ目の従来手法は、Webサービスのユーザがサービスを利用する過程で発行されるクエリを用いてリストを作成します。 しかし、この手法はクエリの収集期間は検知が行えません。 2つ目の従来手法は、WebアプリケーションのSQLを発行する処理の解析を行い、発行されるクエリのパターンを列強することでリストを作成します。 しかし、この手法は、Webサービスが複数の実装言語やフレームワークで構成されていた場合、それぞれのWebアプリケーションに対して手法を実装する必要があり、実装の工数が多くなります。 これらの課題を解決するためには、Webアプリケーションが稼働する前に、Webアプリケーションの実装に依存せず、ホワイトリストを作成する必要があります。

そこで本論文では、Webアプリケーションのテスト実行中に発行されるクエリからホワイトリストを作成する手法を提案しています。 提案手法では、Webアプリケーション稼働前のテストの段階でホワイトリストを作成できるため、稼働後即座に不正クエリを検知できます。 また、データベースプロキシでテスト時の発行クエリを収集し、収集したクエリからホワイトリストを作成するため、Webアプリケーションの実装に依存せず、ホワイトリストを作成できます。

一方、提案手法では、テスト時のクエリからホワイトリストを作成するため、正常なクエリを異常(False positive)、もしくは異常なクエリを正常(False negative)と判断する誤検知が発生することが懸念されます。 この誤検知が実環境においてどの程度発生するかを確認し、誤検知の対策を検討するために、実環境で稼働するアプリケーションのクエリログを用いた実験を行いました。 実験から、False positiveはテストケースの不足や、テスト時のみデータベースへのアクセスを省略により発生することを確認しました。 False postiveへの対処としては、ホワイトリストによる検知を適用するテーブルを機密情報が保管されたテーブルに限定することで、検知対象となるクエリを削減し、結果としてFalse positiveを低減できると考えられます。 また、False negativeはテスト時のみ発行されるクエリによって発生することを確認しました。 テスト時のみ発行されるクエリには、機密情報が保管されたテーブルのデータを全削除するようなものがありました。 このクエリへの対処として、影響範囲が大きいクエリはブラックリストに予め定義しておき、ホワイトリストと併用することで多層的に検知できると考えられます。 今後はこれらの誤検知への対策と対策実施後の評価に取り組んでいきます。

研究会予稿

スライド

まとめ

今回の第46回インターネットと運用技術研究会では、以前からの内容に実環境のクエリログを用いた実験を加えて発表しました。 当日の質疑では、誤検知の対策や提案手法の今後の発展性を中心に議論をさせていただきました。 例えば、今後の課題に挙げたブラックリストとホワイトリスト併用に関しては、Webアプリケーションファイアウォールなどの他の領域でも類似した研究があり、その分野の研究を参考にしてはどうかという意見を頂いたので、この観点でも引き続き調査を進め手法の発展性を考えていきます。

第46回インターネットと運用技術研究会(IOT46)では、ペパボ研究所から1件の発表を行いました。今後も第47回インターネットと運用技術研究会(IOT47)が広島で開催されます。エンジニアの皆様もぜひご参加ください。


【PR】パートナー積極採用中!

ペパボ研究所では、新しいパートナーを求めています。詳細については、当研究所のトップページをご覧ください。