セキュアスカイによる安全なWebサイト運営のためのセキュリティ情報

セキュアスカイのこと
  • shareSNSでシェア
  • Facebookでシェアする
  • Xでシェアする
  • Pocketに投稿する
  • はてなブックマークに投稿する

2024年10DaysSST夏季インターンシップ開催レポート

2024年10DaysSST夏季インターンシップ開催レポート

はじめに

こんにちは、SSTでWeb脆弱性診断用のツール(スキャンツール)開発をしている坂本です。
先日、10DaysSST夏季インターンシップを開催して無事に終了しましたので、その様子をお伝えします。

【10Days】SST夏季インターンシップ「Webセキュリティで関心が高まっている技術についての研究調査」@ハイブリット開催

 

2024年度は 9月2日 ~ 9月6日、9月9日 ~ 9月13日 の10日間でインターンシップを開催しました。

  • 今回のインターンシップは以前よりも日数が多いため、参加者自身にじっくりと主体的に調べてもらう内容にしました。
  • オンライン(=リモートワーク)と、オフライン(=SSTの東京/福岡オフィスに出社)を組み合わせました。
    • 期間の真ん中である9月6日 はオフィス開放日として、東京/福岡オフィスに出社して作業してもOKとしました。
    • 最終日の 9月13日 は東京/福岡オフィスそれぞれに出社し、成果発表会を実施しました。
    • ※今回は日本全国から参加者を募集したため、それぞれの住まいから東京/福岡いずれか近い方のオフィスに来てもらいました。交通費は上限内でSSTから支給しました。

 

スケジュールについて

以下のようなスケジュールで進行しました。

初日:9月2日(月)

  • 10:00 – 10:50 オープニング(自己紹介、全体概要)
  • 10:50 – 11:00 休憩
  • 11:00 – 17:30 作業時間
  • 12:30 – 13:00 ランチ雑談会(任意参加の雑談会)
  • 17:30 – 17:45 業務連絡(業務終了連絡をslackに投稿)
  • 17:45 – 18:00 夕会(1日の振り返りなど)

 

2日目~4日目:9月3日(火)~9月5日(木)

  • 10:00 – 10:15 業務連絡(業務開始連絡をslackに投稿)
  • 10:15 – 10:25 運営からの諸連絡
  • 10:25 – 10:30 休憩
  • 10:30 – 17:30 作業時間
  • 12:30 – 13:00 ランチ雑談会(任意参加の雑談会)
  • 17:30 – 17:45 業務連絡(業務終了連絡をslackに投稿)
  • 17:45 – 18:00 夕会(1日の振り返りなど)

 

5日目:9月6日(金)

  • 10:00 – 10:15 業務連絡(業務開始連絡をslackに投稿)
  • 10:15 – 10:25 運営からの諸連絡
  • 10:25 – 10:30 休憩
  • 10:30 – 17:30 作業時間
  • 17:30 – 17:45 業務連絡(業務終了連絡をslackに投稿)
  • 17:45 – 18:00 夕会(1日の振り返りなど)

 

6日目~7日目:9月9日(月)~9月10日(火)

  • 10:00 – 10:20 業務連絡&交流会(業務開始連絡をslackに投稿&)参加者のみの交流会
  • 10:20 – 10:25 運営からの諸連絡
  • 10:25 – 10:30 休憩
  • 10:30 – 17:30 作業時間
  • 12:30 – 13:00 ランチ雑談会(任意参加の雑談会)
  • 17:30 – 17:45 業務連絡(業務終了連絡をslackに投稿)
  • 17:45 – 18:00 夕会(1日の振り返りなど)

 

8日目~9日目:9月11日(水)~9月12日(木)

  • 10:00 – 10:15 業務連絡(業務開始連絡をslackに投稿)
  • 10:15 – 10:25 運営からの諸連絡
  • 10:25 – 10:30 休憩
  • 10:30 – 12:30 作業時間
  • 12:30 – 13:00 ランチ雑談会(任意参加の雑談会)
  • 13:00 – 15:30 作業時間
  • 15:00 – 15:45 交流会
    • 8日目:入社3年目の社員との交流会
    • 9日目:代表取締役との交流会
  • 15:45 – 17:30 作業時間
  • 17:30 – 17:45 業務連絡(業務終了連絡をslackに投稿)
  • 17:45 – 18:00 夕会(1日の振り返りなど)

10日目:9月13日(金)(最終日)

  • 12:00 移動(最寄りのオフィスに出社移動)
  • 12:00 – 12:20 始業&朝会&諸連絡
  • 12:20 – 13:00 最終調整(発表に向けての調整)
  • 13:00 – 14:10 ランチ懇親会
  • 14:10 – 15:10 最終調整(発表に向けての調整)
  • 15:10 – 16:10 成果報告会
  • 16:10 – 16:20 休憩
  • 16:20 – 16:30 終業&夕会&クローズ

 

内容について

SSTでは過去、1日/3日間/5日間までのオープンカンパニーを開催してきましたが、今回は初の10日間、2週間に渡るインターンシップとなりました。
じっくり時間を確保できるため、こちらが提示したテーマについて参加者が自由に研究調査するリサーチワークをしてもらうことにしました。
インストラクターはつきっきりではなく、呼ばれたらヘルプに入って参加者をアシストする形です。

結果として、参加者には10日間じっくりと研究調査に没頭してもらえたように感じています。
調べるだけでなく、実際に手を動かしてデモアプリを作るところまで到達できたチームもありました。
また参加者同士での交流も活発だったのが印象的で、開催期間が長かったのがいい方向に作用したように思います。

