コンパクトでない空間

a good experience become even better when it is shared

B3が選ぶおすすめ春ITインターン

私が個人的に注目している2017年春ITインターンシップリスト。
応募終了したものも、応募中のものも、まだ今年の情報は出ていないものもごった煮。
王手が多いけど中小もあるよ。
基準は、情報系インターンで、基本は二週間以上で、インターン生を粗末にしなさそうなところ。
要求される技術力や内容の分野は選り好みしてないので雑多です。
これもおすすめだよっていうのあったらコメントでもtwitterのDMでも教えてください。
企業さんのセルフプロモーションも歓迎します。
2016/12/23時点。

これでバズっちゃって今年だけ応募が殺到とかになったら私涙目なんだけど、まさかそんなことはないと信じて公開するよ。
もし万が一バズっちゃったら不憫に思った人、なにかおごってください。

セイコーエプソン

キャリタス:
セイコーエプソン株式会社 | キャリタス就活2018 | 新卒学生向け就活準備・就職情報サイト

公式:(2016年夏のものしか掲載なし。内容は5daysと2weekは同じだが、新たに追加されたCコース、Dコースの情報なし)
インターンシップ|セイコーエプソン採用|エプソン

勤務スタイルが柔軟な企業ランキングで13位にランクインした企業。
5days、2weekは募集終了。
2weekコースはテーマの選択肢が幅広く、ファームウェア開発からアンドロイドアプリ設計まで様々。
「チームよりもっと大きい単位に対してインターン生は一人」だそう。
面接もまったく圧迫面接などではなく、リラックスできるように配慮してくれていて、節々からインターン生を尊重してくれているのを感じる、とても信頼できる企業。
必ずしもプログラミング経験がある人ばかり来ることを想定しているわけではないので、経験豊富なインターン生が集まってガリガリコード書くのを想定している人には物足りないかもしれない。
まだ募集しているCコース、Dコースは前半をオンラインで、一日か二日だけ実際に集まって行う一週間のインターンシップで、Cコースは女性向け。

NTTコミュニケーションズ株式会社 IoT Festival -for students -

公式:
インターンシップ/イベント情報 | 「すべてを変える技術を世界へ」NTTコミュニケーションズ 2017新卒採用サイト

ハッカソン。三週間。千葉大学は完全に授業期間と被っている。チームでも参加も可
ちなみに二週間の職場体験型インターンシップもある。こちらは先ほど紹介したエプソンインターンシップともろかぶり。
インターンシップの内容はプラットフォームサービス、SaaS、セキュリティその他もろもろのサービスの設計・構築・検証・運用などだそう。
1dayインターンも結構レベルの高い内容に見える。
私のサークルサーバーで使っているDockerの1dayインターンシップもあるよ。
要求される技術力は、任天堂やpixivほどではないけど、エプソンよりは要求される、ぐらいの印象。

チームラボ

公式:
チームラボ インターンシップ通年募集 / teamLab

IT界隈ではインターンシップ先として大人気の企業。
もはや説明する必要もないんじゃなかろうか。
倍率は絶対高い。間違いない。
高い技術力をもつ技術者集団。
多分国産googleみたいな感じなんだろう。
インターンシップとしては、要求される技術力も倍率も最高峰なんじゃなかろうか。
googleとどっちが上かな?ってレベルだと思っている。
このへんにくるともうMicrosoft Student Partnarsとかも視野に入る人とかが応募するものなんじゃないだろうか。

pixiv SPRING BOOT CAMP

公式:(去年のもの)
インターンシップ「pixiv 2016 SPRING BOOT CAMP」参加者募集開始 - ピクシブ株式会社 採用サイト

まだ募集要項が出ていない。
ガチWeb系らしい。
交通費、宿泊費だけでなく一日10000円のお給料が出る。
でも、お給料なんかよりもっとpixivインターンに受かった経歴自体の価値がでかいのではなかろうか。
エントリーシートに今まで作った作品とか要求されるタイプの、経験値のあるガチ勢が応募するガチなやつ。
だってGithub選考がある。怖い。
プログラマーだけでなくデザイナーとしてのインターンシップもある。 pixivはもう投稿者としても閲覧側としても長いことどっぷり浸かっている/使っているサービスだから思い入れはあるけど、ちょっと私では経験不足かもしれないなと思う。

任天堂

公式:
採用情報:任天堂 インターンシップ 2017

例年2週間程度のインターンシップをやっているはずが、今年は忙しかったらしく、募集開始も遅かったし期間も1dayになってしまった。
任天堂のお金で京都旅行にいけるインターンシップ
ポケモン好きとしては気になる。
参加者は口を揃えてよかったと言う。とても評判がいい。
1dayになったのが、選考難易度上がるのか下がるのか。

ソニー

公式:
Sony Japan | Sony Curiosity Lab | INTERNSHIP インターンシップ

規模がでかい。
テーマが細かくわかれていて、そのテーマごとに結構な人数が採用される。
期間がエプソンとNTTとかぶる。
あまりにも一日違わずびったり被るので、なんだか国立大学や中学の私立御三家の入学試験を思い出す。
おそらくエプソンよりもっと各テーマごとに独立している感じで、求められるスキルの基準も、働き方の雰囲気もテーマによって全然違うのだろうと思う。
これだけあれば誰でもひとつぐらいは合うやつあるだろってぐらいいっぱいある。
募集期間が比較的長いので、エプソンやNTTの結果が出てからでも応募できるかもしれない。

イサナドットネット

公式:
インターンシップ(学生向け) │ isana.net,inc

通気募集で期間は5日間。
事前学習もサポートしてくれたり、給料が出たり、学業の都合を重視してくれたり、とても丁寧に扱ってくれる印象がある。
内容はペッパーくんで動くAndroidアプリの開発。
といっても、なんだか企業に言われたものを作るのではなく、好きなものを作らせてくれるんじゃないかという雰囲気すらある。
経験や技術力は問われず、その人のレベルに合わせた内容を考えてくれるそう。
なんでそんなにサービスいいの?
大丈夫?イサナドットネットさんの負担になりすぎてない?持続可能なの?

ダイキン

公式:
インターンシップ情報 | ダイキン工業株式会社

募集終了。応募しそこねた。
これもエプソンとNTTとソニーと期間が被るやつ。
ここでテーマが見れる。
情報系のテーマは少なめ。

データセクション株式会社

キャリタス:
データセクション株式会社 | キャリタス就活2018 | 新卒学生向け就活準備・就職情報サイト

通年募集で期間は一週間から一ヶ月。
通年募集なので期間はわりと自由がききそう。
Deep Learning専門ってところが特徴的。
研究とかでDeep Learningやってる人は研究でやったことと同じことをやるだけで面白くないかもしれないけど、やってない人にとっては面白いのでは。
Deep Learning独学で学ぼうって思ったら結構大変だけど、それをタダどころか交通費支給で教えてもらえるのであればとてもお得な気がする。
一度ぐらい、Deep Learningのコードを書いてみてもいいかなってちょっと思ってる。

セキュリティスペシャリスト試験受けましたレポ

