/var/log/Sawada.log

SAINO中毒患者の備忘録。

セキュリティ・ミニキャンプ in 北海道 2017に参加してきた

はじめに

この記事はMuroran Institute of Technology Advent Calendar 2017 11日目です。北大の情報基盤センターで開催されたセキュリティ・ミニキャンプ in 北海道 に今年も参加してきました。来年の参考にしてもらえれば...。そんな感じの備忘録です。(何?もう一か月経ってるの!?)

今年はAVTOKYOへ行くチャンスもあったのですが、自分がちょっと苦手なリバースエンジニアリングの講義と、BadUSBの自作に惹かれて応募用紙を提出しました。当日の雰囲気は以下をご覧ください。

togetter.com

いつもどおりの目次です。

専門講座

Day1 11/11

CODEBLUEの記事の通り、初日は新宿から札幌へ向かう必要がありました。都内の距離感がイマイチわからない田舎者だったので、集合時間ギリギリに間に合うかもしれない飛行機を予約してしまいました。

札幌には集合時間を少し過ぎてからの到着...。佳山さんのお話を殆ど聞けなかったのが残念です。他の地方でも見かけた「動かす!考える!背中を見る!」のスライド、とても大事だなぁと思います。

ID連携と認証基礎

初めの講義はレピダムの林さんによる認証技術の講義と演習。サービスと個人を結びつけ利用する仕組みとして、ID/Passwordによる認証が当然のように用いられていますが、攻撃手法の進化と共にID/Passwordによる認証方式も移り変わってきたという話からスタート。事例紹介には、あのJALマイレージバンクも。この事件で騒がれた攻撃手法がreverse brute force attack*1。結局、計算機の発達(のせいで?)によって、webをクローリングすればIDは簡単に取得出来てしまうし、情報漏洩に繋がればList based attackの被害も可能性として考えられます。

  • 人間の記憶には限界があるのにITサービスは日々増加
  • 結局使いまわしてしまうPassword
  • 漏洩は完全に防げない

ここから言えることはパスワード認証の終焉。新しい認証方式を考えないとねという話が本題でした。一方、この様な啓発ポスターなんかもあったりするんですが、IPAェ... www.ipa.go.jp

それはさて置き、上記の課題に対する緩和策として最近ではソーシャルログインに代表されるID連携が普及しています。演習はLINE Developer Consoleにてアクセストークン用のアプリを疑似的に作成し、GoogleOAuth 2.0 PlaygroundからLINEのプロフィールの取得する、といった内容でした。これがID連携の根本です。実際のサービスではLINEのアカウント情報を取得して、自分のサービスへの認証につなげるといった感じでしょうか(間違っていたらごめんなさい)。一方で、OAuth2.0には再認証の概念が無い、つまり認証を請求した人が本人かどうかを確認するすべがないため、ID連携としては不十分な面もあります(CSRF対策など)。そこで、補完としてOpenID Connectを組み込むそうです。なるほど...。

後半では、IDの定義確認*2や大学入試に関して認証の観点から問題点の洗い出し、攻撃手法、その対策をグループワークとして扱っていました。loginやlogonが丸太に由来している話*3は初めて聞きました。もしかして教科書の隅っことかに書かれてたりするのかな...確認しなきゃ。

セキュリティ技術と倫理

夕食を終え、夜の講義と言えば倫理ですね。夕飯の後にはちょっと辛いイメージを個人的に抱いていましたが、今年は一味違いました🔥。講師の佐々木さんは道警でフォレンジック調査を担当されている方。覚えて欲しい倫理観の要点と笑い要素の詰まったスライドで眠気を感じずに受講できました。〇ター・ウォーズ、乱寒犬、マルウェアパワポ芸でニヤリとした方は今回のキャンプ関係者だね😀

内容としては若年層サイバー事犯*4*5*6を扱い、刑法第168条第2,3項不正アクセス禁止法に触れ、それに対する倫理観に対する解説でした。この他に「PCを操作する上での自分なりのルール」をテーマにグループディスカッションしました。自分は他人が認証作業中はキーボードを見ない事にしている(タイピングからパスを推測しないため)を挙げましたが、生活リズムに配慮した連絡を心掛ける、P2Pソフトウェアを入れない等様々な意見が出ました。講義の趣旨は以下のようなものだった筈...

