ふるつき

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

K-SEC セキュリティ・サマースクールに参加した

K-SECというものに参加しました。その間にメモした内容をブログ向きに整えて公開します。K-SEC に参加した人や応募したが参加できなかった人が読むと面白いかもしれません。そうでないひとは読むだけ無駄だと思います。また、本稿についてのご意見は積極的に受付けています。

K-SECについて

K-SECという高専機構のセキュリティ人材教育プロジェクトのようなものがある。今年は初の試みとして K-SEC セキュリティサマースクール in 岐阜高専(以後K-SEC)が開催された。全国から高専生を40人程度集めて、1泊2日で何かしらの講習会を行う。学内で募集がかかっていたので申し込んだ。交通費・宿泊費をK-SEC側の予算でなんとかしてくれるので参加障壁が低く、全国の高専生を集めるというので内容や人間に期待できると思った。学内では7名の申し込みがあったようで、校内での抽選で4名になり、K-SEC側の抽選で私ともう一人、同じ情報工学科の4年生が選ばれた。

当日まで

プログラムを見れば、講義は全部で10個あり、そのうちの5つを受講できるようだった。希望を伝えて、いくらかはその希望は通らなかった。

 その後 yammer の K-SEC グループに招待された。yammer というのは一つのグループウェアのようなもので、コメントの投稿やファイルの共有ができるプラットフォームだ。高専機構はMicrosoftと仲良くしたいので高専機構としてOffice365*1を提携しているので、その関係で採用しやすかったものと思われる。

 いくつかの講義では事前学習の課題が与えられた。一つは使用するマシンにVNCSSHのクライアントをインストールしておくことで、残りは理解度チェックのような、フォームベースの問題を解くものだった。全員に共通して出された課題はアンケート方式で「K-SECでは積極的にコミュニケーションを行い自分の意見を表明できる」という設問に対して6段階で回答する、というような問題が20問程度あるものと「情報を適切に活用することができる」というような設問の、こちらも6段階で回答するものがあった。私の選んだ講義での事前学習では、Unixシェルの基本的な事項について尋ねられる選択式の問題もあった。

講義B: ログによるインシデント解析

 ここで前日にTwitterではろはろしたプロとこんにちはする。はじめましてだけ言って別れた。なんとなく席を決めてすわったあとプロジェクタがちゃんと動くのを待ちました。

 席の人みんなLinux使ってて嬉しい感じになりました。担当は石川高専の先生方だった。

 教材はK-SECの予算でNECに作ってもらったログ。終わった後もやりたかったら教員を通じて言ってねとか講座のネタバレをするなということ。資料もNECのものだった。

 ざっと内容紹介すると、Apache2のログを見ていた。大体適当な正規表現でログファイルのうち着目するものを絞り込み、それらを cat して grepawk か cut。あとは sort や uniq を使っていた。シェル芸力が磨かれたけど新しい知識は無かった。

 時間がもっとあれば、 Wireshark で pcap ファイルを覗いて云々、のようなこともできるらしい。確かに与えられたデータの中にはpcapファイルも存在していた。適当に strings すると UNION%20SELECT って書いてあった。

 講義としてはログ解析というよりはシェル芸という感じだった。もうちょっと脆弱性について、ログに残されたのがどのような攻撃なのか、成功するとどうなるのか詳しく知ることができたら嬉しいと思った。

講座D IoTカーを用いたセキュリティ演習

 続いては苫小牧高専の先生による講義。

 Raspberry + モータードライバによる車が用意されていた。合同会社ヘマタイト製とのこと。IoTカーは80番ポートでLISTENをしており*2、車体後部に搭載されているカメラの画像を閲覧可能。また、タイヤの回転を制御できるボタンがあった。しかしこのページには脆弱性があった。

前進させる forward ボタンは <a href="command.php?script=forward.py> のようなリンクであり、 command.php の動作は大雑把に書いて system("sudo commands/" . $_GET["script"]) だった。forward.py の中身はGPIOを操作するスクリプトであり、これが実行されることでIoTカーが駆動するというわけである。apache を管理しているwww-dataは NOPASSWD でsudo 可能なので、ひどいOSコマンドインジェクションができる。というわけでこれを修正した。起動する必要があるスクリプトはいくつかのpython ファイルだけだったので、$_GET["script"] の値をホワイトリストでチェックした。

