セキュリティミニキャンプ2016 in 北海道
参加しましたので感想エトセトラ。
セキュリティミニキャンプとは
IPAが若いセキュリティ人材を育成する目的で、年一回行われるセキュリティキャンプ全国大会の地方版。
全国大会の縮小版では決してなく、地域の特色を活かしているんだとか(現地に近い講師の方を招いたりだとか)。
応募人数が少ないおかげで初心者の僕も参加できたが、内容はしょぼいなんてそんなこともない(もちろん時間も少ないので全国大会と比べたら劣る)。
ちゃっかり2015 in 北海道にも参加しています。2年連続ミニキャンパー。
まぁ去年はクソザコ過ぎてほとんど理解できませんでしたが…
そういうわけで今年はリベンジということで張り切っていきました。
1日目
セキュリティキャンプへ行こう!
全国大会の紹介。めちゃくちゃ楽しそうなので来年も応募する。
セキュリティ基礎
大量のハックされたIoT機器による巨大BotNetDDoS攻撃であるMirai事件を題材に、IoT機器のセキュリティについてグループごとに考察したりしました。
何でも手軽にインターネットにつなげるようになってまだ数年、やはりセキュリティ面はまだまだらしいということで、IoT機器の安全な実装やメンテナンスについての考察を各グループで考察(キツイ)。最終的には「プログラムに与えられる入力を信用してはいけない。悪意を持った入力を常に考える」ってところに落ち着きました。
スマホゲームでサーバーサイドアプリケーションへの攻撃と対策を学ぼう
一番盛り上がった演習講義だったと思う。
内容は、Unity製のオリジナルスマホゲームとサーバーの間にBurp SuiteというPCアプリケーションでプロキシを建てて、PC側でクライアント/サーバー間のリクエストとレスポンスを弄ろう、といったもの。いわゆる中間者攻撃のようなもの。 演習前に「脆弱性を利用しないとクリアできません」というとんでもない一言があった。
アプリも通信も単純なものだったので初心者でも推測しながら進めていくことができた。
今回使われたアプリにあった脆弱性は
- ログインでNoSQLi
- アイテム利用時にセッションの確認がないので他ユーザーのアイテムが利用可能
- レスポンス受取時に誤り検知の仕組みがないので改竄可能
だった。SQLiは試したけどNoSQLiは知らんかった。
というわけで敗北感を感じながらもレスポンス改竄でゲームは無事クリア。
最近のスマホアプリのほとんどはデータを保持しているWebブラウザのようなもので、Webアプリにある脆弱性がそのままスマホアプリのAPIにある場合も多いんだとか。
多分その辺りの開発に携わることはないだろうけどなるほどなぁって感じだった。
若者相手のネットワークと法・倫理問題
夕食後で正直眠くなりそうな話だと思ったら全然そんなことなかった。
「自分が自動運転車のプログラムの開発者だとする。例えば車がトンネルの中など横に退避できない状態で目の前に女の子がいた場合、直進するか横に曲がるかどのようにプログラムするか。ただし、停止できる速度ではなく、曲がった場合は運転者の命は保証されない」という問題が最初に提起され、各自で考えた。
興味深い意見がいくつかあった。
- 車は運転者を守る責任があるので横には曲がらない
- 女の子が実は女の子ではなかった場合を考えると曲がるべきではない
- 車自体にエアバック等の設備があるので、助かる確率を考えて横に曲がるべき
- そもそもトンネルの中に女の子がいる状況がおかしい
ごもっともである。
その他にはアイザック・アシモフのロボット三原則や、インターネット上の情報の著作権についてのお話があった。とても興味深い内容で楽しかった。
2日目
クラウドセキュリティ基礎
最近流行りのクラウドについて。クラウド全体について広く浅く、たまに深くと言った感じの話だった。
「サーバーはペットから家畜の時代。一つ一つ大切に育てていくのではなく、具合が悪そうなサーバーを見つけたら処分する感覚」とのこと。企業として運営するサービスに利用しているサーバーがペットのようにひとつひとつ大切に育てられたものだったら、もしものことがあった時に手に負えないよね。何かあっても柔軟にサーバーの増減などができる体制を作っておこう、という話だった気がする。
完全に無知なので、パブリッククラウドとプライベートクラウド、SaaS, PaaS, IaaSなどの説明も聞けてとても勉強になりました。
あとここでもグループディスカッションがあって、内容は「サーバーの増減を行った際に起こりうる問題と対処」だった。サービスが1時間止まるだけで本来得られる利益が得られないわけで、サービスを継続したままサーバーをどのように管理するかというのが難しい。
結論としては、コピー可能で増減が楽な処理担当のサーバー(Statelessサーバー)、データを保持して死ぬ気で守るサーバー(Statefulサーバー)に分けてメリハリを持ったサーバー運用をしよう、っていう話で一段落ついた。
この分野は特にここ数十年で進歩が著しく、眺めていて楽しい分野とのこと。
ハードウェアの基礎
ハードウェアの講座と、演習としてRPiで電子工作。一気にレイヤーが下がってついに物理層まで到達してしまった。
講義は基本的な電気回路の知識とセンサーの紹介、演習ではRPiでLED点滅(通称Lチカ)とモータードライバを利用してモーター制御をやった。
残念なのは配線してすでにあるバイナリを実行しただけだったということ。どうせなら自分でも組みたかった。
まとめ
低レイヤーを専門にしたいと考えながらレイヤー高そうなセキュリティミニキャンプへ参加したが、得られるものが多くて満足。
基本的には高いレイヤーの話でもサーバーならLinuxが出てくるし、セキュアな仮想化基盤の話も出てくるし、セキュリティの知識はレイヤーの高さ関係なく持っておくに越したことはないと実感した。
セキュリティの分野を専門にする気はあまりないけれど興味はあるので、これからもこういうイベントには積極的に参加していきたい。
というわけで次回はセキュリティミニキャンプ2016 in 東北です。