GMOペパボ株式会社 技術部デザイン戦略チーム データサイエンティストの財津(@zaimy) です。データ分析基盤の構築やデータ分析、機械学習モデルの開発、ペパボ研究所での研究・研究事務・研究広報をやっています。
2018年5月17日から2日間に渡って開催された、第41回インターネットと運用技術研究会(IOT41)で、ペパボ研究所から3件の発表を行いましたので、論文(研究会予稿)とスライドと共にそれぞれの発表者が紹介します。
HTTPリクエスト単位でコンテナを再配置する仮想化基盤の高速なスケジューリング手法
ペパボ研究所主席研究員兼チーフエンジニアの松本です。
今回の研究発表では、仮想化基盤におけるインスタンスの可用性を担保するために、複数サーバに複数インスタンスをホットスタンバイ方式で待機させるような手法ではなく、
- インスタンス上でWordPressのような一般的なWebアプリが動作可能
- 単一インスタンスでも収容サーバ障害時には別サーバへ自動的に再配置可能
- インスタンスの再配置の実行時であっても数秒の遅延でHTTPタイムアウトすることなくオンラインでレスポンスを送信可能
とういう目的を達成する手法を提案しました。
この手法により、インスタンスを待機させておくためのリソース使用量(利用者から見たときにはサービス利用コスト)を節約できるため、単一のサーバに高集積(個人向けの低価格化が目的)に収容することと、信頼性や性能のバランスをとることができるようになります。
実験と考察では、複数インスタンスを必要としないため待機インスタンスのためのリソースコストを不要にでき、現時点でも実用可能なレベルでの再配置の性能が得られました。 この手法が実用化できれば、単一のインスタンスであっても可用性が担保されるため、サービス利用者が複数のインスタンス利用のコストを負荷分散の用途に使えるようになります。
今後の展望としては、再配置の処理時間においてコンテナ内のWebサーバの起動時間が支配的なところ(1700msec)まで持ってくることができたため、Webサーバをさらに数十msecで起動する汎用的な起動時間短縮手法を検証し、次のIOT42の研究会で発表する予定です。 これが実現できれば、上述したような可用性のための再配置が発生したり、FastContainerのような最初の起動時間も高速に処理することができ、数十msecから数百msecでレスポンスを返すようなWebアプリケーションのレスポンスタイムの範囲内に抑えることができそうです。 また、本研究のスケジューリング手法を応用して自律的な負荷分散のためのハードウェアスケジューリング手法へ発展させていく予定です。
研究会予稿
スライド
Webアプリケーションテストを用いたSQLクエリのホワイトリスト自動作成手法
ペパボ研究所研究員の野村です。私は「Webアプリケーションテストを用いたSQLクエリのホワイトリスト自動作成手法」と題して、データベースのセキュリティの発表をしてきました。
Webサービスは、データベース上に秘密情報を保存し、そのデータをWebアプリケーションが利用することでサービスを提供しています。 しかし、Webアプリケーションの脆弱性などを利用し、データベース上の秘密情報を摂取するような攻撃(データベースへの不正クエリの発行)が発生しています。
従来の不正クエリ検知手法では、Webアプリケーションが発行するクエリのホワイトリストを作成して検知する方法がとられるのですが、この方法は大規模で複雑なWebアプリケーションにおいては、ホワイトリストの作成が困難となる課題があります。これの解決策として、Webアプリケーション稼働時のクエリからホワイトリストを自動で作成する方法やWebアプリケーションのソースコードを解析して自動で作成する方法がありますが、検知の即時性の課題やWebアプリケーションの実装依存となってしまう課題があります。
本研究では、従来のホワイトリスト自動作成手法の課題を解決しつつ、導入時の開発プロセスへの影響を小さくすることで開発者の負担とならないような不正クエリの対策を目的としています。 そこで、本発表では、Webアプリケーションテストを用いたSQLクエリのホワイトリスト自動作成手法を提案しました。 提案手法は自動テストが採用されている開発プロセスを前提として、自動テスト時にホワイトリストを自動作成する処理を組み込みます。また、テスト時に発行されたクエリをデータソースとしてホワイトリストを作成します。 このようにすることで、提案手法は以下の要件を満たすと考えています。
- Webアプリケーション稼動後、即時に不正クエリの検知ができる
- Webアプリケーションの実装に依存しない
- 導入時の開発プロセスへの影響が小さい
今後はまず提案手法の実装を行い、テストカバレッジに対するホワイトリストの網羅性の検証やSQLインジェクション攻撃に対する検知精度の検証を進めていくことで、提案手法の有効性を明らかにしていく予定です。 また、現状で課題となっている提案手法で網羅できないホワイトリストに登録すべきクエリへの対処方法やクエリのリテラル値の不正を検知する方法の調査・検討を進めていきたいと思います。
発表後の質疑応答では、Webアプリケーションが発行するクエリに署名を付加して不正を判断する方法と比べて提案手法はどこに優位性があるのかや、データベースからデータが返らなかった時のWebアプリケーションの動作をどのように保証するのかというご指摘をいただきました。 これらのご指摘を受けて、改めてデータベース保護に関する調査を行い提案手法の優位性を整理しなおすとともに、クエリの実行を停止した時のWebアプリケーションの動作を保障する方法を検討する必要があると思いました。
研究会予稿
スライド
ハンドメイド作品を対象としたECサイトにおける大量生産品の検出
データサイエンティストの財津です。私は今回、GMOペパボが運営するハンドメイド作品を対象としたECサイト「minne」における大量生産品の検出について発表しました。
minneでは、手作りのアクセサリーやオリジナルデザインのプリントTシャツなど、出品者が商品に対して何らかの作業を行うことで商品として成立するものを「ハンドメイド作品」と定義しています。minneのようにハンドメイド作品を対象としたECサイトの市場規模は2017年現在177億円に達していますが、規模の拡大に伴って、ハンドメイド作品の定義を満たさない大量生産品をハンドメイド作品と偽る出品者の出現が問題となっています。
ハンドメイド作品と偽った大量生産品の検出では従来、運営者が目視によって一般的なECサイトと商品画像の被写体を比較する運用が行われてきましたが、目視では検出数に限界があります。 また、このような商品画像の比較をそのまま機械化する場合、被写体の一致を判断する難易度が高いことに加えて、大量の商品画像を自社の管理下にないECサイトへのクローリングなどにより取得する必要がありますが、自社の利益のために大量のアクセスを行い、クローリング先のサービスに影響を及ぼしかねない手法は好ましくありません。
そこで、今回の発表では、大量生産品の出品者に見られる以下の2つの特徴を用いることで、minneの属性情報のみを利用して継続的かつ機械的に大量生産品を検出することを提案しています。 これらの特徴は、アカウントを停止されても別のアカウントを作成して再出品を行う、海外から仕入れている大量生産品を簡単に出品するなど、効率良く転売を行うことを目的とした、大量生産品の出品者の行動から生まれたものです。
- アカウント名に無意味な文字列を設定していること
- 海外ECサイトの商品情報を機械翻訳しており商品名や商品説明文が不自然なこと
これらの特徴から、それぞれアカウント名のN-Gramトークンと、商品名と商品説明文に出現する単語を特徴量とした単純ベイズ分類器を構築することで、テストデータにおいて90%以上の精度で分類を行えることを示しました。 この分類器により、大量生産品と分類された商品を目視するという前提においては、従来の目視による検出を全商品に対して行う場合に比べて、時間的なコストを5分の1から8分の1程度に削減することが可能になります。
今後は、分類精度を更に高めると共に、出品者の行動から定まる任意に制御困難な特徴量を用いることで、大量生産品の出品者が容易に回避できないような手法となるよう開発を進めていく予定です。
研究会予稿
スライド
まとめ
第41回インターネットと運用技術研究会(IOT41)では、幅広い研究テーマに沿ってペパボ研究所から3つの発表を行いました。今後も、第42回インターネットと運用技術研究会(IOT42)が鹿児島で開催されますので、エンジニアの皆様もぜひご参加ください。
【PR】パートナー積極採用中!
ペパボ研究所では、新しいパートナーを求めています。詳細については、当研究所のトップページをご覧ください。