午前7時のしなもんぶろぐ

駆け出しのセキュリティエンジニア、しなもんのぶろぐ。

セキュリティ情報の集め方 ~しなもんの場合~

あけましておめでとうございます。

 

今年も細々とながら発信を続けていこうと思いますので、どうかよろしくお願いします。

 

今回はセキュリティ情報 (公開情報) の集め方について、私がどのようにしているのかご紹介します。

これがベストというわけではなく、このとおりやればいいというわけでもなく、あくまでひとつのケースとしてお考えください。

 

※「誰それをフォローするといいよ!」といった個別具体的な情報源の紹介はしません。

 最後にご紹介する他のリサーチャの方の中には情報源のリストを公開されている方もいらっしゃるので、ニーズに合いそうならそれらの情報源を利用されるとよいと思います。

 

 

なぜ情報収集をするのか

 

公開情報の収集を行うのは、一言でいうと「自分や自組織の体験以外から学ぶため」です。

 

組織が必要としている情報の大部分が組織の中だけで手に入るなら、わざわざ情報を集める必要はないわけです。

 

しかし実際には、「自分 (個人) や自組織が直接経験すること、中で起こっていること」より、「それ以外の場所で起こっていること」の方が圧倒的に多いです。

 

そして、セキュリティに関して取り組んでいる人も「自組織に所属している人」と「それ以外の人」では後者の方が圧倒的に多いです。

 

それらのすべてがオープンになるわけではありませんが、それでも組織外から情報を集めることで、実際に自分で体験する以上の知見を取り入れることができます

 

例えば「○○という攻撃手法が現れた」という情報があれば、自組織がそれに耐えられるかどうか、どのような対策が必要か考えることができます。

 

「○○に危険な脆弱性が見つかった」という情報があれば、実際に攻撃を受ける前にパッチを適用して被害を防ぐことができるかもしれません。

 

実際に何かが組織内で見つかった場合でも、「これは以前聞いた○○かも」という地点からスタートできるのとそうでないのとでは対応のスピードが違うはずです。

あるいはしっかり情報収集していたのにまったく関連情報がないなら、自組織だけを狙った攻撃や新種かもしれません。

 

これらはみな、外から情報を得ていなければできない、わからないことです。

 

どんな情報を集めるか

身も蓋もないですが、どんな情報をどれだけ集めたらいいかは組織によって異なりますし、人によっても異なります

 

例えば金融会社の人と製造会社の人とセキュリティサービスを提供する会社の人では必要な情報はそれぞれ異なるでしょう。

 

同じ業界、例えばセキュリティ業界でも、監査人と SOC アナリストとペンテスターでは興味の対象が違うはずです。

 

また、多ければ多いほど良いというものでもありません。情報収集・分析そのものを専門にしているわけではない人の場合、必要以上に大量の情報を集めても処理しきれず、かえって重要な情報を見逃してしまうかもしれません。

 

自分や組織の立場を踏まえたうえで、「情報を集めてしたいことは何なのか」を基準にして考える必要があります。

 

それでもあえて集めるセキュリティ情報を分類すれば、例えば次のようなものが挙げられます。

 

脆弱性情報・アップデート情報

どんな組織でも何かしら自組織以外の開発者によるソフトウェア製品は使っているはずで、それらの脆弱性やアップデートの情報は開発者公式をはじめとする外部から取り入れる必要があります。

 

開発者自身のほか、CERT や脆弱性情報ポータルサイト (例えば JVN) から発信されることもあります。

 

脅威情報

攻撃者の存在やその手口について、自分の体験として認識できるのは、当たり前ですが実際に攻撃にさらされているときです。

 

それまで待ってから場当たり的に対応するより、事前に動向を知って対策したり対応策を練ったりしておいたほうがいいに決まっています。

 

そのために外部の専門機関やリサーチャの方が発信する情報が活用できます。

 

インシデント情報

他の組織におけるセキュリティインシデントは、それ自体が自分や自組織に影響を及ぼすこともありますし、そうでない場合でも「ウチは大丈夫か? 同じようなことにならないか? 対策するならどうするか?」と考えるきっかけになります。

 

あと現実的な話として、新聞記事などで他社のインシデントを知った経営陣が「おいウチは大丈夫だろうな!?」的な疑問・質問をぶつけてくることがよくありますが、それ以前に独自に情報をキャッチできていれば、事前に状況を確認したり理論武装したりする余裕ができます。

 

調査手法やツールの使い方

個人的には結構重視しています。

 

自分たちの手法・TIPS を公開してくれる方や役立つツールを提供してくれる方が大勢います。

 

