1. HOME
  2. ブログ
  3. CS四方山話(第14話)「am I infected?」で、脆弱性やマルウェア感染を見つける

CS四方山話(第14話)「am I infected?」で、脆弱性やマルウェア感染を見つける

四方山

前回は、「不注意や偶発」で起きる「情報漏洩」と、「できるだけお手軽な防ぎ方」をテーマとして取り上げました。今回は、皆さん自身の環境を確認する「方法」と、その「仕組み」に関してお話ししようと思います。

皆さんは「無料で簡単に確認する方法」を知りたいですよね? はい、お話します。しかし、その「仕組み」も分かると、どこまで確認できるのか? ということも分かります。それに加えて、知ることによって、皆さんに新しい視点や観点が生まれることを筆者としては期待していますので「仕組み」にも触れさせて頂きます。

無料のセキュリティ検査サービス「am I infected?」とは?

ここJAPANSecuritySummit Update でも紹介されています (*1) が、国立大学法人 横浜国立大学(YCU)さんと株式会社ゼロゼロワンさんがご提供されている無料の検査サービスがあります。詳しくは脚注のリンクを参照してください。また、ぜひ皆さんもご自宅やオフィスの環境で試してみてください。https://amii.ynu.codes/ にアクセスして、結果を受け取るためのメールアドレスなど数項目を入力するだけです。5分程度で、入力したメールアドレスに結果が送られてきます。そのメールに記載されているURLにアクセスすると、結果が表示されます。
 
私の自宅は、大丈夫だったようです(global IPv4 は一部マスクさせて頂きました。住所を晒してストーキングを受けたりはしたくありませんので)。ちなみに、オフィスや、飛行中のANAの機内などでも試してみましたが、いずれも「安全な状態」でした。

マルウエア感染

何をチェックしてくれるのか? の項目としては、主には2つです。

 ①インターネット側からの攻撃に対して弱い部分はないか?
 ②マルウェアに感染している兆候はないか?

 ①は、さらに2つに分かれます。
 ①-a 外部からアクセスできるポートが空いていないか?
 ①-b 対象の装置にログインしたりできないか?

 こうしたアプローチは、「am I infected?」に限らず一般的な方法です。  これらを順番に「一般論」として見ていきましょう。

①インターネット側からの攻撃に対して弱い部分はないか?
①-a:ポートスキャンの結果を検証

IPでのアクセスは、IPアドレスとポートを指定して行います。IPアドレスが分かれば、そのIPアドレスを持つ装置にパケットを送れます(この辺りは、四方山話の第4話を思い出してください)。

さて、その IPアドレスですが、自分の家のルータのglobal IPアドレスを把握している人は少ないでしょうし、わざわざそれを誰かに教えることはしないでしょう。しかし、「am I infected?」のサーバは、それを把握した上で動作します。何故分かるのかと言うと、それは、あなたがそのサーバにブラウザでアクセスしたからです。サーバは、受信パケットから、MACアドレス、IPアドレス、送信側ポート番号、TCPのシーケンス番号、HTTPのセッションIDなど、さまざまな情報を得ているのです。これは「am I infected?」のサーバに限らず、インターネット上のどんなサービスにアクセスしても同じことが起こるということを忘れないでください。

次に、ポートはその装置の各種サービスへの入口になります。22番ポートであればSSH、23番はTelnet、80番はHTTPといったように0 – 1023はシステムポート番号と呼ばれ、決まったサービスに割り当てられています(通常は、ということで、サービスを提供する装置側で受け付けるポートを変更することも可能です。しかし、お約束があった方が、重複が発生するなど問題を回避し易いということで、標準化されているということになります)。

機器に侵入されることは望ましくありませんが、設定を変更したり、状態を確認したいというニーズは当然ながらあります。その場合には、その装置にログインするなどが必要になります。良く使われる方法は3つです。

ブラウザでアクセスする:この場合は、HTTP でのアクセスということになりますので、通常は80番ポートということになります。一般のユーザさんでも使い易い方法ですので、ルータなどでは定番の方法です。
SSH でアクセスする:この場合は 22番ポートです。ログインして、コマンドを打ち込むという操作方法になるので、技術屋さん向きですね。
Telnet でアクセスする:この場合は 23番ポートです。SSH の場合と同様の使い勝手になります。

他にも、さまざまサービスがありますので、空いているポートがないかを1つずつ調べます。このような方法を「ポートスキャン(Port Scan)」と呼びます。

1,000以上もあって大変なのでは? と思うかも知れませんが、コンピュータにとっては大した仕事ではありません。数秒で結果は出ます。スマートフォン上のアプリから、インターネット経由で、自宅の global IPv4 に対して0 – 1023番ポートに対してスキャンした結果を示します。80番ポート以外は、アクセスできないようになっています。

80番ポートは、諸般の事情でポートとして開けていますが、HTTPアクセスしても返事をしないようにしてありますのでご安心ください。