実は秋季セキュリティスペシャリスト試験を受けていた。
セキュリティスペシャリストというのは、IPA(情報処理推進機構)が行っている国家試験、情報処理技術者試験のうちのひとつで、それのレベル4にあたる。
ITパスポートと情報セキュリティマネジメント試験がレベル1、基本情報技術者試験がレベル2、応用情報技術者試験がレベル3で、位置づけ的にはその一個難しいやつ、ということになるが、実際にはレベル4の試験の中では比較的簡単と言われているらしい。
毎年4月と10月にそれぞれ春季と秋季の試験を行っていて、先日結果が発表され、合格がわかったので堂々とブログに書けるようになったというわけ。

特段セキュリティに興味があるというわけではなかったのだけれど、例によって彼氏に「一緒に受けよう」と誘われて、まあサークルでもサーバー管理係とかやってたし、勉強してみてもいいかなー、ぐらいの気持ちで受けた。
結果的に、受けてみてよかったと思う。
将来仕事に活かすことになるかはまだわからないし、どちらかというとセキュリティの専門職につくような気はしないのだけれど、ある程度情報を学んでる者なら一般常識として知っておいていい話はあったのかな、と感じた。
先日ブログにも書いた千葉大学のセキュリティバグハンティングコンテストに参加しようと思ったのも、この試験を受けてセキュリティを少し身近なものに感じるようになった、というのもある。
当時はとりあえず講習を受けてみるか、程度の気持ちでしかなかったものの、結局はじめてみたらノリノリになって、これをきっかけに今まであまり話したことがなかった人とも話すきっかけが得られたし、出会えた人も多くいること、今後もっと仲良くなれるかもしれないことまで含めると、相当影響を受けているとも思える。
例によって私は勉強がうまいわけでも好きなわけでもなく、試験対策勉強法なんて書けるほどのものじゃないので、感想とか、どういう人ならおすすめできるかとか、そんなことを書こうと思っている。

午前は小問が並ぶ選択問題、午後は長文を読んで答える筆記と選択が混じった問題なのだけれど、長文問題が結構読んでいて面白かった。
過去問等をいくつか解いていると、大体長文の流れは決まっている。
まず、自社で出しているITサービスとネットワーク構成が説明されたあとで、同業他社や自社でセキュリティ上の問題が発覚したというところから話ははじまる。
そこで、主人公の企業は外部のセキュリティの専門家か、内部の専門家に調査を依頼する。
調査の結果、適切にパッチが管理されていない、利用しているフレームワークセキュリティホールが見つかった、等の問題がなにかしら見つかる。
そこで、企業は対応策を検討し、最適と思われる対応をとって、問題が解決しました、めでたしめでたし、と物語は結末を迎える。
これが読んでて結構面白い。

まず、企業の規模や、システムに個性が感じられて、読んでて実在してる企業みたいに思えてくる。
登場人物も、セキュリティに疎い人から専門家まで様々なレベルの人がいて、調査を命じたり調査の結果の報告を聞く上司も、担当者より詳しいこともあれば、担当者の方が詳しいこともある。
調査や改革の規模もセキュリティマニュアルを作りなおすレベルのものから、一部改善するにとどまるものまでいろいろあるし、セキュリティの問題のレベルも、致命的なものから、緊急は要さないけれども改善したほうがベター程度のものまでいろいろある。
フレームワークセキュリティホールが見つかった時は、パッチを当てる対応策とファイアーウォールに制限をかける対応策を検討し、通常はパッチを当てるのが教科書的な対応だけれども、それじゃ動作テストに時間がかかりすぎるという理由でファイアーウォールの対応策を採用していて、とても興味深かった。
そんな感じで、話がリアルで読んでいてクスッと笑えるものがあったり、登場人物に感心させられたり、勉強になったり、面白い。

さて問題の方はというと、そんなに高度なことは要求されない。
といっても、ある程度知識を要求はされるのだけれど、どちらかというと専門家の調査の結果や対応策を読解できるかどうか、が問われているという印象だった。
専門家の見解や対応策の部分に下線がひかれていて、「なぜそう言えるのか答えよ」とか「どうしてこの方法で対策になるのか説明せよ」とか、そういった感じで、答えは文章中からほぼ抜き出すような形で答えられる場合も半分ぐらいある。
この資格をとれば、すぐにセキュリティの専門家になれますよ、という資格ではない。
どちらかというと、セキュリティの専門家に調査を依頼した際、その結果の報告を理解することができるようになる、という感じだ。

実際、千葉大学セキュリティバグハンティングコンテストで、セキュアスカイさんの様々なお話、講座を聞いていると、なかなか調査を依頼した会社に問題点を伝えるのは難しいのだろうな、と感じた。
セキュリティ上の問題を指摘したら、「それはバグではなく仕様です」と言われた、なんてエピソードもあったし、必ずしも全てのITサービスを提供している会社がセキュリティの基礎知識がある人を雇っているわけではないのだろう。
こういったサービスを提供したいという思いで会社を立ち上げ、技術はこれから学ぼうという段階の会社であっても、セキュリティは必要になる。
右も左もわからないが、とにかく挑戦してみようという思いで、セキュアスカイさんに調査を依頼する会社もあるのだろう。
どんな会社でもセキュリティを向上させようと依頼に来た時点でお客さんはお客さん、セキュリティ会社としては話が通じないからといって無下にはできない。
サイバー・ノーガード戦法なんて揶揄される、セキュリティにはコストをかけず、ガバガバのまま放置し、万が一があったら法律になんとかしてもらおう、なんて会社より百万倍頑張っているといえる。
セキュアスカイさんの担当者は一生懸命噛み砕いて説明しようと努力することだろう。
しかし、調査を依頼した側に調査結果の説明を理解する最低限度の技術力がなければ、なかなか話は進まない。
説明から教訓を得、セキュリティを向上させるには、会社の側にも技術力が必要なのだ。
何百万と支払い、打ち合わせや報告で時間を割いたにも関わらず、結果的にセキュリティは大して向上しない、根本的に解決しない、なんてことが起こりうるのだろう。
そんなときに、セキュアスカイに調査を依頼した会社側にセキュリティスペシャリストをとった人が一人でもいれば、会社側も無駄に時間をかけずに調査結果をあますところなくセキュリティの向上に反映できるし、セキュアスカイさんもスムーズに話が進んで大助かり。
なんて素晴らしいセキュリティスペシャリスト試験。
進○ゼミバリの活躍っぷりだ。
まあ、全部勝手な想像でしかないのだけれど。

勝手な想像で多方面に失礼な書きまくった気がするが、勝手に会社名を出してしまったセキュアスカイさんを代表としたみなさんが寛大な心で許してくれることを期待したい。
進研ゼ○も。
進研○ミなんて茶化して言ったけれど、冗談抜きに実際そういう場面で活躍するのだろうと思う。
私は社会に出たことなんてないので、現実を見たわけれはないのだけれど、少なくともセキュリティバグハンティングコンテストのハンターライセンス取得講習会の講座では、「あ、これセキュリティスペシャリストで見た!」はわりとあった。
まあ、だからといってすぐわかるわけではなく、「勉強した覚えはある!けど、なんだっけ?」となるのが、現実ではあるのだけれど、少なくとも聞いたこともないよりはとっつきやすいし、少し調べれば思い出せる。