それらを吸収出来れば自分のスキルアップにつながります。

 

新規の情報源

良さそうな情報が見つかったら、それを発信した人や組織が何者なのか、これまで他にどういった情報を発信してきたかさかのぼって見てみましょう。

 

それが自分のニーズに合致するなら新しい情報源になり得ます

 

これを繰り返して少しずつ自分の情報網が豊かになっていきます。

 

私は情報網のメンテにかなり時間をかけており、よりよい情報源がないか常に探し続けています。

 

具体的な情報収集の方法について

Google 検索などの能動的な手段ももちろん活用しますが、なるべく何もしなくても欲しい情報が手元に集まってくる状態を作り出すことが大事です。

 

その手段として、私は主に次の 2種類を使っています。

RSS リーダー

Twitter・TweetDeck

 

私はあまり利用していませんが、他の SNS やメルマガなどを活用する方法も考えられます。

 

RSS リーダー

RSS は、各種ウェブサイトの更新情報を配信するためのフォーマットです。

配信される更新情報を RSS フィードといいます。

RSS フィードを取得し管理するためのツールが RSS リーダーです。

 

RSS フィードを購読すると、そのサイトの更新状況が自動で取得され、手元の RSS リーダーにたまっていきます。

つまり何が更新されたかわかる上に、各サイトへのアクセスを RSS リーダーに一元化できるのです。

 

RSS リーダーは既知の情報源の管理に最適です。

黙っていても最新情報を取得できるうえ、見逃しても後から見直すことが簡単です。

SNS と違って自分が登録したサイトの情報だけを集めるので、寄り道が少なく集中しやすいというメリットもあります。

 

一方、自分が登録したサイトしかウォッチできないということは、情報源の幅を広げるのには向かないということでもあります。

Twitter など他の手段でゲットした情報源を RSS リーダーに登録し、自分にとっての「既知の情報源」を充実させていくのが基本です。

(あまり大量でも見きれないので、スリム化も大事ですが)

 

また、残念ながらすべての有用な web サイトが RSS を用意しているわけではないというのも弱点です。

後述の方法で自分で RSS フィードを生成できることもありますが、それも必ずうまくいくとは限りません。

 

RSS リーダーとしては "Inoreader""Feedly" が有名です。

いろいろ違いはあるようですが好みで選べばいいと思います。

ここからは私が利用している Inoreader を紹介します。

 

Inoreader

Inoreader は、ブルガリアの Innologica 社が提供する RSS リーダーです。

www.inoreader.com

f:id:am7cinnamon:20210115125614p:plain

私はこんな感じで使ってます。読めていない記事が大量にたまってます……

 

日本語インターフェースに対応しているので、日本人には取っつきやすいと思います。

 

ブラウザ上で動く web アプリ (PCでの使用に向いている) のほか、iPhoneAndroid アプリも提供されており、例えば「職場の PC・自宅の PC・スマホで同期してシームレスに情報収集を行う」ことも可能です。

 

f:id:am7cinnamon:20210115125839p:plain

プランごとの比較 (一部抜粋)

 

無料プランでも 150 のフィードを購読できます

主要な公的機関、セキュリティブログ、ニュースサイトなどをカバーするのに十分な数なので、ハードに使うつもりがなければ無料プランで大丈夫です。

 

私は "PRO" プランにアップグレードしています。

機能はあまり使いこなせていないのですが、上限を気にせず少しでも気になったサイトをガンガン登録できる安心感には、私にとって値段に見合う価値があると感じます。

アップグレードはいつでもできるので、無料プランで初めて、もし不足を感じるようなら適宜アップグレードすればいいと思います。

 

使用方法については「Inoreader 使い方」などでググれば良質な記事がたくさん出てくるのでここでは割愛します。

 

RSS を配信していないサイトの対策

ぜひウォッチしたいと思う有用な web サイトのすべてが RSS を配信しているわけではありません。

ブックマークしておいて定期的に見るというのも手ですが、できれば他のサイトと同様に RSS リーダーで管理したいものです。

 

そんな方には "Feed43" をお試しになることをお勧めします。必ずうまくいくわけではありませんが、これで綺麗に RSS を生成できる場合も多いです。

feed43.com

ちょっと長くなりますが便利な方法なのでこの場でご紹介します。

 

ここでは有用でありながら RSS を設定していないサイトの例としてセキュリティニュースサイト "Security Next" を例に説明します。

私が知る限り Twitter アカウントも持っておらず、追いかけるのに工夫が必要なニュースサイトです。

 

