IPMIとは何か。

とあるデータセンターでアルバイトなお仕事をしているのですが、

「IPMIが繋がらない旨の連絡がありました。」「IPMIの結線からお願いします。」など、IPMIという聞き慣れない単語が頻繁に飛び交っていました。

よくわからずサーバー構築作業を行うのが気持ち悪かったので、少し調べてみました。

あいぴーえむあい 【IPMI】 Intelligent Platform Management Interface

SNMP(Simple Network Management Protocol)やDMI(Desktop Management Interface)などのサーバー管理ソフトウェアが、特定のハードウェアシステムやOS依存することなく、サーバーハードウェアをモニタ可能にするための標準インターフェイス仕様。具体的には、このIPMIを通して、サーバーの温度や電源、ファンの状態などを監視できる。IntelDellHewlett-PackardNECによって策定され、仕様が1998年2月に発表された。

 

ASCII.jpデジタル用語辞典より引用。

 

「その場にいるかのようにサーバーを監視・操作できる環境を、ネットワーク越しに実現する技術」

とわかると、

「便利じゃんっ!!」

ってなるわけですね。欲しくなるわけですね。

というわけで、

http://cloud.watch.impress.co.jp/docs/special/20101027_402687.html

あたりを参考にして、安いくて使えそうなのを探して購入。

スクリーンショット 2014-09-21 19.24.43

http://www.pg-direct.jp/products/detail/6154

IPMIするのに必要なRAC(リモートアクセスカード)付きのものでも23000円ぐらいで買えました。

2014-08-24 19.44.58

圧倒的なサイズ感。サクッと開梱して

2014-08-24 19.55.37

マニュアルを見ながらRACを装着します。コツが入りますがサクッと取り付けます。

メモリはデフォルトの4GBのままです。

2014-08-24 20.20.44

クソ使いづらいHDDマウンタには、HPのHDDマウンタではなくWDの黒HDDがついていました。今回は使用しないので棚にそっとしまいました。

2014-08-24 20.28.35

 

組立後にRAIDを組んだのですが、そのあたりはまた別の記事に書きたいと思います。

そして結線。普通のLANケーブルとIPMI用のLANケーブル、合わせて2本のケーブルを結線することになります。

ネットワーク素人的には

「この2本を同じスイッチに結線するとループするのではないか」という懸念があり、

試してみたところ、スイッチのループ検知ランプがついてしまいました。

そこで、IPMI側だけ一つルータを挟む事により別のセグメントに隔離しました。

http://www.supermicro.jp/library/ipmi-web-access.html

 http://d.hatena.ne.jp/yukimi0721/20120728/1343446504

ここなどを参考に、NATとか設定することによりなんとかIPMIのログイン画面にアクセスできるようになりました。

スクリーンショット 2014-09-21 17.28.36

ログインすると、

 

スクリーンショット 2014-09-21 17.29.28

IPアドレスの変更などを行ったり、

 

 

スクリーンショット 2014-09-21 17.29.40

電源のコントロール(ON/OFF/強制終了して再度起動など)をしたり、

 

スクリーンショット 2014-09-21 17.29.48

 

各部の温度を確認したり、

スクリーンショット 2014-09-21 17.30.10

ファンの回転数を確認したり、

スクリーンショット 2014-09-21 17.36.55

KVMアラートをメールで投げる設定をしたり(SMTPサーバの設定が必要?)、

スクリーンショット 2014-09-21 17.30.32

KVMに関する設定をしたり出来ます。Launch KVM Viewer をクリックすると、

 

スクリーンショット 2014-09-21 17.37.49

 

JAVAが立ち上がり、

スクリーンショット 2014-09-21 17.38.00

警告画面が出ますが進めます。するとウインドウが立ち上がります。

スクリーンショット 2014-09-21 17.38.19

筐体からモニタに出力されるのと同じものがここにも出ます。モニタとリモートのKVMを同時に出力することも可能です。

 

スクリーンショット 2014-09-21 17.38.40

 

 

マクロボタンの中には便利なCtrl+Alt+Delもあり、Windowsのログインなんかに使えます。再起動してみます。

スクリーンショット 2014-09-21 17.41.07 スクリーンショット 2014-09-21 17.41.13 スクリーンショット 2014-09-21 17.41.18 スクリーンショット 2014-09-21 17.41.24 スクリーンショット 2014-09-21 17.41.27 スクリーンショット 2014-09-21 17.41.29 スクリーンショット 2014-09-21 17.41.36 スクリーンショット 2014-09-21 17.43.50

 

ちゃんとBIOSの設定やRAIDの設定も行えます。アクセス元の光学ドライブを使ってOSのインストールも行えます。

 

感想

すげー便利。自宅にいなくても物理的作業(HDD交換など)以外はほぼすべて出来てしまいます。

他に遠隔操作の手段はSSH、リモートデスクトップ、VMware ESXiなどがありますが、

SSHはWindowsでSSHサーバを立てるのが面倒、リモートデスクトップは一度通信の許可を行わなきゃいけないのが面倒、VMwareはゲストOSから直接HDDなどのHWにアクセスさせるための設定が面倒、そもそもこれらはOSが入っている事が前提で動くのでOSインストールまでの作業は現地で行わなければなりません。

そういった意味ではすごく使い勝手がいいのではないのかなー、と思ってます。

いろいろなツールが出回ってたりして管理を自動化出来たり、システム管理者の方もわざわざデータセンターまで赴く必要がなくていいですね。

 

さいごに

