200 likes | 359 Views
情報工学科 4 年 中山直飛. 中間発表. コンテンツ. SNS 内のワームの検知 s impack ( プログラム ) の進行状況 プログラムの流れ 各機能の説明 補足 今後について. SNS 内のワームの検知. やりたいことを簡単にまとめると SNS 内でワームの広がりを早期検知すること そのためにプログラムで検知までの仕組みを作りシミュレートする デコイの配置を変えていき、 id の感染数の結果のデータを出し、グラフにする. simpack ( プログラム ) の進行状況. プログラムの流れの簡単な説明
E N D
情報工学科 4年 中山直飛 中間発表
コンテンツ • SNS内のワームの検知 • simpack(プログラム)の進行状況 • プログラムの流れ • 各機能の説明 • 補足 • 今後について
SNS内のワームの検知 やりたいことを簡単にまとめると • SNS内でワームの広がりを早期検知すること • そのためにプログラムで検知までの仕組みを作りシミュレートする • デコイの配置を変えていき、idの感染数の結果のデータを出し、グラフにする
simpack(プログラム)の進行状況 • プログラムの流れの簡単な説明 • メンバーを構成する⇒メンバーは情報をもっている⇒メンバーid、アクセス確率など • デコイを構成する⇒デコイid、メッセージの証拠など • ワームは悪意あるメッセージを生成し各idに送る⇒メッセージ内にはワームが入ったサイトが載せてあり開くと感染 • 感染すると感染したidが属しているグループ内のid(友達)に次々とメッセージを送る • 友達がメッセージを開く感染⇒グループ内の友達に送る⇒以下繰返す
idに配置されたデコイにより感染したかどうかのテストを行うidに配置されたデコイにより感染したかどうかのテストを行う • デコイにはメッセージの証拠がありメッセージと比較することでそのidは感染したかどうかがわかる • 感染していれば検知を行う • 検知後、感染したidの表示 といった流れである デコイ
simpack(プログラム)の進行状況 • プログラムの流れを図に示す gen(生成) infect(感染) evidence(証拠) print(結果表示) message(メッセージ) action(行動) correlation(相関) read(読む) store(格納) detect(検知)
各機能の説明 gen(生成) gen(生成) • メンバーを作る、メンバーの中身(構造体で)id、アクセス確率(見たい情報なのか)、応答時間(情報があるサイトを見るまでの時間、フェイスブックをいつもみているとは限らないから)、感染したかの情報、グループ分け • メンバーの配置⇒実際はソーシャルグラフを扱うのでそれに近いくらいの人数が必要⇒なので万単位のユーザ情報がいる⇒for文で一気に人数を生成⇒中身はランダム関数を使い一気に生成する(手作業入力だと時間がない) • デコイの生成⇒デコイid、感染した時間、証拠の各情報を持っている
message(メッセージ) message(メッセージ) • 中身(コンテンツ)はどうするかということで論文にあったkoobfaceの性質でカスタマイズしたメッセージを送るということで、中身をいろいろと用意してランダムに組み合わせる手法をとる⇒randで生成した値でつなぎchar型の入ってる構造体へ格納 コンテンツ1 おはよう • こんにちは • どうも コンテンツ2 君がテレビに映ってびっくりしたよ • このビデオ見てよ、とてもおもしろいから • 君が興味ある動画を見つけたよ コンテンツ3 よかったら見てね • あとで感想聞かせてね • 見たほうがいいよ • この三つのコンテンツを違和感のないようにランダムに組み合わせて、メッセージを作るようにする
read(読む) read(読む) • 単純にメッセージ内容を読むかどうかの部分 • ランダムに設定した値とメンバーのidによって設定した読む確率の値を比較する • 比較してメンバーのidが大きければinfect(感染)部分へ⇒if文
infect(感染) infect(感染) • メッセージからの流れで、読めば感染したことになる • 感染すると次の人(id)にメッセージを送る • グループ内の人にメッセージを送り、その経路は次の部分で設定している
action(行動) action(行動) • 行動と書いてあるがワームの行動つまり感染経路のことである • グループ内で記述した1のフラグが立っているものを走査する • やりかたはまずグループの横軸⇒1回目のfor文で横軸を走査しif文で1ならば次を実行 • 次にグループの縦軸⇒2回目のfor文で縦軸を走査しif文で1ならばそのidの人にメッセージを送るようになる
store(格納) store(格納) • メッセージを渡すメンバーのidを格納する場所 • わざわざ作った理由はaction(感染経路)部分での同じidでのループを防いだもの • いったんidを格納することでそのid一人ずつにメッセージを送れる
evidence(証拠) evidence(証拠) • メッセージ内にあるよく使われる言葉が格納してある場所 • 送られてきたメッセージと比較するために必要 • 比較の部分は次
correlation(相関) correlation(相関) • 送られてきたメッセージと格納している証拠とを比較する部分 • 検知は次 ※部分的に一致すれば、悪意あるメッセージの確率が高いことになる
detect(検知) detect(検知) • 検知を行う部分 • デコイはidに2つ配置されており(全部のidではない)、先ほど比較する部分ではデコイの中にある証拠で比較を行っている • そしてこの2つのデコイで悪意あるメッセージの確率が高いと判断された場合、検知となる
print(結果表示) print(結果表示) • どのメンバーのidが感染しているかなどを表示する部分
補足1 • プログラムは機能に分けて作った • メンバー情報の生成とメッセージを生成部分とメッセージ比較部分 • メンバーの情報は万単位のメンバーの情報を本体のプログラムとは別に作り、生成した出力ファイルを読み込む • メッセージ生成部分は送られてくるメッセージパターンをあらかじめ作っており、生成した出力ファイルを読み込むこと • これら2つは本体での時間の短縮を図っている • メッセージ比較部分は比較が正しいかテストで作っている
補足2 • 感染経路は誰もがつながっているのでメッセージを送る動作を繰返すと終わりがなくループしてしまう • そのために途中でループを止めるためにタイマーをセットしてある • 悩んだ部分として感染経路で同じループを繰返す部分があった • そこで格納部分を作り、idを一人ずつ格納することで同じループをなくすことに成功した
今後について • 行ったのはデコイを入れずにメンバー少数でメッセージの比較をしたことやデコイはデコイだけでメッセージの証拠を比較をしたことなど • 他には万単位でのメンバーの生成 • 各機能は正常に動作しているが全体を通してはまだ実行していないのでつなげた結果をだしたい • そしてデータ(感染数など)を取ってグラフを作りたい