1. どのページのフィードを取るか決めます。記事一覧、新着情報一覧などが掲載されているページが適しています。

 今回は「ニュース関連記事の一覧」で生成することにします。

 新着記事のタイトルとその URL の取得を目指します。

 

2. Feed43 にアクセスし、"Create your first RSS feed" ボタンをクリックします。

 

f:id:am7cinnamon:20210115114150p:plain

"Create your first RSS feed" ボタンをクリック

3. "Address" に Security Next の URL、”Encoding” に "utf-8" (大文字でも可) と入力し、"Reload" ボタンを押します。

 

f:id:am7cinnamon:20210115120228p:plain

 なお Encoding は他のサイトでは異なるものが使われている可能性があります。そのページのソースを見て、meta 要素を確認するのが確実です。

 

f:id:am7cinnamon:20210115120251p:plain

こんな感じで設定されています。細部はサイトにより異なります。

 

4. 正しく指定できていれば "Page Source:" にそのページのソースコードが現れます。

 文字化けしている場合は Encoding を正しく設定できていません。

 

f:id:am7cinnamon:20210115120443p:plain

5. 取得したいのは新着記事のタイトルと URL です。

 これらを含む部分をソースコードから見つけ出します。

 "Page Source:" を見てもよいのですが、画面が小さくて探しにくいので、ブラウザの機能で元のページのソースを表示して探すといいです。

 最新記事のタイトルなどで検索すると簡単です。

 

f:id:am7cinnamon:20210115120942p:plain

Security Next のニュース関連記事の一覧の場合、上の画像に示すのがその部分になります。

フォーマットは一緒で、「日付」「URL」「タイトル」だけが異なる繰り返しであることがわかります。

 

6. ここが一番難しい部分です。

 5. で特定した繰り返し部分を 1つ取り出して、

 ・フォーマット以外の可変部分 (タイトルなど) を"{%}" で置き換える

 ・ソース中に改行がある場合は、その箇所に "{*}" を追加する

 の 2つのルールに従い編集して "Item (repeatable) Search Pattern:" に入力します。

 場合によっては当該部分がかなり長いこともあるので、別にテキストエディタなどを用意して編集はそちらで行うと楽です。

 

f:id:am7cinnamon:20210115121854p:plain

今回は改行がなかったので、「日付」「URL」「タイトル」を {%} に置き換えただけで済みました。

 

この状態で "Extract" ボタンを押します。

 

7. 6. での設定がうまくいっていると "Clipped Data:" に "{%1} = ** {%2} = **...” という繰り返しが表示されます。

 6. で置き換えた {%} が順番に {%1}、{%2}、……になります。

 うまく抽出できていない場合は 6. に戻って試行錯誤することになります。ページの構造上どうやってもうまくいかないこともありますが……

 

f:id:am7cinnamon:20210115122137p:plain

うまく抽出できた

8. Feed Title などを適宜編集します。

 特にこだわりがなければそのままでもいいでしょう。

 

f:id:am7cinnamon:20210115122825p:plain

9. 取得するフィードの 1件 1件ごとのタイトルと URL を設定します。

 今回は、"Item Title Template:" は個別記事のタイトルにあたる "{%3}"、"Item Link Template:" は個別記事の URL にあたる "{%2}" にそれぞれ設定しました。

 Item Title に日付と記事タイトルを組み合わせて "{%1}{%3}" と設定する、といったこともできます。

 

f:id:am7cinnamon:20210115123442p:plain

10. "Preview" ボタンを押します。

 うまく各記事のタイトルと URL が取得できて一覧になっていれば成功です。

 

f:id:am7cinnamon:20210115123725p:plain

11. "Feed URL" が完成した RSS フィードの URLです。

 

f:id:am7cinnamon:20210115124023p:plain

完成!

これをコピーして自分が使っている RSS リーダーに設定します。

 

f:id:am7cinnamon:20210115124428p:plain

無事購読できました

 

Twitter

言わずと知れた有名 SNS です。国内では LINE に次いで高いシェアを誇っています。

 

twitter.com

 

世界全体でのユーザー数は FacebookYoutube・WhatsApp などに比べはるかに少ないのですが、海外のセキュリティ企業や有名リサーチャも Twitter を使っていることは多いため、海外情報を集めるのにも十分使えます。

 

RSS と比べて即時性が高いという特徴を持ち、今まさに起こっていることを (つぶやいてくれる人がいれば) 観測できる可能性があるのが利点です。

 

またもともと知らなかった情報源の開拓に適しているのも見逃せない点です。