来春からは新試験で名前が変わり、セキュリティスペシャリストに代わる試験は情報処理安全確保支援士試験、となるらしい。
春、秋、どちらとも受験が可能なので、次回受けようと思ったら2017年の4月に受けられる。
ちなみに、セキュリティスペシャリストもしくは情報処理安全確保支援士に合格した上で、更に登録料2万ぐらいと、講習費何万だかを毎年とを払い、講習を受講すると、情報処理安全確保支援士を名乗れるらしい。
なんかかっこいい気がするが、かっこいいという理由だけで支払うには高すぎる。
セキュリティスペシャリストについては、2018年8月までに登録しないとそれ以降は登録の資格を失うらしいが、情報処理安全確保士に関しては一度合格すればいつでも登録が可能なようなので、これから受験する人は必要になったときに登録すればいいのではないかと思う。
これを読んで興味を持った方がいれば、1/12には申し込みを開始するらしいので、是非来春に受験してみてはどうだろうか。

OWASP ZAP 参考にしたウェブサイトまとめ【自分用メモ】

Downloads · zaproxy/zaproxy Wiki · GitHub

http://bughunt.chiba-u.jp/stage1/

XSS - OWASP ZAPで Basic認証を通す方法 と User Agentを変更する方法 が知りたいです(8919)|teratail

HTTP クライアントを作ってみよう(5) - Basic 認証編 -

WEB系情報セキュリティ学習メモ: OWASP ZAPのスクリプトを作ってみる part2

OWASP ZAP で送信されるリクエストに自動で独自ヘッダを追加する方法 - yukisovのメモ帳

OWASP ZAPでBASIC認証を突破する - Unresolved

HelpStartConceptsAuthentication · zaproxy/zap-core-help Wiki · GitHub

HelpUiDialogsSessionContexts · zaproxy/zap-core-help Wiki · GitHub

OWASP Zed Attack Proxy (ZAP)で脆弱性検査する方法 - yukisovのメモ帳

標準出力と標準エラー出力とパイプとリダイレクションまとめ(2016年9月9日現在実に怪しい) - Qiita

OWASP ZAPを触ってみる - Qiita

おまけ about:preferences#advanced

千葉大学主催ハッキングコンテスト

セキュリティバグハンティングコンテスト、スタート!!

概要

少なくとも千葉大学内ではそれなりに話題になっていた、国内大学初の試み、セキュリティバグハンティングコンテスト。
その講習会兼バグハンティングの開会式が今日行われ、参加してきた。
詳しいことを知りたい人は公式ドキュメント

http://www.chiba-u.ac.jp/general/20161124secbugcon.pdf

を読んでいただくとして、私の方からは最低限の簡単な説明だけしようと思う。

セキュリティバグハンティングコンテストとは

大学側の目的

セキュリティバグハンティングコンテストの公式ドキュメントを見ると、「セキュリティの向上」に加え、「人材育成を目指す」と書いてある。

セキュリティの向上、が指しているのは、学生たちにいわゆる、ホワイトハッカーとしての働きを期待しているという意味だろう。
ホワイトハッカーとは、Webサイトの管理者に依頼を受けて、Webサイトのセキュリティ上の問題(脆弱性と呼ぶ)を探し、報告する人のことである。
そこで見つけてもらった脆弱性を参考にセキュリティを強化するのだろう。
あるいは、このコンテストを開催することで、Webサイト管理者のセキュリティ意識が向上することも考慮しているのかもしれない。

人材育成については、学生にセキュリティに関心を持ってもらいたい、ということなのだと思う。
実際、このイベントでは私が今日参加したハンターライセンス取得のための講習会に加え、事前に初心者向け講座も一度開かれていて、できる限り門戸を広く構えようという姿勢は強く感じた。

ちなみに、Webセキュリティの専門家というのもいて、そういった人たちに診断をお願いすると、何百万という単位でお金がかかるらしい。
このセキュリティバグコンテストだって、時給換算で相当稼いでいる教授や社長たちが大勢携わって何回も審議を重ねて企画されているとは思うので、単純に値段で比較して安上がりと言えるのかはわからないが。

あとは、話題を作りたい、リベラルで革新的な千葉大学のキャラ付けをしたい、という意図もあるのかもしれない。
事実、事前告知の段階からメディアの取材を歓迎する旨を表明している。

とにかく、一石四鳥を狙うような、チャレンジングな企画だ。

コンテストの流れ

バグハンティングと言うと健全そうだが、実際やっていることはハッキングと紙一重だ。
今回は千葉大学の許可のもと、千葉大学の特定のサーバーに対して攻撃をしていいことになっているが、普通はこのような攻撃を仕掛けた場合は犯罪だ。
学生が身につけたばかりの技術を試そうと軽い気持ちでよそのサーバーをめちゃくちゃにしてしまったら、コンテスト自体が責任を問われかねない。

この辺の問題について、このセキュリティバグコンテストでは慎重にシステムが作られていて、今日の講習会に出席し、倫理面法律面技術面についての講座を聞いた人のみが、ハンターライセンスを取得し、コンテストへの参加件、ひいては千葉大学のサーバーへの攻撃権を得られることになっている。

ちなみに、このハンターライセンス、かなりクオリティが高く、いい紙に凝った幾何学模様がテカテカのインクで印刷してあって、このコンテストを開催している団体C-csirtのリーダーの今泉教授のサインもしっかり入っている。
実際問題、参加した人の名簿だけあればいいわけだが、ソフトなウェアで形のないものを扱うIT関係のイベントだからこそ、こういう形に凝るところ、遊び心があっていいと思う。
もしかしたら、子供気分でうっかり許可のないサーバーに攻撃しちゃったりしそうなお転婆さんも、こんな風にライセンスとして賞状を渡されたら、しゃきんと背筋が伸び、責任を持った行動を取るようになるかもしれない。 f:id:saho-london:20161216041311j:plain

協力会社

このコンテストは、全面的に株式会社セキュアスカイ・テクノロジー(以下セキュアスカイさん)に協力してもらっているようだ。
ハンターライセンス取得講習会講師にしろ、採点官にしろ、いたるところでセキュアスカイさんの名前が見える。
セキュアスカイさんは、前述したようなWebセキュリティの審査を専門に行っている会社なのだが、乗口代表取締役の開会の挨拶によると、Webセキュリティは最近注目されはじめた分野で、需要に対して人材の供給が足りていないらしく、セキュアスカイさんは学生の育成に注目して力を入れているらしい。
講座にしろ、イベントの運営スタイルにしろ、常に丁寧に「学生さんに教えたい」「学ぼうという意欲に応えたい」という姿勢を見せてくれて好感が持てた。

私は当初、元から凄腕ハッカーのような人たちが賞を独占し、私のような素人は審査員の眼中になく参加賞だけもらって帰ることになるのだろうと思っていたのだけれど、どうやら建前だけでなく本気でセキュリティ素人に頑張ってもらいたいらしい。
レポートの審査基準も、単純にバグをいくつ見つけたか、ということだけでなく、いかにわかりやすく伝えるか、という形式的な部分、コミュニケーションとしての側面も重視するということだった。
本当に実践でセキュアスカイで働けるような、セキュアスカイのお客さんにセキュリティの問題をきちんと伝えられるような人を求めているのだろう。

学生の立場から見て

