yoshikingのがんばる日記

あたまよくないけどがんばります

セキュリティミニキャンプ in 愛知 2019 参加記

 10/5にミニキャンプが開かれていたので、参加しました.学んだことや感想を書いていきます.

www.security-camp.or.jp

 今回のキャンプでは、分散システム(ブロックチェーン)や機械学習といった流行り?(語弊がありそう)の技術についてのセキュリティがメインになっています.

午前:分散システムで学ぶセキュリティ

 主にブロックチェーンを実装してみようといった感じでした.ブロックチェーンは昔少し嗜んでいたので、事前知識としては十分でした.(CTFで去年の冬あたりブロックチェーン問流行りそうだったけど、最近見ないですね)今まではsolidityを用いたスマートコントラクト関連しかやったことがなく、基盤となるブロックチェーンの実装はしたことがなかったので、非常に楽しかったです.また、言語がpythonだったのも、一番慣れ親しんだ言語なのでプログラムで困るということがないのはよかったです(午後の講義も同じことが言えますが).

 やったこととしては、署名の検証やPoWの実装をしました.PoWはすぐかけたので、10秒に合わせるのを頑張ってました. ただ、時間の関係でDNS関連の話を聞けなかったのが残念です.講義資料と戯れます...

お昼ご飯

 お弁当でした.これがめちゃめちゃおいしかった.ほんとに.

午後:実践 機械学習セキュリティ

 前半に講義をして、残りは演習をひたすらしました.機械学習はAndrew Ng先生の有名なやつを6か7章まで進めた記憶があるので、さっぱりということはなかったです.機械学習に対する攻撃をいくつか挙げられていたのですが、画像に対する攻撃とかpicoCTF2018であったじゃんと思いました(picoマジですごいな...).

 今回は、同一IPからの集中アクセス(パスワード総当たり)を想定した攻撃検知の実装を行い、作ったモデルを自ら攻撃することをしました.ロジスティクス回帰を用いて決定境界を定めました.攻撃者は特徴量の任意の値からモデルの出力(攻撃か否かの確率)を知ることができるという仮定で攻撃します.ここで、未知の変数を解くためにデータをとってきて、連立方程式を解くことにより、決定境界の関数を導きます(ちょっと専門用語の使い方に自信がないです...).これにより、攻撃者は実際のモデルに近しいものを手に入れることができます.モデルを手に入れると、攻撃者の手元でモデルについて研究することができます.今回は50%に近い値となる手元のモデルで見つけ、実際のモデルに投げてみました.プログラムで探索したろ、と思ったのですが、うまく書けなくて泣いちゃいました(2変数なので手動でも全然見つかる).

 連立方程式を解くところとか、いくつ方程式をとればいいか実際はわからなくね?と思いました.次元削除や高次の特徴追加の影響でエスパーするの結構厳しそうに見えるんですが、実際はどうするんですかね(OSINTとか?).詳しい話は以下の論文に乗っているようなので、興味のある方はぜひ.

arxiv.org

さいごに

 めちゃめちゃ楽しかったです.やっぱり実際に動かして遊ぶのは楽しいですね. 最後になりましたが、運営・講師・参加者の皆様ありがとうございました.