トリコロールな猫/セキュリティ

思いついたことをぼちぼち書いてます。

2019年に公開されたセキュリティ関連文書まとめ

リアルタイムには情報を追っておらず、お知らせ一覧等から調べているため抜けがあるかもしれません。

ルールは以下。

  • 公共性の高いものを載せています
  • WGや研究会の純粋な活動報告書、個別のインシデント・脆弱性は載せていません

情報源はこの辺。

security.nekotricolor.com

政府機関

総務省

文書タイトル 公開日
IoT国際競争力指標(2017年実績) 2019/02/19
不正アクセス行為の発生状況(平成30年1月1日から同年12月31日) 2019/03/22
株式会社日本レジストリサービスに対する「.jp」ドメイン名の管理・運用に係る措置(要請) 2019/04/26
IPネットワーク設備委員会第二次報告 2019/04/26
電気通信事業法に基づく端末機器の基準認証に関するガイドライン(第1版) 2019/04/22
地域IoT実装のための計画策定のポイント~7地方公共団体の軌跡をヒントに~ 2019/04/19
「ICTグローバル戦略」の公表 2019/05/31
IoTセキュリティ総合対策 プログレスレポート2019 2019/05/31
電気通信事業法の消費者保護ルールに関するガイドライン 2019/05/17
脆弱なIoT機器及びマルウェアに感染しているIoT機器の利用者への注意喚起の実施状況 2019/06/28
サイバーセキュリティ対策情報開示の手引き 2019/06/28
サイバーセキュリティ人材育成分科会 第1次取りまとめ 2019/06/14
令和元年版情報通信白書 2019/07/09
IoT・5Gセキュリティ総合対策 2019/08/30
トラストサービス検討ワーキンググループ 中間取りまとめ 2019/08/09
AIネットワーク社会推進会議報告書2019 2019/08/09
脆弱なIoT機器及びマルウェアに感染しているIoT機器の利用者への注意喚起の実施状況(2019年度第2四半期 2019/10/25

セキュリティ関連団体

IPA

文書タイトル 公開日
情報セキュリティ10大脅威 2019 2019/04/17
IT人材白書2019 *1 2019/05/10
デジタル・トランスフォーメーション推進人材の 機能と役割のあり方に関する調査 2019/05/17
情報セキュリティ早期警戒パートナーシップガイドライン 2019/05/30
第12回地方自治体における情報システム基盤の現状と方向性の調査 2019/05/31
「情報処理安全確保支援士(登録セキスペ)の活動に関する実態調査」調査報告書 2019/07/31
制御システム関連のサイバーインシデント事例「2015年 ウクライナ 大規模停電」 2019/07/31
制御システム関連のサイバーインシデント事例「2016年 ウクライナ マルウェアによる停電」 2019/07/31
制御システム関連のサイバーインシデント事例「2017年 安全計装システムを標的とするマルウェア」 2019/07/31
情報セキュリティ白書2019 2019/08/08
ユーザのための要件定義ガイド 第2版 *2 2019/09/12
「多要素認証」設定手順書(Apple ID、Google アカウント、Microsoft アカウント、Yahoo! JAPAN ID) 2019/09/17
情報システムの障害状況 2019年前半データ 2019/09/20
米国発のセキュリティマネジメント成熟度の評価モデル「ES-C2M2」の解説書およびチェックシート 2019/10/21
DX推進指標 自己診断結果入力サイト 2019/10/25
組込みソフトウェア開発データ白書2019 *3 2019/11/19
インターネット安全教室 教材 *4 2019/11/28

JPCERT/CC

文書タイトル 公開日
IoTセキュリティチェックリスト 2019/06/27
PSIRT Services Framework Version 1.0 日本語版 2019/11/07

その他

文書タイトル 公開日 公開組織
2018年 違法・有害情報対策活動報告 2019/07/31 セーファーインターネット協会
サイバーリスクハンドブック/取締役向けハンドブック 日本版 2019/11/01 経団連
証拠保全ガイドライン第8版 2019/12/09 デジタル・フォレンジック研究会
「教育の情報化に関する手引」(令和元年12月)について 2019/12 文部科学省

*1:アンケートに答えればPDF版を入手可能

*2:アンケートに答えればPDF版を入手可能

*3:アンケートに答えればPDF版を入手可能

*4:アンケートに答えれば入手可能

情報銀行ビジネスに関するメモ

今後セキュリティ的にもなにかと話題になりそうなのでメモ。

といってもまだ始まったばかりで、「始まります」って程度の情報しかないです。

情報銀行とは

行動履歴や購買履歴といったものを含む個人情報にひも付いたITデータを個人から預託され、他の事業者とのマッチングや匿名化したうえでの情報提供、一元管理する制度、あるいは事業者を指す。データを提供したり活用したことに関して得られた便益は、データを受領した他の事業者から直接的または間接的に個人情報を提供した本人に還元される。

情報銀行 - Wikipediaより

日本では、「日本IT団体連盟」が認定証を発行している模様。
www.tpdms.jp

国内最初の認定は2019年6月。
www.itmedia.co.jp

すでに2回の認定が行われている。

認定第二弾

www.itrenmei.jp
www.watch.impress.co.jp

これまでの認定事業一覧。ここを見ればいいね。
www.tpdms.jp

認定を受けた企業

三井住友信託銀行

IT連による、認定を受けた事業サービスの内容:「データ信託」サービス(仮称)

三井住友信託銀行の公式サイトでは関連情報を見つけられず。

フェリカポケットマーケティング(イオン子会社)

IT連による、認定を受けた事業サービスの内容:地域振興プラットフォーム(仮称)

公式サイトでの発表:一般社団法人 日本 IT 団体連盟による「情報銀行」認定について

J.Score(みずほ銀行とソフトバンクが共同出資)

IT連による、認定を受けた事業サービスの内容:情報提供サービス(仮称)

公式サイトでの発表。
www.jscore.co.jp

これも続報があったらまた書きます。

総務省とNICTによる大規模なIoT機器調査と注意喚起「NOTICE」その後

2019年2月から実施されている、総務省と国立研究開発法人情報通信研究機構 (以下 NICT) による大規模なIoT機器調査と注意喚起「NOTICE」について以前書いたのですが、その後どうなったかを追いました。

security.nekotricolor.com

まずは、総務省とNICTが公開しているNOTICEに関する情報を集めてみる。

notice.go.jp

www.soumu.go.jp

www.soumu.go.jp

こんだけ!

総務省Webサイトの実施状況の部分を抜粋してみました。

2019年6月28日発表分

参加インターネットプロバイダ:33社
・調査対象IPアドレス:約9,000万
・取組結果
NOTICEの取組結果
・調査対象となったIPアドレスのうち、ID・パスワードが入力可能であったもの
 → 約31,000~約42,000件
・ 上記の内、ID・パスワードによりログインでき、注意喚起の対象となったもの 
 → 延べ147件
マルウェアに感染しているIoT機器の利用者への注意喚起の取組結果
・ISPに対する通知の対象となったもの
 → 1回当たり112件~155件

2019年10月25日発表分

(括弧内は2019年度の第1四半期までの実施状況)

・参加ISP:34社(33社)
・調査対象IPアドレス:約1.0億アドレス(約0.9億アドレス)
・取組結果
 <NOTICEの取組結果>
  (1)調査対象となったIPアドレスのうち、ID・パスワードが入力可能であったもの
   → 直近での調査において約98,000件(約42,000件)
  (2)上記の内、ID・パスワードによりログインでき、注意喚起の対象となったもの
   → 延べ505件(延べ147件)
 <マルウェアに感染しているIoT機器の利用者への注意喚起の取組結果>
  (3)ISPに対する通知の対象となったもの
   → 1日当たり80~559件(1日当たり112件~155件)

えーこんだけー?もっとさー、ログイン可能なサービスがなんだったかとかー(WebかSSHだとは思うのだけど)、どのパスワードがどのくらい使われてるかとかー、バナー情報の統計とかー、いろいろあんじゃーん。まあ注意喚起が目的なので公開の必要はないのかもしれないけど、せっかくの大規模調査なんだから諸々データを公開して欲しいなあ。合意を取るのが大変なのかな・・。

にしても、意外とみんなパスワードをちゃんと変更してるんですね。98,000件中505件ということは、0.5%くらいしか脆弱なパスワードがなかったってことだよね。ただ、パスワードの試行回数によるロックアウト機能って、一般ユーザが使うような機器だとデフォルトでは有効になっていない(またはそもそもついてない)気がするので、98,000件でログイン画面が出てしまうというのは結構インパクトが大きい。インターネットからのインバウンドの通信なんて必要ない機器が多いと思うんで、デフォルト不可にできないのかな。

また進展があったら書きます。

機械学習・深層学習の主なアルゴリズムまとめ2〜半教師あり学習・パーセプトロン・ニューラルネットワーク

前回の続き。

security.nekotricolor.com

前回は統計学色が強かったけど、ここからいよいよ「機械学習」色が強まる。気がする。完全に個人用メモで、これを読んだだけではなんだかわからないと思うので参考書籍と一緒にどうぞ。

半教師あり学習

答えのわかっているデータ(ラベル付きデータ)とわかってないデータが混在。ラベルをつけるのは大変なので、少量のラベル付きデータを使ってラベルなしデータにラベルをつけ、それを学習データに利用しようという試み。識別モデルと生成モデルに分かれる。
各モデルのアルゴリズムは調べきれず。基本的には前回の教師あり学習アルゴリズムを使う。

products.sint.co.jp

kento1109.hatenablog.com

www.slideshare.net

www.slideshare.net

強化学習

これはこれで大きな一分野で追っていくときりがないので定義と代表的な学習方法の名前のみ。
強化学習 - Wikipediaより:

ある環境内におけるエージェントが、現在の状態を観測し、取るべき行動を決定する問題を扱う機械学習の一種。エージェントは行動を選択することで環境から報酬を得る。強化学習は一連の行動を通じて報酬が最も多く得られるような方策(policy)を学習する。

TD学習

Temporal Difference Learning、時間的差分学習のこと。

Q学習

Q-Learningとも。

www.atmarkit.co.jp
これとCNNを組み合わせたDeep Q Network(DQN)が流行り。

パーセプトロン

ただ「パーセプトロン」といった場合には、「単純パーセプトロン」のことを指すことが多い。複数の信号を入力として受け取り、各入力に重みを乗算し、その総和がある値(閾値)を超えれば1を、そうじゃない場合は0を出力するアルゴリズムのこと。よくある図を描いておく。◯を「ニューロン」とか「ノード」とか呼ぶ。

f:id:nekotricolor:20190821141001j:plain
パーセプトロン

qiita.com

活性化関数

activation function。入力信号の総和を出力信号に変換する関数のこと。

ステップ関数

活性化関数の一つ。パーセプトロンで使われる。入力が0を超えたら1を、それ以外は0を返す。

ニューラルネットワーク

パーセプトロンに似ている(ニューロンのつながり方は一緒)が、シグモイド関数やReLUなど、ステップ関数ではない活性化関数を使う。ちなみに、パーセプトロンもニューラルネットワークも活性化関数には非線形関数を用いる必要がある。線形関数だと、多層にしても単層で表すことができるので意味がない。詳しくは「0から作るDeep Learning」の「3.2.6 非線形関数」(P.51)に。

活性化関数

シグモイド関数

Sigmoid。ニューラルネットワークで昔からよく用いられる活性化関数の一つ。ステップ関数が0か1かになるのに対し、ヌルヌルと1に近づいていく。

ReLU

Rectified Linear Unit。最近流行りの活性化関数。入力が0以下なら0を、0を超えていればその入力をそのまま返す。3つの関数のグラフを描いてみた:

f:id:nekotricolor:20190821141011j:plain:w350
ステップ・シグモイド・ReLU

出力層の活性化関数

ソフトマックス関数

分類(多クラス分類)に使用する。指数関数を用いる。2クラス分類ではシグモイド関数を使う。出力が0から1.0の実数になるため、確率として解釈することができる(ので分類に使える)。

恒等関数

回帰問題に使用する。入力をそのまま出力する。

畳み込みニューラルネットワーク

CNN(convolutional neural network)ともいう。隣接する全てのニューロン間に結合がある全結合では、例えば3次元のデータでも1次元にする(すべてのニューロンが同じ次元にある)必要があるが、CNNではその必要がなく、形状を維持して計算できる。画像や音声認識によく使われ、とくに画像認識のディープラーニングではほぼすべてがCNNがベースとなっている。畳み込み層(Convolutionレイヤ)とプーリング層(Poolingレイヤ)がある。

再帰型ニューラルネットワーク

RNN(recurrent neural network)ともいう。中間層の出力が自分自身へ戻される帰還路を持つ。これにより情報を一時的に記憶することができ、時系列データに対応することが可能。そのため、音声や言語、動画を扱うのが得意。

Web上の各所でRNNのRをリカーシブとかリカレントとか書かれていて最高にわかりづらいので書籍を参照したところ:

「深層学習」には

再帰型ニューラルネット(recurrent neural network)
回帰(型)ニューラルネット、あるいは循環ニューラルネットと訳されることもありますが、同じものです。*1

「ゼロから作るDeep Learning 2」には

Recurrent Neural Networkは、日本語では「再帰ニューラルネットワーク」
(略)と訳されます(略)
Recursive Neural Network(略)は木構造のデータを処理するためのネットワークで、リカレントニューラルネットワークとは別物です*2

と書かれており、どうやらリカーシブは別物らしい。リカーシブって「再帰」じゃないの・・・?

Long Short-Term Memory

ゲート付きRNNの一つ。中間層を入力/忘却/出力の3つのゲートと記憶(メモリ)セルを使ったネットワークに置き換え、より長い文脈を考慮した学習ができる。ので自然言語処理に強い。

オートエンコーダ

自己符号化器ともいう。ニューラルネットワークを利用した次元削減(Dimensionality reduction:高次元で定義されたデータを、新しい特徴量に変換して次元を減らすこと。計算量の削減や可視化のために用いる。線形では主成分分析(PCA)、対応分析などがある)アルゴリズム。事前学習(ネットワークの重みの良い初期値を得るための学習)に用いられることが多い。

制約ボルツマンマシン

RBM(Restricted Boltzmann Machine)ともいう。ボルツマンマシンは双方向に結合しているニューラルネットワークのことで、RBMは結合の仕方に制約があるもののこと。事前学習に用いられることが多い。

深層学習

Deep Learning。中間層がたくさんあるニューラルネットワークのこと。散々調べたけどそれ以上でも以下でもねえ。

参考書籍

何冊か読んでみましたが、ニューラルネットワークを使わないなら前エントリで紹介した書籍とWebサイトだけで十分だし、ニューラルネットワークを使うなら以下の「ゼロから作る〜」2冊と「深層学習」の3冊だけでいい感じ。ニューラルネットワークに関しては、Webはあてにしない方がいいです。良い記事もありましたがそれ以上に混乱させられる記事が多すぎる。

入門 機械学習

「スパムフィルタ」「暗号解読」などのシステムを構築しながら機械学習を学べる。でも言語がRなんだよねえ(私がRを知らないのが悪いんですが)。翻訳もちょっと読みにくい(のは原文が読みにくいからだと思われる)。Rを使わないなら下の「ゼロから作る〜」の方が日本人が著者で読みやすいしおすすめ。

入門 機械学習

入門 機械学習

  • 作者: Drew Conway,John Myles White,萩原正人,奥野陽,水野貴明,木下哲也
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2012/12/22
  • メディア: 大型本
  • 購入: 2人 クリック: 41回
  • この商品を含むブログ (11件) を見る

ゼロから作るDeep Learning

「最初からそう説明してくれればもっと早く理解できたのに・・」と感じることがたくさん書かれている、大変わかりやすい書籍。パーセプトロンとニューラルネットワークの説明はこれが一番よかった。ほんっっっとにね、わかりやすいんですよ・・日本人著者のありがたみ・・。Pythonインタプリタを使ってその場で簡単に確認できるのも良い。

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning2

「ゼロから作るDeep Learning」の続編。こちらも大変わかりやすい。RNNはこれなしじゃ理解できなかったです。

ゼロから作るDeep Learning ? ―自然言語処理編

ゼロから作るDeep Learning ? ―自然言語処理編

深層学習

「ゼロから作る〜」があまり数式を使わずに説明していたのに対し、こちらはゴリゴリと数学的に説明していく。教科書としてよく使われているそうで、確かにレイアウトが教科書っぽい。深層学習に関して押さえておくべきことがきっちりと載っている感じ。ちなみにオートエンコーダ(自己符号化器)とボルツマンマシンはこの本には載っているけど「ゼロから作る〜」には載っていない。

深層学習 (機械学習プロフェッショナルシリーズ)

深層学習 (機械学習プロフェッショナルシリーズ)

*1:「深層学習」「7.1 系列データの分類」P.112

*2:「ゼロから作るDeep Learning 2」「5.2 RNNとは」P.183/太字は著者による

機械学習・深層学習の主なアルゴリズムまとめ1〜教師あり学習と教師なし学習

数学的に完全に理解する必要はないけど、あれをするときはこれを使う、くらいは分かっておきたいのでメモ。オフラインで書いてるとテンションが上がらないのではてダに残す。長くなりそうなので半教師あり学習・強化学習・深層学習はこちら。

security.nekotricolor.com

全体を通してこの図が参考になった。scikit-learnはPythonの機械学習ライブラリのこと。
peekaboo-vision.blogspot.com

教師あり学習

Classification(分類)

入力データからクラスを予測する。

分類木

決定木(Decision tree)の一種。目的変数(予測したい変数)が質的変数の場合。

ナイーブベイズ分類器

単純ベイズ分類器とかベイジアンフィルタともいう。ベイズの定理を使って、あるクラスに属する確率を求める。全ての特徴量は互いに独立であるという前提から「ナイーブ」と呼ばれる。出てくるのは確率なので(ここまでなら回帰だよね?)、◯%以上ならA、それ以外はBなど「決め」が必要。スパムフィルタでよく使われる(今もそうなのかしら?)。

rtokei.tech

サポートベクターマシン

SVM。簡単に線引き(3次元なら平面で)できないものを、高次元に変換(2次元を3次元にするとか)して線(平面)を引いて分けられるようにする。

f:id:nekotricolor:20190810135737j:plain
サポートベクターマシン

k近傍法

k Nearest Neighbor ということでkNNとも書く。説明は以下のQiitaが分かりやすい。

qiita.com

Regression(回帰)

入力データから数値を予測する。

回帰木

決定木(Decision tree)の一種。目的変数(予測したい変数)が量的変数の場合。

線形回帰

単回帰分析の一つ。グラフ上に点があって、なんとなくたくさん点があるところを通る直線のあれ。説明変数(予測に使われる変数)と目的変数の関係を1次式で表す。
www.albert2005.co.jp

ロジスティック回帰

目的変数が質的変数、特に0か1の2値のときに用いる。

istat.co.jp

スパムフィルタにも使われているらしい。記事が古い(2006年)からいまは違うかも?
thinkit.co.jp

あれ、質的変数なら分類では?と思ったらまず確率を求めるので回帰だということ。
scrapbox.io

じゃあナイーブベイズ分類器の方が回帰よね。これも確率を求めてそれを元に分類しているので。(分類までして1セットなので「分類器」なんでしょう。)
どっちを使うのがいいかというと:

・十分にデータがあるならロジスティック回帰が有利
・データの少ないタイミングではナイーブベイズが有利

だそうです。
scrapbox.io

教師なし学習

クラスタリング

似たものをグループ化する。

ウォード法

階層クラスター分析=途中過程が階層のように表せる(デンドログラムが作れる)の一つ。

www.albert2005.co.jp

確かこれでマルウェアの系図を作る論文があったな・・・と思ったらこれは静的解析がメインだった。系統解析(階層クラスター分析のことでいいのかな?)でデンドログラムを出している。
展開型静的解析と動的解析を連携させたマルウェア解析手法

FFRIのこれはまさにウォード法でやっている。
動的情報に基づいたマルウェアのクラスタリング

NTT情報流通プラットフォーム研究所でも階層的クラスタ分析でマルウェアの分類をやってる。
機械語命令列の類似性に基づく自動マルウェア分類システム

k平均法

k-meansともいう。非階層クラスター分析の一つ。ランダムにクラスタを割り当て→重心を計算→一番近い重心にクラスタを割り当て直す、を繰り返す。説明は以下のサイト。
tech.nitoyon.com

k-meansを改良したO-means法によりスパムをクラスタリングする試み。やっぱりベイジアンフィルタだけでは排除しきれないようになってきてるのかな?

スパムによる攻撃を分析するためのクラスタリング手法と特徴量選択手法について

参考書籍

統計学の図鑑

仕事で文書のクラスタリングをするときに最初に買った本。
図鑑というだけあってでかいし絵が豊富。でもベイジアンフィルタのことまで書いてある。とっつきやすい。

統計学の図鑑 (まなびのずかん)

統計学の図鑑 (まなびのずかん)

完全独習 統計学入門

中高の数学をだいぶ忘れていたので上の本と一緒に購入。標準偏差について非常に詳しく説明している(ので機械学習をツールとして使うだけならあまり必要ないかも)。章末の練習問題をやったりして学生気分に。

完全独習 統計学入門

完全独習 統計学入門

Rによるデータマイニング入門

上2冊に比べると本格派。これを一番よく読んでいる気がする。Rに慣れてないのでソースが読みにくいのと図(Rによるプロット)がきれいでないのがちょっとあれだけど、知りたいことがだいたい章題になっているので手放せない。

Rによるデータマイニング入門

Rによるデータマイニング入門

2018年に公開されたセキュリティ関連文書まとめ

もう3月ですがやらないよりはいいだろうということで・・・。
2018年はリアルタイムには情報を追っておらず、お知らせ一覧等から調べているため抜けがあるかもしれません。

ルールは以下。

  • 公共性の高いものを載せています
  • WGや研究会の純粋な活動報告書、個別のインシデント・脆弱性は載せていません

情報源はこの辺。

security.nekotricolor.com

政府機関

NISC

文書タイトル 公開日
サイバーセキュリティ戦略 2018/07/27

セキュリティ関連団体

その他

文書タイトル 公開日 公開組織
危険な12 の落とし穴 クラウドの重大セキュリティ脅威 + 2017 インシデント事例集 2018/05/19 CSAジャパン
フィッシング対策ガイドライン 2018 年度版 2018/06/04 フィッシング対策協議会
フィッシングレポート 2018 2018/06/04 フィッシング対策協議会
クラウドコンピューティングのためのセキュリティガイダンスバージョン4.0(日本語版) 2018/06/24 CSAジャパン
違法・有害情報対策活動報告(2017年) 2018/08/20 セーファーインターネット協会

*1:公衆無線LANの現状、セキュリティ対策のあり方などが載っているので掲載

SecHack365の成果発表会に行ってきました

3月8日に秋葉原で行われたSecHack365の成果発表会に行ってきました。

sechack365.nict.go.jp

最初の3つの発表しか聴けませんでしたが面白かったのでメモ。

QEMUによる自動バイナリ防御機構の開発

セキュリティ機能をつけたQEMUという感じでした。リターンアドレスを保存しておいて実際の戻り先と比較し違っていたら終了させるとか、printfの%nを他の文字列に置き換えるとか(フォーマットストリングバグか!なつい!!*1)、ダブルフリーやuse-after-freeの防止、GOTの書き換えを検知・・などなど、怒涛のスライド177枚。

個人的には古きよき?脆弱性からGOTやらヒープ領域やら一通り勉強できていいなあと思いました。その辺の仕組みと実装を本にまとめたら売れるかも・・いや私が欲しいだけですが・・。

デモは上記のバグを持つプログラムを実行してもcore dumpさせないというものでした。考察にもありましたがハニーポットによさそうですよね。
アカウントは非公開でって最初のスライドにあった気がするのでGitHub等のリンクは控えます。

NFCとWebUSBを用いたWebアプリ用認証システム

公式サイトでは上記のタイトルになっていましたが、当日の発表タイトルは「マイナンバーカードで描くCivic Techの未来〜Webで使える認証機能を作ってみた〜」でした。
Civic Techとは、市民がテクノロジーを活用して行政サービスの問題やや社会課題を解決する取り組みのことだそうです。WebUSBというのは、ChromeなどのブラウザからUSBデバイスに接続するためのAPI。このAPIを使い、カードリーダーにマイナンバーカードをおいてPINコードを入力することで、パスワードレスにWebサイトにログインする認証機能を作ったということでした。忌避されがちなマイナンバーですがこういうところで活用できるといいですよねえ。

WebUSBでリーダーを制御するドライバがないので作りました、という潔さが良い。

github.com

他の成果物も以下で公開されています。

www.npmjs.com

Exgdb ~GDBを用いた動的なバイナリ解析の効率化~

マルウェアやシェルコードをgdbを使って解析する人には普通に嬉しい拡張機能です。GitHubで公開されています。

github.com

出力をgrepできたり(CALL命令を抜き出すとか)、例えば以下のようなアセンブリ言語

mov QWORD PTR [rbp-0x20],rax

の[rbp-0x20]に何が入っているのか表示するとか。(常に表示させるモードもある)
やだ便利。

プラグインの管理用コマンドも充実。こういうの細かいとこだけど大事だよね。例えば新たなプラグインをインストールするときはこんな感じ。

$ exgdbctl install https://github.com/anybody/anyplugin


手動でできることを自動化しただけでしょ?新規性は?という仮想ツッコミに対し、自動化だって新規性だし!(私もそう思う)でも文句いう人のために新規性あるものも作ったよ!というのがとてもよかったです。学会によっては自動化も新規性と解釈されるそうなので、論文を書くならそういうところに出すといいかも?

感想

「作りたいから作った」「作ってみたら楽しかった」「褒められて嬉しかった」「だからもっと頑張りたい」という、忘れていたものを思い出させてくれるような健全な発表会でした。とはいえ学業や仕事と並行してこれをやり切るのは相当大変だったと思います。こういう環境があることがうらやましい気もしますが、自分が若い頃にあったとしてもやり切れたかどうか・・。内容も話し方も三者三様でしたが、みなさんとっても発表が上手で日本の未来は明るいなあとなんか元気をもらいました。

なお、当日の様子は以下のTogetterにまとめられています。
togetter.com