私のようなセキュリティアマチュアからしたら、前述の通り素人に丁寧に教えてくれるこのイベントは学習の機会として興味をひかれるものではあった。
おそらく、高度なハッキング技術を持ちながらも、法律や倫理に縛られそれを持て余している学生にとっても、合法的にその技術をふるい、企業や社会に自分の技術をアピールできるこの機会はきっと魅力的なものだろうし、セキュリティどころか今までほとんど通信の仕組みなんて知らなかったって学生でもついてこれるように丁寧にカリキュラムが組まれている。
実際のところ、これに参加することでどれほど自分の技術が磨かれるのかはまだわからないし、それは自分次第だと思っているけれど、参加する学生も想定より多かったようだし、今のところこの企画は学生にも受け入れられているように見える。

私の周囲でも、時間の都合がつかなかったりの事情はありつつも、興味を示している友人はたくさんいたし、今回のハンターライセンス取得講座には参加できなかったが後日行われる補講に参加したいと言ってる人もいた。

講習会に参加しておいてレポートは提出しなくてもペナルティはないし、学生側にデメリットは特にない。
最初からレポート提出しないつもりで講習会に参加してもいいし、正直私も講習会に参加する以前は、レポート出すかどうかはあとで決めるとして、一応ハンターライセンスもらうだけもらっておくか、程度のつもりだった。
ちなみに今は、レポート出すだけで参加賞もらえるらしいし、よほど忙しいとかでなければ枯れ木も山の賑いということで、自分にできる分だけやって提出しようかなー、という方に心が傾いている。

唯一不満があるとすればレポートの受付期間が、講習会が終わってから一ヶ月と短いことだ。
しかも、時期的に年末年始とかぶる。
冬コミともかぶる。
個人的には、インターンシップの申請とも被るし、いくつかの講義の課題の締め切りともかぶる。
私は関係ないが、学部4年と修士2年は卒論/修論ともかぶる。
このせいでだいぶ参加人数減ってるんじゃないかという気がする。
十分期間があったらこの1.5倍は来てたんじゃないだろうか。
おそらくこれは初めての開催だったから開催時期が予定より遅れたなんて事情もあるんじゃないかと邪推している。
次に開催するときはぜひ、十分な期間を用意してほしいなと思う。

講習会の感想

講座は、石井副学長(千葉大学)から法令・倫理のついてと、長谷川常勤技術顧問(セキュアスカイさん)から技術についての二本立てだった。
ちなみに参加者はざっと見た感じ40人ぐらいだっただろうか。乗口代表取締役は、もっと少ない10人ぐらいかと思っていた、とびっくりしていた。
そうかな、私は思ったより少ないと思ったぞ。

法令・倫理

法令・倫理については、このコンテストとは関係のなく一般的に、どこからハッキング、犯罪になるのか、という話が主だった。
だいたい、「管理者がアクセスさせたくないと思うものにアクセスしたらダメ」とか「通信に関する情報はだいたいなんでも傍受したらダメ」とか、言われなくてもそれはそうだ、と思うような内容だった。
私は「言わなくてもわかると思った」は言い訳にならないという主義なので、当たり前でもこういうことを確認するのは大切なことだと思う。

技術面

これについては非常に人材を育成しようという強い意思を感じた。
頼まれたから断れなくていやいや教えてるとかじゃない、わかりやすく教えようと、どうしたら伝わるのか最大限工夫しようと努力しているのだと思う。
事前に行われていた初心者向けの講座では、パソコンやインターネットの基本的な仕組みを扱ったらしく、今回の講座の技術面ではその応用、セキュリティに特化した話だった。
IPAの応用技術者試験とかセキュリティスペシャリスト試験とかで見たような内容もあったけれど、それらの試験では「こういう概念を利用して攻撃をしてくる人がいるので、こうしておけば安全です」と攻撃の手法はざっくりと、対策については具体的に問われるのに対して、今回の講座では、攻撃の手法の方を具体的に教わった。

その中で紹介されていた書籍類がこちら

それから、学修すると役に立つものとしてWebアプリケーション診断ツールが3つ紹介されていた。

正直一か月の間、普段の授業等もこなしながらこれらすべて目を通したうえで攻撃を試みレポートを書くのはとてもじゃないが無理そうだ。
誰か詳しい人がいたらどれを優先すべきなのか教えてほしい。
というかかなり教育的なイベントなのだから、開催側の誰かにコンタクトとって尋ねてみればおすすめしてくれるのかもしれない。

セキュリティバグハンティングコンテストに参加しておいてなんだけれど、私は正直ハッキングとか怖いし異世界だし自分は触れることはないだろう、と思っていたので、実際に演習用ウェブサイトでSQLインジェクションクロスサイトスクリプティングを実行し、ハッキングに成功したときは、なんだか新鮮な体験をしたという気持ちだった。
用意されたバグでもちょっとはわくわくするんだ、製作者の意図していないセキュリティホールを見つけたりしたら、その喜びはひとしおだろう。

本番で使うウェブサイトは、実際に現在も使われている千葉大学の学生ポータルだ。
なんだって。もし攻撃に成功してデータ消し飛ばしたりしちゃったらどうするんだ。
まあ、コンテストなんてやらなくてもワールドワイドウェブに公開されているウェブサイトは日夜ハッキングの脅威に晒されているのだから、未熟な学生攻撃者が40人ぐらい増えたところで大したことないのかもしれない。
果たしてそうなのかな。天才ハッカーと呼ばれる人たちは総じて若いし、もしかしたらそういうヤバい人もこの中には一人や二人いるかもしれないぞ……?

ちなみに学生ポータルはバグが多いことで有名だ。
今年度から採用されたシステムだが、4月当初はバグの大喜利なんて言われてtwitterにバグ画像が溢れていたし、今もマシになったとはいえ動作は安定していない。
前期の成績証明書は平均GPAの表示が狂っていて、訪ねてみたら学生ポータルのバグが原因らしい。
講習会に参加する以前は、学生が、少なくとも私みたいな素人がそう簡単にプロが作ったWebサイトの脆弱性を見つけられるわけないし、形だけ調べて「バグは見つかりませんでした」と報告しておしまい、だろうと思っていたのだけれど、本番サイトが学生ポータルだと俄然事情が変わってくる。
なにかしらは見つけられる気がしてきた。
少なくとも、私が見つけなくても誰かは見つけるだろう。
実際、私の友達も早速脆弱性を見つけたと言っていた。
あらら。

考えたこと

ACCSサーバ事件

法令・倫理面での講座で、2003年のACCSサーバ事件の話があった。
セキュリティイベント中に、発表者がACCS(コンピュータソフトウェア協会)のサーバーにその場でハッキングをし、不正アクセス禁止法違反として検挙された、という話だ。*1
どうやら、以前にも同様の手口で個人的に個人情報を入手していたらしく、発表時がはじめてだったわけではないことを講習会後に調べて知った。

一言目の感想として、かわいそうだ、と思った。
もちろん、不正に個人情報を入手しているのだから、単純に犯罪だし、なによりその手法を公開したら他のひとも簡単に真似できてしまうのだから、まずい。
検挙されるだけのことはやっていると思うし、仕方ないとは思う。 ただ、それにしても、高い技術を持っている人なのに、悪者みたいに扱われてしまったことが純粋に感情としてかわいそうだと、残念、もったいない、と思う。

技術に伴うだけの倫理観、と一般には言われるもの。
私は、「倫理観」という言葉の「空気読め」「常識的に考えろ」感が嫌いなので、社会と共に生きていくためのスキルと呼ばせてもらうけど、そのスキルがあれば、彼は高い技術を持つ人として評価されたはずだ。

