技術者ブログ
クラウド型WAF「Scutum(スキュータム)」の開発者/エンジニアによるブログです。
金床“Kanatoko”をはじめとする株式会社ビットフォレストの技術チームが、“WAFを支える技術”をテーマに幅広く、不定期に更新中!

Struts2 S2-052を例とした脆弱性攻撃手法の調査及びそれらを考慮した防御機能の開発
はじめに
先日、Struts 2に新たな脆弱性S2-052(CVE-2017-9805)が発見され、修正されました。
これはリモートからの任意のコードの実行(RCE)が可能な脆弱性であり、「またか」と思われた方も多かったのではないかと思います...。
しかし実はこの脆弱性によるRCEは、過去繰り返しStruts2に報告されてきたOGNLインジェクションとは異なるメカニズムで発生するものでした。
ここでは、この脆弱性の原因と、RCEに至るメカニズムを解説してみようと思います。
多少プログラミングの知識のある方向けになってしまいますが、ご容赦ください。
機械学習とセキュリティについての勉強会で発表してきました
はじめに
2017/9/10(日)に「Security meets Machine Learning」に参加し、Scutumにおけるデータサイエンスの使い方について発表を行ってきました。今回は簡単な参加レポートをしたいと思います。
自分の発表
私はトップバッターでした。40分ほど時間を頂き、Scutumの防御機能の中核であるベイジアンネットワークや、最近導入を開始しているクラスタリングによる異常検知について紹介をさせていただきました。講演に使った資料は我々の主な敵であるスクリプトキディに見られたくない部分を含むため、非公開となっています。
現在、24時間休みなく、Scutum上を正常と異常が混ざった大量のデータが通過していきます。まさに「ビッグデータ」が手に入る状況ですが、それらすべてに「攻撃である・攻撃ではない」のようなラベルを付けることは現実的ではありません。そのためKaggleをウォッチして勉強した一般的な教師有り学習のテクニックは導入できておらず、クラスタリングによる教師無し学習によって正常(ありがち)とそれ以外を分けるところまでしかできていません。
教師有り学習にはできていないものの、やはりデータ量は正義であり、クラスタリングで得られた「ありがち」なデータをうまく使うことで、エキスパートの専門知識を量で上回り、それを使って誤検知を減らすことに繋げることができています。
40分も話ができる講演は久しぶりだったので最初はゆっくり喋っていたのですが、最後は結局時間が足りず、ちょっとあわただしい展開となってしまいすみませんでした。講演後、何人かの方から非常に参考になるフィードバックを頂くことができ、話をさせていただいて良かったと感じています。