すでにフォローしている人の「リツイート」「いいね」などを通じて他のリサーチャやセキュリティブログなどを発見できることがあります。

もちろん発見した新しい情報源は「フォローする」「リストに登録する」「RSS 購読する」などの手段によって自分の情報網に加えることができます。

 

一方 SNS なので本来知りたかったのとは関係ない雑談やレスバトルも飛び交っていますし (雑談が何かのヒントになることもよくありますが)、トラブルに巻き込まれることもないわけではありません。

特に伝えたいことがなければ、何もつぶやかない情報収集用と割り切って使うのも手です。実際そうしている人もいます。

 

また、話題にもよりますが、いったん見逃した情報を後で再び見出すのは難しいことが多いです。

 

TweetDeck

TweetDeck は Twitter の公式アプリの 1つです。

Twitter アカウントがあれば特別な登録など不要ですぐ使えます。

 

tweetdeck.twitter.com

f:id:am7cinnamon:20210115142714p:plain

私の画面の一部。個人アカウントと思われる方は名前とアイコンを伏せています

 

Twitter は通常 1列のタイムラインからなりますが、TweetDeck では「カラム」と呼ばれる列を複数表示して一度に見ることができます

カラムには、

・特定のユーザ

・アカウントをまとめたリスト

・特定の言葉やハッシュタグの検索結果

などを設定することができます。

 

私の場合、リサーチャの方や機関・企業などを自分の基準で分類して作ったリストが主力です。

例えば、

・幅広いセキュリティ情報をあちこちから見つけてきて紹介してくれる「総合系リサーチャ」

・大量に送信されるマルウェアメールについての情報発信が多いリサーチャや機関をまとめた「ばらまき」*1

・フィッシングサイト・フィッシングメールの情報発信が多いリサーチャや機関をまとめた「フィッシング」

・CERT や国家機関、業界団体をまとめた「専門機関」

などのリストを並べています。

 

また状況次第では検索結果も使います。

 

マルウェア "Emotet" への感染を狙ったメールが配信されているときは、「emotet OR エモテット OR エモテット OR えもてっと」などのワードでの検索結果を表示しています。

 

加えて、海外系を中心に高品質な解析記事などをピックアップしてくれる Virus Bulletin (@virusbtn) は独立したカラムとしてウォッチしています。

 

 

もちろんこれらは私がこうしているというだけの話で、このやり方がベストというわけではありません。

私の周りでも様々な使い方をしている方がいますし、私自身も随時設定を見直しています。

 

スマートフォンでは使えませんが、PC で Twitter での情報収集を行うなら TweetDeck はおすすめです。

 

英語について

セキュリティ情報収集と切っても切れないのが英語です。

 

日本以外の国を発信源とする情報は日本語以外の言葉、多くは英語で出ます。

MicrosoftApple をはじめとするソフトウェア開発者、ネットワークやプログラミングなどの基礎技術、使えるツール、などなど、どれも外国 (特に英語圏) 由来のものが多いのでどうしても一次情報は英語になりがちです。

 

体感的には、最初から日本語で出てくる情報はセキュリティ情報のごく一部にすぎません

 

最終的には翻訳される場合でも、たいてい時間がかかります。

 

そのため、英語の情報を追える人と日本語しか見ない人とでは情報力に大きな差がついてしまいます。

 

ただ、ここで必要な英語の力というのは、決してハイレベルなものではありません。

 

最低限「記事などのタイトル」を英語で読んでだいたいわかればなんとかなります。

 

長文を読みこなす力がなくても、Google 翻訳や DeepL などの翻訳エンジンを使えば内容をつかむことは可能です*2

簡単な操作で翻訳エンジンを呼び出すアドオン・エクステンションも出回っており*3、読みたいものさえ明確なら案外読めてしまいます。

 

しかしタイトルさえ読めないと、どれが自分の欲しい情報で、何を翻訳エンジンで読んだらよいかさえわからないのです。

 

英語の情報は、決して英語がすごくできる人だけが集めるべきものではありません。

 

「私は英語が苦手だから」といって全部諦めないで、タイトルだけでも英語で読む訓練をすることをおすすめします。

 

なお、英語圏以外の国の機関がその国の言葉で有用な情報を発信することももちろんあります。

 

それらの言語を学んで理解するのはさすがに現実的ではないのですが、まったく心得のない言語でも何となく何の話かくらいわかる場合がある (英語由来の単語、製品名、アクター名、マルウェア名など) ので、興味のある話題ならば翻訳エンジンを使って読んでみるのもありだと思います。

 