このエピソードは他の学生にとっても印象的だったようで、この講習会のあと一緒にご飯を食べに行った人も、「ACCSサーバ事件、かわいそうだと思った」と言っていた。

才能

サーバーにダメージを与え損害を出すブラックハッカーを、いかにセキュリティの向上に貢献するホワイトハッカーに引きこむか、という問題に、私は以前から関心があった。
今回の講習会では比較的もともとハッカーではなかった人材をホワイトハッカーに育てるという側面に焦点が当てられていたが、演習をしてみればしてみるほど、ブラックハッカーとしての素質がある人間にはセキュリティ技術では敵わないのだな、と感じた。

実は、一年ほど前、はじめて元ブラックハッカーと友達になった。
彼は子供がポケモン赤でミュウを出しているのとはレベルが違っていて、何百万と簡単に稼いで見せ、トラブルを起こしまくり、高校を危うく退学になりかけたマジものだ。
法に縛られず、欲求のままに貪欲に技術を磨いてきた人間に、お行儀よく必要だと言われて勉強をした人間が技術力で適うわけないと、彼を見ていると思う。

少なくとも、技術面で最先端を争うのはきっとそういうやつらで、私達がセキュリティのためにできることがあるとすれば、彼らが発見した手法を真似して試してみたり、それをセキュリティに活かすため管理者に、社会に伝わるように言葉にしたり、そういう部分なのだと思う。
たとえそれが限られた極小数の才能にあふれた人間でなくてもできるような、地味な仕事でも、それが社会に求められいる限り稼ぐことはできるし、それだって立派な生産性のある仕事だと思うけれど、ハッカーの素質がある人たちがみんなみんなブラックハッカーになってしまってホワイトハッカーにならなかったら、きっと立ち行かなくなってしまう。
そんな気がする。

理解のある社会へ

それに、何より、そういう優れた技術を持っていて尖っている人たちが、社会に居場所があると、受け入れられてると感じられるような社会の方が、尖ってる人たちだけじゃなくて、きっとみんなにとって生きやすい。

ブラックハッカーは、人とコミュニケーションを取らないわけじゃない。
そうだったら、私は彼と友達になれていないし、彼自身ブラックハッカーだったころにも組織に所属し、組織だってハッキングしていたと言っていた。
多分、ハッカーの根底にあるのは、人に技術を認められたいという思いだ。
これはハッカーに限らず、エンジニアでも、クリエイターでも、みんなそうだと思うけれど。

彼らは孤独に生きているわけじゃない。
彼らを理解し、認めてくれる人たちのコミュニティに住み、そのコミュニティに認められるように自分の技術を用いるのだ。
自分の金銭のためだけに、あるいは自分一人で楽しむためだけにハッキングをしている人はきっととても少ない。
もしかしたら誰よりも他人を必要とし、求めているのかもしれないとすら思う。

ブラックハッカーの平均年齢は低いらしい。
30代とか20代とかそんなレベルじゃない。
中心となって活動しているリーダーは中学生とか、小学生とかだってこともざらにあるそうだ。
年をとるにしたがって、社会に目を向けるようになり、社会と共に生きる術を探しはじめるのだと思う。

おそらくASD気質のある子供は、他人の気持ちを理解できなかったり、言語能力にクセがあり、誤解されやすかったりで、集団に馴染めない上、ひとつの物事への集中力が高く技術を身につけやすいので、そういったブラックハッカーになりやすいのではないかと思う。
ホワイトハッカーを増やす試みは、きっと発達障害の理解と切っても切れない関係にある。

今回のセキュリティバグハンティングコンテストは、天才を対象にしたものというより、もっと一般の人に広く間口を開こうとしているように見えたので、ここでこんな話をするのは趣旨が違うかもしれないけど。
今後、Webセキュリティの意識はどんどん上がっていくのだろうと思う。
そうなったときに、尖った天才ハッカーを排除する方向ではなく、お互いに歩み寄り受け入れて共にセキュリティを向上させていく方向に進んでほしい。

おまけ。王様達のヴァイキングを布教したい

ちなみに、天才ハッカーの話と関連して、私が最近とても推しまくって、親や友達に布教している漫画を紹介しておこうと思う。
王様達のヴァイキング、という漫画だ。

主人公の是枝くんはまさに典型的な天才ハッカー
ハッキング以外のことはからきしダメで、肝心なことはいつも言葉足らずで人に伝えられないし、お風呂も嫌い、手触りの悪い服も嫌いで、いつもおんなじお気に入りの服を来て、テーブルの下にもぐりこむか、体育座りの姿勢でパソコンをいじっている。

ハッキングを日常的に繰り返し、唯一の親友とペットのニゴロ(256)以外には理解者がいなかった是枝くんが、エンジェル投資家坂井さんと出会い、社会の中に居場所がほしい、人に認められたいと不器用ながらもがく物語。

坂井さんたち、是枝くんが出会っていく人たちがみんないい人で、是枝くんの真っ直ぐさと高い技術を評価し、応援してくれる。
是枝くんも坂井さんも周りの人たちも、それぞれ個性豊かに真っ直ぐ人に向き合う優しいいい人たちで、読んでいてとても爽快な気分になれるし、最初はお互いのことを理解しきれず、ぶつかったり遠回りしていた坂井さんと是枝くんが、徐々にお互いを理解し、補いあう建設的ないい関係を築いていく様も、過剰に美化されておらず、現実味があっていい。

あと、正直是枝くんがASDにしか見えない。
この漫画が流行ったらASDへの理解も広まるんじゃないかと思うぐらいASD性を感じる。
そんなわけで、特に「天才」や「アスペルガー」とどう付き合ったらいいのかわからない、という人たちに読んでほしい漫画だ。

残念ながら、まんがワンでの掲載は終わってしまっているが、各種サイトで冒頭だけの無料試し読みはできる。
冒頭だけじゃこの漫画の魅力は十分には伝わらないのではないかとも思うけれど、まずは読むだけでも読んでみて、そしてもし興味を持ってくれたら単行本を買ってほしいと思う。

sokuyomi.jp

Amazonアソシエイトを試してみました。以下のリンクをクリックしていただけると私にお金が入るらしい。
買う側にとってもポイントが付く分定価で買うよりお買い得だと思うので、購入を検討している方は是非。

*1:追記:コメントを頂いたように事実の説明に誤りがあったため、修正しました。

Ubuntu 14.04のwifiが繋がらない問題

環境

状況

$ lspci
00:00.0 Host bridge: Intel Corporation Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register (rev 0e)
00:02.0 VGA compatible controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 0e)
00:14.0 USB controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series USB xHCI (rev 0e)
00:17.0 SD Host controller: Intel Corporation Atom Processor E3800 Series eMMC 4.5 Controller (rev 0e)
00:1a.0 Encryption controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Trusted Execution Engine (rev 0e)
00:1b.0 Audio device: Intel Corporation Atom Processor Z36xxx/Z37xxx Series High Definition Audio Controller (rev 0e)
00:1c.0 PCI bridge: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 1 (rev 0e)
00:1c.1 PCI bridge: Intel Corporation Atom Processor E3800 Series PCI Express Root Port 2 (rev 0e)
00:1f.0 ISA bridge: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Power Control Unit (rev 0e)
00:1f.3 SMBus: Intel Corporation Atom Processor E3800 Series SMBus Controller (rev 0e)
01:00.0 Network controller: Broadcom Corporation BCM43142 802.11b/g/n (rev 01)
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader (rev 01)

