クロスウェーブ府中の個室の様子 右側に通路と扉、左側にベットがあります

セキュリティキャンプ2023 参加記(講師)

ドッタンバッタン大騒ぎして結局今までろくにまとめられなかったセキュリティキャンプの参加記。
感想も交えて詳しく書けたらいいなと思っています。

セキュリティキャンプ2017参加記

今年もやってきました、あの夏、と言いたいところですが今年は待ちに待った4年ぶりのオフライン開催です。今回は幸運にも講師として参加させていただくことができました。(責任重大)
毎回のごとく、参加記録をまとめたいと思います。
これまでの記録
セキュリティキャンプ2017参加記
セキュリティキャンプ2019参加記(チューター)
セキュリティ・ネクストキャンプ2020参加記(チューター)

朝から適当な食事をすまし、体調を壊しました。アホです。

1日目

京王八王子から分倍河原、分倍河原から徒歩という恐らく誰も移動しないルートできました。

講師控え室に移動してから昼ご飯になりました。

相変わらず、おいしいご飯で体調は一気に良くなりした。
ご飯を食べた後は、受講生の方は名詞交換会をしていました。
13:00から開講式がありました。
相変わらず、有り難いお話ばかりで、受講生の方はとても心に響いたと思います。

開講式の後はLT大会、グループワークがありました。

グループワークの後は夕食と、スイーツ食べながら名刺交換会がありました。
おいしい夕食をモグモグ食べているとスイーツ食べる時間が無くなって、名詞交換せずにモグモグ食べていました、いいのかそれで…

交流会用のスイーツ

お部屋は相変わらずいい部屋でした。

スイーツを食べた後は、早速皆さんでOS開発を取り組みました。1時間半もあったのですが、あっという間に終了。
初日から疲れて23:00に就寝

2日目

朝一番乗り、またも確保しました。
チュータ時にやらかした経験を踏まえ、カーテンを開けて寝るようにしたら日の出と共に目が覚めてしまいました。
ご飯を食べたら早速講義開始です。

講義開始前

皆さん真剣に開発されており、有能なチュータさんのパワーも借りながらデバッグをしていきます。
他の講義の受講生の皆さんがたまに覗きに来られて、活発に名刺交換会が行われていました。
あっという間にお昼ご飯です。

昼ごはん後、もくもくと開発をしていると、あっという間に夜御飯です。
夜御飯はすごい中華でした。

ご飯の後は、企業説明の時間です。
セキュリティキャンプに協賛して下さっている企業のお話です。
ガチガチの企業説明ではなく、会社で実際に対応した内応などを説明されているところが多く、受講生の方は楽しく聞けたと思います。
私も大学院生なのでひっそりと聞いてました。
一番びっくりしたのは、2017年に受講生と一緒に参加した方が協賛企業枠で参加されていて、久しぶりの再会があったことです。

最後の8:30から9:00のホームルームでは、同じくOS自作ゼミの講師のhikalium先生が、講師である私をチュータと間違えまくるので、OS自作ゼミのチュータである1010さんと、名刺ストラップ(講師は緑色、チュータは橙色)と無線機(チュータと一部の講師が持っている)を交換するなどのコスプレをしてました。
他の受講生・チュータの皆様曰く、似合っているらしい、どうして…

そんなわけで2日目もあっという間に終わりました。

3日目

今日は社会見学ですが講師は(一部を除いて)付いていくことが出来ません。大人しく待機です。
IPAの設備を観ることができるらしく、2017年参加時には見たことがないのでとても羨ましいです。
受講生がいない間に洗濯を行います。

B1Fの洗濯機

洗濯の間は、同じ講師の方や協賛企業の方と近況報告を行いました。

その後、持ってきていたTinker Board2というシングルボードコンピュータを維持ろうと思ってたのですが、開発環境が置いてある自宅サーバにつながらなくなるしTinker Board2は起動しなくなるし、さんざんでした…(Tinker Board2は復活した。)

受講生の皆さんが社会見学から戻ってこられる前に講師陣は昼食を食べます。
ラーメン、美味しかったです。

