【バグハンターインタビュー】Tom Hudson

バグバウンティとはなにか、脆弱性診断の種別などについて詳しく知りたい方は脆弱性診断とは(⾮エンジニア向け)もしくは脆弱性診断とは(エンジニア向け)もぜひご参照ください。

この【バグハンターインタビュー】シリーズでは、印象的な実績や変わった方法論、コミュニティへの価値ある貢献をしているIntigritiのコミュニティメンバーへ話を聞くことができます。今回は、Githubでハッキングツールを公開しているTom Hudson(通称:TomNomNom)氏にお話をうかがいました。

Tomさん、こんにちは。Tom Hudsonとはどんな人なのか、ご自身のことを少し教えてください。

こんにちは、私はTomです。現在、Detectifyでバグハンターとして働いています。

それ以前は、イギリスの大きなギャンブル会社で技術トレーナーをしており、ソリューションアーキテクト、リードソフトウェアエンジニアでした。その前は、教育用ソフトウェアを開発する会社や、教育用ソフトウェアを作る会社でPHPを書くソフトウェアエンジニアとして働いていました。

セキュリティの面では、バグバウンティを利用しています。私はこれまで、専門的にセキュリティに取り組んできたわけではありません。ただ、なんとなくここにたどり着いたという感じです。

バグバウンティという言葉を初めて耳にしたのはいつ頃でしたか?

2016年、2017年頃のことだったと思います。当時勤めていた会社がバグバウンティプログラムを開始したんです。私は聞いたことがありませんでしたが、とても良い内容だと思いました。

私はインターネットと共に成長したので、インターネット上で誰かが何かのためにお金を渡そうとするなら、それは詐欺だろうと疑う世代です。自分の雇い主がやっていることでなければ、かなり警戒していたかもしれませんね。

また、嬉しいことに、自分の書いたコードに対するバグを提出しなければ、従業員もバグバウンティプログラムに参加できることになったので、私も参加しました。

あなたがたくさんのツールを作っていることは、私たちも知っています。どのような経緯で、コミュニティのためのツールを作りたいと思うようになったのでしょうか。

先ほども述べたように、私は長い間ソフトウェアエンジニアとして、またDevOpsやシステム管理者のような役割も担ってきました。私は、自分がやっていることを自動化したり、スクリプト化したりすることにかなり慣れていました。プログラミングの経験もそこそこあったので、比較的小さなタスクであっても、スクリプトで処理したほうが速いことが多かったのです。

しばらくして、やりたいことがあるのに、そのためのツールがないことに気がつきました。それで、自分で作ってみようと思ったんです。また、それを非公開にする理由はないと思いました。というのも、私はよく、自分がやったことについて人に話すことがありますが、そのとき、「これはソースコードのリンクです」と言えると、とても楽なんです。何かについて説明する代わりに、私が言いたいことを正確に理解してもらうことができます。

最初のアイデアからツールのリリースまで、頭の中はどうなっているのでしょうか。

何事もそうですが、まずは問題から始まります。多くの場合、バグハントの一環として、このようなことをやろうとしている、といったケースになります。

例を挙げると、私は「anew」というツールを持っていますが、これは実はセキュリティツールではありません。Unixの一般的なユーティリティツールのようなものです。これはファイルに行を追加するものですが、その行がまだファイル内に存在しない場合にのみ使用されます。

バグハントをしていると、何十ものテキストファイルがあります。ドメインや、URL、パラメータが沢山あるテキストファイル、などです。これらのファイルに重複があると大変なのです。

当時、私はこの問題を解決するために、いくつかの異なるツールを使っていました。これをパイプでひとつにまとめて解決できたら、とてもすっきりするだろうと思ったんです。それが私の課題で、この作業を行うのは本当に面倒でした。

最初のバージョンは通常、機能するものであれば充分であり、立派なものである必要はありません。説明書も何もないんです。最初のバージョンで概念の実証をします。

これが第一段階か第二段階のようなものです。問題が見つかりそれを解決し、概念の実証をした後、改良を加えていきます。バグが見つかったり、当初の前提が無効であることがわかったり、使い勝手が悪かったり、インターフェースがどうなっているのかがわかったりします。

出身地について少しお話ししましょう。あなたは明らかにイギリス出身ですよね。イギリスのバグバウンティコミュニティについて少しお聞かせください。どのくらいの規模なのでしょうか?

イギリスのバグバウンティコミュニティはかなり小さいと言えるでしょう。ハッキングや情報セキュリティのコミュニティはかなり大きいと思いますが。イギリスには有名なバグハンターが何人かいます。例えば、Katie Paxton-Fearは素晴らしい人です。彼女は素晴らしいコンテンツをたくさん出しています。Zseanoもそうです。Alexもいますし、他にもたくさんいます。しかしアメリカやインドと比べると、かなりマイノリティな感じがします。特にここは人口が少ないので。

実際のハッキングに話を戻します。新しいターゲットに近づくときにどうするか、視聴者に何かヒントを与えることはありますか?

私が一番伝えたいのは、物事がどのように動くのかを理解することです。ハッキングの誘惑に負けて、ついついいろいろなものを試してみたくなるものです。しかし、システムが実際にどのように動作するのか、どのように動作することになっているのかを理解するのに時間を割かなければ、バグの発見ははるかに難しくなります。

もし認証フローにおいて、どのトークンがどのような用途に使われるのか、どのような種類のデータが受け渡されるのかを理解していなければ、バグを発見することは困難です。例えば、この特定のデータが流出したらどうなるのか?このデータは機密データなのか?といったことです。

私がこれまでに受けた最高のアドバイスは、おそらくIntiからのもので、「ドキュメントを読め」というものでした。最も重要なバグのいくつかは、ドキュメントを読めばわかるようになっています。矛盾や、あるデータについてシステム間で扱いが違っていないか、という目線で探してみてください。

最後にユーモラスな質問をひとつ。ハッキングツールを作るのに、C言語とRustのどちらで作りたいですか?

実際、難しいところですね。出版して実際に使ってもらうとしたら、Rustだと思います(ちなみに、私はまずRustを学ばなければなりません)。個人的に使うだけなら、C言語を選ぶと思います。

読者に伝えたいことはありますか?

私は、好奇心を持ち続け、物事の仕組みを学ぶことを伝えたいと思います。物事の仕組みや理由を学ぶことは、さまざまなペイロードを暗記したりするよりもずっと役に立ちます。

ーーーーーーーーーーーーーーーーーーーー

出典:Intigriti

https://blog.intigriti.com/2021/07/01/meet-the-hacker-tom-hudson/

———————————————

バグバウンティプログラムを活用してみる

スリーシェイクは欧州を代表するバグバウンティプラットフォームを提供するIntigritiと世界で初めて提携。高い技術力を持ったスリーシェイクのセキュリティエンジニアが、専門的なトリアージ・英語でのコミュニケーションなどの運用を代行。セキュリティ領域の専門家がいない、社内のリソースをかけられない企業もバグバウンティプログラムを活用できます。

バグバウンティ運用代行サービス『Bugty』

4万人のバグハンターによる
世界レベルでのセキュリティ・サービス品質を実現
Securify Bugty

ブログ一覧へ戻る

サービスに関するご質問・ご相談など
お気軽にお問い合わせください