Offensive Countermeasures(OCM)とは、2009年にSANSインストラクターであるJohn Strand氏らが提唱した概念です。当時はあまり流行した考え方ではなかったと思いますが、Threat IntelligenceやThreat Huntingへの注目と合わせて、再度注目を集めている概念です。(最近では、SEC550: Active Defense, Offensive Countermeasures and Cyber Deceptionというコースも準備されているようです。)
今日のブログでは、Offensive Countermeasureとは何か、提唱者の本をもとに読み解いてみたいと思います。
Offensive Countermeasures: The Art of Active Defense (English Edition)
- 作者: John Strand,Paul Asadoorian,Benjamin Donnelly,Bryce Galbraith,Ethan Robish
- 発売日: 2017/08/23
- メディア: Kindle版
- この商品を含むブログを見る
OCMの特徴を示すAAAとは?
Offensive Countermeasuresの特徴を表すキーワードとして、AAAが挙げられます。
- Annoyance(擾乱):攻撃者を妨害・攪乱すること
- Attribution(特定):攻撃者の帰属を特定すること
- Attack(攻撃):攻撃者の環境に対して能動的な攻撃コードを仕掛けること
それぞれ具体的にみていきましょう。
Annoyance(擾乱)
Annoyance(擾乱)とは、デセプション技術とよぶことのほうが多いと思いますが、攻撃者のリソースを無駄遣いさせることを意味します。この考え方の背後には、攻撃者がアクションをすればするほど、攻撃を成功させるまでの時間を稼ぎ、検知する機会が増えるという前提に基づいています。
本書では、不要なポートを多数開いているようにだますPortspoofや、Webアプリケーションスキャナが持つクローラー機能をだますためランダムなURLを生成するWebLabyrinthなど様々なデセプション機能が紹介されています。(様々なツールが紹介されているので、具体的なツールは実際に読んでみてください)
Attribution(特定)
Attribution(特定)とは、攻撃者がだれかを突き止めることを意味します。その理由としては、攻撃者を特定することで、どこまで自分たちのリソースを投入すればよいか決めることが可能となるためです。
このカテゴリについては、OSINTや各種ツール(Decloaking Engine・HoneyBadger)など攻撃者を特定するためのツールが紹介されています。
Attack(攻撃)
Attack(攻撃)とは、攻撃者の環境に対して能動的な攻撃ードを仕掛けることを意味します。ただし、ここで注意すべきことはHack Back(やり返し)をするわけではないという点です。むしろ、Attributionをより深いレベルで実施するため、あるいは抑止力を確保するための手法だと述べています(そしてやる場合には、法務担当や経営層とよく相談して合意をしたうえでやるように書かれています)
具体的なツールとすると、攻撃者の端末でスクリプトを動かすことを主な目的として、SET(Social Engineering Toolkit)・BeEF(Browser Exploitation Framework)などのクライアントサイド攻撃を利用をすることが議論が行われています。例えば、攻撃者しか絶対にアクセスしないと推測される場所にBeEFを仕掛けるなどが該当します。
Offensive Countermeasuresの法的側面について
Offensive Countermeasuresはよく誤解されますが、いわゆるHack Backとは異なります。その一方、最後のAttack(攻撃)については特に法的に問題がないかという点について議論がわかれますし、本書でも各読者にて判断してほしいとしています。
ツール群について
本書で紹介されていたようなツールについては、ADHD(Active Defense Harbinger Distribution)と呼ばれる仮想環境があり、こちらにツールがすべて含まれているとされています。興味がある方はこちらを動かしてみるとよいのではないかと思います。
まとめ
今回、Offensive Countermeasuresについてまとめてみました。言葉から想定するほどの過激な内容ではありませんでしたが、いずれにしても攻撃者を挑発する側面が少なからずあるため、これを採用するのであればある程度のセキュリティが確保できているという前提が重要だと思います。ただし、今後金融機関などセキュリティが進んでいる分野を中心に断片的にもこういった考え方を取り入れていくのではないかと感じています。