NICは下から二番目のBroadcom Corporation BCM43142 802.11b/g/nが入っている。

$ ifconfig
lo        Link encap:ローカルループバック  
          inetアドレス:127.0.0.1  マスク:255.0.0.0
          inet6アドレス: ::1/128 範囲:ホスト
          UP LOOPBACK RUNNING  MTU:65536  メトリック:1
          RXパケット:1641 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:1641 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1 
          RXバイト:133954 (133.9 KB)  TXバイト:133954 (133.9 KB)

loしかいない。eth0もeth1もいない。

$ iwconfig
lo        no wireless extensions.
$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

どうしてこうなったかはわからないけど、タイミング的にあからさまにカーネルのアップデート以降ダメになった気がする。

kate@Kaede:~$ cd /boot
kate@Kaede:boot$ ls
System.map-3.19.0-25-generic  config-3.19.0-56-generic
System.map-3.19.0-30-generic  config-3.19.0-58-generic
System.map-3.19.0-32-generic  config-3.19.0-59-generic
System.map-3.19.0-33-generic  config-3.19.0-65-generic
System.map-3.19.0-39-generic  config-3.19.0-74-generic
System.map-3.19.0-42-generic  config-4.4.0-47-generic
System.map-3.19.0-43-generic  grub
System.map-3.19.0-47-generic  initrd.img-3.19.0-25-generic
System.map-3.19.0-49-generic  initrd.img-3.19.0-30-generic
System.map-3.19.0-51-generic  initrd.img-3.19.0-32-generic
System.map-3.19.0-56-generic  initrd.img-3.19.0-33-generic
System.map-3.19.0-58-generic  initrd.img-3.19.0-39-generic
System.map-3.19.0-59-generic  initrd.img-3.19.0-42-generic
System.map-3.19.0-65-generic  initrd.img-3.19.0-43-generic
System.map-3.19.0-74-generic  initrd.img-3.19.0-47-generic
System.map-4.4.0-47-generic   initrd.img-3.19.0-49-generic
abi-3.19.0-25-generic         initrd.img-3.19.0-51-generic
abi-3.19.0-30-generic         initrd.img-3.19.0-56-generic
abi-3.19.0-32-generic         initrd.img-3.19.0-58-generic
abi-3.19.0-33-generic         initrd.img-3.19.0-59-generic
abi-3.19.0-39-generic         initrd.img-3.19.0-65-generic
abi-3.19.0-42-generic         initrd.img-3.19.0-74-generic
abi-3.19.0-43-generic         initrd.img-4.4.0-47-generic
abi-3.19.0-47-generic         memtest86+.bin
abi-3.19.0-49-generic         memtest86+.elf
abi-3.19.0-51-generic         memtest86+_multiboot.bin
abi-3.19.0-56-generic         vmlinuz-3.19.0-25-generic
abi-3.19.0-58-generic         vmlinuz-3.19.0-30-generic
abi-3.19.0-59-generic         vmlinuz-3.19.0-32-generic
abi-3.19.0-65-generic         vmlinuz-3.19.0-33-generic
abi-3.19.0-74-generic         vmlinuz-3.19.0-39-generic
abi-4.4.0-47-generic          vmlinuz-3.19.0-42-generic
config-3.19.0-25-generic      vmlinuz-3.19.0-43-generic
config-3.19.0-30-generic      vmlinuz-3.19.0-47-generic
config-3.19.0-32-generic      vmlinuz-3.19.0-49-generic
config-3.19.0-33-generic      vmlinuz-3.19.0-51-generic
config-3.19.0-39-generic      vmlinuz-3.19.0-56-generic
config-3.19.0-42-generic      vmlinuz-3.19.0-58-generic
config-3.19.0-43-generic      vmlinuz-3.19.0-59-generic
config-3.19.0-47-generic      vmlinuz-3.19.0-65-generic
config-3.19.0-49-generic      vmlinuz-3.19.0-74-generic
config-3.19.0-51-generic      vmlinuz-4.4.0-47-generic

3.19.0-74-genericから4.4.0-47-genericにアップデートしたときにダメになったようなので、3.19.0-74に戻してみる。

Shift押しながら再起動で、grubの設定画面から3.19.0-74を選択して起動してみる。 参考:

Ubuntuでのカーネルのダウングレード - ひよっこエンジニアの日記

と、wifiがつながった。

$ uname -a
Linux Kaede 3.19.0-74-generic #82~14.04.1-Ubuntu SMP Fri Oct 21 15:44:07 UTC 2016 i686 i686 i686 GNU/Linux

確かに3.19.0-74-genericになっていることを確認。でも、これは今回一回限りなので、デフォルトがこれになるように設定する。

解決策

/etc/default/grubを以下のように変更

# GRUB_DEFAULT=0
GRUB_DEFAULT="1>2"

grubの画面にて2番目→3番目の順に選択するとこのバージョンになった。メニューは0から番号が振られているのでひとつ減って1>2と表記。 0から数えるか1から数えるかは環境によるとかいう話も聞いたような?気をつけてください。

$ sudo update-grub

で変更を反映。再起動すると無事wifiもつながり、unameコマンドでカーネルのバージョンも3.19.0-74になっていることが確認できた。

注意点

最初0番から数えるの忘れてて"2>3"にしたらMemTestが起動してびっくりした。Shift押しながら再起動したらどうにかなった。 どういうわけか、"Ubuntu, with Linux 3.19.0-74-generic"のような形で指定する方法ではうまくいかなかった。

参考

sweng.web.fc2.com

jewelbox.hatenablog.jp

Web管理係の引き継ぎをした振り返り

私はこの一年間サークルでWeb管理係をやっていたのだけれど、その引き継ぎが今日行われて、私は任期を終えることになった。思えば、一年前の今頃は基礎中の基礎であったpwdすら怪しいものだったから、ただのうのうと言われるがままに操作していただけのわりには、一年間で随分サーバー管理に詳しくなったものだと思う。それにしたって、まだまだひよっこではあるけど。

この一年間で、サークルのサーバー構成は随分と変わった。というより、M2の先輩のいかろちゃんが変えた。私が知っている限りは、先代、先先代ではサーバー構成の変更はほとんどなかったので、激動の一年を担当させてもらえたと思う。サーバー構築もansibleという構成管理ツール*1で自動化され、しかもそのansibleもgithubでバージョン管理*2されるようになった。今後サークルのサーバーに変更を加えたくなったら、直接サーバーをいじるのではなく、ansibleをいじり、そのansibleのバージョン管理を的確にgithubで行う必要がある。うちのサークルはサーバー管理サークルではないし、そもそもプログラマばかりでもない。次の代のみんながみんなそんな技術を持っているわけではなく、次代のWeb管理係も例に漏れず、一からのスタートだ。つまり、私の仕事はまだ全然終わっていない。私がいかろちゃんにそうしてもらったように、これからは私が後輩を育成していく番なのだ。とはいえ、いざとなったらいかろちゃんがなんとかしてくれる。この安心感は心強い。いかろちゃんといういい指導者、教育を受ける環境に恵まれたと思っている。

さて、以下はその後輩指導の第一歩として、今日の引き継ぎを振り返ってみようと思う。自分自身反省するためのメモのようなものだ。今日の引き継ぎには、いかろちゃんこそいなかったけれど、先先代Web管のkakiraさんも同席してくれた。話はまず、Web管理係って何をするの?というところからはじまる。