ご飯を食べて待っていると、受講生の方が戻ってこられて早速開発に取り組まれておりました。
頭をフル回転させてできる限りのサポートをしているとあっという間に夕食です。

夜ご飯の後も皆さんすぐに開発に戻り、もくもくと作業されていました。
皆さんの熱意を見ると、なんだか受講生だったころを思い出して懐かしくなりました。

途中、他のコースやNOCの見学に行き、それぞれのコースもとても濃い内容の開発を行われている事を目の当たりにしました。

そんなこんなであっという間に9時、開発終了です。
因みに今日は講師兼チュータという謎の役職がつきました、このネタ気に入ってきました。

4日目

前日寝付きが悪かったですが、またも一番乗りを獲得しました。

開発最終日ということもあり、開発コース受講生の皆さんには目標を達成するために熱が入ります。
皆さん真剣にデバッグを行い、こちらもアップアップになりながら対応します。自分にもっとデバッグ能力があればすっと解決できたのになぁと思いつつネットワークの設定がうまくいかなかったり、元からあるprintfの実装がいい加減なのに気付くのが遅れたり、様々なバグがありました。
そんなこんなであっという間に昼食です。

開発コースの方は急いで食事を終わらせて、開発に戻られている方も多かったです。
開発に熱がこもり熱中しちゃう気持ち、受講生のころを思い出して懐かしく思います。
ラストスパートの開発を終え、「こんな状態じゃ終われない、今日の夜は寝ずにデバッグだぁ」とおっしゃっていた方も多かったです。夜遅くまでやりすぎて寝過ごさないようにね…(思い出すチュータのトラウマ)。
16:00からYトラック内で成果発表会を行いました。皆さん、自分がセキュリティキャンプで実現した事を活き活きと語り、とても輝いていました。
成果発表会の後は、夕食です。

夕飯の後は、LT発表会です。自分も少し発表しましたが、皆さん個性的な発表でとても楽しめました。
LT大会の後はグループワークです。
グループワークでは、それぞれの目的を達成するためにどうするべきかチームで熱心に取り組んでいました。グループワークではなりたての講師なのに色々アドバイスを求められて上機嫌で答えてしまいました、恥ずかしい…
グループワークの後は30分のホームルームで見学に来られる方がいらっしゃいました。
皆さん、OS自作について興味深々で是非ともOS自作をやってほしいと布教しました。
そんなこんなで4日目もあっという間に終了です。
…と思ったら名刺交換会が自然発生し、皆さんの熱気で気温が上がるくらい密集した名刺交換が1時間近く行われました。11:00におやすみです。

5日目

最後の朝食です。6:20に行ったのに4番乗りでした。みんな早い。

ご飯の後は、グループワークです。前半のほうは講義部屋の撤収作業をしていたので聞けなかったですが、後半から聞いても皆さん継続的にセキュリティに取り組もうという心持ちが見られてとても温かい気持ちになりました。セキュリティキャンプの繋がりはのちの人生で役に立つので是非大切にしてもらいたいです。
グループワーク後は急いで移動して集合写真を撮影します。
全国大会・ネクストキャンプ・ジュニアキャンプ・ALLの受講生のみ、講師込みでつぎつぎに写真を取っていきます。皆さんいい笑顔でセキュリティキャンプを楽しめた事がわかります。

撮影後は専門コースの成果発表です。
受講生時代から専門コースとの関わりは薄かったので、毎回新鮮な気持ちで聞いてます。

AクラスはIoTセキュリティコースで、セキュリティがおろそかになりがちなC言語などのプログラミングでいかにセキュリティを担保するかを病院や車載ネットワークを例に検証したそうです。
IoT機器には脆弱性が残っているとのことで、それが社会に与える影響がいかに大きいかを実感しました。ファイルが削除されてもFAT32などでは単に削除マークがついているだけで復元ができるなどOS自作と馴染み深い話もありました。

