スライド 1

情報工学科 4年 中山直飛
コンテンツ
SNS内のワームの検知
 simpack(プログラム)の進行状況

 プログラムの流れ
 各機能の説明
 補足

今後について
SNS内のワームの検知
やりたいことを簡単にまとめると
 SNS内でワームの広がりを早期検知す
ること
 そのためにプログラムで検知までの仕組
みを作りシミュレートする
 デコイの配置を変えていき、idの感染数
の結果のデータを出し、グラフにする
simpack(プログラム)の進行状況






プログラムの流れの簡単な説明
メンバーを構成する⇒メンバーは情報をもって
いる⇒メンバーid、アクセス確率など
デコイを構成する⇒デコイid、メッセージの証
拠など
ワームは悪意あるメッセージを生成し各idに送
る⇒メッセージ内にはワームが入ったサイトが
載せてあり開くと感染
感染すると感染したidが属しているグループ内
のid(友達)に次々とメッセージを送る
友達がメッセージを開く感染⇒グループ内の友
達に送る⇒以下繰返す
idに配置されたデコイにより感染したかどう
かのテストを行う
 デコイにはメッセージの証拠がありメッセー
ジと比較することでそのidは感染したかどう
かがわかる
 感染していれば検知を行う
 検知後、感染したidの表示
といった流れである

デコイ
simpack(プログラム)の進行状況

プログラムの流れを図に示す
gen(生成)
infect(感染)
evidence(証拠)
message(メッセー
ジ)
action(行動)
correlation(相関)
read(読む)
store(格納)
detect(検知)
print(結果表示)
各機能の説明 gen(生成)
gen(生成)



メンバーを作る、メンバーの中身(構造体で)id、アクセ
ス確率(見たい情報なのか)、応答時間(情報があるサイト
を見るまでの時間、フェイスブックをいつもみていると
は限らないから)、感染したかの情報、グループ分け
メンバーの配置⇒実際はソーシャルグラフを扱うのでそ
れに近いくらいの人数が必要⇒なので万単位のユーザ情
報がいる⇒for文で一気に人数を生成⇒中身はランダム関
数を使い一気に生成する(手作業入力だと時間がない)
デコイの生成⇒デコイid、感染した時間、証拠の各情報
を持っている

構造体の宣言
1
2
アクセス確 0.2
率(%)
0.5
0.8
平均応答時 1m
間(分)
2m
10m
感染
0
0
0
グループid
0
0
1
2
0
Idの名前
0
・・・
9
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を一人ずつ格
納することで同じループをなくすことに
成功した

今後について
行ったのはデコイを入れずにメンバー少数で
メッセージの比較をしたことやデコイはデコ
イだけでメッセージの証拠を比較をしたこと
など
 他には万単位でのメンバーの生成
 各機能は正常に動作しているが全体を通して
はまだ実行していないのでつなげた結果をだ
したい
 そしてデータ(感染数など)を取ってグラフを
作りたい
