ふるつき

私は素直に思ったことを書いてるけど、上から目線だって言われる

高専セキュリティコンテスト #SCKOSEN で優勝した

奈良高専は insecure というチームで、 theoldmoon0602、 thrust2799、 kyumina、 miwpayou の四人で、高専セキュリティコンテストに参加しました。現地行きたかったけど申し込み失敗しました。

あと師匠がいねぇ。

これは二日間(実質24時間程度)の Jeopardy + King of the Hill なCTFで、 Jeopardy が 22問くらい、 KoH が 2問ありました。 KoH では 30点が 10分ごとに与えられます。

私チーム insecure はチームワークを遺憾なく発揮して、 3930 点で 1位(35チーム中)でした。私はそのうち、 1400 + 630 点を入れましたので、解いたものについて 簡単な Write up をします。

f:id:Furutsuki:20171022123605p:plain

jeopardy Binary[100] フラグを答えろ

バイナリが降ってくるので strings する

jeopardy Binary[500] OreNoFS

途中で追加された問題。31M くらいのバイナリが渡されて、これが独自FSらしい。めっちゃよなべしたけど解けなかった。最終的には解いた。

バイナリは GPT でパーティショニングされているということ。1クラスタ4096byte 単位で管理されていること。AllocationTableのサイズ、DirectoryEntry 構造体が示されていた。

最初は binwalk などしていたが、 何かしらの zip ファイルが存在していて、 flag.png_MAXOSX/.flag.png が入ってることしかわからず、 unzip はできなかった。

