こんにちはサイボウズ・ラボの光成です。
先日(8/23~8/25)、サイボウズ・ラボユース合宿をしたのでその紹介をします。
合宿の概要
サイボウズ・ラボユースは学生のソフトウェア開発を支援する制度で、詳細は「第6期サイボウズ・ラボユース成果発表会」開催などをご参考ください。
合宿の目的は、ラボユース生同士、交流を深めてもらうことです。 今年度はリモート参加の学生も多く、なかなか他の学生と交流しにくいだろうという背景があり、久しぶりの開催となりました。
もちろん集中的に開発し、様々な疑問をまとめて聞ける場を提供するのも大きな目的の一つです。
合宿の参加者は現役のラボユース生が4名、研究生が1名、ラボユースOBが4名、ラボからは7名で、 会場は神奈川県三浦海岸のマホロバ・マインズ三浦でした。
男性参加者は3~4人一組で泊まるのですが、部屋が約100平方メートル3LDKとかなりの広さで快適でした。
女性参加者は一人だったため、その広さを少々もてあましていたそうです。 今後は女性の参加者が増えるとよいですね。
初日
遠方参加者がいたため11時過ぎの自己紹介でスタートです。 最近はSECCONなどの影響もあり、CTFをやっている学生も多く、開発テーマをそれ関係にしている人もいました。 みなさん黙々と開発していました。 私はすぐ寝ましたが夜遅くまで開発していた人もいたようです。
二日目
朝からずっと開発です。気分転換に自由に使えるラウンジに移動して開発してる人もちらほらでてきました。 バイナリ(機械語)が好きな人が多かったので私は息抜きネタにあなたの知らないnopたちのLTをしました。
それからC++を勉強中の希望者に対して『Effective C++』をベースにC++11, C++14で便利になった機能の紹介をする勉強会をしました。 こういうところでは時間を気にせず質問タイムを多く取れるのがよいですね。
三日目
合宿での成果発表会です。
城倉さんは去年のラボユースのOBでその後未踏IT人材発掘・育成事業:2017年度採択プロジェクト概要に採択されました。 将来そのプロジェクトで動かす予定のネットワークパケットフィルタを開発しました。
渡部さんは「拡張可能なインタプリタのための、構文解析のための、DSLの設計」という発表でした。 きちんとした理論を元に考察し、OCamlで実装されていて興味深いです。
高品さんはTwitter上のソーシャルグラフのクローラを作って(twicrawler)、収集したデータから日本の機械学習界隈の中で影響力の大きい人たちを表示するデモを行いました。 結構それっぽい人たちが選ばれていて面白かったです。
川田さんはCTF用のカーネルエクスプロイト問題を作ってみようと調査しました(資料)。
dmsgのFreeing SMP …の項目に表示されていたアドレスは安全性のため新しいkernelでは表示されなくなってるそうです(mm/page_alloc: Remove kernel address exposure in free_reserved_area())。へえ。
黒岩さんはROPチェインの自動生成ツールを開発しています。
ROPとはバッファオーバーフローなどを利用する攻撃の一つで実行属性のないスタック上で意図したコードを実行する手法です。 glibcなどに含まれるコード片を組み合わせてコードを構築するのですが、その部分を自動化しようというものです。
西田さんはネタアプリとしてC言語を補助してくれるslack上で動くbotを作りました。
「putsの中身を"○○"にして」と発言するとソースコードが修正されます。 「インデントくらいしてよ」と発言するとソースコードをきれいにフォーマットしてくれる機能もあります。
ちなみにフォーマットツールにはClangFormatを使っているとのことで、「indentじゃないの?」と尋ねたところ「indentって何ですか」と言われてジェネレーションギャップを感じました。
赤間さん(OB)は、プラレールのレイアウトを設計するためのツールに必要な座標系の話でした(cf. プラレールで半加算器を設計した話)。
平行移動と45度だけ回転する座標をうまく簡潔に表現できないか考えているそうです。
粟本さん(OB)はLinuxのuio(ユーザ空間でデバイスドライバを作る仕組み)の紹介とxHCI用ドライバの進捗状況を発表してくれました。
緑川さん(OB)はとあるマイナーな公開鍵暗号に対する攻撃方法を考えていました。
まとめ
みなさん好き勝手にやっていて(ほめ言葉)すばらしい。 今後のすぐれた成果を期待します。 なお、サイボウズ・ラボユースは通年募集しております。