セキュリティ業界は数年後に価値がコロコロ変わるけど高度な技術を常に要求される。だからこそ、身につけた知識は一般の人々から見れば特殊なものであり、社会的責任の大きさも異なってくる。暗黒面の沼へずぶずぶ浸からないよう、思考によって自分の中に確固たるルールを持っておこう。

宿泊場所へ

宿泊場所はNTT北海道セミナーセンターでした。タクシーで移動。アーティストの札幌公演と日程が被ってしまったそうです。ホテルではないのでくつろぎ空間は皆無ですが、相部屋の方に少しお話聞けたので良かったかなと思います(自分はラボと実験のレポートをやってて殆ど話せなかった)。弊学は情報系と言いつつも割と仕様書設計やらマネジメント分野をゴリゴリ演習する方針だそうで、WEB系企業でインターンしてきたとか、研究室で暗号理論を...といった話を聞くとエンジョイしてていいなぁと思ったりもしました🤷羨ましいぞ!!!

Day2 11/12

朝食はお察しください。

バイナリ解析の基礎

二日目スタート。配布された仮想環境にてバイナリ解析を行う演習でした。使用したのは皆さんご存知のIDA(Interactive Disassembler)。

  • リバースエンジニアリングでは何を知りたいのか目的を明確にして処理部分を探さないと時間が溶ける
  • 処理部分の探し方も関数名、文字列、値など注目すべき点は様々
  • アセンブルの記法をおさえよう

愛甲さんの本で多少なりとも勉強していたり、CTFでもちょくちょく扱う内容だったので演習の問題はさほど苦労せずに解くことができました。IDAは素晴らしいと思うのですが、pro版はライセンス料が高いため個人の場合には良くRadare2を使用しています。

github.com

AVRマイコンで作るBadUSB工作

最後の講義は楽しみにしていた、竹迫さんによるBadUSB講座。BadUSBとはUSBのファームウェアに検出不能な状態でマルウェアを送り込める脆弱性を利用した攻撃手法の事。初出はBlack Hat 2014 USA。当時話題になったのを思い出しました。


BadUSB - On Accessories that Turn Evil by Karsten Nohl + Jakob Lell

演習内容はAVRマイコンPS/2 <-> USB変換コネクタに接続して、キーボードから発生する電気信号をプログラムからエミュレートするというもの。電気信号は配列で指定できるよう予めサンプルコードが書き込んでありました。Explorerの多重起動など良さそうな気もしましたが、中古PCが壊れると悲しいのでタスク切替を延々を実行し、本体からの入力を一切受け付けない仕様のUSBを自作。他の人はシャットダウン命令を実行したり、ウィンドウを回転させたり色々やってました。資料と機材は持ち帰りOKだったので自宅でも演習の続きが出来ます。配線を間違えると焦げるので注意して扱います。

おわりに

f:id:takuzoo3868:20171210174514j:plain

enPiT SecuritySecCamp 全国大会 など自分にはもう参加する機会がない話題が多く、悔しさも当然ありましたが、自分なりにやっていくしかないですよね。とりあえず大学での研究の方向性ですが、水産系AIシステムからFRT-DRPEシステムへ変更になりそう。年末はSecHack365のデスマです。エスカップ備蓄しておきましょう...

謝辞

今年度も交通費、宿泊、食事すべて支援して頂きました。講師やチューター、実施協議会をはじめ、LOCAL、サポーターズの皆様、本当にありがとうございました!

*1:パスワードを固定して、 IDを次々に変えてログインを試行する攻撃

*2:identification:識別, identifer:識別子, identity:自己像, identity proofing:本人確認

*3:https://gigazine.net/news/20140430-origin-of-log-in

*4:http://www.sankei.com/affairs/news/170113/afr1701130010-n1.html

*5:http://www.itmedia.co.jp/news/articles/1706/05/news098.html

*6:http://www.sankei.com/affairs/news/161129/afr1611290017-n1.html