このサーバーにはWindows Server 2012R2を入れてファイルサーバーにし、Hyper-V上にCentOSを入れてWebサーバにしたりしてます。(収録後スタッフが美味しくいただきました的な)

よくIPMIの設定をしていると、IPMIの設定項目のところにBMCという単語を見かけます。文脈的には同義なのだろうと思ってましたが折角なので調べてみました。

スクリーンショット 2014-09-21 20.35.29

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1486789469

どゆこと・・・・

リモートマネジメントコントローラ(標準搭載)

PCサーバのシステムボード上に標準搭載されている遠隔管理チップ(略称:iRMC/iRMC S2)です。サーバ管理のための標準技術であるIPMI(Intelligent Platform Management Interface)を利用して、ベースボード管理コントローラ(BMC :Baseboard Management Controller)と呼ばれる処理装置を通じ、温度センサー、CPUステータス、ファンのスピードや電圧といったボード上のデバイスを監視したり、リモートからのサーバ再起動や電源操作を実行したり、BIOS設定およびOSコンソール情報に対するリモートアクセスを提供しています。

富士通 PCサーバ遠隔操作ガイド より引用

RMCというネットワーク寄りのパーツがBMCという、ハードウェアを管理してるパーツ経由でハードウェアの監視・操作を行う、これを実現する技術がIPMIってことになるのかな?

っていうかこのページ、記事を書いてる途中で見つけたけどすごく良くまとまってる。この記事いらないぐらい。ワロタ。

 

学祭でCTFしてみた【運営側WriteUp編】

#同時進行で【準備編】と【反省編】も書いてるんだけど、時間がかかりそうなので先に公開。

 

僕が作った問題は4つ。

  • Web HTML Basic [10pt]
  • だ~れだ?[20pt]
  • Web HTML Advanced [50pt]
  • The 404 error [75pt]

Web HTML Basic [10pt]

一番簡単に見える問題で、一番多く解かれていました。

基礎中の基礎、かつありがちな問題をミックスして出題しました。

Welcome!!!

HTML宝探し系の問題です。

Stage0

Stage0。これは、確認問題です。答えは書いてありますね。答え:Password

Stage1

Stage1。今回は書いてありませんね。でも、Stage0でPasswordと書いてあった位置が空いているのが気になりますね。ということでクリックしたままカーソルでその辺りを擦ってみます。

02

浮かび上がってきましたね。

01

ソースからも文字を背景と同じ色するよう指定されている事がわかりますね。

答え:adminadmin

Stage2

Stage2。先ほどのようにドラッグしても浮かび上がりません。

仕方がないのでソースを覗いてみます。

03

コメントアウトで表示されないようになってますね。

「パスワードは”XXSer”です。」答え:XXSer

どうしてこんなTypoしたんでしょうかね。

さて、これを送信するとflagが出てきます。

congratulations!!

The flag is “sonodam” 答え:sonodam
この問題は気が向いたら公開します。

だ~れだ?[20pt]

この問題を作るにあたって、ZIPファイルをCGIで動的に生成しようと思って色々勉強しました。ZIPファイルって意外と簡単な構造らしく、コードをガリガリを書けば中のファイルを動的に生成しZIPとしてまとめることも難しくないようなのですが、Perlのコードのほうが複雑になってしまい、サーバーへの負荷が高まったり、同時にアクセスがあった場合の対処など、余計に考えることが多くなってしまったので動的生成は断念して作りおきのファイルをダウンロードさせることにしました。

問題ページにはZIPファイルへのリンクが貼ってあり、problem.zipがダウンロードできます。

02

自分が想定した解答のプロセスは3つ有ります。

1.Linuxでコマンドを使いながら解く

とりあえずfileコマンドを使ってファイルの中身を調べてみます。

Screenshot from 2014-06-10 00^%47^%28

拡張子通り、中身がzipファイルであることがわかりましたので、解凍してみます。

Screenshot from 2014-06-10 00^%58^%38

沢山のzipファイルが出てきました。それぞれに対してfileコマンドをかけてみます。

Screenshot from 2014-06-10 01^%03^%29

ほとんどのファイルはzipではなく、022.zipがzip、036.zipがpngファイルとわかりました。036.zipの拡張子をpngに変え開いてみます。

Screenshot from 2014-06-10 01^%15^%43

「Flagは022.zipにあるよ」ですって。親切な問題ですね。022.zipを展開してみます。同様にfileコマンドで

Screenshot from 2014-06-10 01^%29^%30

沢山のjpgファイルが出てきましたが、flag (25).jpgだけテキストファイルのようなので、stringsコマンドで文字を抜き出してみます。

「VGhlIEZMQUcgaXMgWklQTUFOTk5OTk4=」

最後に=(イコール)が付いているのでBase64でしょうか?デコードしてみます。

base64

「The FLAG is ZIPMANNNNNN」

答え:ZIPMANNNNNN

 

2.目grepしてみる

flagの含まれるファイルを絞り込む段階で、バイナリエディタを使うと効率よく見当を付けられる場合があります。

zipファイルをバイナリエディタで開くと、

meg01

しばらくFFFFF・・・と続いていることがわかります。ビットイメージも

meg02

真っ黒ですね!色が変わるとこないかな~っとスクロールしていくと、

meg03

途中画像ファイルらしきものが見えてきます。その時のバイナリは、

meg04

となっていて、036.zipは、「臼NG」とか「Gimp」とかあるのでPNGファイルだというのがわかります。さらにビットイメージをスクロールしていくと、

meg05

下の方でごちゃごちゃが出てきます。バイナリは、

meg06

となっていて、022.zipが本物のzipだとわかります。