これはかなり難しい問いだと思う。障害対応、サーバー構成の変更、セキュリティの設定、議事録のアップロードを含めたHPの更新、etc。サークルのサーバーに関わることはなんでもやるのだ。ただ、忙しい中興味のないことを無理にやらせてもお互い得はない。そもそもサークルは仕事ではないし、それぞれができることをできる範囲ですればいいもの。だから、後輩がなにをどれだけしたいかを尊重するつもりだ、やらない部分は他のサークル員にも協力してもらうなどの代案をこちらで考える、と伝えたら、「なにができるようになるんですか?」という質問。これまた難しい。一年間、本業の学問やサークルの他の活動で忙しいなか少しずつ学んでいくのであれば、できるようになることももちろんあるが、できないことも多い。私はこの前SSL証明書の取得に伴うwikiの障害の原因が一人では特定できず、いかろちゃんの力を借りたし、サーバーの移転に伴い、会則の変更差分が移行されていなかった問題も、HPがansibleで管理されていないため直にサーバーにアップロードしなければならないことがわからず、いかろちゃんに質問をした。少なくとも私の一年での成長はこんなものだ。

今日の引き継ぎの目的は以下の三つだった

  • 議事録をアップロードできるようになってもらうこと。そのための環境構築

  • 後輩がサーバー管理にどのように関わりたいのかの希望の確認

  • 今後の予定決め

ひとつめに関しては、かなり苦労した。新サーバーでは、いかろちゃんがpython2*3で動くマクロを使って議事録を自動的にアップロードできるようにしてくれているのだけれど、それにfabric*4というライブラリを用いている。これが、私のUbuntu*5機では比較的あっさりインストールできたのだけれど、後輩のWindows7にはなかなか入ってくれなかった。

http://qiita.com/yuu116atlab/items/79f92dd38b79364b8e68 http://qiita.com/Kuchitama/items/18b63271bf706e34e8b1 http://k-holy.hatenablog.com/entry/2013/04/08/202042

これらの記事を参考にインストールしようと試みたものの、どうにもうまくいかなかった。最終的には、Microsoft visual c++ 9.**6が必要というエラーメッセージが出て、古いバージョンのC++を追加するのは危険、というkakiraさんの進言に従い、Windowsへのインストールは諦めることにした。代わりに、仮想マシンを立ててもよかったのだけれど、また仮想マシンの環境構築に時間がかかるので、サークルの予備サーバーのCentOS*7ssh*8で遠隔操作し、予備サーバー上から議事録をアップロードすることに決めた。しかし、CentOSへのインストールにも罠があり、fabricをインストールするのに必要なPyCrypto*9がインストールできない。

http://qiita.com/satoruf/items/6844755b6378fedde037

最終的に、kakiraさんがこの記事を見つけてインストールしてくれた。それから、コマンドコンソールからのsshもうまくいかなかったらしく、Tera Term*10を使ってアクセスしていた。Tera Termでscpもできるらしい。Tera Term、Windowsの良心だな、と思った。

というわけで、最終的には議事録のアップロードはWindows7からサークルの予備サーバーにTera Termのscpで議事録を送り、sshでログインし、pythonを動かす、という形になった。回りくどいことこの上ないけど、予備サーバーがインストール等のときに若干重い以外は案外ちゃんと動いてくれる。実際にアップロードも無事成功した。結果的にCentOSからアップロードすることになったことで、後輩にWindows7では使えないmv、pwd、lsなどの基本的なコマンド*11も教えられた。よかったよかった。今思うと、サークルの予備サーバーからアップロードした方が、今度毎年Web管理係が変わって行っても個々のパソコンの環境に依存せず同じ環境を使うことが出来るので、かえってよかったのかもしれない、という気もする。しかし、予備サーバーもなかったらLinux仮想マシンを立てるしか方法はなかったのか。fabric、ほんとにWindowsでは動かないのだろうか。なんというか、Windowsはサーバー管理にはつくづく向いてない。

今後については、現在会則が古い分+更新差分のpdf2つで管理されているので、古い会則の元となったTeX*12を更新し、githubでバージョン管理したいという問題に対応してもらおうかなと思っている。後輩にまずはgithubに慣れてほしかったので、その意味でもちょうどよさそうだ。新しく作った会則のpdfのHPへのアップロードまで手が回るかは怪しい。少しずつ段階を追って慣れて行ってほしいので、TeXのバージョン管理でいっぱいいっぱいのようなら、アップロードは私がやろうかと思っている。もし余力があれば後輩の現Web管理係にやってみてもらおうと思っているけど。

会則TeXなの?というのは誰に言っても突っ込まれるポイントだ。確かにTexは優秀な言語ではあるけど、会則を書くにはゴツすぎる。これから会則を変更する人たちは全員TeXを学ばなければいけない。正直私の目から見てもmd*13で十分だろうという気はする。mdを学ぶのはTeXを学ぶのに比べたらめちゃくちゃ簡単だ。TeXを学ぶ大変さが麻雀のルールを覚えるぐらいとするなら、mdを学ぶ大変さはババ抜きのルールを覚えるぐらいだ。それでもTeXを会則に使う理由はただ一つ、現行のものがなぜかTexで書かれているからだ。多分、会則が作られた当時まだmdが普及していなかったのだと思う。それか、書いた人がちょうどTeXがマイブームで使ってみたかったのかもしれない。とにかく理由は何であれ、私はそれをmdに書き直したくない。面倒くさいし、こういう堅苦しい書類ものはあんまり頻繁に大きく手を加えるものではない気もする。写し間違えて怒られたら嫌だ。これで、TeXが今時どこでも使われていないおわコン(死語)であれば、TeXで書かれた会則は負の遺産だし、早めにmdに移行してしまおうとも思うが、TeXは全然おわコンではなくまだまだ学ぶ価値のある技術なので、いい勉強になるのではないだろうか。そんな理由で別にTeXのままでもいいんじゃないかな、と私は思っているけど、いかろちゃんは気になるらしい。正直私はどっちでもいいので、現Web管本人がmdにしたいと思うのであればmdに直してもいいんじゃないかとは思っている。

*1:プログラミングした通りにサーバーの設定等を行ってくれる

*2:ファイルの更新履歴を保存しておいてくれる。変更によってなにか重大なエラーが発生したときに簡単に元の状態に戻せる

*3:わりとなんでもできるプログラミング言語

*4:離れたところにあるサーバーに通信するのに使うらしい

*5:WindowsMac等のOSと同じ働きをしてくれるもの。Linux系と呼ばれる

*6:c++というプログラミング言語のバージョン9シリーズ。今は14とか、古いもので11とかが主流なのでとても古い

*7:WindowsMac等のOSと同じ働きをしてくれるもの。Linux系と呼ばれる

*8:通信の方式のひとつ。暗号化されるのでセキュリティ的に安全

*9:よくわからないけど多分名前的に暗号化等に使うライブラリ

*10:Windows用ソフト。ssh接続をうまいことやってくれる

*11:ファイル構成を確認したり編集したりする方法の一つ。サーバーによく使われる低機能のパソコンでも使えるのでサーバー管理に必須

*12:数式等をpdfにするのに優れたプログラミング言語

