デバッガでWordPressの脆弱性を追う勉強会に行ってきた

11/29に開催された、下記のイベントに参加してきました!

※好評につき追加開催※ デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう – connpass

このサイトのテーマを見て頂ければお分かりの通り、
こちらのサイトはWordPressで構築されております。
なので、やはり自分の使っているCMSの事を知っておかねばならぬ!
と思い、参加してきた次第であります。

個人としては、スタンドアローンなアプリケーションを、
リバースエンジニアリングしたり、
デバッグしたりということはあっても、
WordPressの様なWebアプリケーションをデバッガで追う、
と言う経験は無かったので、
その部分で興味を持った、と言うのもあります。

参加申し込みのところの人数を見て一瞬日和ったのですが、
ブログ参加枠なるものを見て、こっちならワンチャン滑り込めるかも!
と言う目論見通り、今回参加できました。
講師はWebセキュリティで有名な徳丸浩さんです。

また、前回の時に参加された方が、
詳細なレポートを記してらっしゃるので内容についてはそちらもご参照ください。

デバッガを利用してWebアプリの脆弱性を分析してみた – とある診断員の備忘録

と言うか、こちらのレポートがあれば充分じゃね?
と思うくらいには充実しているので、私は違った面から記述できればなぁと思います。

勉強会で扱った脆弱性

  • WordPress REST APIの脆弱性 CVE-2017-1001000 (初級編)
  • WordPress NextGEN GalleryのSQLインジェクション脆弱性(CVE不明)(上級編)

それぞれ、徳丸さんのblogで詳細な解説がありますので、
そちらもご参考に。

勉強会の流れ

前以て脆弱性を含むWordPressとデバッグ環境の入った、
UbuntuのVMイメージが配布されました。
こちらを使って手元で脆弱性への攻撃を確認しながら、
勉強会を聞いてくださいねーと言う感じです。

また、会の初めにOWASP Top10の話がありました。
それらの内容も今後触れていきたい、との事だったので、
この勉強会の今後にも期待ですね!

初級編

初めに初級編として、WordPress4.7.1にある、
REST APIの脆弱性を攻撃しました。

こちら、WordPressのコンテンツを攻撃者が自由に書き換えられると言う、
強烈な脆弱性となっております。
REST APIなので、実際にPOSTをして書き換えるところを見て、
それから内部を細かく追っていきました。
Webセキュリティを高める上でのポイントとして、

  • 変数のキャストは早目に行って、キャスト後の値を使うようにする
  • バリデーションはきちんと行う

と仰っていました。
まあ当たり前でしょwと思うのですが、
WordPressの様な広く使われているプロダクトでも、
そういうところで脆弱性を出している、と言うのは、
何と言うか、明日は我が身的な恐怖がありますね。
私も気を付けようと思いました。

上級編

こちらはプラグインの脆弱性なのですが、
徳丸さんの話を聞くに、WordPress自体に存在している、
ヤバい臭いを感じさせるコードが孕んでいた脆弱性を、
そのプラグインが踏み抜いた感じ。
該当コードをデバッガで追う際も、
WordPressの該当コードからはヤバそうな臭いがプンプンと。
そして実際に攻撃コードを作り、攻撃を行っていました。

こちらも攻撃内容や変数の値は、
上述のblogや徳丸さんの記事にあるので、
ここで繰り返してもアレかなと思うので述べませんが、
最後に、その脆弱性を利用してユーザIDやパスワードのハッシュ値を
探るのを見せてもらった時は、うぎゃーと思いました。
脆弱性怖いね。

学び

さて、必要と思われる事項を書いたところで本題に。

勉強会に我々エンジニアが求めるものと言えば学びです。
学びが無かった勉強会はつまらなかったわー、となります。
この勉強会はどうだったの、と問われれば、
楽しかったわー、と答えます。

では何が楽しかったのか。

まず、私はWebアプリケーションはド素人です。
趣味でPHPコードやPythonコードを書いて動かすことはありますが、
DBも使って一般ユーザのデータやコンテンツを保持したり、
と言った規模の物は作ったことがありません。
何故かと言えば、セキュリティ的に怖いので、
極力扱いたくない、と言う思いがありました。
そこが今回、脆弱性と攻撃を知る事で、
少なからず自身の作るものに対して、
セキュリティを意識できるようになった、
と言うのが挙げられます。
これまでは分からないから怖い、
怖いからやらない、
と、敬遠していましたが、
Webアプリケーションちょっと怖くない!
くらいには意識が変わりました。
いや、怖いですけれどね。

ちょっと具体的な話をすると、
最近趣味で作ってるWebアプリケーションで持つデータについて、
まだ脆弱性があるわけではありませんが、
ああ、あそこ攻撃されると困るから守るにはどうしとこうか、
と考えられる様になりました。
もう勉強会で話を聞いている時から、
ああ、あそこ変えないとなぁ、不味いなぁ、
と言う感じに。

そんな訳で、この勉強会は、
私にとって非常に学びの多い会でした。

終わりに

勉強会に参加しても、
そんな短時間じゃ身に付かないから無意味だ、
と言う意見を聞いた事があります。
と言うか、私が昔、以前の職場の上司に言われた事なのですが、
私は決してそんな事は無いと思います。

知らない事を知る事は世界を広げる事です。
たといそれがその時間では身に付かないとしても、
それまで世界の果てだと思っていた壁に、
小さな亀裂を入れられるかも知れません。
小さな亀裂は、いつか大きな穴を開けるかも知れません。

私が今回の勉強会で得た事は、
私の今の業務で役に立つ事は無いでしょう。
ですが、それは私に気付きを与えてくれました。
その小さな亀裂がいつか大きな穴を開け、
私の狭い世界を広げてくれると確信しています。

素晴らしい勉強会でした。
ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。