あとはデフォルトユーザは狙われやすいので、他のユーザを作っておき、ユーザpi は sudo passwd --lock pi でロックしてしまった。これで90分が終わった。私は勝手に講義資料を読んでDigest認証もやったが、講義中ではDigest認証は飛ばしていた。

 IoTカーの講義だったが、どちらかといえばPHPアプリケーションの脆弱性について詳しくやっていた感じだった。デフォルトのユーザ名・パスワードを使用していると危険だというのはIoTに限らず大事なことだと思う。

講座F 情報セキュリティにおけるインシデント対策演習

 1日目最後の講座。これはグループワークのようだが、前の講座(講座C。私は受講していない)でも同じようなことをやったらしい。今回の講師はMOTEX-CSIRTの方。MOTEXが出してる本を配ってもらったのでありがたくいただいた。

 グループワークなので、自己紹介とリーダ(Chief Information Security Officer)を決めるのに5分程度。私の班は長野の5年生二人と私と後輩。CISOをすっと押し付けれてしまった。コミュ弱なので仕方がないです。少し情報セキュリティの基礎的な部分(パスワードの決め方の注意など)をきいた。

 続いてCSIRT演習。おそらくこちらがメインテーマ。25分程度。架空の会社のCSIRTチームとなり、インシデント対応の演習を行う。今回の演習では営業部だか広報部だかのマシンが出始めのWannaCryに感染したというものだった。何をやっていいかわからないのに時間がなくてなかなかたいへんだった。CSIRTはなかなか忙しそうだ。その後、私達ではない2班が発表をやっていたが、大体考えることは同じだった。

講座G ICT機器に関するリテラシーのワーク

 2日目。

 グループワークをするときの要所からだった。どのようにグループワークを進めればよいのかなどを話してくれる。5W1H のようなリストが用意されていてそこに事項を書き込んでいくと良いとのこと。

 さてこのフォーマットに従って、我々の場合は「医療機関が廃棄業者に流したPC、を購入した大学生がHDDから機密情報を復元した(更に大学生が医療機関に匿名の通報を行ったと仮定)」というシチュエーションにおいて、なにが起こったのかという事例の整理と対策の検討を行った。グループのメンバーがいろいろ考えてくれたのでそれを聞きながら書記をやっていた。

 その後は視点を切り替えて「こうしていれば」「こうならなかった」「こうもならなかった」を考える個人作業をやり、大きい用紙に今の作業を移してグループの意見をまとめた。すると模造紙は「いつ何が起きたのか」「個人として考えた対策の一覧」「グループとしてまとめた意見」が縦に並んでわかりやすい。我々のグループでは「廃棄業者をきちんと選定すること」という意見がでていたが、これを見た教員が「業者を選ぶ基準は」などの疑問を投げかけてきた。そこまで考えが回っていなかった。その教員であれば、HDD全体にランダムな値を3回ほど書き込んで最後にゼロ埋めを行うらしい。

 続いて他のグループでの検討を聞く。新しいグループを形成して、もとのグループでまとめた意見を新しいメンバーに説明する。まとめたと思っても説明するのは難しくて新しく考えさせられたり、他のグループの考えを聞いて刺激を受けたりできた。

講座J: FaBoロボットカー+デバイスWebAPIではじめるIoT実践講座

 最終講座。講師はNTTドコモとFaBoというところの人らしい。講義前に Arduino UNOベースで作られたFaBoカーとAndroid端末が配られた。AndroidにはDeviceWebAPI Manager というアプリケーションが搭載されていて、これがHTTP のエンドポイントを立ててくれるので同一LAN内にいるPCからアクセス、操作できる。APIを叩いてくれるGitHub Pagesがあって、これを使うと手軽にNotificationやVibrationができた。

 今はGitHub Pagesでやっていたが、AndroidとFaBoをつないで、PC側では html/js をいじって操作する。Andriodのmicro USBからArduino UNOにながしてGPIO出力をさせているっぽい。モータを回すAPIや距離を測るAPIの叩き方の例を見て、自分たちで操作してみる。

 ここまでで講座は終わりだった。ちょっと時間があったので、直進するが壁の前でとまるというスクリプトを書いて動かしていた。本当は壁を回避して曲がりたかったけど綺麗に曲がるパラメータを探すのが面倒だったのでやめた。

まとめ・感想

 さすがに参加している高専生は意欲的でとても刺激になった。特にグループワークではいろんな意見があって面白かった。しかし、全部で10講義、個人では5講義しか受けられない中で3講義がグループワークというのは少し偏り過ぎている気がしないでもない。

 とにかく、良い体験でした。  

*1:ただしなぜかOneDriveはまともに使えない

*2:これに相当する良い日本語があったら教えてください