*13:markdownというプログラミング言語。html、pdfなどの文書がめちゃくちゃ簡単に書ける

ハワイ大留学レポ~研究編~

 今月一日にハワイから帰国した。この前インド行ってたじゃん!とか言われそうだけど、インドから帰って三日後から、またハワイに飛んでハワイ大学に一ヶ月の短期留学をしていたのだ。学科の先生にハワイ大の先生と親しい方がいらっしゃって、その他にもたくさんの方々が学科間短期留学のために尽力してくださって、この留学は実現している。一年に一度お互いに二名ずつ学生を送り合うプログラムで、私たちは千葉大からの二度目の留学生だと言われた。留学プログラムの主な内容は、研究、授業の聴講。私はその他にも情報系サークルの見学もしてたけど、中でも一番貴重な経験は断トツで研究に携わらせていただけたことで、今回はその研究についてのレポートを忘れないうちに言語化しておきたい。

 私はビヨーン・ヒュースハンセン教授(Prof. Bjørn Kjos- Hanssen)の元で研究を手伝わせて頂いていた。ビヨーン博士の研究分野はオートマトンオートマトンは簡単に言えばパソコンのほんとの基礎の基礎の最低限の仕組みをモデル化したもの。情報系の、特に計算機科学の分野では大学二年生とかで習うような常識だろうけど、日本では数学科でオートマトンを習う学科は少ない。千葉大学の数学科はオートマトンを学べる貴重な学科だけど、それでも全員が学んでいるわけではない。留学中にやることを決めるために興味のある分野は何?と聞かれたときにはロジックとトポロジーと答えた気がするので、ロジックでもトポロジーでもないオートマトンの研究者のもとに配属されたのはなぜなのかわからない。オートマトンもかなり興味のある分野であることには違いはなかったし、結果的にとてもいい経験をさせていただいたので、これもきっと運命、巡り合わせなのだろう。

 研究を手伝わせていただいて、一番に思ったことは、「研究って、案外手の届くところにあるのかも」っていうことだ。もちろん、論文を書くのは決して簡単なことではないと思うし、数学で論文を書いている方々のことはビヨーン教授も含めとても尊敬している。数学の素養と、大変な努力の結晶が論文なのだと思う。それでも、以前の私が思っていたように、ほんの一握りの選ばれた人たちが人生をかけてようやくたどり着ける私にはまったく手の届かないものではなくて、私にもこれから頑張ればできるのかもしれない、と思ったのだ。

 手伝い、といっても具体的に私がやっていたことは、想像していたような具体的な実験や単純作業とは少し違うものだった。週に二回、チームのミーティングがある。最初は私とビヨーン教授と、研修生のような立場のヘイヨンさんの三人で、ビヨーン教授の部屋で行われていたけど、だんだん一人また一人と研究に興味をもった人が参加し、最終的には六人のうちその日空いている人四、五人が集まって空き教室でわいわい話す賑やかなミーティングになっていた。そのミーティングの中で、ビヨーン教授が研究について今考えていることや今後の課題を話す。すると、私や他のメンバーが、この部分の定義はどうなっているんだとか、こう考えたらどうかとか、そんなことをしゃべる。一時間から一時間半たってみんなのおなかがすいてきたらミーティングは終わり。そのままみんなで食堂に向かい、雑談をする。ご飯を食べ終わったら解散。しばらくするとその日のうちか翌日にビヨーン教授がメールでミーティングの内容をまとめたpdfを送ってくれる。私はそれを読んで、ふとしたときにぼんやり考えながら授業を受けたり他のことをしたりする。私のした「手伝い」はそんな生活だった。

 本当はミーティングでしゃべるだけが論文を書くことではもちろんなくて、ビヨーン教授がやってくださっていたtex*1化など他にもたくさんすることがある。私のした手伝いは、なんだか素人がプロの作った料理を味見して好き勝手感想を言うような、おいしいところだけやらせていただいくようなものだったと思う。それでも、素人紛いの発想が役に立ったこともあったようで、少しずつ完成していくpdfに私のアイデアが盛り込まれていくのを見ると、お膳立てされた留学プログラムなりになにかをした気分になった。たまたま今回は新しい論文のテーマを模索している研究段階だったから美味しいところをいただくような形だったけど、やることがほとんど決まっていたらまた違う当初想像していたような単純作業を手伝うことになっていたのかもしれない。この一ヶ月はひとつの論文が発表されるまでのスパンのほんの一部にすぎず、実際に論文を出すにはもっともっとたくさんのやることと苦労とがあるのだろう。それでも、少なくともアイデアにおいて、今の私でもある程度は通用すると、手も足も出ないわけではないと感じたことで、論文を出すというものが今までよりずっと実感を伴って見られるようになった。

 幸いなことに、日本に帰国してからも、チームとして連絡を取り合って研究の手伝いを継続させていただけることになった。これは、とても光栄で貴重でありがたいことだと思う。論文というものが、いかにはじまって作られて発表されるのか、そのひとつのサイクルを最後まで間近で見ることは、きっと私の将来に大きな意味をもつと思う。

 この留学の中で、ひとつ強く感動したことがある。それは、昼食中の雑談だ。最初はどこの食べ物がおいしいとか、あれはおいしくないとか話していたのだけれど、研究者が集まれば、自然と話題は数学や計算機科学に向かうのが性。誰の研究は厳密にはなんと呼ばれる分野なのか、とか、計算可能性とはどこからどこまでを指す分野なのかとか、すぐそんな話題にシフトしていく。私はもともと大勢で話すと日本語でだっていつ口をはさんでいいかわからなくなるし、やはり日本語ほどは英語は話せないので、話を振られない限り自分からは話さなかったけど、聞いているだけでもとても楽しかった。将来のために他の人から技術を盗もうとか、できるところを見せて自分の評価ををあげようとかじゃなくて、自然とただそれが楽しいから数学の話をする。楽しいから延々といつまでも話している。高校を卒業して数学研究会の友達と会わなくなってから、彼らがそれぞれの専攻に進んで数学の話をしなくなってから、時間に取り残されたようにずっと私が探し求めていたものがここにあったと感じた。小学生が恐竜やカブトムシに目を輝かせるように、私にとっては数学の話を聞かせてくれる友達は夢の詰まったとてもキラキラした宝物だ。あるいは、猿が木に登るように、ハムスターが狭いところに落ち着くように、私にとってはこれが、自分の生態に合った自然でストレスのない環境であるとも感じた。

 数学徒同士で数学の話をするのは、ビヨーン教授たちだけではない。同じロジックの授業をとっていたダニエルたちともよく宿題のことや授業のことで延々と議論をした。千葉大学にはあまりそういう話に付き合ってくれる友達はいない。なんとなく、みんな各々勉強していて、議論しながら学ぶ習慣はないように思う。私は、話し相手がいた方が楽しくて、勉強しやすくて、頭も一人のときより働く気がするんだけど、一緒に勉強しようと誘ってもあんまりみんな乗り気ではなさそうだ。みんなが一人の方が勉強しやすいと、一方的に教えるとかならともかく、一緒だと勉強しにくいと言うなら、それは尊重するしかないけど、なんだか寂しかったりする。できるだけ、一緒に数学を議論してくれる友達は大切にしたいし、そういう人がいる環境に身を置きたい。

f:id:saho-london:20161003081333j:plain

*1:数式をpdfにするのに優れたプログラミング言語