etc...この広告は、90日以上更新していないブログに表示しています。2019-01-06CMU留学を終えて昨年は自分にとって一番環境に変化があり濃密な1年だった。多くの新しいことを経験し学んだ年だからだと思う。経験とは、主にはピッツバーグにてCMUの学生として過ごし卒業したことである。CMUの生活は、目の前に広がる未経験を凝縮した海みたいな感じで、経験値も広がりもすごかった。今回はその留学の振り返りを書こうと思う。本当はもう少しまとめてから書こうかとも思ってもいたし、全然技術的でもない。想いが冷める前の今のうちにどうしても書いておきたい。書き始めると想いが入ってしまってだいぶ長くなってしまった。削ったけど、面倒な方は最後の「まとめ」を読んでもらえればと思う。Scienceの学位を取得するプログラムを修了した。専攻は情報セキュリティである。終わってから振り返ってみると、辛かったというよりは、充実していて本当に留学してよかったと思えている。主な理由は、留学先でしかできないことを多く経験できたことだと思う。大学の授業のレベルは高いし周りに尊敬できる先生や優秀な学生も多い。アンテナを張り巡らせば身の回りに刺激が溢れている。CMUに来てよかったと一番思えるのはこの点だ。留学初期にこれを強く感じ、米国留学でしかできないことを多く経験しようと決めた。独学でなくてこんな環境でもう一度勉強できるなんて、俺にとっては奇跡なんだ。一秒も無駄にできるか。いう気概が後の結果に大きく影響したと思う。今考えると多少手を広げすぎた感はあったし、周りの仲間からもいつも全力疾走してるよねって言われたりしていたけど、間違ったとは思っていない。「ここでしかできないことをする」という信念を最後まで貫けたと思う。このおかげで、自分自身が経験を積めただけではなく、多くの人と繋がることができ、仲間が増えた。留学前のエントリで「同じようなことを目指す仲間たちとビジネスから離れたところで純粋に勉強/研究してみたい」と書いたことがあるが、それを実行できた。結局のところ、自分自身が強くならないといけないし自分で学び続けなきゃいけないんだけど、環境がそれを助けてくれることはあるんだなぁと感じたし、それを最大限活用できたと思う。自分が専門とするセキュリティ分野でのコミュニティには日本人がいなかった。そんな環境に飛び込んでやっていけるのか、正直迷った。手が届くところに世界最先端があるんだ。やらなければ何のために留学したんだって後悔するに決まってる。それに、失敗したってこんな日本人1人誰も覚えていやしない。リターンがでかいんだ。(通称CMU)は、ペンシルベニア州のピッツバーグという街に位置しており、コンピュータサイエンスを中心に世界的にハイレベルな教育/研究を提供している大学である。ピッツバーグは冬はマイナス20°Cほどまで下がったりするが、それ以外はカラっとした気候で過ごしやすい場所である。現地の人が喋る英語はとても早くPITTSBURGHeseと呼ばれたりしている。いうランチのお誘いだったりする)が、慣れてしまえば普通に暮らすことができる。学業という面では申し分ないほど整った環境に囲まれている。広いキャンパス全体を網羅するWi-Fiに、場所には困らない勉強スペース、Freeなドリンクだったり深夜まである無料のバス送迎サービス、リフレッシュするためのジムなど、至れり尽くせりである。CMUの学生は街の公共機関が全てタダなので、移動には困らずに生活することができる。大学周辺には何もないため、勉強/研究ぐらいしかやることがない。勉強環境としては逆に良いのかもしれない。いうわけか気候はバグっていたと感じる。ピッツバーグに降り立ったときはマイナス20°C近くて、あっこれはサバイブできないかもって即座に思ったのは記憶に新しい。天候が激しくて1日で気温が20°C以上変動したりする。現地人は大雨でも傘をささない(なぜだ)。生活するうちに体が慣れてくるようで、マイナス10°Cとかにならなければ寒さは気にならなくなってくる。朝とか学校に着いたら髪の毛凍ってたりするけどね。ピッツバーグで暮らしている人たちもたぶんバグってて、外の気温が2°Cぐらいだと上半身裸のオッサンが外を走ってたりする(彼らのことは無課金ユーザーと呼んでいる)が、基本的に町は平和だ。社会人になって数年を過ごしていると、世の中はある程度わかっているという無意識の感覚があるんだと思う。そのせいか、この年になってのカルチャーショックってのは本当にショックで、戸惑いと発見の連続で毎日を過ごしていた。コースCMUの学期は基本的には春学期と秋学期に大きく分かれている(夏学期もあるが、ここは生徒によってインターンシップをしたり研究をしたり授業を取ったりとマチマチである)。いう単位が基本である。単位を取得するスキルを修得するなら週に12時間は勉強する必要がある)。あっても課題や復習などで勉強時間12時間はゆうに超えるため、あまり当てにならない。毎週のように徹夜はあるし、生徒は毎日夜中の3時とかまで勉強しているし、たまに生徒同士で「就職したら土日があるんだぜ、夢みたいだ...」みたいな会話が聞こえてきたりする。実際、CMUは全米で一番睡眠時間の少ない大学だという記事もあるぐらいだ。結局どの授業を取っても大変なので、昨年の生徒の授業アンケート結果を参考にしつつ、取りたい講義を自分の忙しさとを比較しながら決めていく。履修することになっている。受講して感じたのは、どの授業も「セオリーだけ勉強しても実践的に応用できないと意味がない」みたいな風潮があるところである。セキュアなコーディング手法や攻撃方法を学ぶだけでなく、C言語でアプリを開発して生徒同士で攻撃し合う課題があったり、ひたすらバイナリエクスプロイトのCTF問題を解きまくって攻撃者の視点を学んだり、実世界のアプリに対してFuzzingを仕掛け、見つかったバグをバイナリレベルで解析したり、会社に対してリスク分析やインシデントの解析をしたうえで役員への報告を行う演習があったりと、とても実践的な内容に富んでいる。試験も同様で、知識を応用しないと解けないようになっているため、当たり前だが授業スライドを覚えるだけでは得点が取れない。ちなみにCTFを解きまくる課題のときは、参考としてmallocのソースコードがまるっと渡されたりして面白かった(参考とは😇)。この分野に興味のない学生であれば早々に匙を投げてしまってもおかしくないワークロードだったと感じるが、(差はあれど)志の高い生徒が世界中から集まっているため、周りを見渡せばスゴイ奴がたくさんいるし、働きかければ人脈も広がる。辛い分だけ大学生活がとても充実する環境に囲まれていた。宿題が多すぎて本当に苦しいが、自分は不思議と嫌だとは一度も思わなかった。今思うと楽しくて仕方がなかったんだと思う。課題については、提出、採点、regradeの申請まで含めすべてオンラインで完結しており、ありがたい。ここらへんのインフラがしっかり整っているため、しっかり「学業」に集中することができた。参考までに、取った講義のうちのいくつかを下に挙げようと思う。セキュリティに関する分野を広く学ぼうとしたので、テクニカルな授業だけではない。授業の内容や様子を深く聞きたい、など別途希望をいただいたら別で書こうと思うので言ってほしいが、自分はセキュリティに全振りの内訳で履修していた。自分が所属していたプログラムではコースオプション、リサーチオプションという選択制のカリキュラムがある。コースオプションではコースを受講して単位を取得することで学位が授与される。リサーチオプションではコースの他に教授の下で研究を行うことで相当数の単位が取得でき、卒業要件を満たすことができる。自分は、春学期に受講した教授の研究で気になるトピックがあったのと、CyLabという米国でも有数のサイバーセキュリティ研究所がCMUにあることから教授の研究室に飛び込んでみたところ、CyLabで研究させてもらえることになった。やりたいことがあっても指導教官を見つけるのが難しいと言われている中で教授から認めてもらってリサーチオプションが取れたことは幸運だったと思っている。夏休みも大学に籠り、授業以外のほぼすべての時間を研究に費やした。最初は結果が見えていないため不安とプレッシャーが大きかったが、ある程度結果が出てきてからは落ち着いてきて、着実に研究を進めることができた。指導教員とのコミュニケーションはしっかり取ってもらえ、恵まれていた。自分のために週一回以上は必ずマンツーマンで時間をとってもらえたし、明確な方向性のアドバイスももらえたし、「めちゃくちゃ頑張ってギリギリ届くかどうか」のゴールを毎回提示してくれる。期待を裏切らないように、求められた以上の成果を必ず持っていこうと毎週頑張った。つらかったけど、まだ明らかにされていないことを自分の手で進められている実感もあり充実していた。アメリカの大学院は研究したり論文を書かなくても卒業が可能である。それでも研究の世界に飛び込んでくる学生はよほど熱量があるか(良い意味で)変な人ばかりなんだけど、そういう人たちと肩を並べて毎日頑張るのは本当に貴重な経験だった。研究内容は、後述するように卒業後もCMUとの共同研究ができることになったためまだ詳しくは言えないが、動的解析の仕組みを使うことで実世界の脆弱性を自動で見つけるような研究をしていた。帰国後もしばらくはこのトピックを継続する予定である。Defenseリサーチオプションでは、最後に集大成として研究成果を発表する場であるDefense(いわゆる修論発表審査会)がある。自分のときは環境に恵まれていたこともあり、ディフェンスの練習では20人ぐらいの教授やPhDの前でのリハをさせてもらってたくさんコメントをもらえたりした。ディフェンス本番においても、日頃からTAやCTFといった活動を積極的にやってきたおかげか、色んな方から気にかけてもらえていたと思う。前日から続々と応援の連絡が届いたときは泣きそうになったし、当日も多くの方に来てもらえて、審査員の教授だけではなく多くの生徒とも活発な質疑もすることができた。これには指導教員も驚いていた。Defenseのときに自分の強みだと認識できたことの一つはプレゼンテーションスキルだった。コースのグループワークと違い、自分でゼロから資料を作るディフェンスでは、想いのすべてを入れ込むことができ、特に資料の完成度には関心された。企業経験や日本でのプレゼン経験がしっかり活きているな、と感じた。プライベートと研究はしっかり分かれていて、教授の家に招待してもらってBBQをしたり、毎週のランチミーティングで色んな話題をディスカッションしたり、とても楽しく研究生活を過ごすことができた。何より、教授とコネクションを作れたことは大きいと思っていて、大学のいろんなところに推薦してもらえたり人との繋がりの接点が増えたりと、様々な機会をもらうことができた。自分の性格として、求められているレベルに関わらず、自分の納得がいくまで突き詰めて考える癖がある。exploitでどうにかRCEまで到達してからレポートを提出したりしていた。いうところが気に入られたんだと思う。PPPのアドバイザーをやってる教授に。jobとしてクラス内で自分のレポートを公開してもらったりするだけでなく、来期のセキュリティ講義でTAをやってくれないか、と直々にオファーをもらうことができた。英語力にも不安がありネイティブな学生に引け目を感じるかと思っていたけど、努力をすれば平等に認めてもらえるし、CMUの中でも十分通じることがわかり、大きな自信につながった。ペンシルベニア州の法律とCMUの規定によると、TAワークを全てこなすために求められる英語力はTOEFLのSpeakingで28点以上必要だった。自分の英語力では不足しているため、大学に迷惑を書けるのではないかと思い最初は辞退をしたい旨返信をした。先生からそれでもTA試験を受けてみたらどうかと説得されて受験してみたところ、試験に通ってしまい正式なオファーをもらうことができた。入学当初はTAなんて思いもよらなかったのにこんな機会をもらえたことは大変幸運だったと思っている。TA"という旨の文面をもらったときに心臓が止まりそうになったのを覚えている。TAワークアメリカのTAは、課題や試験のGradingの権限が全面的に与えられていること、講義の内容を超える課題内容などへの質問に答えるためにオフィスアワーを設けていること、教官の授業とは別にTAが補講を開催することなど、日本の大学とは少し違っている。講義に対する正確な理解やより広範囲での技術スキルが求められるが、TAに選ばれることが名誉であることに加え、履歴書にも記載できる業績であること、教授の研究に関わるチャンスであること、特にTA業務を通じて講義内容により深い理解を得られることから、多くの生徒がそのチャンスを望んでいる。Securityという授業のTAになることとなった。この授業では、220人ぐらいの生徒に対し8人のTAがついていた。仕事内容は週に2時間程度のオフィスアワー、課題や試験の採点、オンラインでの質問回答、補講の開催、などである。この授業はIntroductionという名にもかかわらずあまりにも難しいと有名なタイトル詐欺の授業であった。overflowとは、からROPまでの講義を終わらせ、直後の課題でret2libcやASLRバイパスといったタスクを課しまくるという具合である。overflowについて問われるという鬼畜ぶりである。バイナリを読んだことのない生徒がobjdumpで泣きながらアセンブリを読んでいる風景はこちらとしてもつらかった。いう苦しい学生を助けることは自分の経験にもなった。何時間も闘った末にシェルを取れたときに嬉しくて泣き出してしまった女の子がいて、このときはなんというか、こういう成長の場というか脳汁の出まくるあの瞬間に直接かかわれることができて良かったなぁ、としみじみ感じたことは忘れられない。こんな具合の授業が週3時間で4か月続くため、セキュリティのビギナーであってもセメスターが終わる頃には結構な知識量が付いている。立派に育つ成長の過程を身近で見れたことは良い経験になった。以下にTAで経験した仕事をざっと書いておく。授業への出席は必須ではなかったが自分はやっていた。オフィスアワーでは教えないといけないわけなので自分の記憶をアップデートするためと、たまに講義中の質問への回答をすることで授業に貢献できるからである。アメリカの授業では質問がとても活発で、授業もインタラクティブなものも多い。見ていて感じたのが、活発に先生とコミュニケーションを取ろうとする学生のほうがスキルが高い傾向にあると感じた。試験への出席は一番つらかった。TAも生徒と同じく試験問題が事前にはわからないため、試験開始と同時に生徒以上の速さで問題を理解し、「この設問ってどういうこと?」みたいな質問へ正確に回答できるよう備える必要があった。英語の読解速度がネイティブに敵うわけないのでなかなかハードだった。これはもうやりたくないことのうちの一つかもしれない。hourこれはTAのメインタスクの一つだと思っている。生徒はわからないことを何でも聞きに来ることができる。課題だったり授業の不明点や過去問の質問、趣味や将来、故郷の話だったりと、色々な話をした。自分はこの時間のおかげで大勢の生徒と仲良くなれたと思っている。生徒ごとに問題点を把握し、考えの道筋をうまく誘導してあげるようなスキルが身に付いたように思う。3人ぐらい生徒が来るという話を聞いた時には驚いた。自分のときには20人以上来るようになっていたからだ。英語が一番弱いにも関わらず、やり方がしっかり通じていて成果を出せていることに嬉しくなった。講義の中で最も難しい箇所が自分の得意分野だったことで、即座に的確なアドバイスを提供できていたからではないかと思う。毎週めちゃくちゃ大変だったが、最終日にはケーキを持ってきてもらえたり、多くの教え子と絆が深まったことは言うまでもない。hourの補助版みたいなものだが活発だった。1日に10~数十件の質問がポストされるのでTAが空き時間を見つけては回答していった。このおかげで英語でのやり取りへの抵抗がだいぶ減ったと思う。Recitation課題提出の前には、理解を促したり共通的な質問を解消することを目的としてTAが補講を開催することになっていた。2名のTAで60分程度補講を行い、残り30分をフリーなオフィスアワーとして質問に回答する具合で進めた。debugやバイナリ解析、Exploitを行うケーススタディや資料を作ったりした。相談しながら内容を考えたり実装していくことは楽しかったし、とても良い機会をもらえたと思う。採点はすべてオンラインで行うことができ、選択問題は自動で採点する基盤があった。記述問題は自動というわけにはいかない。採点の効率化のため、採点時はTAに生徒でなく問題を割り振り、毎回同じ問題を200人分採点していった。採点基準を作り、全生徒に公平に採点することを心がければそれほど難しくない。時間のかかったところだが、TA同士や教員とワイワイ相談しながら採点していくのは面白かった。タイムマネジメントできるキャパは若干超えてた気がするけど、TAの経験はとてつもなく濃いキャンパスライフをもたらした気がする。後から聞いたところ、この授業はTAから見てもNightmareだと言われる授業だったらしいが、Teachingの経験やTA同士の繋がりなど、得るものも大きかった。CTFCMUは、世界でも有数の強豪チームであるPPPというCTFチームを擁しており、メンバは現役生およびOB/OGで構成されている。チームメンバは漏れなく強い。このチームに所属させてもらい経験を積んだことが、自分にとっての大きな糧となった。Securityの授業である。overflowの課題で自分のWriteupの解法がウケたようでチームミーティングに招待された。日本人は1人もいなかったし少しビビったが、こんなチャンスを逃してたらギャグだ。悩む前に飛び込んで参加させてもらった。ここからミーティングやCTFに参加していくうちに自分の居場所が出来上がっていった。きっかけは授業の課題だったが、思いもよらないところで誰かが見てるものだし、そこから繋がるものだなぁと感じた。チーム運営PPPでは夏休みや冬休みを除きキャンパスで毎週チームミーティングがある。議論する内容は週によって違うが、金曜から開催されるCTFをプレイしたり、PPPが開催するCTFのディスカッションをしたり、参加したオンサイトCTFの報告会だったりする。時にはWriteupの重要性を議論したりと内容は多岐にわたり、どれも面白かった。チームでは良い意味でメンバ同士の距離感が近く、とても打ち解けやすい。プレイ中も、初心者・プロどちらも居心地よく過ごすことができる環境だった。チーム内ではpwnを中心とした練習コンテンツのCTFがあり、この上位者にはセメスターの終わりの表彰式でTシャツがプレゼントされるなどの特典もあるため、モチベーションを保ちながら空き時間で自分のスキルを上げていくことができる。写真は2位を取ったときにもらったTシャツ。基本、学業がメインのメンバがCTFをプレイするため、授業の大変なスケジュールの中時間を確保して参加することになる。みんながどうやって時間を捻出するのか最後までわからなかったし、その話題を出しても「謎だよねー」とみんながみんな言うのでこの謎は最後まで解けていない。色々な大会に参加した。空いている人は誰でもWelcomeなので好きなときにプレイして抜けて良い。活発な議論が多いと思いきや、コミュニケーションはSlackの1チャンネルのみである。あとはピッツバーグ組はだいたいキャンパスに集まってやってるのでそこで会話があるぐらい。和気あいあいとしていて緊張感は少なく、純粋にプレイを楽しめるのが良いなぁと感じる。チームがこの大会にかける想いは大きく、この大会に関しては入念な準備を行った上でラスベガスで長丁場を闘う。この経験を通じてチームメンバとの距離がぐっと縮まったし、期間中ずっと一緒にプレイする中でチームのことがもっと好きになった。2018の運営を経験したり、PlaidCTFのプレイテスティングをするなど、チームで開催するCTFに積極的にかかわることができた。最高にクレイジーな仲間たちとバイナリ解析したりディスカッションしながら協業するのは本当に忘れられない思い出になった。チームの雰囲気が良くて、とても居心地がよかった。チームメイトは本当に良い人たちで、自分が卒業するときも壮行会をしてくれたり、ミーティングでお別れをしてくれたり、こんな英語ダメダメな自分に対して「戻ってきてくれよ」とか「また来年のDEFCONも来てくれよ」とか言ってくれたのは本当に嬉しかった。入学前はチームに所属できるかもわからなかったし、DEFCONをメインメンバで出れるとも思ってなかった。このチームのメンバとして活動できて良かったなぁ。俺、もっと強くなるよ。留学で得た財産の一つは人との繋がりだと思う。TAではTA同士でとても仲良くなったし、何より多くの生徒と親しくなることができた。たくさんのアクティビティに誘ってもらえたし、最後の登校日に多くの人から激励をもらったのは泣きそうになった。CTFは言うまでもなくチームメンバと深く繋がることができたし、研究で教授との繋がりができたことも大きかった。帰国後も個人的に研究ができることになったこともそうだし、ことあるごとに教授から機会をもらえる。magazineに載る推薦をもらったりした。どれも受動的に授業を受けて卒業するだけでは得られなかったものだけに、自分を信じて突き進んで本当に良かったと思う。英語の弱い日本人でも、ちゃんとやれるぜ!あと、これは留学後半になるけど、英語でコミュニケーションを取れていることで自信がついたことは、人脈の形成に拍車をかけた。最初は英語ができないことで会話中も無意識的な引け目を感じていたが、対等に話せているなと思えてからは純粋に会話を楽しめるようになり、世界がクリアになった。これは米国生活後半での変化だったので、もっと早くこういう風にできればさらに楽しめたのになぁ、と強く思う。いう自分の変化も今までの繋がりを通して気づけたことだ。この発見も自分が活動してきた結果だし、大きな財産だ。これから先月、すべてのカリキュラムを終え、無事CMUを卒業することができた。CMUとの研究は、ありがたいことに卒業後もリモートで続けることができる。少なくともどこかのカンファレンスに通すところまで続けていけるのでは、と思っている。研究オプションを取ろうと飛び込んでみた甲斐があった。仕事は4月から日本の会社でセキュリティ関連のことをする予定である。残念ながら詳しいことは書けないが、昨年末に面談をしたところ、どうやらCMUで学んだことを発揮できる仕事ができそうだ。社費で留学した恩義もあるし、しばらくは同じ会社で頑張ってみて、しっかり実績を作っていこうと今のところは思っている。自分の能力をどこでどうやったら活かせるのだろう、というところは社内に限らず今後も常に意識していこうと思う。どちらにせよ学んだことを最大限に発揮しつつ、継続して知識を吸収できる環境に身を置き続けるつもりである。さいごに今回の留学で後悔があるとすれば、英語力だと思う。手を伸ばしてチャンスを掴んできたけど、そこから先の部分で自分の英語力で可能性を狭めていた部分はあると感じる。言語に壁がなくネイティブと対等に渡り合えたら倍は深い経験ができただろうな、と正直に感じた。逆を返せば英語力が低くても濃厚な留学を経験できるということも実証できたと思う。こんな英語がへなちょこな日本人が相手にされるのだろうか、という大きな不安があった。技術を通して仲間と繋がることができ、言語が満足でない自分にも壁を越えて対等に接してもらえていることが、ふと涙が出そうになるほど嬉しかった。日々を過ごすうちに不安が自信に変わった。かけがえのない仲間に多く囲まれ、この留学を心から楽しめるようになった。チームメイトと朝までCTFを頑張ったり作問の議論をしたり、壮行会までしてもらって固く握手を交わしたこと。TAで多くの教え子に慕ってもらえて、世界中の人たちと純粋に笑いながら談笑ができるようになったこと。世界でも有数のセキュリティの研究所でトップレベルの研究ができたこと。技術が言語の壁を超越することを身をもって体現できたこと。この思い出は間違いなく自分の生涯で忘れられないものになったし、今後辛いときにも自分を奮い立たせる燃料になるだろう。先週までいたピッツバーグなんてギャグみたいに寒いし、授業も笑えるほどの課題量だ。研究では毎回多くを求められるし生活リズムも崩壊してる。寒さを忘れに、るくすくん達とマイアミやキーウエストに逃げたりもした。俺はピッツバーグが好きだしCMUが好きだ。辛くも楽しみながら学んだ米国での大学生活が終わった。これからもこの分野で少しずつ成長しながら楽しんで貢献していきたいと思っている。日本で学んできたこと、海外でも通じたよ!まとめCMUはいいぞ。modeの暗号文解読と改ざん現在、ブロック暗号ではAESが広く使われている。~夏の陣~昨日まで、都内某所でpwn合宿に参加してきたのでその感想を。feedme月別アーカイブ参加グループテクノロジーセキュリティはてなブログをはじめよう!f_rinさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。