ここまで分かればバイナリを抽出するも良し、解凍ソフトを使うも良し、ということで楽に次のプロセスに進めます。

 

3.ファイルサイズの比較

この問題、Linuxやバイナリエディタがなくても、特徴を比較していけば簡単に解くことができます。

problem.zipの中身はこんな感じ。

size0

ファイルサイズ順にソートすると、

size1

2つだけサイズの違うファイルが有ります。残りは同じファイルサイズのファイルばっかりです。

面倒くさがりの作者は2つのファイルをコピーか何かで増やしたんでしょう。

036.zipが開けなくても、022.zipはまんまzipファイルなので解凍してみみると、

size2

一つだけ明らかにサイズが小さいのでおかしいのに気づくはずです。

JPEGファイルとして壊れていると表示されても、メモ帳で開けばflagの鍵になる文字列が出てきます。

 

 

※JPEGファイルをクローラに適当に集めさせたため、著作権的に公開するとヤヴァいファイルが有るかもしれませんので、problem.zipは非公開とさせていただき、勉強会などでお会いした方のみ御覧いただけるようにしようかと考えています。

 

 Web HTML Advanced [50pt]

この問題を作り始めたときは今回のCTFの基準になるぐらいの問題にしようと考えていたのですが、解いてくれた人はわずか2人と、そこまで簡単ではなかったのかもしれません。

Welcome!!!

挨拶は忘れません。

Stage1

Stage1。当然、ページ上にパスワードはありません。

001

HTMLソースにも書いてありません。

002

CSSを読みに行っても書いてありません。

そこで、HTTPボディーにはおそらく答えはないだろう、と方向転換し、HTTPヘッダーを見に行きます。

003

Passwordという項目がありますね。またBase64かよみたいな。

Password:「VEgzX0szWQ==」をデコードしてみます。

004

TH3_K3Yという文字列が出てきました。答え:TH3_K3Y

※僕の環境ではFireFoxのアドオンを使いましたが、パケットをキャプチャする方法も有ります。実際に、WireSharkを使って解いていた人がいたのでその方法も書きます。

アダプタを指定してパケットをキャプチャします。

016

ip.addr eq <ipアドレス>で絞り、「Follow TCP Stream」してみます。

017

HTTPヘッダを入手することが出来ました。

 

さて、次に進みます。

Stage2

Stage2。「パスワードを表示」という怪しいリンクが現れましたのでクリックしてみます。

006

ポップアップが出ますが一瞬で消えます。HTMLソースはこちら。

007

ポップアップのアドレスがs.htmlとなっているのでアクセスしてみます。

008

「H0KK4ID0_UNIV3RSITY」と書いてあります。答え:「H0KK4ID0_UNIV3RSITY」

この方法が一番楽なのですが、一応この文字レスを出すためのJSを難読化しているので、

009

パケットキャプチャで責めた方は難しく感じたかもしれません。最後の赤文字は気にしないでください///

Stage3

Stage3。またもや同じリンクが出てきました。

嫌な予感がしつつもクリックしてみると、

010

ポップアップキタ~w

しかも少しずつ変化してるし。ジーっと眺めてるとウインドウのタイトルが

1→2→3→1→2→3・・・と繰り返しになっていることに気づきます。

それぞれ読んでいくと、

012

「U0VGVFNFOVB」

011

「UMDlQVDA5UF」

010

「QwOVBUdz09」

とりあえずくっつけてみます。

「U0VGVFNFOVBUMDlQVDA5UFQwOVBUdz09」

これでSubmitしてみます。

013

正解じゃなさそうです。

ちなみにこの問題は、一度間違うとトップページに戻る、という糞仕様になっております。

それはさておき。

出題者の趣味を考えて、先ほどの文字列をBase64でデコードしてみます。

014

「SEFTSE9PT09PT09PT09PTw==」

これでピンと来なければ過去問演習不足ですね。例のアノ問題ですw

もう一度デコードしてみます。

015

「HASHOOOOOOOOOOOO」となりました。答え:HASHOOOOOOOOOOOO

これをSubmitすると、

congratulations!!

「The flag is “44Ki44Op44O844OI5Ye644GX44Gf44GE44Oe44Oz”」

答え:44Ki44Op44O844OI5Ye644GX44Gf44GE44Oe44Oz

(MD5を戻す必要はありません。)

 

この問題の要点は、HTTPヘッダに気づくこと、ポップアップ画面を止める方法を思いつくこと(画面のキャプチャでも何度か撮るうちに行けます。)、そしてQRコードを読み取った文字を正しくデコードできることでしたね。

 

 

The 404 error [75pt]

一番作るのに苦労した問題です。

10443073_241773166012552_6296903985306991657_o

IE、Chrome、FireFox、MacではSafariでも自然に404な画面が出ます。

IEの「詳細情報」のリンクも有効です。

021

こんな自然な404画面ですが、HTTPヘッダを見てみると、

022

やはり怪しい物が出てきます。

「Decode: aHR0cDovLzE5Mi4xNjguMTEuNzUvOTBkYjM2ZWUzNzM3NDY5YjcwMGFjYmZhZjdhNTQ4Njkv」

Base64でデコードすると、

「http://192.168.11.75/90db36ee3737469b700acbfaf7a54869/」という文字列が現れるのでアクセスしてみます。

023

どうやらファイル置き場のようです。flag.txtを開いてみると、
888862262268888
8888
88886622446262
888866442266442266
偶数しかありませんね。これでピンときた人は過去問演習大丈夫な人ですね。

テンキーです。

