467 Memory

いろいろかきます

Seccamp2018に応募した話

 

こんばんは。

セキュキャンに応募した話です。

 

 

セキュキャンを知ったきっかけ 

初めて知ったのが実は一年前の四月ごろ。

去年に情報処理安全確保支援士のお勉強をしているときに知りました。

まずIPAさんが主催していて!!しかも無料!!!というところにめちゃくちゃ興味惹かれて!

調べてみたらありえん豪華すぎる!ナニコレ本当に無料でいいの!?え全部受けたい!え絶対参加したい!!!

ってなりました。

 

 

で肝心の応募課題をみてみると...

 

f:id:tn-mi:20180614160750j:plain

 

撃沈...

 

課題解答晒している人みて

 

f:id:tn-mi:20180530211706j:plain

 

またもや撃沈...

 

 

今の自分じゃ無理だ と痛感しまして、

来年までに鍛えよう絶対。とアウトプットすることを中心に一年間頑張りました。頑張ったつもりです。

実は、セキュキャン公式Twitterやセキュキャン参加者Twitterをネトストしまくっていました。去年の夏はつらかったです。

 

で応募した結果!!!!

 

無事選考通過したので。。。。。 

 

私のような最弱でもがんばれば受かるよ!!

ってことをだれかに伝えるためにも最弱参考応募用紙貼っておきます。

 

もっと頭いい人の応募用紙もみてね。

 

ちなみにバラエティトラックの10番です。

ダリフラのゼロツーが好きなのでどうせなら02番がよかった

応募課題:https://www.ipa.go.jp/files/000066028.txt

 

~応募用紙晒し~

 