ちなみに、我が家の主ルータは、LAN内からアクセスした場合は、22番、80番のみがアクセス可能です。これは、私の作業用です。ブラウザでアクセスしての設定確認・変更と、SSHログイン用です。ログインしてコマンドを入力したいケースがありますので、22番ポートも開けています。

1台の装置で使えるポートは0 – 65535までですので、総当たりすることも可能です(この場合、さすがにスキャンに数分掛かる場合もあります)。セキュリティ確保のために、HTTPの入口を80から 10080にズラしておくなどの対策(小細工)をする場合もあるので、空いているポートを探すためには全てのポートを調べてみるのが確実です。

セキュリティチェックを行う場合は、空いているポートにアクセスして何らかの反応が返ってくるかを確認してみて、反応があると「危険かも」という判断になります(逆に、攻撃する側としては、空いているポートに対して、そのポート番号から推定されるプロトコルでアプローチしてみるという手順になります)。

①インターネット側からの攻撃に対して弱い部分はないか?
①-b:ルータなどの機種の特定も可能

機種を直接特定することは難しいですが、装置のメーカを特定すること比較的容易です。MACアドレスによって製造メーカを特定することができます(四方山話の第6話を思い出してください)。

MACアドレスは、IP通信を行う装置ごとにユニークに設定されています。6 bytes = 48 bits のデータで、その前半 3 bytesはOUI(Organizationally Unique Identifier)と呼ばれる装置のメーカを表すIDになります。このOUIはIEEEが管理しており、装置メーカがIEEEに申請して取得します。

通信を行えば、相手のIPアドレスもMACアドレスも把握することが可能です。下記は、あるローカルネットワーク上のデバイスからインターネット経由で自宅のルータにpingを送ったという場面のパケットキャプチャです。Pingの送信にApple社の製品を使っていること、ルータがYAMAHA製であることが分かります。

(MACアドレスは一部マスクさせて頂きました。これも住所なので、住所をマスコミに晒して突撃インタビューを受けることは避けたいので)。

global IPv4 アドレスを持っている装置の大半はサーバーかルーターです。そして、メーカーが分かれば、ルーターであることも特定できそうです。例えば、メーカーがYAMAHAだとすると、ルーターである確率は高いでしょう。たとえば、OUIでA社の製品であることが特定でき、OUI以外の3 bytesでおおよその製造年が特定でき、機種の範囲が絞れたとします。そうすると、その機種のマニュアル(最近はネットで公開されています)から初期設定のID、パスワードが分かります。22, 23, 80などのポートが空いていれば、そのポートで初期ID、パスワードでログインを試みることが可能となります(それで入れなければ、辞書アタックも試してみるという手もあります)。

また、機種を特定できれば、その機種に関して公表されている弱点(脆弱性)を突いてみるということも行えます。生産中止になり、ファームウェアのアップデートも行われなくなっている機器であれば、簡単に侵入できる場合もあります。セキュリティチェックを行う場合は、メーカー、機種を特定し、サポートが切れている古い機材を使い続けている場合などは「危険かも」という判断になります。

②:マルウェアに感染している兆候は?

最近流行のマルウェアに関しては、次話以降で取り上げたいと思いますが、ここでは、どうやってマルウェアに感染している兆候を検出するかに関して考えてみましょう。

新型コロナウイルスに感染したとしても、発症しなければ、少なくとも本人には問題ありません。しかし、無症状であってもウイルスに感染すると、ウイルスを拡散することになるので、感染していることを抗原検査やPCR検査で特定する必要がありますし、感染と発症の確率を下げるべくワクチン接種を行うことも必要です(続きは、余談で)。マルウェアに関しても同じ事が言えます。感染しないのが一番ですが、感染したことをできるだけ早く検出し、対処することも重要です。

マルウェアに感染しているのは、ルーターとは限りません。むしろ、いろいろなモノをインターネットから引っ張ってくる、あなたのパソコンやスマートフォンのほうが感染しやすいでしょう。しかし、インターネット側からは、自宅のLAN内のパソコンやスマートフォンにはアクセスできません。マルウェアに感染しているかどうかを、インターネット側から能動的に探ることは困難であると言えます。

視点を変えてみましょう。

感染しても何も起こらないということはありません。何も悪いことをしないマルウェアでは意味がありません(存在意義を問われます)から、必ず何か活動を行います。もちろん、mal = malicious = 悪意 の名に恥じないよう「悪いことをする」がゴールなのですが、その悪いことを大規模に行うために感染拡大を図ります。

つまり、特定の機器が感染すると、その機器自体が攻撃者になって、別の機器への感染を拡げようとします。ネットワーク機器はみんなネットワークに繋がっています。それが感染経路になるわけです。たとえば、前述のポートスキャンを行って、別の機体に侵入し、感染を拡大するような動きです。空気感染だとすると、ネットワークは空気です。こうして、感染を拡げようとする動きを察知することで検出が可能になります。ネットワークはLAN内だけでなく(大抵の場合)インターネットにも繋がっていますので、この方法論であれば、インターネット側で観測していても兆候を捉えられます。

