HEARTBEATS

セキュリティテストプラットフォームMinion最速ガイド3

   

前回はこちら→セキュリティテストプラットフォームMinion最速ガイド2

こんにちは。こんばんは。CTOの馬場です。

OSSのセキュリティテストプラットフォームのガイドの第3回です。

たぶん日本最速級Administration Guideだとおもいます。

前回の セキュリティテストプラットフォームMinion最速ガイド2 の続きです。

今回はSkipFish Pluginについてです。

※skipfishはnmapなどと比較して特にチェック相手に与える負荷が大きいので必ず自分が管轄しているサーバ・サイトに対して実行するようにしてください。一番軽いチェックで私の個人ブログをチェックしたところ、3時間に渡り約165,000アクセスが発生しました。

インストール

インストール方法は前回のnmapと同じです。
(skipfishもnmapも、最初のインストール手順でaptでインストールしてある前提)

githubのreadmeには skipfish >= 2.10b と書いてありますが、私の手元では2.02bで動いているのでそちらで動作確認しています(2.10bにすると動かなかった)。

cd ~/minion
source env/bin/activate
cd ~
git clone https://github.com/mozilla/minion-skipfish-plugin
cd minion-skipfish-plugin
./setup.sh develop
cd ~/minion
source env/bin/activate
minion-create-plan minion-backend/plans/skipfish.plan

skipfishの動作をカスタマイズ

skipfishは標準だと、ものすごく、ものすごーーーく、テストに時間がかかります。

デフォルト設定で私の個人ブログをチェックしたところ、丸一日かけても終わりませんでした。

プラグイン側でいくつかプリセットを用意してくれているので、Planでそれを指定することでskipfishの挙動を変えることができます。

設定は簡単で、Plan設定で、configurationの中にpresetを指定するだけです。

[
  {
    "configuration": {
      "preset": "fast-orderly-scan"
    },
    "description": "",
    "plugin_name": "minion.plugins.skipfish.SkipfishPlugin"
  }
]

プリセットは以下のものが用意されています。

  • fast-orderly-scan : いちばん軽い。 skipfish -W /dev/null -LV
  • orderly-scan-with-extensions-only-brute-force : デフォルト。 skipfish -W dictionary.wl -Y
  • brute-force : complete.wlを使う。 skipfish -W dictionary.wl -Y
  • minimal-fuzzing : minimal.wlを使う。 skipfish -W dictionary.wl
  • medium-fuzzing : medium.wlを使う。 skipfish -W dictionary.wl
  • complete-fuzzing : complete.wlを使う。 skipfish -W dictionary.wl

ps で見ると全て dictionary.wl を指定して動作しますが、これはプラグインの中でそれぞれのwlファイル(または/dev/null)をdictionary.wlにコピーして使ってます

ちなみにskipfishに渡すコマンドラインオプションを足したい場合は、configurationのところで options を指定すればコマンドラインに引き渡されます。

なお、プリセットは minion/plugins/skipfish.py で指定されているので、 自分でカスタマイズする場合はこのへんをいじってください。

# Built-in presets based on the skipfish documentation
SKIPFISH_PRESETS = {
    # 1. Orderly crawl with no dirbuster-like brute-force at all
    #    skipfish -W /dev/null -LV
    'fast-orderly-scan': {
        'options': ['-L', '-V'],
        'dictionary': '/dev/null'
    },
    # 2. Orderly scan with minimal extension brute-force.
    #    cp dictionaries/extensions-only.wl dictionary.wl
    #    skipfish -W dictionary.wl -Y
    'orderly-scan-with-extensions-only-brute-force': {
        'options': ['-Y'],
        'dictionary': 'extensions-only.wl'
    },
    # 3. Directory OR extension brute-force only.
    #    cp dictionaries/complete.wl dictionary.wl
    #    skipfish -W dictionary.wl -Y
    'brute-force': {
        'options': ['-Y'],
        'dictionary': 'complete.wl'
    },
    # 4. Normal dictionary fuzzing.
    #    cp dictionaries/XXX.wl dictionary.wl (minimal, medium, complete)
    #    ./skipfish -W dictionary.wl
    'minimal-fuzzing': {
        'options': [],
        'dictionary': 'minimal.wl'
    },
    'medium-fuzzing': {
        'options': [],
        'dictionary': 'medium.wl'
    },
    'complete-fuzzing': {
        'options': [],
        'dictionary': 'complete.wl'
    }
}

# If not preset is specified we run a somewhat gentle scan
SKIPFISH_DEFAULT_PRESET = 'orderly-scan-with-extensions-only-brute-force'

だいぶ使える感じになってきましたかね?

minionはあくまでplatformなので、skipfishが実施する検査の内容や結果の読みかたなどはskipfish側で調査してくださいね。

ではでは。