今日はTryHackMeの「What is Networking?」を進めた。ネットワークの超基礎から、IPアドレス、MACアドレス、Pingまで一通り学んだ。
まず、Networkとは「複数の機器がつながって通信できる状態・集まり」のこと。PCやスマホ、サーバーなどが接続されれば、それだけでネットワークになる。Internetはそのネットワーク同士をさらに大量につないだもので、「Network of Networks」と考えると分かりやすい。
ネットワークにはPrivate NetworkとPublic Networkがある。Private Networkは家庭や会社など内部で使うネットワーク、Public Networkは外部やInternet側につながるネットワーク。家の中のPCやスマホはそれぞれPrivate IPを持つが、Internet側からは同じPublic IPとして見えることがある。この仕組みは後でNATにつながる。
端末を識別する方法として、IPアドレスとMACアドレスを学んだ。IPアドレスはネットワーク上の住所のようなもの。IPv4では「192.168.1.1」のように4つの区切りで構成され、各部分をOctetと呼ぶ。各Octetは0〜255。IPv4は32bitで約43億個のアドレスを扱えるが、数が不足してきたため、128bitで圧倒的に多くのアドレスを扱えるIPv6が登場した。
MACアドレスはネットワークインターフェースに付けられる識別番号で、例は「a4:c3:f0:85:ac:2d」のような形式。MACはMedia Access Controlの略。IPアドレスがネットワーク上の住所なら、MACアドレスは端末側の識別番号というイメージ。ただしMACアドレスは偽装でき、これをMAC Spoofingという。今回のラボでは、支払い済み端末のMACアドレスになりすますことで、通信制限を回避できる例を確認した。MACアドレスだけを信用して認証するのは危険だと分かった。
最後にPingを学んだ。Pingは相手との通信が届くか、どれくらい時間がかかるかを確認する基本的なネットワークコマンド。PingはICMP(Internet Control Message Protocol)を使い、Echo Requestを送り、相手からEcho Replyが返ってくるか確認する。基本構文は「ping IPアドレス」。例えば「ping 10.10.10.10」と入力すると、そのIPアドレスに対して通信確認を行う。結果では応答時間、送信数、受信数、packet lossなどを確認できる。Pingに応答がない場合でも、相手が存在しないとは限らず、FirewallなどでICMPが拒否されている可能性もある。
今回の学習で、Network、Internet、Private/Public Network、IPアドレス、IPv4、IPv6、Octet、MACアドレス、MAC Spoofing、Ping、ICMP、Pingの基本構文まで理解した。ペンテストでは「どの端末がどのネットワークにいて、どのIPやMACを持ち、通信できるか」を調べることになるので、その最初の土台になる内容だった。