コンピュータウイルスの脅威

コンピュータウイルスの正体はプログラム。
コンピュータウイルスの定義は
* 自己伝染機能(自分のコピーを他のコンピュータにも生成する)
* 潜伏機能(対策を遅らせるためにおとなしくしている）
* 発病機能(プログラムやデータを破壊する）

# コンピュータウイルスの種類
## 狭義のウイルス
* ウイルス単体では存在できず、他のプログラムに寄生していくことで自身を増やしていき悪事を働いていくプログラム
    出典 http://vanilla.xrea.jp/virus/category3/entry12.html
他のプログラムに寄生して、その機能を利用する形で発病する。

## マクロウイルス
マルウェア（malware：悪意のあるソフトウェア）の一種です。```ExcelやWord、いわゆる文書作成ソフトや表計算ソフト```など、オフィスソフトの```マクロ機能を悪用```して感染や増殖するタイプで、一見すると普段利用しているオフィスファイルに見えることから```誤ってクリックされやすいマルウェア```と言えます。
### マクロ機能とは？
マクロ機能とは```オフィスソフトに標準で搭載```されている機能であり、本来は```作業の効率化や定型作業の自動化```を簡単に行えるようにする便利な機能です。

### どのように感染するのか？
* 普段使っているオフィスの```ファイルと同じ拡張子、ファイル形式```であることから、疑うことなくクリックしてしまい、結果として```悪意のあるスクリプト```を「自分自身で実行」してしまいます。
* 拡張子が```実行形式「.exe」ではない```点と、```ExcelやWordなどのアイコンで表示されてしまう```点が盲点となり、普段注意している人でも感染し、被害の拡大に繋がりやすくなっているのが特徴です。

#### 気づき
プログラムが作動してしまうのか。
気をつけないと。

### 注意点
* 信頼できる発信元からのメールであっても```添付ファイルに警戒```する
* ```よくわからないまま「OK」```などをクリックしない
* マクロの無効化を```「有効」にするダイアログに注意```する
    * オフィスソフトの種類やバージョンによって異なる場合もありますが、```マクロが無効化されているのに有効化を求められる```ことがあります。誤って有効にしないように注意が必要です。
* ```ウイルス対策ソフト```を導入する
* ネットワークに接続する```デバイスのOSやソフトウェアを最新の状態```にする

出典 https://www.hammock.jp/assetview/media/method-of-macro-viruses-prevention.html

## ワーム
ワームはマルウェアの一種であり、ウイルスと違い単独のプログラムとして活動することができ、トロイの木馬と違い自己複製能力をもっているため、マルウェア3種の中でも一番高い感染力を持つ危険なマルウェアです。

### 性質
#### 自ら複製を作って感染を拡大
```自分の複製```を作り(自己増殖)、```他のデバイス```に感染していきます。
ワームの種類にもよりますが、アウトブレイク(大規模感染)したものは、ネットワークに接続される感染可能なデバイスに自ら```侵入、増殖、感染可能なデバイスを探す```、といったサイクルを繰り返し```世界中の数百万台というPCに感染```しました。
#### 自身が感染するための宿主となるファイルを必要としない
ワーム(とトロイの木馬)はウイルスのように```他のファイルに寄生する必要がなく```、単独のプログラムとして存在します。感染やプログラムの実行に必要な条件が減るため、```より多くの環境に対応・活動```を行うことが可能です。

### どのように感染するのか？
#### ネットワークを介しての感染
ネットワークに接続されているだけで感染していきます。

#### メールからの感染
受信したメールにワームが添付され、それを開くことで感染する感染経路です。

#### 共有フォルダから感染
ワームに感染したコンピュータがネットワークに接続されている共有フォルダにワームのコピーを置いて、ネットワーク上の他のコンピュータに感染させる手口です。

#### USBメモリーなどの外部ドライブから感染
USBメモリーなどの外部ドライブにワームが潜んで感染していく感染経路です。ワームが侵入したUSBメモリーをコンピュータに差し込むことで感染します。
### 注意点
* OSと使用しているソフトウェアを常に最新状態にしておく
* 送信元が不明な添付ファイル、知人からのメールでも不明な添付ファイルは決して開かない
* 迷惑メール、SMS、SNSのDMの中のリンクはクリックしない
* ファイアウォールを持つセキュリティソフトをインストールする
### 気づき
簡単に感染する。

## トロイの木馬
この名前は、ギリシャ神話で遠征軍のオデュッセウスが考案した「トロイの木馬」に由来しています。トロイア攻略のため、「トロイの木馬」に兵士を潜り込ませ、一旦軍を撤退させます。その後、油断したスキをついて遠征軍が襲撃、トロイアは滅亡しました。
この話のように、```ユーザーに気づかれないよう様々な攻撃を仕掛ける```のがトロイの木馬の最大の特徴となっています。

### 特徴
#### バックドア型
攻撃者が```自由に情報のやり取りができる「裏口」```を意味します。設置されるとパスワードなどの```重要情報の奪取```、新しいマルウェアがダウンロードされるなど、```新たな攻撃への踏み台```にされ、知らないうちに被害が拡大します。

#### ダウンローダ型
```ファイルをダウンロード```する機能を持ったトロイの木馬です。前もって設定されている場合もあれば、```バックドア経由で攻撃者からの指示を受けてダウンロード```する場合もあります。近年は後者のケースが多いです。

#### プロキシ型
感染したコンピュータの```ネットワーク設定を変更し、プロキシサーバを構築```します。攻撃者は、そのコンピュータを踏み台にしてサイバー攻撃を行うため、```コンピュータの持ち主は、悪意がないのに加害者```となってしまうことも。

#### キーロガー型
初期のトロイの木馬でよく見られたタイプです。ユーザーの```キーボード操作を記録し、攻撃者```に送信します。攻撃者は```送られた記録を通してIDやパスワード情報を奪取```します。中には画面のスクリーンショットを撮影するものもあります。

#### パスワード窃盗型
自らパソコン内部からパスワードなどの```重要情報を探し出して奪取```します。奪取した重要情報はサーバーやメールを通じて攻撃者に送信されます。```自ら重要情報を探索・発見```するところが「キーロガー型」とは大きく異なります。

#### クリッカー型
```ブラウザの設定を勝手に変更```し、スタートページを悪意あるサイトに変えたり、ブラウザを自動で起動させ、```有害なサイトへ強制的に接続```させたりします。他にも、不正サイトに強制接続させ、悪意あるソフトウェアをダウンロードさせることも。

#### ボット型
```攻撃者からの遠隔操作```を受けて、マルウェアが入ったスパムメールを大量に送りつける、DDoS攻撃といった行動を起こします。

### 感染経路
#### メール
```攻撃者もしくはすでに感染しているパソコン```からスパムメールが送られてきます。メールに添付されているファイルの開封、もしくはメールに記載されている```リンクをクリックすると、トロイの木馬がダウンロード```され実行されます。スマホの場合は```アプリがダウンロード```されます。

##### スパムメールとは？
受信者の意向を```無視して一方的に繰り返し```送り付けられる迷惑メール
出典 https://www.nttpc.co.jp/column/security/spam_mail.html

#### SMS
```荷物の不在通知を装ったSMSメッセージ```も、トロイの木馬の攻撃方法の一つです。荷物の不在通知と共に貼られた```リンクをタップすると、マルウェアがダウンロード```され、個人情報が流出したり、攻撃の踏み台にされたりしてしまいます。

##### Webサイトの改ざん
```改ざんされたWebサイトにアクセス```することで、トロイの木馬に感染することもあります。以前はアクセス数の多い大企業や官公庁のWebサイトが標的になっていましたが、最近では中小企業のサイトが狙われるケースも増えています。

#### SNS
2008年、アメリカの人気SNS「Habbo」のユーザーを狙ったトロイの木馬が話題になりました。これは```「Habboで有名になれる」という触れ込み```でファイルをダウンロードさせるというものです。感染により、パソコンのキー入力履歴が記録され、外部に個人情報が流出するといった被害が出ました。

#### アプリ・ソフトウェア
```近年、増加```しているのがアプリやソフトウェアを介したトロイの木馬です。その一例がタクシー配車アプリになりすましたトロイの木馬「Faketoken」です。「Faketoken」をダウンロードすると、```銀行口座などの関連情報が奪取```されます。またバージョンアップした「Faketoken」では、勝手にSMSを大量送信させ、高額の通信料をユーザーに支払わせる機能が追加されています。

#### 脆弱性の悪用
```メールの添付ファイルを開いたり```、WEBサイトに接続させ、脆弱性を悪用してマルウェアに感染させます。添付ファイルやWEBは正常に表示されるので、```ユーザーは気づかないうちに感染```してしまいます。

### 対策
* ```定期的にOSやアプリケーションのアップデート```を行う
* ```提供元が不明```なソフトウェアやアプリケーションをダウンロードしない
* ```不審なWebサイト```へのアクセスに注意する
* ```セキュリティソフトの導入```

### 侵入された場合
* 感染した端末を隔離する
* IPAセキュリティセンター（IPA/ISEC）に届け出・相談する
* セキュリティソフトで検出・駆除
* 初期化

出典 https://www.amiya.co.jp/column/trojan_20210113.html
## スパイウェア
```コンピュータ内部からインターネットに対して情報を送り出す```ソフトウェアの総称です。一般的には、そのようなソフトウェアがインストールされていることや動作していることに```ユーザーが気付いていない状態で、自動的に情報```を送信するソフトウェアをスパイウェアと呼んでいます。
出典 https://www.soumu.go.jp/main_sosiki/joho_tsusin/security_previous/kiso/k01_spyware.htm#:~:text=%E3%82%B9%E3%83%91%E3%82%A4%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%A8%E3%81%AF%E3%80%81%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E5%86%85%E9%83%A8,%E3%81%A8%E5%91%BC%E3%82%93%E3%81%A7%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

## ボット
```コンピュータを外部から遠隔操作```するためのコンピュータウイルスです。ボットに感染したコンピュータは、ボットネットワークの一部として動作するようになります。そして、インターネットを通じて、悪意のあるハッカーが、```常駐しているボットにより感染したコンピュータを遠隔操作```します。
出典 https://www.soumu.go.jp/main_sosiki/joho_tsusin/security_previous/kiso/k04_bot.htm#:~:text=%E3%83%9C%E3%83%83%E3%83%88%EF%BC%88BOT%EF%BC%89%E3%81%A8%E3%81%AF%E3%80%81,%E3%82%92%E9%81%A0%E9%9A%94%E6%93%8D%E4%BD%9C%E3%81%97%E3%81%BE%E3%81%99%E3%80%82

# ウイルス対策ソフトと定義ファイル
コンピュータウイルスに対して効力を発揮するのが```ウイルス対策ソフト```です。
## どうやって検出するのか?
多種多様なウイルスを検出するためには、既知のウイルスの特徴を記録した```ウイルス定義ファイル(シグネチャファイル)```が欠かせない。
このファイルを```常に最新版にしておく```ことが重要。

# ビヘイビア法（動的ヒューリスティック法)
ウイルス対策ソフトでは```未知のウイルスを検出```することはできない。
なので```不審な処理が行われないか検査```する手法のこと。

## 検出方法
* 危険な処理を行ったら```プログラムを停止```させる。
* ```仮想環境で実行```させて、危険な行動をとるか監視する。

# 問題を解いた時の気づき
## マルウェアとは?
英語のmalicious（マリシャス：悪意のある）にsoftware（ソフトウェア）の2つの単語が組み合わさった造語です。ウイルス（コンピューターウイルス）やワーム、トロイの木馬、スパイウェアなど、ユーザーのデバイスに```不利益をもたらす悪意のあるプログラムやソフトウェア```を総称する言葉です。
出典 https://www.ntt.com/business/services/network/internet-connect/ocn-business/bocn/knowledge/archive_19.html

## 動的解析
動的プログラム解析 (Dynamic Program Analysis) とは、ソフトウェア解析手法の一種であり、実際のあるいは仮想のプロセッサでプログラムを実行して解析を行うこと。

## サンドボックスとは?
セキュリティにおけるサンドボックスとは、ユーザーが```通常利用する領域から隔離した、保護された空間```のことです。外部から送られてきたプログラムやファイルを実行する際、プログラムやファイルが不正な操作を行うものであったとしても、通常の領域からは```隔離されているため、害を防ぐ```ことができるという仕組みです。この考え方を採り入れた未知のマルウェアを検知・駆除するためのセキュリティソリューションも存在します。
...
サンドボックスを使ったソリューションでは、隔離された空間で検査対象となるプログラムやファイルを実行し、その挙動などを分析するという仕組みであるため、```未知のマルウェアでも検知・駆除できる```メリットがあります。
サンドボックスを使ったマルウェアの検知の課題としては、```現状ではリアルタイムに検知を行えない```点です。このため、サンドボックスだけに頼るのではなく、```ウイルス対策ソフトなどと組み合わせて利用```することが求められます。
出典 https://www.ntt.com/bizon/glossary/j-s/sandbox.html

### 気づき
ビヘイビア法と一緒なのか。
逆にビヘイビア法が動的解析なのか。

## 静的解析
ソフトウェアの解析手法の一種で、```コードを実行せずに行なう```検証のことです。静的解析の利点として、```コーディング時という開発の早い段階```でエラーを検出できるため、```バグ修正コストを抑制```できます。また、プロジェクトの共通のコーディングスタイルを推進できるため、コードの```可読性や保守性が向上```するなどの利点があります。

## マルウェアの解析
マルウェアの解析は、様々な立場の人が様々な目的をもって行っています。

サイバー攻撃を日々監視しているSOC（セキュリティ・オペレーション・センター）では、不審なファイルを発見したときに、マルウェアかどうかを特定するために解析を行います。また、```セキュリティセンサー上で攻撃を識別するルール```を設定するためにも解析が必要です。マルウェアが、```どのようにC&Cサーバ（コマンド・アンド・コントロールサーバ。攻撃者がマルウェアに対し攻撃の指令を送るサーバ）等と通信するのか```を明らかにすることで、ルールを作成します。

### マルウェア解析の3つの方法
マルウェア解析にはさまざまな方法がありますが、私たちの現場では以下の```3つのステップに分けて解析```を行っています。

* 表層解析
* 動的解析
* 静的解析

#### ステップ1：マルウェアの```特徴```をもとに過去の解析データを調査する「表層解析」
最初に行うのは表層解析です。これはマルウェアの```表層的な特徴（ファイル名、ファイル種別、ハッシュ値等）```を元に、インターネットや過去の解析データ等を調査する方法です。マルウェアを動作させずに解析するため、```比較的危険度が低いやり方```といえます。

#### ステップ2：実際にマルウェアの挙動を見る「動的解析」
表層解析では満足のいく結果が得られなかった場合、動的解析を行います。動的解析は、```マルウェアを動作```させ、その```挙動をモニタリングして解析```する方法です。

マルウェアを実際に動作させるので、```やり方を間違えると他の端末に感染が拡大する可能性```もあります。そこで```ネットワークに繋がないスタンドアロン環境や仮想環境```を用いて、マルウェアが感染の際にどのようなファイルを作成するのか、またその通信先などを調べます。解析環境内に擬似的なC&Cサーバを用意することもあります。このC&Cサーバと通信させることで、```迅速に通信先を特定でき、その通信をブロック```する等、```すばやい対策```を行うことができます。
仮想環境のスナップショット機能を利用すると解析後、感染前の環境に容易に戻すこともできます。

#### ステップ3：マルウェアのコードを読み解く「静的解析」
最後に行うのが静的解析です。静的解析は、マルウェアのファイルを```リバースエンジニアリング```して、プログラムのコードを読み解きます。主な言語は、アセンブリ言語です。C言語のような高級言語では数行で書けるコードが、アセンブリ言語では、大量のコードになります。コードをすべて読み解くのでは、非常に多くの時間を要しますので、```解析の目的、ポイントを絞って```行います。

出典 https://www.fujitsu.com/jp/solutions/business-technology/security/secure/column/meister-column/06/
図がついているのでこちらの方が理解しやすいです。

## コンペア方式とは？
ワームなどのウイルス検知方式の1つです。
検査対象ファイルからSHA-256を使って```ハッシュ値を求め```，既知のワーム検体ファイルのハッシュ値の```データベースと照合```し、もし異なっていればウイルスとして判断します。
出典 https://algorithm.joho.info/computer/compere-method/#:~:text=%E3%82%B3%E3%83%B3%E3%83%9A%E3%82%A2%E6%B3%95%E3%81%A8%E3%81%AF%E3%80%81%E3%83%AF%E3%83%BC%E3%83%A0,%E3%82%A6%E3%82%A4%E3%83%AB%E3%82%B9%E3%81%A8%E3%81%97%E3%81%A6%E5%88%A4%E6%96%AD%E3%81%97%E3%81%BE%E3%81%99%E3%80%82

## パターンマッチング方式とは？
「新たにインストールされたプログラム」を「既知のマルウェアをもとにしたデータベース」と比較し、```一致したものをマルウェアとして検出```する方法です。データベースは、定義ファイル、ライブラリ、パターンファイルと呼ばれる場合もあります。
出典 https://www.ctcsp.co.jp/itspice/entry/096.html#:~:text=%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E3%83%9E%E3%83%83%E3%83%81%E3%83%B3%E3%82%B0%E6%96%B9%E5%BC%8F%E3%81%A8%E3%81%AF,%E3%81%A8%E5%91%BC%E3%81%B0%E3%82%8C%E3%82%8B%E5%A0%B4%E5%90%88%E3%82%82%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82

## チェックサム方式とは？
* 誤り検出符号の一つで、データ列を整数値の列とみなして和を求め、これをある定数で割った余り（余剰）を検査用データとするもの。最も単純な誤り検出方式の一種で、誤りの検出精度は低いが原理が簡単で容易に実装でき、計算コストも低いため、簡易な誤り検出方式として広く普及している。
出典 https://e-words.jp/w/%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%82%B5%E3%83%A0.html

* チェックサム法（英: Checksum）とは、誤り検出方式、誤り検出符号の一つで、データ列を整数値の列とみなして和を求め、ある定数で割ったあまりを検査用データとするもの。

    セキュリティの世界では、チェックサム法は主にウィルスチェックの方法として用いられることが多く、コンピューターウィルスに感染する前に```ファイルの容量やハッシュ値を記録```しておき、記録した値との差異が無いことを確認するコンピュータウィルスの検出方法として広く採用されています。

    ファイルの全てを比較する必要が無いため、```ウィルスチェックの速度がコンペア法などのウイルスチェック方法と比較し、短時間で済む```といった特長を持っています。但し、```ファイル容量を変化させないウィルスやハッシュ値を変更することができるウィルス```も多く完全にコンピュータウィルスを検出することができないといった課題も抱えている。
出典 https://appswingby.com/security-glossary/checksum/#:~:text=%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%81%AE%E4%B8%96%E7%95%8C%E3%81%A7%E3%81%AF%E3%80%81%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF,%E5%BA%83%E3%81%8F%E6%8E%A1%E7%94%A8%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

## 気づき
たくさんのウイルスに囲まれて生活してるんだな。
気をつけないと。
また知らないことがたくさんあることを知った。