それでは初日の内容と、調査してもらったテーマについて紹介します。
テーマは3つあります。
同じテーマを選んだ参加者でグループを組んでもらい、それぞれで作業をしてもらいました。

初日

初日は最初に参加者や運営の自己紹介と、10日間の流れ、そして研究調査テーマの解説を行いました。

テーマ1「認証技術のトレンドと課題」

近年はID/PW認証だけでなく、メール/SMSでOTPを送ったり、QRコードを使ったTOTPによる多要素認証(あるいは2段階認証)を採用するWebサイトが増えています。また Passkey と呼ばれるパスワードレス認証技術も登場しました。
診断サービスでも対応を検討する必要があるため、最近の認証技術の動向についてトレンドや課題を調べるというテーマになります。
具体的にどの技術を調べるのかは、最近の認証技術の例をこちらで示した上で、それを参考にして参加者自身が選びました。

結果として以下のトピックスについて調査し、デモアプリの制作まで取り組むことができました。

  • TOTPの調査と、実際にTOTP用のQRコード生成
  • SSO(Single Sign On) 技術として OAuth/OIDC を調査し、実際に Google ログインを使ってSSOを行うデモアプリを SpringBoot で作成

テーマ2「マイナンバーカード」

マイナンバーカードの普及が進み、病院での保険証や、携帯ショップ等での本人確認の利用も広まっています。マイナポータル等でもマイナンバーカードでログインが可能になり、今後は民間のWebサイトでも活用されていくことが見込まれます。
診断サービスでも対応を検討する必要があるため、 マイナンバーカードそのものの仕組みや、マイナンバーカードでログインする仕組み等について調べるというテーマになります。

こちらのチームについては、マイナンバーカードを読み取るアプリの仕組みまで調べられないかチャレンジしたのですが・・・詳しい技術仕様を知るには、JPKIと事業者として契約が必要らしいということが判りました。さすがに10daysのインターンシップの中でそこまで対応するのは無理だったため、やむなく方向転換をして、調査メインで進めることになりました。
インストラクターの事前準備の負荷軽減のため、予備調査が不足したのが原因です。これについては今後の反省点として、もう少しちゃんと予備調査してからテーマを調整しようと思いました。

そのようなタイムロスが起こりつつも、マイナンバーカードの仕組みを公開情報から調べ上げたり、マイナポータルのiOSアプリのHTTP通信を Burp でキャプチャして内容を解析するなど、できる限りの調査を実施しました。
今後マイナンバーカードを使った診断がやってくるときに、こちらの調査資料を活用したいと思います。

テーマ3「WebSocket」

近年、双方向でリアルタイムに通信できる WebSocket プロトコルの利用が広まっています。実際にSSTの診断案件でも WebSocket を使ったサイトを見かけるようになりました。
診断サービスでも対応を検討する必要があるため、 WebSocket の知見やノウハウを調べるというテーマになります。

結果として WebSocket の仕様を調査し、さらには socket.io を使ったログインありのチャットWebアプリの制作まで取り組むことができました。
しかも、制作したWebアプリには XSS やなりすまし (CSWSH: Cross Site WebSocket Hijacking)、DoSの脆弱性が埋め込まれた状態で、その対策まで調査・実装されていました。
このアプリは、今後SSTでWebSocketの診断をしていくときの、検査の練習用アプリとして活用していきたいと思います。

こちらのチームはWebアプリを作る際に ChatGPT を活用していたのも、印象深い思い出です。
socket.io を使ったことが無い状態から、ChatGPTに聞きながら短期間でログイン + チャット機能が動くWebアプリを作り上げていく様子に、今更ながらですがAI時代の波を感じました。

オフィス開放日と交流会

今回は10日間ずっとオンラインではなく、最終日は出社してもらいました。
また、折り返し地点となる間の1日を「オフィス開放日」としてオフィスに出社して作業してもOKとしました。
オフィス開放日は東京/福岡オフィスそれぞれで参加者が出社して、作業されていました。
特に東京オフィスは、同じ学校の参加者同士が朝から夕まで活発にコミュニケーションを取りつつ作業していたのが印象に残っています。

8日目には、入社3年目の社員とオンラインで交流する時間を設けました。
9日目には、弊社代表大木とオンラインで交流する時間を設けました。
坂本は出席しませんでしたが、いずれも有意義な交流時間となったようです。

成果報告会

最終日の 15:10 ~ 16:10 に実施しました。
東京オフィスと福岡オフィスをMeetsで接続して実施しましたが、プロジェクターとの接続で苦戦しました。
チームによってはメンバーが東京オフィスと福岡オフィス両方に出社しているところもあり、誰がいつ話すのかなど事前に台本を作る工夫をしていました。
発表スタイルは特に指定せず、各チーム自由にスライドを作って発表してもらいました。
デモアプリが動く様子を見せるなど、いずれのチームもレベルの高い発表内容でした。

 

まとめ

以上、2024年の10Daysインターンシップ企画のレポートでした。
参加者のみなさま、10日間の長きにわたり本当にお疲れさまでした。

来年も10日間開催になるかは分かりませんが、今回の経験を踏まえてより良い企画にしていければと思います。

  • shareSNSでシェア
  • Facebookでシェアする
  • Xでシェアする
  • Pocketに投稿する
  • はてなブックマークに投稿する

この記事の筆者

筆者:SST-blog