13
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

なんでもセキュリティAdvent Calendar 2016

Day 18

Burp Suiteをhomebrew-caskでインストール出来るようにした話

Posted at

なんでもセキュリティ Advent Calendar 2016 18日目の記事です。
読み返すとセキュリティあんまり関係なくなってますが、Burp Suiteの話ということでご容赦頂きたく。

本記事の対象者

以下に当てはまる人に関係ある話になります。

  • Burp Suite Free Editionユーザ(今後Burp Suiteと書いた場合はFree Editionのつもりで書いてます)
  • Macユーザ
  • homebrewユーザ

概要

セキュリティ界隈の人(特にWeb系)であれば、Burp Suiteを使っている人は多いかと思います。
Burp Suiteは最近開発が盛んで更新が多いのですが、アップデートするためにはMacの場合、dmgファイルを落としてきて自分でインストールして...という手順が必要です。
面倒くさがりの自分には耐えられなかったので、homebrew-caskでインストールやアップデートできるようにしてみた、という内容です。
この記事をちゃんと読まなくても、Macの人は以下のコマンド打つとBurp Suiteがインストール可能になった、ということだけ知って頂ければ。

$ brew cask install burp-suite

経緯

どういう経緯だったかについてだらだらと書いておきます。Caskの作り方に興味ある人は見て下さい。

dmgファイルのインストールならhomebrew-caskが使えるのではないかと考えました。
そこでリポジトリを見たら既にBurp Suite用のCask(burp-suite.rb)がありました。
https://github.com/caskroom/homebrew-cask/blob/83a77e125a9b0a6913556a4a8706be95407f1881/Casks/burp-suite.rb

これで楽になる!と思って早速使ってみました。

$ brew cask install burp-suite
==> Caveats
burp-suite requires Java. You can install the latest version with

  brew cask install java

==> Downloading https://portswigger.net/Burp/Releases/Download?productId=100&version=1.7.06&type=MacOsx
######################################################################## 100.0%
==> Verifying checksum for Cask burp-suite
To complete the installation of Cask burp-suite, you must also
run the installer at

  '/usr/local/Caskroom/burp-suite/1.7.06/Burp Suite Free Edition Installer.app'

🍺  burp-suite was successfully installed!

これはよく見ると、手動でインストーラを実行するように言われています。
つまり、以下の2つの手順のうち、1をやってくれているものになります。

  1. dmgファイルのダウンロード
  2. Installerの実行

確かにWebページへ行ってdmgを落とす面倒さからは解放されるものの、肝心のインストールの方の手間は省けていません。

そこでburp-suiteのCaskを読んでみました。
すると、以下の行でinstaller manualと書いてあります。
https://github.com/caskroom/homebrew-cask/blob/83a77e125a9b0a6913556a4a8706be95407f1881/Casks/burp-suite.rb#L9

...
installer manual: 'Burp Suite Free Edition Installer.app'
uninstall delete: '/Applications/Burp Suite Free Edition.app'
...

これはどうやら、公式ドキュメントを読む限りインストールを手動で行うときに使う記法のようです。
https://github.com/caskroom/homebrew-cask/blob/master/doc/cask_language_reference/stanzas/installer.md#installer-manual

ここで諦めかけたのですが、他のアプリはどうしてるのかと調べてみました。
例えばSlackとかはどうなのかと調べたところ、appという記法を使っていました。
https://github.com/caskroom/homebrew-cask/blob/c28d61f56d5e0630add9bd38806ab5b1cb3a7cfd/Casks/slack.rb#L14

...
app 'Slack.app'
uninstall quit: 'com.tinyspeck.slackmacgap'
...

これは単にappファイルを移動してくれるだけのもののようです。
https://github.com/caskroom/homebrew-cask/blob/master/doc/cask_language_reference/stanzas/app.md

dmgの中にappファイルが入ってる場合はapp記法で良さそうですが、Installerが入っている場合は使えなさそうです。
いよいよ無理かな、と思ったのですが、一応他のCaskをもう少し眺めてみることにしました。
すると以下のようなCaskを見つけました。

installer script: 'XAMPP.app/Contents/MacOS/osx-intel',
          args:   ['--mode', 'unattended'],
          sudo:   true

これはXAMPPのCaskなのですが、installer scriptという記法が使われています。
これは何だろうと思って調べたところ、Installerを実行してくれる仕組みのようで、まさに今欲しいものでした。
https://github.com/caskroom/homebrew-cask/blob/master/doc/cask_language_reference/stanzas/installer.md#installer-script

MacのInstallerの仕組みをよく知らなかったのですが、どうやらContensts/MacOSの下にインストールスクリプトが置いてある場合があるようです。
そこでBurp Suiteについても調べてみると、実行ファイルが置いてありました。

$ file Burp\ Suite\ Free\ Edition\ Installer.app/Contents/MacOS/JavaApplicationStub
Burp Suite Free Edition Installer.app/Contents/MacOS/JavaApplicationStub: Mach-O 64-bit executable x86_64

しかし使い方が分からない...とりあえず-hでも付けて実行してみるか!と思って適当に実行してみたら、ヘルプ出てきました。

$ Burp\ Suite\ Free\ Edition\ Installer.app/Contents/MacOS/JavaApplicationStub -h
2016-12-15 17:04:27.653 JavaApplicationStub[68638:19066191] NEW LAUNCHER

スクリーンショット 2016-12-15 17.04.43.png

こんなのあるのか...と驚きつつオプションを見ると-qというオプションがあります。
これを使ってCask作れそう、と思って色々検証したところ一応インストールできるようになりました。
PR出したらすぐにマージしてもらえました。
https://github.com/caskroom/homebrew-cask/pull/27295

$ brew cask install burp-suite
==> Caveats
burp-suite requires Java. You can install the latest version with

  brew cask install java

==> Downloading https://portswigger.net/Burp/Releases/Download?productId=100&version=1.7.14&type=MacOsx
Already downloaded: /Users/teppei.fukuda/Library/Caches/Homebrew/Cask/burp-suite--1.7.14.14&type=MacOsx
==> Verifying checksum for Cask burp-suite
==> Running installer script Burp Suite Free Edition Installer.app/Contents/MacOS/JavaApplicationStub
==> 2016-12-15 17:17:15.707 JavaApplicationStub[47214:19196829] NEW LAUNCHER
==> The installation directory has been set to /Applications.
==> Extracting files ...
==> Finishing installation ...
🍺  burp-suite was successfully installed!

まとめ

Burp Suiteをhomebrew-caskでインストールまでしてくれるようにしました。
今後はコマンド1つで更新してくれるので自分は大分幸せになりました。
自分の検証した範囲では特に問題なかったですが、何か不具合あったらすみません。

13
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?