Bクラスは、Webセキュリティクラスで広さと深さをどちらも追求した講義をされているそうです。
仮想的な企業を立ち上げてその会社になりすましメールを送って権限を得ようとする試みをやって、Webでどのようにセキュリティを担保するか講義とハンズオン両方で理解を深めたそうです。

Cクラスでは、Linux Kernelのエクスプロイトや脅威度の数値化などをローレイヤーミドルレイヤーの解析をウイルスの検知をされていたそうです。オンラインの時期に参加された方が発表されてましたが、毎年講義の内容が変わっており一筋縄ではうまくいかなかったと笑顔で話していました。デジタルフォレンジックなどは攻撃者がいかにシステムに侵入したかを調べる上で幅広いレイヤーの知識が必要だというのが発表者の知識から感じました。

Dクラスでは、ハードウェア・ソフトェアと法律・倫理という二つの観点からAIとセキュリティについて勉強したそうです。近年急速に発達する生成系AIをどう扱うかを議論したり、画像にノイズを加えてAIの判定を間違えさせるという技術よりの話までAIを隅から隅まで研究しておりこれからの時代を生きるのに重要な事を学ばれているな感じました。AIでもAttack And Defenceをされており情報セキュリティはどこの分野にも存在するということを実感しました。中にはPythonを分からない中でAIをいじるためにPythonを勉強した方がいらっしゃって受講生の皆さんの熱意を感じました。セキュリティキャンプを通じてより精力的に取り組もうと言う気持ちになるのはとても良いことだと思います。

ジュニアキャンプでは、自分たちの作りたいアプリをセキュアに作るというプロジェクトを開発していました。自分が中学生の頃にはとても難しくて利用できなかったPHPフレームワークやNode.JSなどを使われていて最近の中学生の凄さに感心しました。しかもその上にしっかりとセキュリティを意識した設計になっており、脱帽モノでした。

ネクストキャンプでは、世界でユニークな事を専門とする講師陣による濃い講義が行われたようです。GPUを低レイヤーの観点から一からプログラムを設計し、高速なプログラムを設計したそうです。GPUのSIMDの最適化は私も勉強途中なので是非受けてみたいものです。GPUの次はCPUを作り上げるという講義で機械語を作る作業などは低レイヤーをやっている身としては共感できました。テスト駆動開発やモブプログラミングなど普段1人で開発しているときは経験しにくい開発スタイルについて学べた様でより柔軟な考え方ができるようになったと思います。

午前中の成果発表はこれで終わりで、セキュリティキャンプ最後の食事が始まります。

午後からは、我々開発コースの成果発表です。
トップバッターはOS自作ゼミです。NICドライバを書かれていた受講生の方が発表されてました。自作OSのデモもやって大盛況で終わりとても大盛り上がりでした。
CPU自作ゼミの方もRISC-Vのカスタム命令を実装し、ユニークな実装をしていました。
分散合意ゼミではRaftという分散合意アルゴリズムの実装されていました。分散合意はコードレベルでは非同期処理で、その中で同期処理を行うのでとても難しいのだと感じました。
CPU+コンパイラ自作ゼミでは、CPUとコンパイラを並行して作るというなかなかハードな事をされていました。Cコンパイラで吐き出したコードをCPUで実行し、結果を得られるのはとても楽しいだろうなと思いました。

次はXトラックでIoT機器の分解・改造をやっているようです。
リバースエンジニアリングゼミでは、デバイスを解体して、基板の読み込みをしたりファームウェアを解析してました、毎年熱い講義です。
電子回路・プリント基板を作ろうゼミでは、JTAG Debuggerを作るというハードウェア自作を行うゼミでした。お米より小さな部品を基板に配置する作業など、はたから聞いているととても難しそうに聞こえます。
ハードウェア魔改造ゼミは恒例の走るルータです。ハードウェアからソフトウェアまで全て弄るのは夢があり自分も一度やってみたいものです。今回は加速度センサを使って制御していて利便性(?)も上がっていました。
無線通信ハッキングゼミでは電波法令に気をつけながら電波を攪乱するジャミング攻撃をしたり、未知の信号波を解析してどういうプロトコルなのかを検証していました。