これは簡単なことではありませんが、たとえば国内では、NICTERプロジェクトがダークネット観測による脅威やインシデントのあぶり出しを行っています。このプロジェクトは、国立研究開発法人情報通信研究機構 (NICT) のサイバーセキュリティ研究室が主導しています。ダークネットというのは、global IPとして定義はされているが、現時点でプロバイダなどに振り出されていない大量のIPアドレスを使ってパケットの監視を行い、サイバー攻撃と思われる動きを捉える活動を行っています。その情報は全て公開されているわけでありません(当然ながら、貴重な情報なので、悪用されると元も子もないので、信頼できる機関などのみに開示されています)。

仮に、あなたの家のルーターのIPアドレスから、ダークネット上のIPアドレス複数に対してのポートスキャンが行われているとすると、その可能性は2つです。1つは、あなた自身が攻撃者で攻撃を仕掛けているケース。もう1つは、あなたの家のいずれかの装置がマルウェアに感染しており感染拡大を狙って活動しているケースです。その区別は「am I infected?」はできないと思いますが、いずれにしても「危険かも」という判断になると思います。

今回は「am I infected?」のご紹介と、脆弱性やマルウェア感染をどう見つけるのか? という方法に関してご紹介しました。ここで気を付けておくべきことがあります。脆弱性を見つけるという方法論は、「am I infected?」も攻撃側も同じです。ここから皆さんが採るべき対策が見えてきます。

 ➣ルータの受信ポートはできるだけ閉じておく
  ・家庭用のルータの初期設定では不用意にポートを開けていないはずなので、
   普通はあまり気にしなくても良いでしょう。

 ➣サポートが切れている(ファームウェアアップデートの提供が止まっている)古いルータは
  使わない = 新しいルータに買い換える(信頼できるメーカを選びましょう)

 ➣ルータのファームウェアアップデートを適切に行う

 ➣怪しいサイトにアクセスしない
  サイトへのアクセスすることで、そのサイトがあなたのルータのglobal IPアドレス、MACアドレスなどを把握します。
これが起点となりますから、まずこれを避けるようにしましょう

最近流行のマルウェアと、その感染を避ける対策に関しては、次回でご説明させて頂こうと思います。

【四方山話 余談コーナー】

この原稿はとある平日の夜中に書いていますが、本来この原稿を仕上げようと考えていた、その前の週末はほぼ何もできずに過ごしました。なるべく業務に影響しないように土曜の午前中に3回目のワクチン接種を行ったのですが、当日の夜中あたりから不調になり、ピーク時39℃超えの体温を久々に記録し、月曜午前までほとんど活動不能状態でした(結局、業務に影響してじゃないですか (> <))。

1,2回目も多少発熱はありましたが、活動不能には陥りませんでした。しかし、3回目はダメでした。後知恵ですが、3回目接種のモデルナではリンパ節が腫れるというケースが一定頻度であるそうで、そのケースに当てはまってしまったように思います。

日本の3回目摂取率は3月上旬で20%強ですので、まだこれから接種される方も多いと思います。副反応が強い場合に備えておくことをお勧めします。備え = { 2、3日仕事をしなくても済む状態にしておく、解熱剤を用意、水分補給の準備(スポーツドリンクを買っておくなど)、食欲不振でも食べられるもの(アイスなど)を用意、タオル+保冷材を準備 }。

ちなみに、タオルに包んだ保冷材を首の周りに巻くのが体温降下には効果的です。頸動脈付近は表皮に近く冷やしやすく、かつ、脳を高熱から防ぐことにも繋がりますので。狙い目は、総頸動脈が内頸動脈と外頸動脈に分かれる辺り、胸鎖乳突筋上方の少し前側です。文字では分かり難いですね。図は、こちら (*2) などをご参照ください。

この発熱でダウンしていなければ、週末に3月8日から劇場公開された「銀河英雄伝説 Die Neue These 激突」を観に行こうかな〜などと考えていましたが果たせませんでした。


(*1) 「am I infected?」

(*2) かずひろ先生の【徹底的国試対策】解剖学
https://note.com/anatomic_study/n/n45392941654

ナカムラケン

中村 健 (Ken Nakamura)
株式会社SYNCHRO 取締役 CTO
機械屋だったはずだが、いつの間にかソフト屋になっていた。
以前は計測制御、知識工学が専門分野で、日本版スペースシャトルの
飛行実験に関わったり、アクアラインを掘ったりしていた。
VoIPに関わったことで通信も専門分野に加わり、最近はネットワーク
セキュリティに注力している。
https://www.udc-synchro.co.jp/

サイバーセキュリティ四方山話の最新話は、メールマガジンにてもご案内致しています。是非JAPANSecuritySummit Updateのメールマガジンにご登録ください。
メールマガジンの登録はこちらからお願いします。


過去のサイバーセキュリティ四方山話はこちらよりご確認ください。

https://japansecuritysummit.org/category/special-edition/nakamura/

関連記事

今年も開催JAPANSucuritySummit 2022
サイバーセキュリティの課題をテーマ別に紹介中!!