ENECHANGE Developer Blog

ENECHANGE開発者ブログ

XSS についての講習会を開催しました

ENECHANGE で CTO をしている田中です。

今回は先日社内で開催した情報セキュリティ講習会について紹介したいと思います。講師として株式会社セキュリティイニシアティブジャパンの小笠さんを迎え、XSS(クロスサイトスクリプティング)について実際の挙動を見ながらお話しいただきました。

背景

もはや言及するまでもありませんが、昨今情報セキュリティの重要性は増すばかりで弊社も例外ではありません。

弊社の状況として、現状では脆弱性を埋め込まないようレビューや脆弱性診断、各種バージョンアップを必要に応じて実施しておりある程度以上のセキュリティレベルは担保できていると考えていますが、一方で組織的な仕組みが不足しており、個人の実力・裁量に頼り過ぎているのではないかという課題感がありました。

そのような状況を変えていくため、前述した小笠さんに顧問のようなかたちで参画いただき、日々気軽に相談できたり講習のようなかたちで会社として学習する機会を作っていくことにしました。

実際の攻撃をみてみたい

まずはどういった取り組みをしていくのがよさそうかという話の中で、Hank さんから実際の攻撃の事例を交えながら脆弱性について理解を深めたいという話をもらいました。

たしかに実際の挙動をみてみるとイメージが湧き、影響や対策の必要性について腹落ちしそうです。ということで、いくつか候補があるなかでまずは最もポピュラーな脆弱性の1つである XSS について取り上げてもらうことになりました。

owasp.org

講習の様子

今回は取り組みの紹介なので細かい内容については割愛させていただきますが、以下のようなかたちで画面を共有してもらいながら進めました。

f:id:dev-enechange:20220330182851p:plain
アラート表示したり..

f:id:dev-enechange:20220330183128p:plain
Cookie を抜き取ったり..

f:id:dev-enechange:20220330183715p:plain
抜き取った Cookie でリクエスト送ったり..

f:id:dev-enechange:20220330183912p:plain
フィッシングの画面に差し替えたり..

BeEF

また今回は BeEF というツールも紹介いただきました。

beefproject.com

悪用も可能ということで詳細な説明は割愛しますが、XSS と組み合わせて利用することでリモートから被害者のブラウザに対して様々な攻撃を行えるツールになっていました(上記のフィッシング画面の表示など)。

操作も難しくなく誰でも使えそうな印象で、一度見ると攻撃自体が身近にあると感じることができるのではないでしょうか。

参加者の感想

講習のあとにアンケートが実施されまして、参加者のみなさんからは以下のような感想をもらっています。

  • 実例で示していただいたのでイメージをつかみやすく勉強になりました、ありがとうございます!
  • BeEFは初耳だったので参考になりました。XSSの原理や対策については、ENECHANGEに限らず全Webエンジニアに理解しておいてほしいと思っています。
  • ペネトツール(BeEF)の洗練さに驚きました。一般人が攻撃されたら一発でフィッシングされそう。
  • アプリエンジニアとしては、フレームワークに則り、入出力ともに作法に則って実装するのが大事ということが改めて分かりました。講習いただきありがとうございました!
  • 脆弱性がないか気になっていた機能を見直すきっかけになり、脆弱性を発見することができました。ありがとうございました。
  • XSS について復習できた。解説を聞きながら、あと Hank さんとのやりとりがインタラクティブな感じでよかった。
  • adobe flashの画面は見覚えがあって、もしや攻撃されていたのかと思いました。beEFなどのツールの挙動を拝見できたことなども大変勉強になりました!

質問もいくつか出ていましたし、アンケートの結果をみる限りでは有意義な講習になったのではないかと思います。

今後

月一度くらいの頻度で今後もこのような講習会を継続していく予定です(次回は CSRF を取り上げる予定)。

また講習以外にも設計時から情報セキュリティのレビューが入るようにしたり、必要な場面でアドバイスをもらえたりするような、個人に頼りすぎない体制の構築を進めていく予定です。

その他

余談ですが、ちょうど同じような時期に以下のような記事を目にすることがありました。これらの記事もとても参考になると思いました。

blog.flatt.tech

techblog.securesky-tech.com