オルタナティブ・ブログ > プログラマー社長のブログ >

プログラミングでメシが食えるか!?

IPAのセキュリティ・キャンプ全国大会2017に講師として参加

»

IPAのセキュリティ・キャンプ全国大会2017に講師として参加してきました。きっかけは、著書「ルーター自作で分かるパケットの流れ」を2014年に講義で使っていただいていたようで、どうせなら著者を呼ぼうという話になり、お声がけいただいた感じのようです。

受講者は学生さんで、全国から3.78倍の選考を勝ち抜いた人達です。小学生から大学院生まで幅広くいます。授業ではないので、一方的な講義ではなく、手を動かすことを中心に、となっています。私の担当分野は、著書の内容のように、パケットを自分で扱ってみるということでしたので、「PF_PACKETで仮想IP環境を自作してパケットの理解を深めよう」というお題でやってみることにしました。

イーサフレームからARP,IP、そしてICMP,UDP,TCPまでユーザランドのプログラムで自作してみる感じで、TCPまで本当にやるの?という感じでしたが、やっぱり一番使われる機会が多いTCPまでやらないと面白くないだろうということで、TCPまで作ることにしました。

サンプルプログラムは私にとっては大した苦労なく作ることができ、今回は元々製品用とは考えずに、あくまでも練習用なので、性能よりはソースの読みやすさや構成のシンプルさを優先して仕上げました。プログラムを作るのは楽しい作業なのですが、説明資料をどうするかは最後までやる気とやる時間が取れず、結局事前にイーサからARP,IP,ICMPまでのそれなりの説明だけ開示し、あとはソースをそのまま渡して見ておいて、という感じで講義当日になった感じでした。

P1006204.jpg

会場に向かいます。実はキャンプ受講者は全員4泊5日で泊まり込み、講師やチューターもほとんどが泊まり込みで、まさにキャンプなのですが、私はお盆時期とは言え仕事も普通にありますので、会社から向かいました。

P1006207.jpg

持ち時間は3時間なので、時間が余ったら困ると考え、パケット話のサンプルとして、不正接続検知・排除の「IntraGuardian2+」と、現在試行錯誤中のプログラムを動かすためのラズパイを持ち込み、講師控え室で講義部屋のネットワーク環境に合わせてセットアップしているのがこの写真の状態です。ネットワークオタクの集まりにはやっぱりこのキーボードだろうとHHKも持って行きました。

教室に行くと、既に受講者が数名いて、「名刺交換させてください!」と。大学生も今どきは名刺を持ち歩くんだね〜と感心しながら名刺交換をし、「著書にサインを書いてください」と「ルーター自作で分かるパケットの流れ」を持ってきてくれたので、喜んでサインをしておきました。他の講師仲間やチューターの方も顔を出してくれてご挨拶。私がDPDKに詳しい人がいるそうで、教えて欲しいんですよ〜と話すと、「呼んできます!」と連れてきてくれ、実は数年前のキャンプで「ルーター自作で分かるパケットの流れ」の講義でパケットに目覚めて今ではすっかりのめり込んだそうで、「握手してください!」と。。いや〜、私が教わりたい方ですので・・・。

私の講義は19時から22時で、朝8時半から缶詰状態で頑張っている受講者の皆さんはややお疲れ気味でしたが、説明をはさみながら一緒にサンプルプログラムを動かして、最後の30分くらいで、パケットの応用例として「IntraGuardian2+」を教室セグメントで動かしてみました。ARPでネットワーク機器の存在を収集でき、さらに通信妨害をしてみると「おぉ!つながらない〜」と盛り上がりました。そして、ラズパイでWiFi傍受からAPや機器の情報を収集して、WiFiを無理矢理切断する様子も見てもらいました。なお、きちんと事前にNOC担当の方にやることは説明して、変なパケットを流したりする許可はもらってからやっています。NOCでは統計を取ったりいろいろ監視していますので、変な挙動に慌てて飛んできても大変ですので。

3時間では私でもイーサからTCPまでゼロから作り上げることはできませんので、まずは体験してもらう程度しかできませんでしたが、プログラミングは教わるものではなく、興味を持って自分でやってみることで伸びます。さらに、一番苦労するのは「どうすれば実現できるか」なので、ヒントになるサンプルソースがあることが一番なのです。受講者の皆さんがこれをきっかけにパケットに目覚めてくれると良いですね〜。

さて、講師は特権としてキャンプ期間中、自由にどの講義でも見学できるというのがあり、

P1006210.jpg

もう1日何とか時間を作って、WIDEプロジェクトで以前ご一緒していた蛯原さんの講義の見学をしました。NetBSDの中の人で、ラズパイ用のNetBSDを配布している人から直接話しが聞けるのは、受講者も幸せですね。

講義前に蛯原さんにご挨拶に行ったところ、すぐに気がついて「覚えていてもらえたのですね〜!」と言うと「ちゃんとチェックしてましたよ。著書もあらためて読んでみたりしちゃいました!」と、すぐに盛り上がって話し込んでしまいました。

講義では、受講者1人1人ラズパイにNetBSDを入れ、カーネルをクロスコンパイルして入れ替えるなどの作業を熱心に取り組んでいました。私もせっかくなので自分のMacBookに容量不足に悩みながらもNetBSDをVMで何とか入れて、クロスコンパイルをしてみたりしました。この日はラズパイを置いてきてしまったので動作確認はできませんでしたが。。なによりも蛯原さんの途中途中での裏話やおたく話が最高に面白かったのでした。

P1006211.JPG

翌日会社でやってみました。NetBSDが上手く起動し、カーネルも講義中にビルドしたものに入れ替えても起動した・・・みたい?

他の講義もいろいろと見学してみましたが、小学生の受講者も熱心にキーボードを叩いていましたし、噂によると相当詳しかったそうです。これからが楽しみですね。講師の皆さんも各分野で有名な人達ばかりで、私が講師で良いの?という感じもしましたが、まあ、パケットオタクとして一つでも受講者の興味が増えてくれれば嬉しい限りです。

しかし、冷静に考えると受講者やチューターの皆さんは、我が家の娘や息子と同世代なんですよね。うーん・・・。

Comment(3)