Zトラックでは、様々な講義が開講されています。
Rust製Linux向けアンチウィルス実装ゼミでは、マルウェアを解析するために実行してログを取得し、解析するコードを作成していました。挙動が正しいか怪しいかを区別する作業に苦心しているようでした。
アイデアを形にするWindowsアンチウイルス実装ゼミでは、Windowsの仕組みを受講生自身が試行錯誤して理解していたそうです。Windows APIは難しいイメージが多く、前のトラックと同じく正常な動作か怪しい挙動かを判定するのに苦労しているようでした。
EDR強化ゼミでは実際にWIndowsPCに攻撃してもらい、それを検知して分析して対応する講義をされていたそうです。検知にはシグマルールというものを作成し、それが上手く動いた時の爽快感が良かったそうです。
ブロックチェーンゲームを作って学ぶWebセキュリティゼミでは、Ethereum VMなどを用いてゲームを作り、ゲームにクリアできたらトークンや、報酬をゲットできるものらしいです。ゲームを作りながらそれをブロックチェーンに結びつけるという作業はとても大変だったらしく、受講生の方はさぞかし熱中できたでしょう。
OSINTによるランサムウェア攻撃者の攻撃戦術特定ゼミでは、検知ルールを用いてどんな製品が狙われたかを検知する講義をされているようです。

Lトラックは暗号系の講義が開講されています。
暗号化通信ゼミでは、学校のネットワークなどSSHなどを通さないネットワークのVPNをTLSでトンネリングするソフトウェアを作成されていました。また、既に破られた暗号を自分の手で破っている方もいました。
暗号のままで計算しようゼミでは、準同型暗号を実際に計算してNAND計算ができる事を確認しているようでした。NANDができれば任意の計算ができます。高速化についても研究されたそうです。
Cコンパイラゼミでは、ゼロからCコンパイラをアセンブリで書くという熱意ある方がいらっしゃいました。残念ながら配列などは実装できなかったですが、アセンブリが分からない中でそこまで作り上げたのはすごいことだと思います。
分散型アプリケーション脆弱性解析ゼミでは、ブロックチェーンへの攻撃を解析する、というゼミのようです。攻撃を解析するためにEthereum VMを実装されており、コンパイラ脆弱性を解析されているとのことでした。
TEEの活用と攻撃実践ゼミでは、Intel SGXを使って信頼可能な実行環境を作るという低レイヤーゼミでした。SGXではEDLという独自の言語で記述しないといけない部分があり大変そうだなと思いました。実際に攻撃も実践しており、攻防どちらも経験しているようでした。

NOCからはNOCの概要と今回の通信の概要が説明されました。

短い休憩時間を挟んで閉講式が始まります。
閉講式ではIPAの方から自身の経験を踏まえた熱いエールを頂き、講師でも心に来ました。また修了証書と激励文の授与が行われていました。受講生代表の皆さんの一言スピーチは心に響きました。
あとはセキュリティキャンプのグループの紹介などがあり、終了宣言を以て終わりました。

感想

初めての講師ということで受講生の皆さんのサポートができるか不安でした。そのためチュータの経験を生かして受講生の皆さんがどういうバグでつまっているかを確認しながらデバッグ作業の補助をしました。受講生の方の中には私が経験したことあるバグで詰まる方がいらっしゃったり、私のやったことのない事をされており、何をしようとしているか理解するのに精一杯だったこともあります。Yコースの講師の方々からチュータと間違えられることも多かったですが、自分自身受講生の皆さんにはチュータみたいに扱ってもらえたらなと思っていたので割と良かったと思っています。終わってみて正直受講生の皆さんが満足できたか不安だったのですが、皆さんが楽しかったとおっしゃっていたので、こちらも嬉しくなりました。ですが、改めて自分の技術力の不足を感じました。これからも進捗を出さないとなと思いました。来年も講師ができるかわかりませんが、より受講生の皆さんをサポートできるようになって参加できたらなと思います。

3回とも違う身分での参加