例えば次のレポートはフランス語ですが、「Évolution→Evolution:進化」「l’activité→activity:活動」「groupe→group:グループ」「cybercriminel→cybercriminal:サイバー犯罪の」「TA505」と、英語と関連づければ何となく何かはわかります*4

www.cert.ssi.gouv.fr

情報収集の注意点

無理してまでやらない

情報収集は継続的にやるから意味があるのであって、一瞬だけガーっとやってもどうにもなりません。

 

そのため持続可能であることが非常に大切です。

 

何らかの理由で辛くなる場合は、ウォッチする対象を絞ったり、一時的に収集活動自体お休みするのも手です。

 

無理に全部追いかけようとしない

慣れてくるとすべての情報を追いかけたくなり、キャッチできない情報や知らない情報源があることに我慢がならなくなったりするかも知れませんが、時間や人間の情報処理能力には限界があります

 

すべての情報を漏れなく集めて吸収しようとしたら、それに見合う膨大な時間と手間が必要になります。

世界中で間断なく出てくる情報を見逃さないようにしていたらおちおち寝ることもできません。

 

興味のあるすべての情報を全部もれなく網羅することは基本的に無理だと思って、どこかで線引きをした方が賢明です。

 

ある有名アナリストは「7時間睡眠したから私はもう専門家ではなくなってしまった」と仰ったことがあるそうですが*5、それはほとんど神様レベルの話です。

私たち普通の人はむやみに真似しない方がいいと思います。

 

自分がセキュリティ情報を集めようと思った理由、集める目的を思い出しましょう。

 

情報を集めることを目的にしない、必要以上の時間をかけない

セキュリティ専業の方でも、「情報を集めること」そのものが仕事でそのために全力を費やせる人はそれほど多くないと思います。

 

多くの方は他にやるべきことがあり、それに役立てるための手段として情報収集を行っているはずです。

 

情報収集にかかる労力が肥大化して本来の仕事を圧迫しては本末転倒です。

 

本来の目的を忘れず、情報の質・量と収集に要する時間などのリソースのバランスをうまく取りましょう。

 

自動で欲しい情報が手元集まってくる状態を作ることが大事」なのはそのためでもあります。

 

他のリサーチャの方の場合

情報収集に関する考え方や方法、情報源についてはすでに多くのリサーチャがノウハウをまとめています。

 

あわせてご参照されることをおすすめします。

 

piyolog.hatenadiary.jp

ukky3.hatenablog.com

mkt-eva.hateblo.jp

security.nekotricolor.com

foxsecurity.hatenablog.com

speakerdeck.com

セキュリティ情報収集に教科書はない

セキュリティ情報収集は別に大仰なものではなく、誰でも思いついた瞬間から始められるものです。

 

例えばすでに持っている Twitter アカウントで誰か適当なリサーチャや専門機関をフォローするだけでも、それがその人のニーズに合っているなら立派なセキュリティ情報収集だと思います。

 

その一方、「これがベストのやり方」「これだけやれば OK」という基準はありません

とにかくたくさん押さえれば押さえるほどよい、というものでさえありません。

環境自体が刻々と移り変わっていくものであるうえ、その人の目的や立場によって適したやり方や質・量が異なるので、唯一の正解などないのです。

 

 それを踏まえても、今回ご紹介した私のやり方や考え方は粗の多いものだと思いますが、これも 1つのケースとして参考にしていただければ幸いです。

 

更新履歴

2020/01/16  23:45「ばらまき」リストに関する注釈を追記

 

 

*1:私はばらまきメールの配信状況(件名、添付ファイル名、マルウェアの種別、配信時期など)に関する情報をかなり重視しているので、なるべく見逃さないようにするためばらまきに関して言及することがある方は、それ以外の話題も扱う方でも「ばらまき」リストに入れています。この分類はあくまで私の都合によるものなので、他の方にはそのままの形では役立たないことが多いと思います。

*2:もちろん正確に理解するにはまともに英文を読むしかないですが

*3:個人的には問答無用でページの内容を日本語化するタイプのものより原文を残したまま訳文も表示できるタイプのものが好みです。うまく訳出できていればいいのですが、意味不明な訳になっている場合、原文の該当部分を読んで確認する必要があるからです。意味不明な訳文だけから元の英文を想像して「本当はこういう意味だろう」と推測するには普通に英文を読む以上の英語力が要求されます。

*4:このレポート自体は後に英語版が出ているので今からフランス語で読む必要はありません。あくまで例です。

*5:6時間だったかも。そもそも伝聞情報なので事実無根の作り話の可能性もあります。