↑↑↑↑→↓↓→↓↓→↑↑↑↑
↑↑↑↑
↑↑↑↑→→↓↓←←→↓→↓
↑↑↑↑→→←←↓↓→→←←↓↓→→

これを一筆書きしてみると

nire

NIREになります。答え:NIRE

この問題はWebと暗号とトリビアの複合問題?な感じなので配点は高めになってますがそれぞれは難しく無いと思います。

 

実際、問題を作ってみて

非常に偏りがありますね。特にBase64。オフラインでも解ける問題、ということでMD5は使いたくなかったし、んーって感じですかね。でも、perlでHTMLのテンプレを使ってみたり、UAで読み込むテンプレートを振り分けたりと、初めてのことに挑戦できて良かったです。

学祭でCTFしてみた【準備編&反省編】

10498423_10152543556248459_2593823878938098637_o

 

こんにちは。@chamaharunです。 勉強会サイト(https://sites.google.com/site/hokkaidoctfhackathon/home/archive/nirectf) にも書きましたように、北大祭・楡陵祭にてミニイベント「Nire-CTF」を開催しました。

4日間で300人近くの方が来てくださって、サイバー攻撃の映像を見て行ったり、CTFを体験してくださりました。 また、最終日にはセキュリティ・キャンプ中の人も視察に訪れ、拡散してくださりました。

    セキュリティ・CTF初心者の自分がCTFの大会を開催するにあたって工夫したこと、今後改善できそうなことを書いていきたいと思います。

きっかけ

Hokkaido CTF Hackathonは、昨年7月に発足して以来、ハンズオン形式の勉強会をメインに活動してきました。 コミュニティのモチベーションの持続と、仲間探しのために、大型イベントへの出展を模索していたのですが、OSC2014は申請期間にメンバーが忙しく十分な話し合いができず出展を見送りました。

そこで、メンバーに北大所属者が多いことから、北大祭・楡陵祭への出展を決めました。 メンバーの中には楡陵祭の運営中の人もいたので初めての出展にも関わらずスムーズな準備が出来ました。

準備

ミニCTF大会を開催するにあたって、事前に以下の準備をしていました。

  • 会場の下見及び機器の配置の構想
  • 競技の方式、サーバーの構成の決定
  • 使用する機器をメンバーに申告してもらい、最大消費電力、NICの対応規格を集計
  • 運営事務局に消費電力のリストを提出
  • NICの対応規格と機器の配置に合わせて必要なネットワーク機器及びLANケーブルを確保
  • 機器同士をどう結線するか、ネットワーク図を作成
  • 機器ごとのIPアドレスの当割
  • 問題の数、出題方針の検討
  • スコアボード及びアラート画面の制作
  • CTF体験コーナーのPCの確保

 

                 

会場の下見及び機器の配置の構想

昨年講義で使用していた建物でしたが、いざその教室をフルで使えるとなると、具体的なサイズ感がつかめませんでした。地割会議にて教室が割り当てられると、当日のレイアウトのイメージが湧くまで何度かその教室に足を運びました。

CTFの大会をやるには何が必要か考えてみました。問題をホストするサーバー、ネットワーク、CTFの大会だけではなく何か展示したり、プロジェクターを使うならスクリーンや暗幕も必要だな〜、とリストアップしていきました。

kaijo_b

会場見取り図のβ版がこちらになります。タイムスタンプを見ると本番1ヶ月くらい前に作っていたみたいです。LTをやったりするのに講師用PC台、椅子が必要だろうとか、RedBullを大量に用意してタワーをやろうとか考えてました。

競技の方式、サーバーの構成の決定

まず競技方式ですが、サーバー攻略競技はまだまだ技術不足で準備が困難なため、SECCONのようなクイズ形式に決めました。 サーバーは、最終的にはこんな構成だったと思います。

キャプチャ

VM1にスコアボードを設置、VM2に問題をホストする予定だったのですが、VM1にホストする問題もあったので、少しVM1に多めにリソースを割いた記憶があります。

ESXiを使用した理由は、VMの再起動などにモニタやキーボードを用意する必要がないことと、ホストマシンに割くリソースを最小限にしたかったこと、いざというときのコントロールがし易いんじゃないか、ということからです。

最大消費電力、NICの対応規格を集計

高等教育推進機構では、標準的な教室の利用できる電力は1800Wと決められていましたので、使用する機器とその最大消費電力のリストを提出する必要がありました。

1800Wを超える団体は余剰分が出そうな団体の教室からドラムコードで引き込みを行う、というルールでした。 申請書類には一応の締め切りは有りましたが、後日の変更が可能だったため、予めかなり多めに申請しておき、使用する機器が確定し次第変更の申請をする、という方針でいました。

運営事務局に消費電力のリストを提出

スクリーンショット 2014-07-16 18.52.59

開催直前に事務局に申請したのが上の画像になります。普段PCの消費電力とか意識することがなかったので勉強になりました。ちなみに、K-○などは、個人のPCで、枠外のR-○は外部からレンタルするPCの消費電力になっています。

NICの対応規格と機器の配置に合わせて必要なネットワーク機器及びLANケーブルを確保

 

機器同士をどう結線するか、ネットワーク図を作成

問題をホストするサーバーやサーバーの状態を監視する運営PC、飛び入り参加用PCなど、競技用ネットワークには何台ものPCを接続するわけですが、それだけLANケーブルやハブなどを用意しなければならないわけです。

年に1度あるかどうかのイベントのためにケーブルを購入するのもどうかと思いましたので、スタッフの私物を持ち寄って使用することにしました。ケーブル、機器の所有者を区別するのと同時に、それぞれの機器の規格にあったケーブルを結線できるように、表とタグを使って管理しました。

スクリーンショット 2014-07-16 18.08.28

んで、ケーブルはこんな感じ。これを両端につけて識別します。

2014-07-21 20.27.06

ちなみに使用したタグはこちらを使用しています。

2014-07-21 20.27.16

シールは実家にあったちょうどいいサイズの物を使用。家でも使っていてかなり重宝しています。 http://www.amazon.co.jp/dp/B001TVEO38  

機器ごとのIPアドレスの当割

今回はDHCPサーバを使用せず運営することにしたので、固定IPを振る必要がありました。そこで、IPアドレスをExcelで管理していました。

スコアサーバのバックアップにも一応(起動させることはなかった)IPを振っておきました。ただし、表にまとめておいても、持ち込みPCなどの設定が面倒だったので、サーバー以外はルータを入れてDHCPすればよかったなと思います。

スクリーンショット 2014-07-16 18.50.41

問題の数、出題方針の検討

初心者向けなので、SECCONで100点ぐらいの問題を基準にしよう、という話になりました。点数配分、問題数ともに調度良かったらしく、適度にスコアがバラ付き、かつ初めてCTFを解く人でも得点して楽しめていたようで、良かったです。

10295500_242910912565444_3509044028356387927_o

ただ、参加してくださった中には465点も得点していった猛者もいて、正直驚きました。 問題に関して、僕は

http://chamaharun.tk/blog/?p=137

に載せたとおり、Web(とはいえ、HTMLやHTTPヘッダに隠された文字系)とフォレンジック(多量のファイルから目的のファイルを見つける系)のみ担当しました。SQLiの問題は@saltcandy123が作ってくれました。サーバー接続型の問題も今後作ってみたいと思いました。

スコアボード及びアラート画面の制作

スコアボードも@saltcandyが作ってくれました。pythonで動いているようです。

これを改造したっぽいです。僕的に、SECCONのアレ

が欲しかったので、自作しました。

10357697_242719082584627_1621470669302514198_o

iPhoneのAlermの音が鳴ります。初めて正解した人は赤、それ以外は黄色に光ります。 非効率で脆弱性ありまくりそうなのでコードは公表しませんが、流れとしてはこんな感じです。

ユーザがスコアボードに答えを書き込み正解と判定される ↓

ユーザー名、問題名、得点、時刻、その問題の何番目の正解かをCGIにPOSTする。

CGIが渡された情報をMySQLに登録。

別CGIがMySQL にfetched=0の行を毎秒ポーリング

行が存在すればポップアップを表示する。fetchedのフラグを立てる

 

といった流れです。改善案をお持ちの方は教えて下さい!

 CTF体験コーナーのPCの確保

快くお貸し下さった貴島さん、ありがとうございました!!

準備の中でもこれが一番大変でした。 メンバーは基本的にPCを複数台持っているのですが、別の用途に利用中だったりしてなかなか体験用に貸し出せるPCを準備できませんでした。 そこでレンタルPCに頼るのもやむを得ないと思いまして、料金や注意事項などを調べるわけですが、今までレンタルを利用してことがなかったので驚きました。

高いっ。

イベント+準備で5日間借りると、同じスペックの中古が買えてしまうほど高いです。送料もバカにならないし、万が一のことを考えると保険も外せないし。 企画会議の時は「10台ぐらい借りて準備すればいいんじゃね?」なんて言ってましたけど学生には無謀すぎました。 問題も半分ほどできたのに体験コーナー諦めるのかー、自前PC持ってくる人なんてあんまいないよなー、と思っていたその時、じゅんたん師匠こと貴島さんがお声をかけて下さり、2台貸してくださりました。

僕のノートと合わせて3台(予定では4台だったけど、起動できずが1台)用意でき、来場者の方に楽しんでもらえました。1台がUbuntuだったのも好評で、デキる人はUbuntuマシンを使っていました。

最後に、〜Nire-CTF〜を終えてみて

生意気なことを言いますが、僕はCTFは受験で言う模試みたいなものじゃないかな、と思ってます。 試験本番やその先の学問が実践だとすると(この仮定も突っ込みどころがあるけど)そのエッセンス的なものや出題背景、出題者の「こういうことが出来きてほしい」という出題意図といったものが込められて問題が作られる。

目的は本番に向けて力をつけることであり、普段の学習効果を試したり(点数とか偏差値とかの数字にはできないけれど、自分の中で「まえは出来なかたけど、今回はできるようになった!」的な発見をしたり)、自分の未知の分野に出会えたり、チーム戦で知識を教え合ったり、勉強になるなーと。

Write-upを読むと自分とは違うスマートな解き方を吸収できるし、その知識を使って実践に応用できるし。 僕はCTFをきっかけに興味の向くままに、少しずつなので浅く広くになりがちですがいろんな分野に手を出しつつあります。HTMLしか知らなかったのに、PerlでCGI書けるようになって、必要に迫られてWebサーバーを構築したり、更にはアルバイトで物理的にサーバーを設置したりしてますw CTFに限った話ではないのですが、この好奇心の「広がり」こそ大事なモチベーションで、将来につながっていくんじゃないかなーって思います。

初心者向けCTFの大会を主催することで、今までIT技術に興味はあっても何をしていいかわからない層に何か影響をあたえることができればいいな、なんて。自分も勉強になりましたしね。 できれば今後も継続的にやっていきたい@chamaharun(コバヤシ)でした。 (もっと簡単にまとまられればなぁ)

SPREAD主催情報セキュリティセミナーに参加してきましたよ。

136075_photo1

 

全国10箇所で行われているSPREAD主催情報セキュリティセミナーが札幌でも開催されました。

タイトルは「炎上しないネットの使い方!~あなたは大丈夫?~」

講師はGREEの小木曽健さんで、以前社内のサイバーパトロールの部署に務めていて、その経験を元に全国各地でインターネットの安全講習をされているのだとか。

 

「炎上とは、ネットが原因で人生を台無しにしてしまうこと。」

今回のセミナーでの「炎上」という言葉を講師の方はこう広く定義しました。バイト先でふざけた写真を取りアップしたら炎上してしまう事件が多発しました。

インターネット上の些細なきっかけで個人情報が特定されてしまったり、学校にいけなくなったり、就職できなくなったり、結婚できなくなってしまったり・・・人生を台無しにしてしまった人がたくさんいます。

次に、「SNS」という言葉について考えてみました。Wikipediaによると、(学校のレポートじゃないから許してね♪)

ソーシャル・ネットワーキング・サービス(英: social networking service、SNS)とは、インターネット上の交流を通して社会的ネットワーク(ソーシャル・ネットワーク)を構築するサービスのことである。

とあります。情報学の試験で「SNSとは何か。」と問われた時にこのように答えれば正解はもらえるのでしょうけど実際に人に説明するとなると難しい言葉であります。

そこで講師の方はSNSとは、

  • 人と人を結びつける
  • その結び付きを強める

ものであり、

  • 駅の伝言板
  • ペンパル募集の雑誌の投稿
  • 縁談を持ち掛けてくる親戚

これらが昔のSNSに当たるとおっしゃってました。僕らの世代(20歳ぐらい)には全く馴染みが無い例えばかりでしたが、一回り、二回り上の世代の方たちは納得されてました。

昔のSNSと現代のSNS(インターネット)の相違点は伝達のスピードや伝達されてしまう範囲が大きく異る点であるとのことです。

 

個人情報とは

個人情報とは、「個人を特定することのできる2つ以上の情報」と言われてきたが、インターネットにおいては「その人に会いに行こうと思えばいけてしまえる情報」と解すべきだ、とおっしゃってました。

Twitterやブログなどで断片的にしか発信していない情報(例えば、〇〇駅に近い、学校まで徒歩○分、日当り良好など、一つ一つでは会いに行くことができない)が、それらを蓄積することにより家や職場、学校などを特定できてしまうケースが多いといいます。

 

インターネット利用上の問題点

よく指摘される問題として、インターネット上にスマートフォン等で撮影した写真をアップする際にExif情報に付加される位置情報の問題があります。

北緯と東経が写真のプロパティから参照できてしまうのでGoogleMapなどで検索すればかなりの精度で場所を特定できてしまいますね。

これらはAndroidやiOSなどの大元の位置情報のスイッチを切ってしまえば万事解決、と思いがちですがカメラアプリによっては勝手に位置情報を取得し付加してしまったり、また何かの拍子でOSの設定が変わってしまったりするのでアプリごとに設定を確認する必要がある、とのことでした。(関連記事:まんが – セキュリティの『アレ』第2話)

意外なことに、子供よりも大人の方が写真をアップする機会が多いようで、位置情報を付加していなくても、「部屋から撮影」という趣旨の説明文とともに景色の写真がアップされていたりと、ソーシャルエンジニアリング的に位置を特定できてしまう例も多いといいます。

また「位置情報を付加すること自体が悪いのであはなく、無自覚で自分の居場所を発信していることがまずい」と強調されてました。

 

炎上に必要な人数はたった二人

炎上した事件をよく整理してみると、

  • 炎上するきっかけとなる事件を起こす人
  • その話題を2chなどにばら撒く人

この二人さえいれば炎上は何百万人規模の炎上事件も簡単に起こってしまう。前者は軽い気持ちで、後者は罰せねばという正義感で行為を行うことが多いようです。

しかし、バイト先でふざけた写真を撮ってアップするだけで社会復帰が困難になるというのはあまりにアンバランスなペナルティであり、まだ社会がそういった事件に順応していないだけで今後は反応が穏やかになるだろう、と講師の方は話していました。

 

日常生活とインターネット

「日常の生活とインターネットを切り離して考えるから厄介事が多くなる。地続きだと考えるとスムーズになる。」とおっしゃっていました。

インターネットは単なる道具に過ぎず、意見を述べたりする公共の場所であるから、日常生活でやっていいことはネットでも許されるし、逆に日常生活でやってはいけないことはネットでもやってはならない、と考えると納得できます。

Facebookの公開範囲を「友人の友人」に設定している人が多いことを考慮すると、おおよそ1万人に対してインターネット上に自分の情報を発信していることになります。

そうすると見ている人の人数的に家の玄関に模造紙でウォールに投稿しているのと同じくらいになります。普段は何気ない写真や投稿なら普通にスルーされるものも、バイトテロのようなものはすぐ誰かの目に止まります。

なので「自分の投稿なんて誰も見ていないから」と考え安易に投稿することは大変危険なことだとわかります。

逆に、インターネット上に投稿する際に、「家の玄関に貼ることが出来る内容か?」と考えてから投稿することで炎上するリスクは抑えられます。

ここで、講師の方からチェックポイント。

  • 誰の目から見ても適切か(外交・政治など立場により意見が異なる投稿は避ける)
  • 万一炎上した際に対処の方法がイメージできるか(最悪の事態を想定)

講師の方はこれらに気をつけて投稿しているそうです。自分も実践してみたいと思います。

万一炎上してしまったら

自動車で人を轢いた場合、その場で応急措置をして警察を呼んだ場合に比べると、ひき逃げは相当罪が重たくなります。

同様に炎上してしまった際も、問題の投稿やアカウントを消してしまうのではなくて、なぜその投稿をしたのか、どういうつもりだったかなどを説明すべきです。

炎上した際、必ずと言っていいほど炎上した投稿はキャプチャなり魚拓なりでコピーが取られます。

元の投稿がある間はそのコピーはあくまでコピーなのでなんの価値もなさないのですが元の投稿を削除してしまうとそれらのコピーに命を吹き込むことになり、コントロール不可能になってしまいます。

コピーがひとり歩きしてしまうと、弁解できなくなるだけでなく、話が大げさになってしまうこともあります。

 

グループディスカッション

講師のお話が終わり、参加者同士でグループディスカッションを行いました。「結論が出なくてもいい」と言われると本当に結論が出ないものですね。

僕の参加したグループは、普段SNSを使わない方が多かったのですが、自動車と同様責任をもって利用できるよう、教育を徹底したり、更には免許制にしたらどうか、という案も出ました。

また、自分は公開したくない情報や画像はインターネットを経由して(LINEなどのアプリを含む)共有するのではなく、スマホの画面を見せることに留めることで情報の漏洩を防ぐ工夫をしたりしていることを話しました。

 

最後に

今回の勉強会に参加して、とても良かったと思います。平田さん、小木曽さんにお会いできたことだけでなく、頭のなかにぼんやりとしかなかったSNSの使い方についての考えが整理されより洗練されました。

ブログにまとめるのって、大変で疲れるけど面白いですね。以上。

自分なりに2013年を振り返ってみる。

アドベントカレンダーやら今年一年を振り返る系の記事を見て、自分もやりたくなってみたので書いてみます。

「タイトルと数行書いて下書きへGO!」を数回繰り返す→今に至る。なので、今回は一気に書き上げようと思います。TaylorSwiftなんか聴いちゃってノリノリなのでいける気がします♪

 

 

<1/19、20 センター試験 2/25 2次試験 3/7 合格発表>

二度目の受験については割愛。無事合格しました(・∀・)

 

 

<3/15ぐらい 辻さんの講演>

つじさん

@ntsujiさんに初めてお会いした日。講演を聞いてお話して、とても勉強になりました。おみやげに渡した玉ねぎスープ気に入っていただけたみたい。

 

<5/25 第15回北海道情報セキュリティ勉強会>

初めてのせきゅぽろ。憧れの勉強会は凄かった。標的型攻撃のお話もプライバシーのお話も面白かったです。運営のスタッフの方たちのおかげであそこまでスムーズに動くんだろうなぁ。

 

<6/6~6/9 北大祭>

色んな意味で盛り上がりました!恥ずかしい写真は割愛。

 

 <7/20 第16回北海道情報セキュリティ勉強会>

598418_154067758116427_1140359885_n

はじめてのまっちゃさん。そして後に深い関わりをもつことになるうめぼしとの初対面もこの日。まっちゃさんのRATの実演がすごく印象的でした。

 

<7/31 #01 HokkaidoCTFHackathon>

↑のうめぼしを主催者として、第一回北海道CTF勉強会を開催しました。詳しくはこちら

 

<9/13 普通自動車免許交付>

自学に1ヶ月近く通ったのは夏の思い出。釧路の高専生と友達になったり。交付されたその日に高速に乗って札幌まで帰ってきました。その後帰省するたびに車であちこち行ってますw

 

<9/14 オープンソースカンファレンス北海道>

大学の講義みたいにそれぞれのコマごとに別の部屋で講演を進行していく形式だったのでどれに出ようかかなり迷った。んで、結局出たのはこんな感じ。

  • オープンソースソフトウェアの翻訳をやらないか -岡野 孝悌さん    (翻訳とか興味があったので)

  • MySQL「なんちゃってユーザ」からの脱却~今日から語れるMySQL入門 -坂井 恵さん  (WPとかでMySQL触る機会が増えたのに無知だったので)

  • 北海道で輝く人々 2013秋 -西原翔太さん、米内貴志さんほか (Ustで拝見してました。先輩のtomioさんと新聞でしか見たことのないつばめくんのプレゼンが見たくて)

  • 新しい気づきの世界が広がるセキュリティの課題 -高倉 弘喜さん、鵜飼 裕司さん (高倉先生の名大生のお話が面白かったです。)

  • ノートパソコンを取り巻く脅威とその対策(OSC2013版) -吉田英二(ジェームズ)さん  (Windowsのロックがいかに脆いかが大変良くわかりました。)

  • SECCON(セキュリティコンテスト)札幌大会のご紹介 -竹迫 良範さん、園田 道夫さん、松田 和樹さん (次の日の勉強会にも参加しました。)

その後は大きな懇親会参加しました。さくらインターネット社長の田中邦裕さんをはじめ沢山の著名な方と知り合い名刺交換させて頂きました。

 

<9/15 CTF チャレンジ勉強会 in Sapporo>

この日初めて目grepというものを体験しました。なるほどなぁって感じでした。

 

<10/5 第17回北海道情報セキュリティ勉強会 & セキュリティ・キャンプ・キャラバン in 北海道>

愛甲さんのアセンブラかるた、面白かったです。アセンブラ読解?も面白くて、低レイヤーに興味を持つきっかけになった回でした。C言語とメモリのあたりから勉強していきたいと思います。

 

 

<10/6 #02 Hokkaido CTF Hackathon

やっと本格的に勉強会が始動しました。過去問を解いて解説しあう、という雰囲気もこの回から続いています。

 

<10/19 誕生日>

二十歳になったぜ!お酒飲めるようになったぜ!w

<10/21 LOCAL学生部に入部>

LOCAL学生部に入りました。12/29-30の第5回LOCAL総大会というガリガリ開発しよう系合宿の機材係をお手伝いさせて頂いております。LTもさせて頂く予定です。

 

<11/23 #03 Hokkaido CTF Hackathon

1470939_10200469421778297_631368243_n

まだ記事書いてない(泣)SeigoSaitoさんがMiniCTFを開催してくれました。スコアボードもあり本格的に大会の雰囲気をつかむことが出来ました。

 

<12/1 SECCON北海道大会>

1404818_186550854868117_1379958056_o

これもまだ記事書いてない(泣)

前日に作戦会議をしたりと準備万端なはずだったのですが惜しくも?8位という結果でした。オンライン予選出なきゃ!

 

<まとめ>

あっち行ったり、こっち行ったりで忙しい充実した1年間だったことは間違いありません。

ここには書きませんでしたが日々出される課題のレポート・プレゼンと格闘したり、飲み過ぎて二日酔いになったり、寝坊したりと大変な一年でも有りました。

そして何より、多くの方々と知り合えた年でも有りました。感謝(^_^)

今年一年お世話になりました。来年もよろしくお願いします!

#02 Hokkaido CTF 勉強会(Hackathon)に参加しました。

10/6に行われた#02HokkaidoCTFHackathonに参加してきました。

1379823_171321759724360_2042479812_n

今回はインフィニットループさんの会議室をお借りして行いました。

883116_10200115516050875_1004036477_o

綺麗で快適な会議室でした(・∀・)

さて、今回のメニュー。

  • 準備・自己紹介
  • CTF・勉強会に関して
  • LT
  • 問題演習タイム
  • 撤収

913995_10200115562372033_1430954304_o

 

最初の雰囲気はこんな感じ(^^♪

簡単なLTをさせていただきました。

2013-10-08 21.56.32

XSSとSQLインジェクションの入門講座なお話。

スライドはこちらにアップしてあります。

そしてメインの問題演習タイム♪

shell-stormのRepositoryに公開されているCSAW CTF 2013の問題を

実際に手を動かしてみんなで挑戦してみました。

解けた人が解説するという形で。

557256_10200116776122376_1643844781_n

androidに詳しい@kentalogicjpさんがWeb問題を解いてる姿がカッコよくて印象的でした。

1385385_10200116777322406_29001522_n

うまい棒がたくさんありました。

1379629_10200115785897621_697839152_n

次回はUstreamで配信するかもしれません。

 

ということで・・・

まだこの勉強会も2回目なので手探り状態が続いていますが

参加してくださった皆さんのご協力のおかげで無事行うことが出来ました。

反省すべきところをたくさん見つけたので次回以降に活かしていけたらと思います。

今後とも宜しくお願いします。

「.tk」ドメインについて。

このサイトで使用しているドメイン「.tk」。

無料で、簡単に取得できるものの、情報が少ないので挙げておきますね。

 

http://www.dot.tk/ja/index.html?lang=ja

にアクセスします。

スクリーンショット (2)

真ん中のエリアに取得したいアドレスの.tkより前の部分を入力します。

ここでは適当に「hagehage.tk」とでもしておきましょうか。

スクリーンショット (3)

「GO」をクリックすると次のような画面が現れます。

スクリーンショット (4)

Forward this domain to、Use DNS、Build a new website with~の選択肢があり、

Forwardは単に指定したアドレスに転送、Use DNSはサーバーを自宅なりレンタルなりで用意できる場合に使います。Buildからサイトを構築するサービスにもここで申し込めるみたいです。

僕はロリポップでサーバーをレンタルしていますので、真ん中のUse DNSを使用しました。

スクリーンショット (6)

ちなみにロリポップではDNSサーバーが用意されていますので、「お客様のDNS」を選択し、左側のエリアに指定したアドレスを入力します。IPアドレスは空欄で問題なかったです。

スクリーンショット (7)

登録期間を選択します。登録期間中であればいつでも延長できます。

スクリーンショット (8)

画像の文字を入力して、登録・ログインします。大手のサイトのIDを使ってログインすることもできます。

僕の場合はOutlook.comにログインしたままアクセスしたので次のようになりました。

スクリーンショット (9)

ログインできる外部のサービスの一覧はこちら。

スクリーンショット (10)

もちろんフツーにアカウントを作ることもできます。

ログインするとこのような画面が表示されます。

スクリーンショット (12)

登録できました。

続いて、メンテナンスの方法。

サイト右上のボタンからログインします。

スクリーンショット (14)

「go to domains」をクリックすると次の画面になります。

スクリーンショット (15)

「Modify」をクリックすることで登録情報を修正することができます。

スクリーンショット (16)

以上、.tkドメインの取り方でした。

先ほど、「.tk ドメインの URL を Facebook にコメントできない」という記事が気になったので検証してみることに。

9/10日現在、

スクリーンショット (1)

投稿も、

スクリーンショット (17)

コメントもできました。

 

ブログはじめました。

とはいえ初めてのブログではないのですがw

 

ここでは自分が行ってきたことを記録していこうと思います。備忘録的に。

あと、少しでも誰かの役に立てたらな、って気持ちもあります。

技術的な壁にぶつかったときに、他の方のブログを参考にさせていただくことがあります。

自分と同じような問題に取り組む人たちに少しでもヒントを提供出来たらなー、なんて考えてます。