二日目になってやっと参考になるサイトを見つけて ( http://memes.sakura.ne.jp/memes/?page_id=2303 ) 、AllocationTable がどのような存在かを理解したので、ごちゃっとパーサを書いたらunzippable な zip を取り出せました。

方針としては、

  1. DirectoryEntry をみつける
  2. これは ほしいzipのEntryだって知ってるので、 offset を見て、バイナリを読み、AllocationTable から次のクラスタのオフセットを手に入れる
  3. これ以上なくなったらそれを吐く

です。

import struct
import os
import codecs
import sys
from io import SEEK_CUR,SEEK_SET

LBA_SIZE = 512


f = open("raw.dmg", "rb")

f.seek(512, SEEK_CUR) # skip mbr
f.seek(512, SEEK_CUR) # gpt header (primary)

f.seek(32, SEEK_CUR) # partition entry

first_sector = struct.unpack('<Q', f.read(8))[0]
last_sector = struct.unpack('<Q', f.read(8))[0]
f.seek(8, SEEK_CUR)

partition_name = f.read(72)
partition_name_str = codecs.decode(partition_name, encoding='utf_16_le')
if len(partition_name_str)>0:
    print("------------")
    print("first sector: {}".format(first_sector))
    print("last sector:  {}".format(last_sector))
    print("name: {}".format(partition_name_str))
    print()

f.seek( first_sector*LBA_SIZE, SEEK_SET)



AT = f.tell()
print("ALLOCATION TABLE IS {:0X}".format(AT))

allocationTable = []
for _ in range(8192):
    v = f.read(2)
    v = struct.unpack("<H", v)[0]
    allocationTable.append(v)

print("----------------")
print("Allocation Table");
for i, v in enumerate(allocationTable):
    if v == 0:
        continue
    # print("[{0}]   {1:0X}( {1} )".format(i, v));
    pass

DIRENTS = f.tell()
print("DIRECTORY ENTRIES AT: {:0X}".format(DIRENTS))

binvalue = []

while f.tell() < (last_sector+1)*LBA_SIZE:
# read directory entry
    tell = f.tell()
    magic = f.read(1)
    if magic != b'\x0f':
        f.seek(31, SEEK_CUR)
        continue

    name = f.read(8)
    ext = f.read(3)
    size = struct.unpack("<I", f.read(4))[0]
    offset = struct.unpack("<H", f.read(2))[0]
    attr = f.read(12)
    reserved = f.read(2)


    print("-----")
    print("@ {:0X}".format(tell))
    print("magic: {}".format(magic))
    print("name: {}".format(name))
    print("ext: {}".format(ext))
    print("size: {0}({0:0X})".format(size))
    print("offset: {0}({0:0X})".format(offset))
    print("attr: {}".format(attr))
    print("resv: {}".format(reserved))

    nextoffset = offset
    while nextoffset != 0xffff:
        f.seek(0x1000 * nextoffset + AT, SEEK_SET)
        b = f.read(0x1000)
        binvalue.append(b)

        print("atvalue: ", end="")
        print(allocationTable[nextoffset])
        nextoffset = allocationTable[nextoffset]
        if nextoffset >= len(allocationTable):
            break

        
    print()

    break
o = open("kore", "wb")
for b in binvalue:
    o.write(b)

きったねぇ

jeopardy Crypto[100] かんたんな符号化2

これはほとんど thrust2799 が解いた。

わけのわからん文字列が与えられるけど、 base64 -d すると16進値っぽい数字列になる。これを decode('hex') してやると KP から始まる文字列になるので、エンディアンをひっくり返してあげて、保存する。 file をかけると Word 2007 と出るので、 libre Office Writer で開くと 縦にフラグが書いてある。コピーして適当なファイルに保存して cat | tr -d '\n' した。

jeopardy Network[100] 寝坊気味のコンピュータ

pcap が降ってくるので strings してうまいことつなぎ合わせる

jeopardy Network[100] ログインしたいんだ!

pcap が降ってくるので strings してBase64っぽい文字列を見かけたら base64 -d する

jeopardy Web[100] ログインせよ

ログインフォームがあるのでユーザ名 admin、パスワード 'or'a'='a と入力する

jeopardy Web[100] 灯台下暗し

ログインフォームと、ログインのロジックをPHPで書いたものが表示されるので ざっと眺めて login.db みたいな名前がひっかかる。アクセスすると sqlite dbファイルが降ってくるので apt install sqlite3 して sqlite3 login.db する。 .schema で users というテーブルだけがあることがわかるので select * from usersすると admin のパスワードがフラグになっている。

jeopardy Web[200] Web1

難読化された javascript がある。適当にBeautifyして処理を一つずつ追ってやる。すると DOM を書き換えるしょりと、別のことをしている処理が存在することがわかる。 別のことをしている処理が怪しいので単体で実行するように書き換え、余計な分岐をはずしてやるとフラグが手に入る。

jeopardy Web[200] Web2

いわゆる Javascript puzzle。解き方が何処かに乗ってないかと思って調べたら burningCTF でまったく同じ問題が出題されていることがわかったのでWriteUpをみながら真似をした。

KoH 通信を解析しろ

pcap ファイルが降ってくる。サイズはそこそこ。みると、幾つかの ssh ログインとたくさんの TCP SYN がある。ssh はよくわからないIP同士で通信していることが多い。TCP SYNは 10.201.1.101から10.201.1.102 へのもの。最初はポートスキャンかなと思っていた。

ちょっとだけある HTTP パケットにフラグが書いてあり、さらにバイナリが存在することが示唆される。フラグに port knocking とあるので TCP SYN のうちACKが帰ってきたものを真似て port knocking してやると a.out が手に入る(port knocking しなくてもいいという説がある→作問者がいるって言ってた)。

フラグは thrust2799 が手に入れ、私が port knocking してみれば、と言った。 thrust2799 はバイナリ読めないと開始前から何度も言っていたので、私が解析することにしてファイルを貰った。

radare2 で見ていたがわかりにくかったので Bokken を入れてる miwpayou にも解析してもらった。どうやら a.out は 8081番で待ち受ける fork型のサーバで、fork した先でstrncmp や strlen を使い、一部で popen していることがわかった。

gdb が存在することを思い出したので set follow-fork-mode child して b do_workして、fork後の処理を追う。 strncmp では recv した文字列を SCK と比較していることがわかった。さらに次では recvした文字列+3を popenに突っ込んでいることがわかった。

そこで試しに SCKwhoami と送ってみたところ ubuntu というレスポンスが来た。 SCKls → SCKcat README → SCKecho insecure >> flag してKoHになった。

余談だけど SCKkillall a.out したらサーバからのれすぽんすがなくなった。これを運営に報告したらしばらく経って復活した。復活して SCKwhoami したら root だった。


SECCON まわりのコンテストって教育的な問題が多いですよね。高専生のレベルが上ってもっとヤバゲな問題も出てきてほしいです。

それにしても楽しいコンテストでした。来年も参加したいものです。

あと #procon28 で悔しい思いをしたぶんこっちで晴らせてよかった。

最後ですけど

  運営の皆さんお疲れ様です。ありがとうございました。

  弊学のお方、休日出勤させてしまい申し訳ありません。優勝したので許して。

  ちーむめいとの人々。さいこう

Wayland は ~/.xprofile を読んでくれない

~/.profile~/.xinitrc もよまない。

おいおい、じゃあ環境変数どこに書いてやればいいんだよ。 ~/.bashrc に書いてもいい。これが一番楽でしょ。

あとは /etc/environment 。ここは読まれる。

最近 Ubuntu 17.10 にしたらデフォルトが Gnome3 on Wayland で fcitx が chrome 上でうまく動かなかったので、 /etc/environment

XMODIFIERS="@im=fcitx"
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx

って書いたらうまく行った。

Fcitx - ArchWiki

に書いてあったよ。普通に ~/.xprofile 読んでくれてもいいと思うし、個人のスタートアップスクリプトなんでもいいから一個読めるようにしといてくれりゃあいいのに

#procon28 にいってきた 

procon28 に行ってきた

この記事は、高専プロコンが嫌いな私が、いろいろ難癖をつける記事です。

「俺たちはプロコンに行ったらまず真っ先にバグを確認する」

本年で一番推してるラノベであるところの、「俺たちは異世界に行ったらまず真っ先に物理法則を確認する」へのリスペクトを最大限に発揮したチーム名で、全国高等専門学校プログラミングコンテストの競技部門に参加してきました。チームメイトはスーパーコンで一緒に組んでたクラスメイトと、一つ下のかわいい男の子です。

結果を端的にお伝えすると、「準決勝12位(くらい)で敗退」でした。

おいおまえパズルやめろ

昨年の競技部門の悪夢を憶えていますか。俺は憶えてるぞ。なんだあの人力は。なーにがプログラミングコンテストじゃ。(きくところによると高専プロコンは過去にもいろいろな悪夢を産んでるらしい。サイコロとかね)。

昨年、私たち奈良高専は「複合機」を引っさげて競技部門に参加し、人力で予選を突破したのち(バッテリーがうまく複合機につながらなかったんよ。焦った)、準決勝で適当な解を印刷、一瞬だけ場を沸かせた後退場しました。あの大会では、n-1解法(ガチャガチャとやってピースが一個以外すべて枠内に収まるような配置を探す)が横行し、出場者、聴衆、運営に対して、大きな傷跡を残していきました。

……なんで翌年、おんなじようなルールの競技をやらせるんだよ。

やりたくねえんだよ俺はあれが嫌いなんだ。パズルは解きたくねぇんだよ。

自分たちが解けない程度の雑魚であることを棚に上げてるのはわかってますが……。

とにかく、今年のルール発表を見た瞬間に私に押し寄せた絶望がおわかりか。またパズルだよ……。いやだ……。

問題作成側もいろいろ配慮はしてくれて、「すべての頂点がグリッド上に配置される」「ピースの形状はQRコードで配布される」という、コンピュータで解きやすい問題になっていましたが、だけど僕はこのパズルを解くための何を作る気持ちもうまれなかった。

別に競技で完全回答できたから楽しかったとか思ってないんだからね。成功体験(?)に負けたりしないんだから。

競技の成績

予行はよく見知った問題だし楽勝でしょw! と思ってましたが、実際にパズルを組み立てる練習をあんまりしていなかったのでいろいろ苦戦して、あと、形状情報のQRコードが分かれている想定を指定なかったのと、x座標y座標を逆に読んでいたのとでぎりぎりに解き終わりました。このときは入力をVimでがががと編集して使いましたけど、席に戻ってから急いでまとめて読めるように修正をかけました。

予選はどうだったんだっけ……。形状情報をとりあえず読んでみたけど、ソルバが行き詰まって、しかたなく配置情報を開けてみたらソルバが解いたところがあっているということがわかった気がします。それでもいっこ開けて、ソルバに正しい情報を入力してたけどばぐばぐし始めたので諦めて配置情報を全部使って人力したら、予選通過ぎりぎりだったはず。八位とかかな。

この日の夜にこのままじゃ負けると思ってソルバの修正をやろうとしてた(ピースの結合条件を緩めてたはず)んだけど眠気に負けて二時間くらいねたはず。

準決勝ではとにかく形状情報と配置情報1を読んだ。ソルバでやってみようかと思ったら反応しなくて、よく見たらNullPointerExceptionしてた。なんだおいおい、と思ってちょっと詳しく見たら、昨晩変更した箇所から未確認のバグが湧いて出てきていた。何が「俺たちはプロコンに行ったらまず真っ先にバグを確認する」だよ。ソルバがUndoできなくなったのでやむなく配置情報を3まであけて人力に方針変更。チームメイトが人力してる間に、わたしはソルバを何度も起動し直していろいろなパターンを探していた。

いくつかソルバが新情報をもたらしてくれたのでなんとかACして、ふえぇって言いながらソルバを適当に回してたら、形状情報だけで解答がでた。おいおい読めねぇよ。このなんかぐちゃあってなるのは既知の修正できてないバグで、回避策としてUndoがあったんだけど、Undoを封じられた結果コレですよ。

f:id:Furutsuki:20171009174617p:plain

チーム紹介動画

運営としてはこれは成功だったんですか。私ら一個も見れてなくてクソつまんないんだけど。ところで弊チームの紹介動画見てくれ。ウチの動画リーダーまじすげぇから。

学生交流会

去年も思ったけど出場するチーム毎でチーム組んでも交流につながらねぇよなぁ。上位陣にはやたら豪華な商品があることを学んでいたのでがんばりました。一位だよ。バグってなんですか。俺も知らねぇよ。確認なんかしません。2万円もらったけどバグがでました。

競技部門公募

その場にいなかったのでTwitterの聞きかじりですが、競技部門の内容、次回は公募するんですか? 個人的にはがっかりですね、運営頑張ってくれよ。というかこれ、解法を考えてから問題を投稿すればいいのでは(?)

次回

来年は順調にいくと五年生なので(最近学科主任に楯突いてるのでちょっと進級不安になってきた)、プロコンしてる余裕なさそうです。というか私はあんまり高専プロコン好きじゃないんだ。俺が勝てないから。あと競技が不遇なのと審査員が匿名なのが嫌。

でも、いざ身を引くとなると、少しさみしいものですね。高専プロコン、3位までに入って泊をつけるくらいしか参加意義が無いと思ってたのに。あとさくらのVPSのクーポンな。さくらさんどうしたんですか、高専プロコンは魅力的ではなくなってしまいましたか。

なんか書き忘れてたら書き足します。コレ書いてる途中にめっちゃ喉痛くなってきたし明日は寝こむ。やっと高専プロコンが終わって自分のやりたいことしたりアニメ見たりできるんだよな。やったー。

ことのは・アムリラートをやった

ことのは・アムリラートという百合ゲームをやった(とりあえずエンディングの一つにたどり着いた)ので短いポストを書きます。

sukerasparo.com

あらすじ

凛という女の子が唐突に異世界にやってきてしまいます。そこはいままでいた場所と瓜二つなのですが、 1.空がピンク色(作中で一度だけバラ色という表現もでてきたはず) 2.使われている言葉(文字も)がまるで違う という世界です。

途方に暮れていた凛ですが、Rukaという女の子に助けられ……

という感じです。

短い感想

面白かったです。Rukaかわいい。このゲームを作るのはめちゃめちゃ大変だったと思うのですが、よく出来ていました。でも相関詞の学習の部分は無限につらいです。はやくストーリーの続きを見たくて身が入らないし、ちょっと勉強して憶えられるものでもなさそうです。面倒ならセリフを聞くだけでも良いかも。

と、いいつつ、こんなことも言いました。偉そうだなぁ

Juliamo について

凛が迷い込んだ場所で用いられていたのは Juliamo という言葉でした。これは私たちの知る Esperanto と酷似した言語ですが、細部には違いがあるようです。もっとも大きな違いは、文字でしょうか。Esperantoで用いられる文字はラテン文字とそれにハットがついたものなのですが、Juliamoで用いられる文字は似て非なる文字です。私はこのフォントが大変気に入っていて(gはあんまりすきでは無いですが……、あとbを無限にwと間違えます)、ゲームを解析してでもフォントファイルを抜き出してやる、という心意気だったのですが、↑のURLできちんとフォントファイルが提供されていたのでありがたいことです。

これは完全に話がそれますが、juliamoフォントで、juliamo文字が全角英文字に割り当てられていることや、ハット付き文字が入力しづらいのは不満です。普通に半角文字でよかったし、 cx -> ĉ というような合字処理もぜひ欲しいところでした。まあこれは自給したのでよいです。

ゲームを遊んでどうなったか

Juliamo に大変興味がわきました。これは同じクラスに同じゲームをプレイした人間がいたという奇特な状況あってですが、ここ数日は毎朝、「Bonan matenon!」と言い合っています。

それから、アドベンチャーゲーム? ギャルゲー? に対かったする心理的ハードルが下がりました。きちんとしたパッケージのPCゲームを買ったのは今回がはじめてでしたが、他のゲームもあそんでみたいです。ところで私が好きなADVは シルフェイド見聞録です。

これからも Juliamo を学び、 Juliamo に親しんでいきたいです。 Gxis revido!

DMM.comラボにインターンに行ってきました

DMM.com ラボというところにインターンに行ってきた

学外実習という形で、 DMM.com ラボという会社に二週間ほどインターンに行ってきたので記事にします。

DMM.com ラボとは

DMMです。DMMのうちエンジニアがいる場所がDMM.comラボという認識で良い気がしています。

インターンまで

学校にインターンのお知らせが来たので応募しました。以上。 Messages DMM.comラボには私の所属するjokenのOBであるところの yanoshi さんという方がいらっしゃるわけですが、高専プロコンまわりでちょっとお知り合いになりまして、まあでも顔見てTwitterで相互フォローになりましたくらいに思ってたら、なんか私がインターン周りのツイをしていた関係でDMが飛んできまして「弊社でインターンやりたいんだけどどんな感じがいいですか」と。それでその時思ったことをつらつらと答えたわけですが、まあこの時点でインターン先決まったみたいなものでした。

で、まあ実際に募集が来て、「おいおいお金はどうしたよ」とか思いながら応募しました。応募の時は簡単な履歴書を書き(学校で履歴書のフォーマットが用意されてた。写真をスーツで撮れと書いてあり「おいおい勘弁してくれ」と思いながら学生服で撮った)、それから「自分をタグ付けする単語50」というのを書きました。あとでわかるんですがこの自分タグ付け、めっちゃ書くのしんどかった割に誰にも見られてないっぽかったです。

この辺から愚痴っぽくなる。

それからしばらく、結構待ちましてもう夏休み入っちゃうよ、というあたりで不安になった私が yanoshi さんに「どうなっとんのや」とDMを送り、とるものもとりあえずインターンに通ったらしいということがわかりました。クラスメイトからもう一人、DMM.comラボには応募していたのですが、その人の合否がわかったのはそれから更に一週間か二週間ほどあとになってからのことでした。この辺の対応が学生的にはものすごく遅く感じられて最高に不安でした。応募はメールでやったんだけど受領メールくらい返して欲しいですよね。

そのあともなかなかインターンの日程など決まらず(というか音沙汰がない)、「そろそろ新幹線とか確保したいんですが……」となった私がまた yanoshi さんにDM送るとそのまま日程がきまる。人事どないなっとるんやって思ってました。なんか向こうもタイミング悪かったみたいだし多分ノウハウもなかったので仕方ないですね。

というわけでインターンが決まりました。 8/21から9/1までの二週間(十日)、交通費、昼食代支給という感じです。なんか他に応募がなかったみたいで、私一人でした(弊学から応募してたもう一人は、結果待ちの間に別のインターンが決まってしまった)。DMM.comラボに応募するようなレベルの人は他の企業のお金が出るインターンに行ったんだと思いますよ!!

インターン中のこと

基本的に 11:00 - 18:00 の業務でした。他の社員さんは前後1時間ずつくらいながく業務するのが基本らしいです。 yanoshi さんの話を聞くに、私が出社するちょっと前とか私が退勤したちょっと後くらいが一番フロアが盛り上がる時間帯らしくて、私が稼働していた時間はかなり静かでした。

動画配信まわりのチームに yanoshi さん預かりという形でお世話になったわけですが、どういう業務をしたかというと、配信基盤をいじるとかではなく、小さなタスクを二、三潰した感じです。インターン生向けの華があるものではなかったのでちょっと以外に思いましたが、仕事という感じでした(でも私の書いたコードをそのまま使うのはやっぱり不安だあと思うの……)。

業務のレベルで言えば、私でもまあなんとかなるレベルでした。 yanoshi さんがこのあたりは振ってくれたのでまあ私のちからをよく把握してらっしゃるなという感じです。もっと細かい話はきっと読んでもつまらないと思うので私の日記にだけ書いておく。

あ、でもですね、一個 golang で書いたコードがあるんですが、社内の golang おじさんにレビューをしてもらいました。めちゃ丁寧なレビューで(ちょっと時間を多めに割いたと聞きましたが(ありがてぇ))大変参考になりました。Go Wayとか最高に学びになったし。「ここよい!」とか「ここはこのようがよさ気」とか書いてくれてレビュー上手すぎでしょとなりました。自分のコードを評価してもらえる機会なんでそうそうないですから貴重でした。

業務以外にも、各部署のお話を聞かせてもらう時間があったり、DMMのいろいろを見学させてもらったりしました。まーあこれはむちゃくちゃ良かったですね。各部の偉い人に話を聞かせてもらったわけですが、聞いてるうちにどんな組織だとかどんなことが大変だとかがだんだんわかってくるわけですよ。たいへん豪華で楽しい時間でした。

それから、お昼の時間とか、そうでない時間とか、 yanoshi さんと喋ったり yanoshi さんでない方と喋ったり会話を聞いていたりしていたわけですが、界隈の話がいろいろ聞けてよかったですね。

あとあと、インターンの最後に「こんなことをしました」っていう成果報告の時間があったんですが、これはあんまりうまくできなくてですね、こういうの苦手だなーって思ったし精進したい気持ちがあります。

その他いろいろ

  • 初日に yanoshi さんとか、いりいろ面倒見てくれた人事の方とか、CTO(!)の方とかと焼き肉に連れて行ってもらいました。若いもんは食うだろという感じで連れて行ってもらったわけですが食が細いオタクなのであんまりたくさんは食えずだった。
  • 人事の方がめっちゃ美人でよかった
  • yanoshi さんがことあるごとに「優秀ですよ」とか「即戦力です」とか言って私のことを他の方に紹介してくれたりしたわけですが、私の感想としては「おいおい私なんぞが即戦力になる会社で大丈夫かよ」という感じでした。まあ yanoshi さんも誇張した表現をしていたと思いますし、社員の方々は優秀 of 優秀という感じだったので実際に即戦力ということはないでしょう。
  • 仕事用のPCが支給されたわけですがMacBook Pro(TouchBarついてるやつ)で、興奮してしまった
  • 仕事はしてないけどお金欲しい系の人間なので無給インターンつらいです。学生のにわざわざ働いてしかも赤字なの愚者って感じがしませんか
  • お昼ごはん、オフィス周りのいろいろな店に連れて行ってもらったりしたんですが、おしゃれでうまい。あと値段が結構ですね。社会人という感じがする
  • 社内での移動に時間がかかるので大きい会社は大変だなぁと。あ、でも学校も一緒か……。
  • ホテルをとってもらってたわけですが、部屋を出てから着席まで 7分30秒ほどだったので良い暮らしでした。あさ10:30くらいまでゆっくりしてられるのは人権だった。
  • yanoshi さん若いのに会社でめっちゃうまく立ちまわってるっぽくてすごかった
  • 若い兄ちゃんがときどきかまってくれてよかった。かっこいいし性格が良いし頭もあるので非の打ち所なしですね
  • yanoshi さんと高専プロコンのはなしをして心が死にそう。がんばりますので……!
  • 二週間で生活費大体2万円に届かないくらいでした。コンビニ飯とかコンビニじゃない飯とか、洗濯したり、土日の交通費とかもろもろ合わせてその

まとめ

良かった。楽しかった。もっと精進していきたいというお気持ちが上がってます。

まあ大体こんなもんです。どうしてかあんまりインターンの内容がかけてない気がしますが……。文章力を上げたいなぁ。

二週間大変お世話になりました、ありがとうございました!!!!

追記

これは黙っているつもりだったんですが、耐えきれず Twitter に書いてしまったので載せておきます(教えてくれた人が先にTwitterに書いていたのでセーフなので。

これめっちゃ印象に残ったし一生これでやってく

高専入学のすゝめ

いつか書きたいと思ってたので書きます。

まずはじめに、私の立ち位置から。

高専のことは積極的にこき下ろしていくが、外様の奴らが高専についてあーだこーだ言うのは我慢ならない」というよくいる人間です。

こういう立場の人間なので「情報工学系に興味を持っている」高専入学適齢の方向けに、高専の良い所やそうでないところを述べていけたらと思います。

よりみちができます

 同じ界隈に住んでいる人たちが参考になる記事を書いてます。

yamasy1549.hateblo.jp

 私が勝手に「うちの学校の上位互換」と思ってるすごい高専に通っている人の記事。駅から近いのはまじでアドバンテージです。あと近くに美味しいものの店がたくさんあるきがする。私はそういうところに食べに行かないのであってもなくても一緒ですが。

chige.hatenablog.com

 弊学の人。忙しそうにしてるけど、顔が広くて楽しそうなので、多分高専生の生き様としてアリアリ。

こうしてみると受験のことって私の体験書いてないな。二ヶ月くらいちゃんと勉強しました。面接では自分の趣味(このころもゲーム作ってた。いまでも大したものはできない)についてオタク語りをしてたきがします。

高専って難しいんでしょ?

ずばり「NO」です。期待を裏切られます。私が通う高専は、偏差値の話をすれば高い方なのですが(全国の高専でも1,2を争えるし、五指に入っている程度だと思う)、ではそこでの授業が難しいか、留年してしまうかといえば、そんなことはありません。難しい授業を期待してはいけません。

多くの場合、高専の教員は怠惰です。あとカリキュラムも怠惰です。高専の授業だけで生きていけると思ってはダメです。学びたいことは自分で学ばなければ。

留年をするのは、一部の「留年するって決めてる勢」(本人はどうか知らないが傍目からはそうとしか見えない)と、「本当に不幸にも単位を落とした人」だけです。本当に不幸にも単位を落とした人というのは、情けに訴えることができない教員の科目で十分な成績を残せなかった人のことです。これは本当に不憫です。

入学もそんなに難しくなくて、数学の問題ををある程度のレベルまで解けるようなら、何も心配はいらないと言えます。なぜか英語が阿呆みたいに簡単だったのはよく覚えています。

ゲーム作れるんですか?

そんなわけはないですね。ゲームを作るのは、ゲームを作りたい人たちであって、授業でゲームを作るなんてことはありません。まあ、なんちゃってゲームくらいは作ることもあるかもしれませんが、それがあなたの求めていたものですか? (ちなみに、私が受けた Java の授業で「ゲームを作っていきます」と言っていた教員がいましたが、本当にひどいものでした。何ができた以前に何もできなかったし、何かができそうという雰囲気もなかった。学生たちは謎の世界観の押し付けを喰らったに過ぎない。言い過ぎたかな? これ以上は言及しないぞ) ゲームが作りたいひとは専門学校へ行ったほうが良いような気がします。

あ、まって、専門学校へ行く前に。高専でもゲームを作ってる人はいます。そういう人と仲良くなればいいでしょ。私もそういう同好会に入って、一年に一本程度、悲しい出来のゲームを作っています。

じゃあ高専ではなにをやっているんですか?

ひたすら基礎をやっています。非常にゆっくりと。基数変換とかやりましたね。符号化方式もちょっとやったり。コンピュータの五大装置ってなにかわかりますか。まあこんなの調べたら一瞬でわかるんですが、でもそれは例えば「基数変換」という言葉があるから、それが何かしら情報工学と結びついているという情報を得ているから調べられるわけです。右も左もわからない状態では何を知れば良いかもままならないというわけです。

プログラミングはするんですよね?

します。私の場合だと、一年生では何も触らせてもらえず、二年生三年生の二年間はJavaをやりました。四年生になったいまではC言語に突入しています。JavaでifやforやwhileをやっているのにCでまたifに何週間、forに何週間とかけているのは多分壮大なギャグでしょう。そういえば、3年生の3ヶ月間くらい、 python をさわることもありました。あれ、二年生ではCASL2もやりましたね。あ、また思い出したけど、四年生ではC#を使う授業があるって言ってました。遺伝的アルゴリズムを書いてたような気がしますね。

この授業を受けるとどのようなスキルがつくのかが気になりますよね? 二年間かけてやるJavaの授業を修めると、基本的な構文がわかります。驚くべきことに、try ~ catchのような例外処理もかけるようになりますし、クラスの継承もできます。インターフェイスも扱えるようになります。マルチスレッドプログラミングだってできるし、GUIアプリケーションも書くことができるようになります。今、クラスメイトに書けと言っても書けない人が大半でしょうけど……。だんだん、付け焼刃のプログラミングができるようになってくるんです。

え? JVM? JVMってなんですか?(よく考えたらJVMJavaの「基礎」なのでは……?)

レポートが大変って聞いたんですが

そういう学科もあります。そうでない学科もあります。うちは大変じゃない学科。お隣の学科はレポートを梯子してるのですごいですね。二年生の時は手書きを強要されましたが、三年生のときは自由でした。四年生になった今では、教員によってはTeXの能力を要求されます。とはいえ、テンプレートは渡されるのですが。ちなみにお隣の学科はずっと手書きらしいです。あほくさ。

進路ってどうなってるんですか?

就職と進学が半々くらいなんですかね。進学はまあ編入というやつで、たいていの(=高専生が入学しに行くような)大学だと、3年生から始められることになってます(結局高専での単位が認められなくて留年とかあるらしいですが “編入で単位認定が少なくて苦労することはあれども留年するのは本当に稀なので留年しちゃった人はその人がそうだっただけだと思う。” との意見をいただきました)。就職は、(就職先を選ばなければ)就職率100%を誇ってるので心配する必要はありません。高専に来る求人の数ってものすごいらしいですよ。でも成績がいい人はたいてい進学してしまうか、わざわざ高専に求人を出してない企業に自分で乗り込んでいきます。

専攻科という制度がありまして、高専卒業後も2年間、高専みたいな環境で過ごすことができたりもします(研究とかしてるみたいです。院のような感じなのかな)。これを卒業すると、大学卒と同じ年齢になるという仕組みです。最近は専攻科も謎に倍率が高い。

あ、三年を無事修了すると、高卒と同じ扱いを受けられるわけで、そこで中退して大学1年生になることもできます。推薦を受けて大学入学をしたいという稀有な人は事前にその学校が「退学して別の学校に入る人に対して推薦を与えるか」を調べておいたほうがいいです。

男子ばっかりなんですか?

私の置かれていた環境はそうです。おかげで女の子としゃべるのができません(男性としゃべるのも苦手だけど、女性は本当によろしくない)。でも最近の高専は女の子に入学してもらおうと頑張っているみたいで、いい感じの男女比になっていたりもするらしいです。

あと男子ばっかりだと変なことになったりする。

変な人が多いんでしょ?

まあ少しはいます。変でもなんでもない人の方が圧倒的に多いですが、変な人はいます。外の世界に比べて明らかに多い。尖ってますよね。でも高専生の全部が尖ってるわけじゃないんだ。

部活動ってどうなんですか

部活動によりけりです。

寮ってどうなんですか

高専の闇を凝縮するためにあるらしいです。私は運良く寮には入ってないのでよく知らないです。メリットは通学時間が短くなること。世の中には全寮制の高専もあるとか。

ハードウェアとかどうなんですか?

情報工学科」では、カウンタ回路をブレッドボード上に構築したり、オペアンプやらで加減算をしてみたりします(積分はやらなかったなぁ)。それから、Verilogを触ったりもします。今年からFPGA上にCPUみたいなのを構築する授業になったんですが、FPGAボードはなしで論理的な部分しかやりません。あと某学部のCPU実験のようなものではないのであしからず。

半導体がどうとか交流回路がどうとかも一応触れたような気はします。でも私、交流と直流がどうなってるのかわからんぞ……?(ちゃんと授業を受けてないという説がある)

他の学科ではもっとハードウェアしてます。材料工学とかやってるんじゃないかな。

学校の施設ってどんな感じですか

高校<高専<大学です。私学はその限りではないかもだけど。図書館はわりとよく出来ていて、長い時間籠もれるようになってるし、そういう系統の本が入ってるし、入れてもらうのも楽です。大学図書館でもそうなのかもしれないですが。本の競争率も低いんじゃないかなーと思ってます(借りたい本が借りられていて借りれないということはあんまりない)。あと、きりがないからというのでラノベはシリーズごとに3冊までしか入れてくれないんですが、あれはもったいないと思ってます。

立地とかどうですか

私鉄からもJRからもだいたい自転車で10~15分程度かかります。通えないほどではないこの感じな。これを立地がいい(電車で来やすいので寮に入らなくていい)と表現する人もいれば、悪い(通学に時間がかかって無駄)というひともいます。

あと、うちの高専に限った話かは知りませんが、隣にお寺(墓地)があります。

研究はどうなってますか

それは研究を始めたら書くかもしれない。

強くなるためにはどうしたらいいですか?

自分で頑張れ。幸い変で便利な環境にいることですし、少し運が良ければ仲間もいるでしょう(あなたの高専にはいなくても他の高専にはいるから大丈夫)。自由な時間も少なくないはず。

高専卒は即戦力なんですか?

そういう分野もあることでしょう。私もなんで高専卒に求人が来るのかわかってないんだ

結局高専に入ったほうがいいんですか?

自分で決めてください。


こんなところでどうですか。参考になりましたか。嘘を言っていたり、足りていない項目があったら教えて欲しいです。何か意見があればそれもお待ちしてます。

セキュリティキャンプ全国大会

セキュリティキャンプ全国大会に参加した

師匠のブログもあわせてどうぞ

ydfj.blogspot.jp

とりあえず↓に日記みたいなのを書いてあるので。

セキュリティキャンプ1日目

こんばんは、ふるつきです。記録を取る意味でも、今のうちに書き始めています。今回は、正直に自分の思ったことを描いていきたいとおもいます。

念願かなってセキュリティキャンプ全国大会に参加してます。知人率とかを考えると去年参加しておくのが大吉だったんですが、去年はチキン太郎になってしまったので、今年の参加になります。今年にしてよかったところは師匠が一緒に通ったところですね。実はクラスメイトからもう一人も応募していたのですが、彼は310分の82に漏れたのでいませんでした。

私は朝六時半に起きて、身支度を整えて家を出、12:15頃に会場につきました。遠い!!! おかげでけものフレンズをみてる暇なんてなかった。

そういうながい行程を経て、おしりや腰がいたくなりつつ、やっとこ会場に着いて名前をいうと、名札を渡されました。本人認証なかったの面白いな。それからお昼ごはんを食べました。いきなりお昼ごはんだったけど仲良く食べました。ホントだよ! 集合時間のことを考えても、会場でお昼ごはんを用意してくれたのはとてもありがたかったです。

ご飯を食べた後は、名刺交換会でした。多分ただの自由時間だったんだけど、みんな席をたって、気体分子のように動きまわっては挨拶をし、名刺を交換していました。

私は名刺交換にさしたる意義も感じられなかったので頑張って抵抗したのですが、その結果普通に名刺交換をしていました。途中で師匠の名刺がきれたので、一緒にノベルティに入っていたハンドスピナを回してモーメントモーメントジャイロジャイロと言っていたら、ハンドスピナのささくれが指に埋まりました。

それからやっと開会です。いろんな話を聞いてわくわくしつつ、「早く本題に入ってくれ!」と思っていました。いろんな説明を受けた後、「セキュリティ基礎」がありました。

セキュリティ基礎では、今後セキュリティ業界でどんな仕事がAIに取って代わられるだろうということをグループディスカッションしました。毎回セキュリティキャンプ系ではこういうディスカッションが最初にあるのですがこれはアイスブレイクとしてはなかなか有効だと思います。同じグループの人のキャラが探れるし、会話のハードルが下がるので。

私は理想論が好きなので、人間の営みはすべて機械で置換されて欲しいと思ってるし、そう遠くない未来であると信じてます。

その後、今度は特別講義として、2つの講義がありました。一つはJPCERTの人の話で、その人がどんな仕事をしているかという話なのですが、なんでこんなにおもしろい話ができるんだというほど面白く話をしてくれました。特に森見登美彦太陽の塔を引用したところは最高でした(これは本質じゃないけど)。

それからもうひとつは、サイバーディフェンスの型がフォレンジック系の話をしてくれたのですが、ヤマとオチがなくて眠くなりました。というか眠ってしまいました。チュータの人に起こされたような気も、そうでないような気もします。しかし、眠りを誘う話し方はともかく、内容はとても興味深いものでした。フォレンジックってお仕事ってイメージがあるけど、趣味でやりたかったらどういう道があるんだろ。

続いて、チュータの人の紹介を兼ねた発表がありました。これは三人だけだったのですが、どの人も尖り具合がすごくて、一口に言えばぶっ飛んでいました。あれに憧れてセキュリティキャンプに来たのだという気持ちになりました。

そこまでして、夕飯を食べ、それからグループワークでした。グループワークでは、数日かけて、8人程度で、何か問題を解決する姿勢を見せていこうというようなものです。いろんな人に話を聞き、どんなことを自分たちがすればいいのかを考えて、最終日に発表することになります。現状、これはとても面倒な講義に見えます。

それで22:00になりまして、解散しました。おい待て、手を動かしたいんだが。部屋は広くて快適です。師匠がやってきて、私がこうして記事を書くのを妨害してきたりしています。

Day2

おはようございます。大体六時半くらいに起きて、朝の支度をして、師匠と一緒に朝ごはんをたべようとしたのですが、師匠はまだ起きていないっぽくて、師匠の部屋もわからんで困りました。一か八かということで不確かな記憶を探って師匠の部屋と思われる番号にモーニングコールをしました。大当たり。間違えていたら舌を噛んで死ぬところでした。

朝ごはんを食べて、またけものフレンズを見逃しました。あしたは見る。朝ごはんの会場にはそこそこ人がいたのですが、そこかしこから変な話が聞こえてきて、なるほどセキュリティキャンプ、となりました。

Day3

おはようございます。眠った感覚すらないまま深く寝ててなんとか七時過ぎに起きて戦々恐々でした。師匠は起きてた。昨晩は師匠に邪魔されて(HUNGER GAMEの一ページ目をよまされてた・D2,3の資料を見てた)かけなかったので今から昨日のことを書いていくわけです。

Day2振り返り

Day2では、Dの解析トラック(カーネルのエクスプロイトまわり)の授業を受講しました。講師は、がちゃぴん先生とかるくす先生です。D1ががちゃぴん先生のカーネルエクスプロイト入門編で、D2,3がるくす先生による実践編のような位置づけでした。

D1では、まずカーネルソースの大雑把な構造から始まりました。大体この話だけで学校のオペレーティングシステムの授業を越えて行きました。

それから、カーネル周りの知識として、カーネルのダンプ(メモリ全部のダンプ)の解析(あるプロセスが脆弱性を突かれてメモリをアホほど食べているのでそれを突き止める。フォレンジックっぽい)をやったり(できなかった)、Dirty COWについて簡単な仕組みとPOCを渡されてこれをもうちょい実用的にしてくれといわれたりしました(できなかった)。あとあと、セキュリティキャンプの応募課題(るくす氏が出してた)のフォローアップがありました。私はこの課題は挑戦しかけて諦めたのでなにもわからなかった。

というわからないづくしの時間をすごしました。でも絶対無駄じゃないし、丁寧に資料が作られていたのでまた読み返してきっちり倒します。

この講義は、キャンプ最初の「洗礼」って感じでしたね。

お昼を挟んで、こんどはるくす先生のD2,3でした。これは究極的にはBadIRET(これは何に分類されるの? CVE?)で権限昇格をしようというものなのですが(さらに言えばWebKitの任意コード実行から権限昇格したい)、まず前座としてBadIRETの原理でカーネルを落とそうということをやりました。落とすだけならもうコードをるくす先生が書いていたのですが、これにちょっとだけ細工をして、レジスタをいじってから落とすとかしました。運が良いと結果が出るらしいですが、徳を積みすぎてほぼ毎回でました。

こんどはブラウザほうからアプローチして、(これも任意コード実行のところはるくす先生が書いてくれていたので、)試しに fd = open("/dev", 0); getdents(fd, buf, 4096); write(1, buf, 4096) するシェルコ―ドを書いて動かそうという演習がありました。これがいろいろはまりどころがあって、なかなか進まず、なんとかこれができたくらいで夕食になりました(ちなみに一番に出来た。私すごい)。

夕食は同じ講義の人とたべて、ちょっと仲良くなりました。

夕食後も同じことをやって、更に進んで、BadIRETでの権限昇格コードを書き始めようというところまで来ました。しかしこれがとてもむずかしく、原理が理解できず、コードもまたかけない。悩みに悩んでタイムアップでした。悔しい。○されました。

21時から22時までは、(権限昇格が難しすぎたので急遽)カーネル脆弱性の緩和策などのサーベイになりました。私はBadIRET頑張りたかったぞ。急にいわれて時間もそんなにないなかで、みんないろんなことを調べていて(しかもちょっと理解していたっぽい)、驚愕でした(私はなにもわからなかったということ)。

これでやっと講義がおわり、昨日が終わったというわけです。本当に疲れていて、疲れ of 疲れという感じでした。でも楽しかった気持ちに嘘はないし、手加減してくれなんて思ってないよ。

Day3

こんばんは、折り返し地点を過ぎました。今日もくたびれました。あと十数分で就寝推奨時間ですが、師匠とぐだぐだしているとこの日記を書くのにも一時間くらいかかるというわけです。

今日は2つの講義と、2つのBoF(??講義よりも講演に近いものだと思う)と企業講演とグループワークがありました。

午前の講義では、Dトラックの、「マルウェア x 機械学習」を受けました。機械学習系の講義を一個とっておこうかな〜くらいの気持ちでとって、事前課題がなかったので、機械学習の知識は(そしてマルウェアの知識も)一切なしで受けました。これって相当阿呆ですね。

講義としては、機械学習の簡単な説明(機械学習出ないものとの差異とか)から始まり、じゃあ機械学習マルウェア検知するならどうやってやる? みたいな話をグループでしました。ありきたりな選択肢しか出ませんでしたがまあそれは良いです。講師の人からは、バイナリのタイムスタンプがわりと効果的という話をききました。

ここまでやって、続いてデータセット(トレーニングようマルウェア・正常プログラム1000件ずつ、評価用マルウェア・正常プログラム500件ずつ)と、簡単なランダムフォレストの実装、バイナリファイルからの特徴量の抽出サンプル(ひどい特徴の選び方をしているやつ。出力フォーマットのサンプルというわけ)が渡されまして、これを改善していく(特徴の選び方を変えていく)という演習をやりました。

最初はAccurancy(確からしさ。式は割愛)が5割とか(五割くらい検知するし、五割くらい誤検知する感じ)だったわけですが、20分程度かな? の試行錯誤で、87%程度まで上がりました(7割くらい検知するし、1割くらい誤検知する感じだったと思う)。特徴としては{タイムスタンプ、バイナリサイズ、DLLのリンク量、DLLから読んでる関数の数、シンボル数}くらいを採用しました。9割行かなくて残念(これらの他に静的にぱっと取れる値を思いつかなかった)でしたが、同じ講義を受けていた人の中では一番いい値が出たようです。 私って優秀なのでは!?

そこまでで時間いっぱいでした。続いてお昼ですが、一人で黙々と食べました。おわり。

午後の講義は「信じて送り出した家庭用ルータがNetBSDにドハマリしてloginプロンプトを返してくるようになるわけがない」でした。この講義では結局VirtualBoxNetBSDを入れて、そこでラズベリーパイ用のNetBSDをビルドしました。そしてそれをラズパイに書き込んで起動ヤッターという感じです。それだけしかしていなくて、あとはこぼれ話がいろいろという感じだたのですが、私はラズベリーパイ用のイメージのクロスコンパイルで失敗しまくってうえええって言っていました。これの原因はメモリが足りないというものだったのですが、1Gじゃあ足りないんですね……。

はい、そのあと夕食ですが、割と席指定の夕食で、同じ講義を受けていた ukn さんと、昨日お世話になったるくす先生、コアキャンプに来ていた hama さんと食べました。私は静かに座っているかかりをしていました。まあみんな知っている人だったので自己紹介とかまあいらんでしょみたいな気持ちです。そういえば hama さんと以前会った時は阿呆ほど煽られたんですが今日は煽られなかったので綺麗に忘れられているっぽいですね。

夕食後はBoFと企業講演でした。BoFはあんまり書くことないと思うんですが、二個目の講義がものすごくためになるというか、セキュリティとはみたいな本質情報を突いてくれるもので、今年のキャンプで一番忘れられない話になりそうでした。ひとつだけ言っておくと私はCIAと喧嘩なんてしません。○されちゃう。企業講演もあんまり書くことない気がします。へ〜という感じだったし各企業もうちょっと短く発表して多くの人にリーチしたほうがみんな幸せ度が高いのでは? と思いました。

その後はグループワークでした。こういうことを言うと軽蔑されるし嫌なんですが、グループワークのメンバリーダが結構苦手のようです。考え方が合わないというか、地雷感がありつらい。

Day4

全講義が終わってしまい哀愁を感じてます。こんばんは。今日はゲームセキュリティに関する講義を受けてきました。午前がスマートフォンのゲームセキュリティで、午後がゲームのセキュリティでした。

午前では、はじめはブラウザ上のスマホゲーっぽいのをチートしてたのですが実は解けなかった(あると思ってたサーバ側の処理がなかったらしくてめっちゃ簡単だった。試してみればよかった……)。 続いてはAndroidエミュレータ立ち上げて、講師の人が2週間くらいで作ったと言ってたゲームのチートをやりました(ゲームとしての完成度が高くてすごかった)。メモリ書き換えとかファイル書き換えとか通信書き換えをやっていろいろチートしました。ファイル書き換えはやったことなかったので憶えました。あと、通信がxor -> base64 で難読化されてたんですが、 xor に気がつけずちょっと悔しかったです。

この講義ではどうやってチートするのかということと合わせて、開発者側の視点での話も聞けたので大変良かったです。

午後はまた別のゲームチートで、講師の人が見るからにやばそう(というか愛甲さんという方なのですが)で実際にやばく、開幕即演習というか演習しかなく、ひたすら手を動かしていました。UnityゲームのC#なdllをいじるのは一瞬だったんですが、apkの.soを解析して……となるとなかなか厳しく、有意義でつらい時間を過ごしました。

企業講演でサイボウズさんのお話を聞き(普通のいけてる会社という感想でした)、そしてグループワークでした。

グループワークのやばいところは個人的にリーダへのヘイトが溜まっていくところです。ずっと相容れなさを感じてる。

そして!! その後!! キャンプ恒例のプレゼントがありました。翌日時間がなさそうだったからこの日にあったんですかね。

Day5

講義が終わったという安堵と、前日の晩に資料作成のうち私のやるべきところは終わっていた(たたき台ばかりつくってた)のでほとんど死んでました。

師匠がそこそこ早起きしてて6:40くらいにモーニングコールが来ました。うつらうつらという感じだったので仕方なく起きて、朝ごはんを食べました。そのあと師匠が部屋に来てけものフレンズをまるまる一話みながら、師匠の午後の発表資料を見たりしていました。

そしたらちょっとおそくなっちゃってぎりぎりに部屋を出る羽目になりました。ここでついに**さんという方にお会いしました(後述よてい)。 で、ぎりぎりに部屋に入ったわけですがやっぱりというか最終日ということで人がちょっとすくない。あとみんな青いセキュリティキャンプTシャツを着てました。うちのグループでも2人くらいいませんでした。

まあ呼び出しをかけつつ進行して、ちょっと1時間くらいの調整作業の末(この間私はほとんどなにもしてない)、グループワーク資料が完成、発表と相成りました。

グループワーク発表は面白いところとか上手なところとかそうでないところとかありましたが、去年の程の面白さが合ったのかどうかは微妙じゃないかなと思っています。うちのチームもそれなりの(無難な感じで、ちょっと穴がありそうな)発表をしました。

それでお昼を食べ、午後は成果発表でした。まずは集中コースで師匠の発表とか、その他の頭のネジが飛んでそうな発表を聞いて「やっぱり集中は強い……」って思うなどしてました。選択も一応成果報告あって、書くトラックごとにプロデューサという人がいてその人が指名した人がちょっとだけしゃべるんですが、私D2、3、4あたりでそれなりに成果を出してた気がするしDトラックの成果報告することになるかなとか驕ってたんですが全然そんなことはなかった。笑ってくれ

名残惜しいですがこれでだいたい全過程が終了となりまして、あとは挨拶などを聞き、写真撮影などし、解散でした。

終わった後ご飯でもという感じだったのですが、きっと都心方面だろうとたかをくくって先に歩を進めていたら逆で、結局参加できずまっすぐホテルに来ました。とはいえ縁があればまた合うこともあるでしょう。

こぼればなし

キャンプでは毎日、健康調査票というのを提出していて、これは各食事ちゃんと摂ったかとか寝れてるかとかを丸とか三角とかで書くわけですが、そこに記述欄がありました。それで

というわけです。上述した**さんがこのお返事を書いてくれたひとで、かなり嬉しかったので、**さんには悪いなと思いつつ、ちょっとどんな内容だったかを書いていきます。

Day 2

ふるつき「体がひえる」

**さん「上着で***てください。必要であればブランケットの貸出もあるので言ってください(空調の調節等何かあればスタッフに言ってください」


Day 3

ふるつき「疲れてる」

**さん「お疲れ様です。なかなか難しいと思いますが休めるときは早めに休んでください。何かあれば連絡を……」


Day 4

ふるつき「いきてます」

**さん「良かったです!!!! コメントありがとう。体調について分かりやすかったです。今日までお疲れ様でした、ラスト一日も頑張って、そして***ください」

記述欄は書いていきましょうという話。

こぼればなし2

旅の思い出として。

帰りの電車の中で、「私はどこに宿をとってるんだっけ?」とスマホを見たら、チェックイン予定が土曜日から二泊になってて、やべーとおもって慌てて電話しました。ちょっと値段は上がりますが、宿泊予定をずらせるということだったので、そうしてもらうことに。これで一見落着、かと思ったのですが、これだと金曜日から二泊で、日曜日の宿がなくなってしまうわけです。もうチェックイン済みだったのでフロントに言ってお願いして、三泊にしてもらいました。良かった。

おまけ

セキュリティキャンプ期間の私のツイート量とインプレッションです。下がツイート量で、一番多い日が130位だと思う

f:id:Furutsuki:20170819004656p:plain

おまけ2

セキュリティキャンプ事後課題として、アンケートがあったのですが、それに、2000字以上の感想を書く欄が合ったので、それを原文ママではっつけます。むりくり2000字書かせるのはどうなんとか思ってないです。


セキュリティキャンプで過ごした五日間は、端的に言って、ものすごく楽しい時間でした。多分、今までの人生の中で最も充実していたのではないかと思います。これはひとえに講師やチュータ、事務局やスポンサーの皆様のおかげと認識しています。とても楽しい時間をありがとうございました。

一番最初の、DAY2の一時間目の講義(D1)を受けた時、とても衝撃的でした。こんなに密度の高い内容を何時間もやるのかと驚愕しました。そして膨大な情報量に圧倒されました。こんなものをセキュリティキャンプの短い時間の中で理解するのは到底無理だと感じましたし、セキュリティキャンプはただの入り口、きっかけでしかなくて、この日この時間に得た刺激を忘れずに日々研鑽しなければとても講師の方々のような、格好良い、憧れられる、最先端を走る技術者にはなれないのだとわかりました。

D1も含めて、その後のどの講義も、私に吸収できる量を遥かに上回る情報を注ぎ込んでくれました。それは自分の未熟さ、講師との技術力の圧倒的な開きを私に知らしめるものでした。自分が未熟であることを思い知らされるのがこんなにつらい、悔しいことであるとは思っていませんでした。どの講義を受けているときもぺしゃんこに押しつぶされるのを感じながら、必死で頭と手を動かしていました。

そうした時間はしんどいものでしたが、とても楽しくもありました。こういうことを自分はやりたかったのだと強く思いました。情報の世界について知りたくて高専に入学して、しかし遅々として進まない授業に不満を抱えていましたが、かと言って自分でうまく学ぶことができませんでした。それは自分が学んでいることの先の先にどんな世界が待っているのかを知らなかったからで、また目指す方向がなくて自分がどう学べば良いのかを知らなかったからです。

セキュリティキャンプで知った先の世界は、とても私をわくわくさせていて、早くそこまで手が届くようになりたい、強くなりたいという思いで一杯です。また、私のまわりの人も早く私と同じ感情を持ってほしい、一緒に技術を磨いていきたいと思いました。

そういう意味では、セキュリティキャンプでは、どの人もそういう意識を持っているし、いくらでもそういう話ができたのでとても心地よかったです。宇宙兄弟という漫画ではないですが、自分が喋っていることが相手に伝わって、相手が言っていることがわかって、共通のものに対してすごいと言えるのがとても幸せでした。

しかし、私の振る舞いを振り返ると、セキュリティキャンプという環境を活かしきれておらず、これに関してはもったいないと感じています。特に食事の時間ですが、一人で黙々と食べてしまうことが多く、もっと他の参加者と交流出来たらよかったと思っています。

思いついたことを全て書いても2000字には満たなかったので、記憶に残った講義について述べます。

まず、D1、D2、D3が強烈に印象に残っています。カーネルエクスプロイトは一番の華だと思ってこれらの講義をとったのですが、先にも述べたとおり、思いっきり鼻っ柱を叩き潰されて、セキュティキャンプを感じさせられた講義でした。そして、D2,D3は脅かされていたほどでは……と講義の前半は感じていたのに、いざBadIRETに挑戦してみると知らないことだらけで確かにこれは大変な講義で、これについていけるようならしっかり強くなれるだろうという気がしました。早いうちに講義の内容だけでもしっかり定着させたいです。

同じDの講義になりますが、最後のD7の愛甲さんの講義も印象的でした。いきなり手を動かしていくというスタイルに驚かされ、バイナリをガンガン読んでいく実践的なチート手法を体験して、本気で解析されたらゲームを作る側はたまったものではないと感じました。そして、愛甲さんのカリスマに惹かれました。愛甲さんは一種のとても格好良い大人だと思います。

それから、BoFのReal World Cyber Securityのお話がものすごくガツンと来ました。サイバーコロッセオで出題された、巨大なパケットの問題がずっと引っかかっていて実際にはどうなっているのか? というのが気になって参加したBoFですが、迂闊にCIAなどと答えてしまい散々ネタにされたからではなく、サイバーセキュリティというのはこういうことなんだなあというのを認識したからです。面白い、尖った技術が好き、楽しいからやっているというのは、それはそれで認められると思いますが、サイバーセキュリティという分野にいる以上、そこには悪意が存在していて、どんな相手がいるかわからないという恐ろしさがあることをわすれてはいけないのだと思いました。

改めてになりますが、セキュリティキャンプに参加できてよかったと思っています。このような貴重な体験をさせていただいたことを無駄にしないように、いつか恩返しができるようにやっていきたいと思います。


あーはずかし。これにてセキュリティキャンプの記事終わりです。記事の内容に関してなにかあればご連絡など

追記

思い出したことがあるので追記です。

私はコミュ症の中のコミュ症なので、名刺交換とか、そもそも交流自体をほとんどの人としていないのですが、これは明らかに損失ですよね。↑の感想にも書いてますが。

一方で、ツイッターではそこそこ騒いで(多分講義中にツイートしてた回数は一番とかだと思う)いたので、ふるつきのアイコンだけは知っているみたいな人がそれなりにいたっぽいです。せっかく知られているのだしもっと自分をアピールしていけばよかったなと思うのですが、まあそれは生来の気質みたいなものだから後悔しても仕方がないのかなぁ。

あと、うちの師匠がキャンプ中に私のツイッターを監視していたりしたらしいのですが、その画面を見た誰か(数人いるっぽい)が師匠に「ふるつきさんですか!?」と尋ねる事案が発生していたっぽいです。一体誰なんだ。

追記2

思い出したので。

全国大会に参加するまでに4つくらいのミニキャンプに参加したわけですが、わかったのはミニキャンプも全国大会と遜色ない内容でやってくれているということ。時間が短くなるのはどうしても避けられないけれど、内容の濃さは全国大会に優るとも劣らないものだったのだとわかりました。

追記3

事前に非公式Slackでパケットの人が「長袖長ズボン一着くらい持ってきたほうがいいですよ」と言ってたのですがこれが本当で、半袖半ズボンだと露出している箇所(特に肘や膝)から冷えていきます。キャンプ中ってほとんど体を動かすタイミングがないので、発熱できないんですよね。私もずっと長袖シャツをきて、長ズボンでした。

あと、今回の宿泊場所では、寝るとき冷房切っておいたほうがいい感じでした。