Help us understand the problem. What is going on with this article?

Gauntltによるセキュリティテスト #SWTestAdvent

More than 5 years have passed since last update.

始めに

このエントリは ソフトウェアテストあどべんとかれんだー 2014 の 7 日目のエントリです。

前日は a_suenami さんのテストとは開発プロセスそのものである #SWTestAdvent でした。

現在、開発プロセスとテストという部分において現場でどのように促進していこうか悩んでいるところでしたのでとても参考になる記事で楽しく読ませていただきました。

事の始まり

現場より「過去と未来の全てのセキュリティに対応して欲しい」と言われました。
その祈りは!?そんな祈りが叶うとすればそれは時間干渉なんてレベルじゃない。因果律そのもに対する反逆だ!っと思ったかは定かではありませんが、よくよく話を聞いてみると実際にはセキュリティ問題が発生した場合の早急な対処をできる環境を用意できれば良いようでした。

対話大事!

そこでGauntltですよ!

Gauntltは様々なセキュリティツールを動かすことができ、堅牢なソフトウェアを作るためにDevとOpsのグループ間でテストを容易にするためのツールです(意訳
Gauntltは下記のようなオープンソースのセキュリティテストツールをベースとした,セキュリティテスト自動化フレームワークを提供してくれます。

  • curl
  • nmap
  • sslyze
  • sqlmap
  • Garmr
  • generic command line
  • more coming soon

公式サイトは ⇒ Gauntlt

インストール

Gauntltを使うために gem をインストールします。

gem install gauntlt

サンプル実行

公式のサンプルシナリオを実行してみます。
ディレクトリを作成し、ディレクトリの直下にテスト用のコードを記載します

mkdir my_attack
vim my_attack/simplest.attack

テスト用のコードはCucumberと同じように記載ができますので、Cucmberでテストコードを記載したことがある方ならばすぐに読み解けるのではないでしょうか。

simplest.attack
Feature: simplest attack possible
  Scenario:
    When I launch a "generic" attack with:
      """
      ls -a
      """
    Then the output should contain:
      """
      .
      """

gauntletを実際に実行してみます。
実行すると見知ったテスト結果が表示されます。

gauntlt my_attack/simplest.attack

Feature: simplest attack possible

  Scenario:                                # my_attack/simplest.attack:2
    When I launch a "generic" attack with: # gauntlt-1.0.9/lib/gauntlt/attack_adapters/generic.rb:1
      """
      ls -a
      """
    Then the output should contain:        # aruba-0.5.4/lib/aruba/cucumber.rb:147
      """
      .
      """

1 scenario (1 passed)
2 steps (2 passed)

偉い人に見せる時は上記の結果をそのまま出しても拒絶反応を示してくれるでしょう。
そこでHTMLで出力もしてくれるようです。
結果も色分けしてくれるので、ぱっと見ただけで分かるので安心ですね。

gauntlt --format html my_attack/simplest.attack >> output.html

[]()

サンプルコード

Githubにサンプルコードがあります
gauntlt/gauntlt

所感

generic command line 系のテストに関しては、Gauntlt自体が別のサーバにアクセスするような機能がないため別途用意する必要があります。
ツールのバージョンなどを検査する場合は、serverspec の方に軍配があがるでしょう。
直近に発生した Shellshock の脆弱性があるかどうかを継続的に確認したい!っという場合には良いのかもしれません。
またセキュリティツールを使用して検査を行っていきますので、すでに持っている知見を参考にしながら継続的にセキュリティチェックを行えますので一手間加えてテストしていくには良いと思います。

最後に

次は urasandesu さんです。現在作成中のテストライブラリとのことで楽しみです!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away