この記事は準備中です
記事をどのようにまとめるかを検討中です
Wireshark
ネットワーク上を流れているパケットをリアルタイムでキャプチャできるツール。HTTPSといった暗号化(SSL化)されている通信に対しては、キャプチャしても内容を読み取ることはできないが、そうでない通信は読み取ることができるので、違法な活動や目的での使用はしないように←(注意)
wiresharkのダウンロード&インストール
※途中、Npcapというもののインストールも行う必要がある。
プロトコル
通信を行うためのルール・企画という意味(会話するにしても、日本語の「主語+動詞」のように、ルール(文法)に則って会話をする必要があるように、通信もある一定のルールがあり、それに基づき、通信が行われる)
ネットワークアーキテクチャ
複数のプロトコルを組み合わせたネットワークの構造のことを、ネットワークアーキテクチャという。(日本語でゆうところの「文章」に近い。これは日本語の文法をたくさん並べて、意味を会わらすようなもの)
データの送信
HTTPヘッダー → TCPヘッダー → IPヘッダー → イーサヘッダー&FCS
これらヘッダー情報がデータの一部として付与され、「0」と「1」の物理的情報として、ケーブルに送り出される。これがデータ転送の仕組みの第一歩となり、これをカプセル化という。
実際にWiresharkで読み取ったデータ情報を見ればわかる
HTTPヘッダー
リクエストの種類やWebページのアドレス情報が含まれる。例えば、HTTPリクエストヘッダのGET/POST/PUTS/DELETEやホスト名などが表示されている。
TCPヘッダー
ポート番号が含まれる(どのサービスのアプリケーションのデータであるかが、送信先でわかる)
IPヘッダー
IPアドレスが含まれる(動作しているPC/スマホなどの機器/サーバー情報がわかる)
イーサヘッダー & FCS
イーサネットを使用している場合にのみ、付与される。MACアドレスが含まれる。
データの送信
イーサヘッダー&FCS → IPヘッダー → TCPヘッダー → HTTPヘッダー
外部からサーバーなどにやってきたヘッダー情報は逆順で分析され、ヘッダー情報は取り外される。
イーサヘッダー & FCS
自分宛てのデータであることを確認した後、イーサヘッダー&FCSを外す
IPヘッダー
自分宛てのIPアドレスであることを確認した後、IPヘッダーを外す
TCPヘッダー
どのサービスポートであるかを確認した後、TCPヘッダーを外す
HTTPヘッダー
Webアプリケーション上などの処理が実行される
各階層におけるデータの呼び方
アプリケーション層:メッセージ(HTTPメッセージ)
トランスポート層:セグメント(TCPセグメント) or データグラム(UDP)
インターネット層:パケット(IPパケット) or データグラム(IPデータグラム)
ネットワークインターフェイス層:フレーム(イーサネットフレーム)
ネットワーク間のデータ転送の仕組み
ネットワーク間はレイヤー2(L2)スイッチ、ルーター、レイヤー3(L3)を用いて、電気信号を送りあってデータを転送先に転送している。
これらの転送機器や情報端末やサーバーといった機器同士の接続線をリンクと呼び、機器とネットワーク間の間をインターフェイス(ポート)という。
bps (bit per second)
1秒缶当たりに転送できるデータ量を表す
1Gbpsは、1秒間に1Gビット分のデータを転送できるということを示す。
ネットワーク間のデータ転送の仕組み
①受信インターフェイスで物理信号を受診して、デジタルデータに復元する
②ヘッダー情報から転送先情報を取得して、転送先を判断する
③出力インターフェイスから物理データを転送する
MACアドレスの確認
自身のPCの情報やMACアドレス
ipconfig
ipconfig /all
接続先のへの疎通確認
ping(パケット)を送信し、送信先の端末やサーバーが生きているかを確認するためのプロンプト。返答がない場合は、通信先の機器が停止している or 通信先までの経路で問題が発生しているものと見て良い。
ping 192.168.1.22
ping -c 10 192.168.1.22・・・10回のみ
NMAP
Nmapはネットワークスキャンやセキュリティ監査に使用されるオープンソースのポートスキャンツール。これを悪用する者もいる(基本、悪用厳禁)
brew install nmap
インストールには5~10分程度時間がかかる。
nmap localhost
nmap -sV localhost ・・・サービスのバージョンもスキャン
nmap -Pn localhost ・・・事前のPing送信を行わないスキャン
これ(localhost)は自身で使用しているPCで、どのようなポートが使用されているかを一覧で表示するコマンドプロンプト。
しかし、ドメイン or グローバルIPアドレスを指定することで、その接続先のホスト(サーバー)がどのようなサービスを使用しているかを確認することができる。(悪用厳禁であり、各種サービスの利用規約等で使用を禁じられている)
悪意あるユーザーは、これを使用し、接続先のサーバーがどのようなポートを開いていて、サービスのバージョン調べたり、調査を行う。そして、過去の脆弱性リストに照らし合わせて、脆弱性のあるサービスを見つけ次第、そこから攻撃を仕掛けてくる。だからこそ、脆弱性が見つかったサービスは直に更新することが求められている。また調べた情報を売り買いすることもあるらしい。
sudo nmap -oN test.txt -traceroute localhost
これはホストに対して、ネットワークのトレースルートを確認できるプロンプト。localhostの部分は、ドメイン名かIPアドレスを指定する必要がある。
これを使用することで、ホストまで、どのようなルーターやサーバーを経由しているかを確認することができる。具体的な使い方の用途としては、ユーザーから「通信が遅い」という問い合わせに対して、これを使用することで、どこの経由場所でボトルネックが生じているかを洗い出すことができる。
悪意あるユーザーは、これを使用し、接続先のホストまでの経路を分析し、攻撃先とする会社等のネットワーク構成を洗い出すらしい。
なお、ターミナル上でプロンプトを入力することが面倒、といった場合もあるので、CUIに対して、GUIも用意されている。
brew install --cask zenmap
open /Applications/Zenmap.app
ファイアーウォール
通信を許可したり、拒否(破棄)したりすることで、不正なアクセスを防止する機能。運用する際は多重防御(複数の場所で検知)することが基本となる。家庭の例だと、PCのファイアーウォール機能とブロードバンドルータのファイアーウォール機能で不正なアクセスをブロックすることができる。
なお、ウィルススキャンといったセキュリティソフトも併用することで、より多重防御を構築することができる。
つまり悪意あるユーザーとしては、基本的にはファイアーウォールを回避して攻撃をしなければならない。したがって、正規な通信と装った/偽装したメールでウィルスを直接送りつけて、相手のPC上で実行させたり、もしくはjavascriptを用いるなどして、PC側から操作(ウィルスを配置しているサーバーへのリクエスト/ウィルスをダウンロード)させることが、攻撃の基本となる。そういった観点から、「不審なメールは開くな/不審なリンクをクリックするな」ということが利用するユーザーに求められている。
またファイアーウォールを意図的にこじ空けることは、セキュリティの観点から、あまりおすすめされていない。設定を一歩でも間違えてしまうと、外部ネットワークからそこに対し、通信が疎通してしまうためである。例えば、『Insecam』と検索すれば、とあるグレーなサイトが見つかります。これは全世界の監視カメラの映像が閲覧できてしまう倫理的に問題のあるサイトです。これは監視カメラの設定の不備(暗号化していない/パスワードを初期設定のまま使っている/ポートの設定不備など)をついており、そこから意図しない人が閲覧できてしまう、ということを注意喚起するためのサイトになっている。なお倫理的に問題のあるサイトであるため、この記事はそのサイトへのアクセスを推奨するものではないことを表明しておきます。
DMZ(非武装地帯)
主に、企業で運用されていることが多く、そこには公開サーバーが配置されている。この公開サーバーが配置されている領域をDMZという。公開サーバー宛の通信は、基本、ファイアーウォールを通過ができてしまうため、基本的に悪意あるユーザーが通信できるものと認識した上で、運用していく必要がある。
公開サーバーの例としては、Webサーバー、メールサーバー、DNSサーバー、リバースプロキシがある。
IDS、IPS
ファイアーウォールを使用して、不正な通信をブロックすることはできても、正規の通信をブロックすることはできない(なぜならブロックしてしまうと、そもそも正規のユーザーが通信できなくなるため困る)。それを悪用して攻撃をしてくるのが、DoS攻撃。WebサーバーへのTCP接続要求を大量に行なったり、大量のパケットを送信することで、本来のサービス(稼働)を妨害する攻撃が行われる。
それを対処することのできる機能が、IDSとIPSとなる。IDSは通過する通信の内容を読み取り(キャプチャし)、シグネチャと比較して、正規の通信の中にある不審な通信を判別できる。判別ができたら、管理者へ通知を行う。しかし、管理者への通知を行っただけでは、タイムラグが生じてしまい、対処しようとしている最中に、攻撃が行われていまう。これを回避するために使用するのが、IPSとなる。これは検知だけでなく、防御も一緒に行う。
VPN
Virtual Private Network:仮想的にプライベートネットワークを構築し、取り扱うことのできる技術。主に、仕事でリモートワークをする際、インターネットVPNを介して、企業内のネットワークへ接続したりする。これを実現するために使用されている技術は、VPNヘッダーのカプセル化とIPヘッダーやHTTPヘッダーといった情報の暗号化が用いられている。
例えば、企業内ネットワークで使用されているポータルサイトなどへアクセスする際は、企業内ネットワークからプライベートIPアドレスを指定して、そこへアクセスを試みる。これは実際には上手くいくが、自宅から(企業外から)企業内にあるポータルサイトへアクセスしようとしても、それはできない。ポータルサイトへのプライベートIPアドレスを指定したところで、家庭内ネットワークには、そのIPアドレスは存在しないし、インターネットを経由しようとしても、ルーターで廃棄されてしまうから。
インターネット(悪意あるユーザーを含む色々な人が使用するネットワーク)を経由させるために、ヘッダー情報にVPNヘッダーを付加し、インターネットVPNを構築することで、自宅から企業内にあるポータルサイトへアクセスすることができるようになる。
クライアント側とサーバー側へVPNゲートウェイを設置することで、インターネットVPNを実現することができる。ウィルスバスターなどのソフトを利用することや、ルーターに組み込まれたVPNゲートウェイを使用することが、基本となる。なお、インターネットの接続を確保するために、VPNゲートウェイにはグローバルIPアドレスを割り当てるか、ポートの解放を設定しておく必要がある。
送信したいデータは本来、IPヘッダーやその他のヘッダーで構成されています。これらヘッダーに対し、VPNゲートウェイで、VPNヘッダーをカプセル化することで、インターネット上にヘッダー情報を送り出します。VPNヘッダーの中には、VPNゲートウェイのIPヘッダー(送信元と送信先)が含まれており、それらの情報をもとに、送信先(この場合、企業ネットワーク側の)VPNゲートウェイへ、通信を行います。
こういった原理を用いて、仮想的にプライベートネットワークを構築することをVPNで行っており、安全なネットワークを構築した状態を、トンネリングという。またインターネットVPNを構築するために使用されるプロトコルとして、IPSecというプロトコル(カプセル化&暗号化&復号化)があり、このプロトコルを用いて構築されたインターネットVPNのことを、IPSec-VPNという。
企業のVPNの脆弱性を悪用されたというニュースをよく聞くのは、VPNが仮想的なプライベートネットワークを実現させているためである。
リモートアクセスVPNとサイトツーサイトVPN
リモートアクセスVPNは、文字通り、ユーザーがリモートでアクセスする際に使用するVPN接続を指す。具体的には、自宅から企業ネットワーク内のサービスを利用する際に使用する。(クライアント端末に、VPNゲートウェイ用のソフトが必要となる)
一方でサイトツーサイトVPNは、企業の拠点間同士をVPNで接続したものを指す。拠点間にあるルーターの設定を変更する必要がある。
VPNを利用するメリット
- 不明瞭なwi-fiに接続しても安心
特に、暗号化されていないwi-fiに接続する場合は、VPNを用いてwi-fiに接続することが求められる。クライアント端末からVPNサービスプロバイダーまでの通信は、VPNゲートウェイによって、VPNヘッダーのカプセル化と暗号化がされるため、万が一、暗号化されていないwi-fiの通信の中身を傍受されたとしても、中身を閲覧される恐れはない。また悪意あるwi-fiがアクセスポイントとして用意されていても、VPNゲートウェイ間の通信は暗号化されているので、傍受されても悪用される恐れはない。 - 海外向けのサービスを使用することができる
アクセス元の国によって、使用できないサービスがあったりする。この場合、海外に配置されているVPNサービスプロバイダーを利用することで、使用できるようになる。これは海外のVPNサービスプロバイダーが、接続元と認識されるからである。 - VPNサービスプロバイダー側でセキュリティの担保
VPNヘッダーによって、カプセル化されていることにより、自身のIPアドレスが接続先サービスへ渡らないため、トラキングされることもなくなります。そのため、Cookieや広告をブロックしたり、マルゥエアなどブロックするWebフィルタリング機能によって、インターネットを使用する際のセキュリティを担保することができる。 - ある程度の匿名性の担保
接続先サービスに対して、自身のIPアドレスを知られることはないため、ある程度の匿名性が担保される。接続先のサービスとしては、VPNサービスプロバイダー側からのアクセスが来たということになる。ただしVPNサービスプロバイダーを経由して匿名性が担保されるだけなので、完全に担保されるわけではなく、VPNサービスプロバイダー上であなたがどのサイトにアクセスしたかは把握できています。そのため、開示請求が行われた場合などを考慮すると、匿名性の担保できないので、注意が必要となる。また、まともなVPNサービスプロバイダーでなかった場合、そのプロバイダーが悪用するということも可能性としてある。だからこそ、信用のできるVPNサービスプロバイダーを使用しましょう。
ただし、もしも、より匿名性を担保したいというのであれば、VPNではなく、Torを検討した方が良いかもしれません。これは海外のランダムなサーバを複数経由して、接続することで匿名性を担保するサービスで、ダークウェブにも接続できてしまう代物。使用したことはないので、詳しくは知りませんが、海外のサーバーをたくさん経由するので、アクセスに時間がかかるとか。