1今の(コンピューター、マルウェア、メモリ、etc.フォレンジックスにはどんな課題があるでしょうか?

フォレンジックツールの人工知能化の発展

私はフォレンジックスツールの機械学習を採用した人工知能化が今のフォレンジックスの課題の一つにあるのではないかと思いました。なぜかというと今のフォレンジックスのようなフォレンジックスツールのパターン検索や人的捜査ではフォレンジックスが難しい世界になっていくのではないかと考えたからです。

今後IoTAIの活用が加速していき益々ビッグデータ化が予想されています。そんな中今のフォレンジックスを続けていくことは非常に非効率ではないでしょうか。例えば今のフォレンジックスのままだと、膨大なデータをパターン検索で手探りにフォレンジックスする状況が発生する可能性が考えられると思います。

そこで人工知能と化したフォレンジックスツールを使えば、膨大なデータからも手探りではなく自身が学習したベストプラクティスな方法でフォレンジックを行えるのではないでしょうか。

人工知能を活用したフォレンジックスツールとして「lit i view xaminer」が発表されています。しかし準備不足が原因で暴走したMicrosoft開発の人工知能Tayの事例が最近あったように、今の人工知能を活用したフォレンジックスツールはまだ信頼できるもの普及しているものとはあまり感じません。もっと信頼され普及する普及されるようにするためにフォレンジックスツールの人工知能化の発展が今のフォレンジックスの課題ではないかと考えました。

 

・プライバシーの尊重

私はプライバシーの尊重が今のフォレンジックスの課題の一つにあるのではないかと思いました。なぜかというとフォレンジックスがプライバシーの侵害になりえるのではないかと考えたからです。

例えば社員のPCを同じ会社の担当者がフォレンジックスするといった体制です。フォレンジックスで見つかるべき材料の見当がまったくつかない状況になった場合、手探りに全く関係のないところまで捜査されてしまい他人に知られたくないような情報までみられてしまうのではないでしょうか。私が社員側でしたら知り合いに自分の部屋を手探りに荒らされているようなものと同じように感じますし、なおかつプライバシーの侵害のようにも感じます。

去年の10月にセキュリティ社員がウイルスを不正に保管していたことで逮捕された事件があったように、今後コンプライアンスや規定違反の証拠性を明らかにする手段としてフォレンジックスを行うことが多くなると思います。フォレンジックスが起因で何かプライバシーを侵害するような事件が起こりえる可能性も高くなるのではないでしょうか。そのためにも今からフォレンジックスにおいてのプライバシーの尊重について深く考えておくべきだと私は思います。

例えばフォレンジックス体制の明確化(外観の独立性を確保する)、必要最低限のことしか調べないように規制するなどが考えられると思います。以上のことからプライバシーの尊重が今のフォレンジックスの課題の1つにあるのではないかと考えました。

 

クラウドサービスへの対応

私はクラウドサービスへの対応が今のフォレンジックスの課題の一つにあるのではないかと思いました。なぜかというとクラウドサービスを利用していたがためにフォレンジックスすれば見つかるべき材料を見落としてしまうリスクが発生するのではないかと考えたからです。

例えばクラウドサービスに保存してある自社のメールを過去に遡ってまでフォンレンジックしたい。クラウドサービスを利用している自社以外の利用者との関係性もないか利用者の状況もフォレンジックしたい。といった場合です。メールを過去の分まで十分に遡ることができる保証はあるのでしょうか。機密情報の観点からみることができる情報の範囲が制限されてしまう可能があるのではないでしょうか。参考程度の事実ならまだしも重要な参考事実がクラウドサービスにて残っていた場合致命的な損失になってしまうと考えられます。

総務省クラウドサービスの利用状況の調べによるとクラウドサービスを利用している企業の割合は2014年末から上昇していると示されています。(参照:http://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h27/html/nc372130.html)これからも上昇していくであろうと考えられているクラウドサービスの利用のためにもフォレンジックスのクラウドサービスへの対応をしていくべきではないかと考えました。

例えばクラウドサービス側でフォレンジックスに十分のデータが提供できるようにする。利用者はクラウドサービス業者をフォレンジックスの観点も考え契約する。フォレンジックスに必要になるデータなどは自社で管理する。など対策が考えられると思います。以上のことからクラウドサービスへの対応が今のフォレンジックスの課題の一つにあるのではないかと思いました。

 

フォレンジックスの在り方

私はフォレンジックスの在り方が今のフォレンジックスの課題の一つにあるのではないかと思いました。なぜかというと誤った在り方にいると様々なリスクを招きかねないと考えたからです。

例えば横浜市小学校襲撃予告事件のようなCSRF脆弱性を踏んでしまったがために大学生が誤認逮捕された事例です。この事件について私は誤認逮捕が起こってしまった原因は警察の捜査不足だと考えていて、横浜市のウェブサイトにてのフォレンジックスで得られた証拠のみで逮捕と判断してしまったからだと思います。もしフォレンジックス=完全な証拠だという誤認識がなければ誤った逮捕に繋がらなかったのではないかとも思います。

私はフォレンジックスについては尋問よりも完全性があり効率的で良い物だと思います。

しかしこのような事件のリスクをまた引き起こさないためにもフォンレジックスは法的な証拠性を明らかにする参考程度のもの。フォレンジックスはあくまで参考証拠であり証拠性は明らかにできない。などフォンレンジックスの在り方について正しく定義しておくべきではないかと考えました。以上のことからフォレンジックスの在り方が今の課題の一つにあるのではないかと考えました。

 

------------

 

1問目から文書の稚拙さが露呈して恥ずかしいwwwwwwwwwwww 

もっと具体的に書けばよかったかな なんて思う。

フォレンジックスの現状や意味などを深く調べてみて現在における課題、今後の動向に伴う課題など ありったけあげて選定してうまくまとめた感じです。

法令や社会の観点からみた答案ばかり...同じ課題を選んだ方の答案をみてみるともっと内部の技術的なことを書いている方もみかけました。

あとはメモリフォレンジックスの限界、マルウェアによる改ざんなどあげられるかなあって思います。

 

--------------

 

問2 匿名化通信を利用することによって犯罪者が特定しにくくなっています。匿名化通信の利用を認めつつ、犯罪者を特定するにはどうしたらよいですか?

 

匿名化通信にVPNを介した通信とプロキシサーバを複数介した通信があげられると思いました。プロキシサーバを複数介した通信において犯罪者を特定する方法を考えてみました。

プロキシサーバを複数介した通信として匿名化通信を実現したブラウザソフトTorを犯罪者が使ったと仮定して考えてみました。

まずWebサーバ側で通信元がTorを使用しているものかHTTPリクエストメッセージのUser-AgentメッセージヘッダがOnionBrowserになっているかで判断します。

そして以下のいずれかの手法を使います。

 

1.アカウント管理を利用する。

これはWebサーバにアカウント管理できるサービスがある前提の手法です。

Webサーバにあらかじめ以下のような設定をしておきます。

・アカウント登録をしていてログインに成功した人のみ通信を許可。

・アカウント登録の際、アカウント情報として氏名や携帯電話番号、住所を入力。

・またなりすまし防止のためにアカウント登録の際に携帯電話番号へショートメールで認証コードを送り返し、認証コードが一致した場合のみ登録を許可のようなSMS認証を行う。

以上の設定をWebサーバにしておけば、犯罪者のログインアカウント情報によって犯罪者を特定することが可能ではないかと考えました。

 

2.プロキシサーバの変換ログをたどる。

これは経由するプロキシサーバ全てに時刻とIPアドレスの変換履歴、及び通信先の対応が保持されている前提の手法です。

犯罪時刻からプロキシサーバが保持している変更履歴を遡って犯罪者を特定します。

具体的に、例えば犯罪者がプロキシサーバBAを経由した匿名化通信を利用したとすると

①2018/04/28,12:00:04 犯行。 犯行者IPアドレスを特定。

IPアドレスの保有者はプロキシサーバAだと特定。

②プロキシサーバAから2018/04/28,12:00:04以前に犯行があったWebサーバへの通信への通信を抽出。IPアドレス変換ログを確認。時刻や通信形態などから最も犯行者に近いであろう変換元IPアドレスを判別。変換元IPアドレスの保有者はプロキシサーバBだと判別。

③②を繰り返し変更元IPアドレスから犯罪者を特定。

以上のようにプロキシサーバの変換ログを辿ることで犯罪者を特定することが可能ではないかと考えました。

 

3.サーバからクライアントまでのレスポンスタイムからどのプロキシサーバを介した経路で行われたか推測してみる。

WebサーバからOnionBrowserで経由する各プロキシサーバへの通信速度を計ります。

犯罪者とのSYN/ACKなどのアクセスログから通信速度を計測します。

計測して出た通信速度と各プロキシサーバへの通信速度から、経由したであろうプロキシサーバのルートを特定します。

そのルートの最終プロキシサーバ(犯罪者が一番最初に経由したプロキシサーバ)のアクセスログを捜査し犯罪者を特定することが可能ではないかと考えました。

 

4.サーバ側で犯罪者の動きに類似したTor以外を使ったアクセスがないか調べる。

私はWebページでのユーザの動きには個性がでると考えています。

例えばブラウザのお気に入り機能などにトップページではない特定のページが追加されていて、トップページではない特定のページから必ずトップページへアクセスする。特定の範囲まで読んだら閲覧を終了する。などといった個性です。

犯罪者の個性をアクセス解析ツールやヒートマップ分析を使って見つけ出し、この個性をもつTor以外を使ったアクセスがないか調べます。犯罪者は犯行をする前に下調べとして匿名化ツール以外の方法でアクセスしている可能性は高いのではないでしょうか。そのためこのような方法で犯罪者を特定することが可能ではないかと考えました。

 

5.HTTPリクエストのHTTPヘッダーを利用する。

HTTPリクエストのHTTPヘッダーを利用して犯罪者を特定できるのではないかと考えました。例えば以下のHTTPヘッダーを利用します。

リファラReferer

リクエストの発生元ページやリクエストの発生元ページのリクエスト発生元ページなどを調べることによって犯罪者の爪痕を探し出し、犯罪者の情報を得ます。

自然言語Accept-Language

使用している自然言語から犯罪者が住んでいると思われる所在国の情報を得ます。

・ユーザーエージェント(User-Agent

使用しているパソコンのOSから犯罪者の使っているOSの情報を得ます。

以上のHTTPヘッダーから得られた犯罪者の情報を使います。例えば「日本でWindows10を使っていてTorをインストールしたPCIPアドレスから犯罪者を特定する」「日本でWindows10を使っていて何個かのあるサイトによくアクセスするTor以外を使った通信がないか調べて犯罪者を特定する」などが可能ではないかと考えました。

 

 -------------------

 

まず匿名化通信の定義についていまいち理解していなく、匿名化通信ってなんだ???ってところから始まりました。

ネットで調べてみると TorTorTor 玉ねぎの暴力でして、、、

VPN、Proxy使ったものも匿名化通信じゃないかな~~って思いつつ

Tor推しで理論上可能じゃないかなあ~~~~~~~ってものをいろいろ考えてズラズラ並べました。

正直いうと可能かは検証していません。 

 

--------------------

 

問3 管理しているネットワーク内にウイルスに感染した端末が存在するかどうか、そしてその端末はどれなのか、あなたならどうやって突き止めますか?

 

端末を管理しているネットワークに接続する前にウイルスにかかっていないか確認する方法が一番良いのではないかと考えましたが、今回は管理しているネットワークに端末が接続してしまっている状況でのウイルスに感染した端末を探索する方法を考えてみました。

 

・管理ネットワークを監視する。

管理ネットワーク内にある端末と差異のないダミーのような端末をおき、ネットワーク監視ツールでその端末宛にくる明らかに不要な通信(FTPやSMBを使った通信など)を送っている端末がないか監視します。

他にもNIDSを使ってネットワークを流れるデータに異常がないか、プロミスキャスモードになっている端末がないかなど管理ネットワークを監視します。

監視によって検知された端末を隔離ネットワークに接続させウイルスにかかっていないか精密に検査し、MACアドレスからウイルスに感染した端末を突き止めます。

ワームのような他人伝染機能を持っているウイルスに感染した端末を発見する場合には、管理ネットワーク下での監視が一番有効的ではないかと考えたためこのような手法を考えてみました。

 

・プロキシサーバ・ファイアウォール・管理ネットワーク接続ネットワーク機器のログの監視。

 

~プロキシサーバのログの監視~

これはプロキシサーバ設置されている前提での手法です。プロキシサーバのログにおいて外部のC&Cサーバへの通信が繰り返し行われているなど通常ではありえない特徴的な通信を確認します。

 

ファイアウォールのログの監視~

プロキサーバを経由せずに直接外部へ通信を試みた形跡はないかファイアウォールにてブロックされた通信ログを確認します。

 

~管理ネットワーク接続ネットワーク機器のログの監視~

例えば夜間や祝日など管理ネットワークを使うことが明らかにないであろう時間帯がある場合、その時間帯に外部に通信している端末がないか管理ネットワークに接続しているネットワーク機器の通信ログを確認します。

 

以上の方法で摘出された端末を隔離ネットワークに接続させウイルスにかかっていないか精密に検査することで、MACアドレスから端末を特定することができるのではないかと考えました。

これはC&Cサーバと通信するようなボット型のウイルスに感染してしまっている端末を発見するために、外部とやりとりする間の機器での監視が有効的ではないかと考えたためこのような手法を考えました。

 

 

Ping応答時間によって自己伝染機能を持っているウイルスに感染している端末を突き止めます。

これはあまり現実的ではないかもしれません。

ウイルスに感染している端末の一番の特徴として動作が不自然、重いなどの特徴があると思います。

そこで任意のネットワークから管理ネットワーク内に接続している各端末へ定期的にPingを送り、応答時間が遅い、動作が通常ではありえないような反応をする端末からウイルスに感染している疑惑のある端末をマークする方法があるのではないかと考えました。

VRRPadvertisementのようなものを想像していただければわかりやすいと思います。

そしてマークした端末を隔離ネットワークに接続させウイルスにかかっていないか精密に検査することで、IPアドレスやMACアドレスからウイルスに感染している端末を特定できるのではないかと考えました。

他人伝染機能を持っていない上に外部と不正通信もしていないが自己伝染機能及び潜伏機能は持っているウイルスを発見するためにこのような手法を考えました。

 

 ----------------

 

管理ネットワークの監視と各種装置のログ監視などはRISSで勉強して得た知識を活かして考えました。

Pingの応答で~というところは100%想像です。端末中で炎上しているウイルスはどうしたらみつけられるんだろ~~~~と悩んだ末の結果です。

 

-----------------

 

問4 あなたは、とある取引先のシステムを保守契約に基づいて保守しています。そして、取引先のシステムに重大な脆弱性があることが分かりました。このまま放置すると、顧客情報の流出など、甚大な被害が想定されます。しかし、その旨を取引先に説明しても、「1万円でなんとかしろ」と無理を言われます。あなたは、相手に対する説明責任は果たしているものとし、こちらに法的な非はない状態とします。しかし、何かあったときに被害をうけるのは、先方だけではなく、多くのシステムの利用者も含まれます。あなたなら、どうしますか?

 

①  可能な限り説得

念入りに説明した上での結果かもしれませんが、まずは会社存続が危ぶまれるような状態な危機にいることを相手へ正しく理解していただくことが最初に大切だと考えました。

シュミレーションテストのように、現在の脆弱性のある環境と同じ状況を可能な限り用意しこれから予想される莫大な被害を実演してみます。

また顧客情報流出による損失の規模を合わせて説明します。

情報セキュリティ対策の専門家に託すことを勧め、費用対効果(1万円以上かけて守れる〇〇万円の損失)を説明しなんとか説得させます。

 

②  (それでもダメだったら)可能な限り顧客情報を暗号化しておく。

①  の方法でダメだった場合に取引先への被害はある程度覚悟して、顧客情報を管理しているデータベースサーバを最低限守ることが次に大切だと考えました。

守る方法は管理している脆弱性の種類によって異なると思います。一つずつ考えてみました。

・例えばHDD自体を抜かれる可能性があるなどの顧客情報を管理しているデータベースサーバの物理的な脆弱性の場合

 物理媒体自体に暗号化をします。(ハードディスク暗号化ツールを使うなど)

 ハードディスクを管理している部屋を厳重にします。(ドアに二重ロックする など)

・顧客情報を管理しているデータベースサーバへつなぐサーバやネットワーク機器の脆弱性の場合

 IPAに自分自身で脆弱性関連の届け出をします。機関を通して説明してもらえばもっと説得力があるのではないかと考えました。

 専門会社に聞いたり、ネットで調べたりして、サーバとネットワーク機器脆弱性を可能な限りなくします。

 サーバの利用を必要な時間以外控えます。

 ネットワーク機器においてデータベースへのアクセス許可を必要最低限のものだけに限定します。

・顧客情報を管理しているデータベースサーバへつなぐ専用ソフトウェアの脆弱性の場合(開発環境の欠陥など)

 専用ソフトウェアの代替ができるものがあったら代替を利用し、リスクを回避します。

 専用専門会社に聞いたり、ネットで調べたりして、可能な限り専用ソフトウェアの脆弱性を無くします。

 

③  (それでもダメだったら)システム利用者に現在の状況を説明する。

例えば専用ソフトウェアの脆弱性が起因して顧客のクレジットカード情報が流出する可能性があるなど といった場合、メールやHPなどで現在の脆弱性の状況、考えられるリスク、現在している対処を説明し、クレジットカード情報を変更するように指示する趣の内容を提示します。

現在の取引先に現在ある脆弱性や現在の状況を公開し、利用者自身で身を守ってもらうことが大切なのではないかと考えました。

 

---------------

 

この問が一番手が進みませんでした。。。。。

5000兆ほしい

1万円は少なすぎますよね!!!大学生の私のバイト代より少ないです!!

③は相当のお人好しの心があるときじゃないと無理そう。。。。

被害を防ぐためにどの方向にもっていくのが正しいか考えてみて

優先順位1:専門家にきく方向にどうにかもっていく。

優先順位2:自分で何とかする。

優先順位3:顧客自身で身を守ってもらう。

かなあって私は考えたので上記のようにまとめてみました。

 

----------------

 

マジでなんで通ったんだろう。。。

 

実は課題提出締め切りの日、学校がお休みだったので家で仕上げをしていたのですが、、

突然インターネットにつながらなくなって!!!!

 午後からバイトでしたしマーーーーーージでビビりました。

 

バイト終わってWifiFreeのお店に飛び込んで提出して一件落着しましたがほんと自分冗長化しとけよって話ですよね😱

ヒエーって感じでした。