OSI(Open Systems Interconnection/開放型システム間相互接続)
各ベンダの独自ネットワークプロトコルを相互接続するために開発されたプロトコル。
各レイヤの説明は省略する。
プロセスアプリケーション層⇔アプリケーション(HTTP、FTP、SMTP、etc...)
Host to Host層⇔トランスポート(TCP、UDP)
インターネット層⇔インターネット(ICMP、IP、ARP)
ネットワークアクセス層⇔ネットワークインターフェース(ドライバ、PPP、NIC)
PDU(Protocol Data Unit)とはNWモデルの各層でやりとりされる「制御情報」と「データ」の組み合わせのこと。
データリンクではフレーム、ネットワークではパケット、トランスポートではセグメントという。
DoDにおいては、ネットワークアクセス層ではフレーム、インターネット層ではデータグラム、Host to Host層ではTCPならばセグメント、UDPではパケットという。
またプロセスアプリケーション層ではTCP上位ではストリーム、UDP上位ではメッセージという。
通信を行うとき、送信側はアプリケーションが作ったデータに各層で制御情報(ヘッダ)を付加しカプセル化して送信する。
最終的に電気信号となって受信側へ送信される。受信側では電気信号を解析し数値データへと変換していく。
10BASE-5は同軸ケーブルを利用したEthernet。バンパイヤタップによって10BASE-5とトランシーバーを接続する。
トランシーバからはAUIケーブルと呼ばれるケーブルによってパソコンに接続される。
この構造だと不正にトランシーバとバンパイヤタップを使うことによりデータを盗聴できる場合がある。
対策としては目視でネットワークケーブルを監視したり、TDR(Time Domain Reflectometer)を使って検査する方法が挙げられる。
10BASE-2は10BASE-5よりも細い同軸ケーブル。Tコネクタによって接続される。Tコネクタを使って接続する場合は一旦遮断する必要があるので、不正な機器の取り付けは察知できる。
現在はツイストペアケーブルによる接続が多い。家で使ってるLANケーブルとか。RJ45コネクタによってPCのインタフェースと接続。反対側はハブやスイッチなどの集線装置につながれる。
スイッチはMACアドレスを学習し、トラフィックをポート毎に分配する。よって無関係なトラフィックを減らし、盗聴製の危険性を少しでも減らす。
スイッチのFDB(MACアドレスのデータベース的なもの)のリソースを枯渇させることによって、スイッチはトラフィックを全ポートに送信させる。
これを盗聴する攻撃をMACフラッディング攻撃という。
ネットワークの最小単位はスイッチで構成されるVLAN。ルータはネットワークとネットワークをつなぐ機器。
スイッチ内のOSを使用することによってグループを設定し仮想的なネットワークを構成する技術をVLANという。
NAT(Network Address Translation)とはプライベートアドレスをグローバルアドレスに1対1に変換するプロトコル。
NAPT(Network Address and Port Translation)はプライベートアドレスとグローバルアドレスをn対1に変換する。
LinuxではIPマスカレード、CiscoルータではPAT機能と呼ぶ。
非武装地帯。プロキシサーバやDNSサーバ、Webサーバ、SMTPサーバなどが置かれる。
内部と外部の仲介役のような役割を果たす。ファイアウォール的な役割を果たす。
音声ネットワークとコンピュータネットワークを統合したネットワーク。要するにコンピュータネットワークを使って音声通信を実現したネットワーク。
検疫ネットワーク。ネットワーク内のセキュリティ上問題のあるコンピュータを自動的に排除するシステム。
ユーザの識別だけでばくセキュリティポリシーの遵守状況(セキュリティパッチの適用状況やウイルス対策ソフトの稼働状況)なども監視して制御することが出来る。
Bluetoothを経由して匿名のテキストメッセージをモバイルユーザに送りつける攻撃をブルージャッキング攻撃という。
またBluetoothを経由して接続先のモバイル機器に保存されている情報へのアクセスを可能にする攻撃をブルースナーフィングという。
ネットワークの管理者の許可なしに不正に設置されたアクセスポイント。
このアクセスポイントに接続することによって不正サイトに接続されることもある。
SSIDブロードキャストとはアクセスポイントから定期的に発信されるSSID情報のこと。
ユーザにとってSSIDを覚えたりする必要がないなどのメリットがあるが、攻撃者にとってはワイヤレスネットワークにアクセスしやすくなるため、セキュリティ上はあまりよろしくない。
対策としてはアクセスポイント側でANY接続を拒否したり、SSIDブロードキャストを禁止(ステルス機能)したり。
アクセスポイントを探索するプローブパケットを送信しながら不正なアクセスポイントを探しながらドライブすること。
宛先IPアドレスを使いMACアドレスを調べるプロトコル。
送信側のソフトはARP要求をネットワーク内にブロードキャストする。該当するIPアドレスのホストがARP応答をユニキャストで返す。
ARP要求はブロードキャストの通信のため、一般的にルータやL3スイッチ、VLANを超えて通信されることはない。
ARP応答は一定期間ARPキャッシュに保存される。このキャッシュが改ざんされることによって実際のIPアドレスのホストとは異なるホストに誘導されることがある。
このような怪しげな動作が発生した場合はARPコマンドによってキャッシュを確認する。
IPはコネクションレス型のプロトコルでパケット単位にIPヘッダを付加してデータを通信する。
攻撃の例として宛先IPアドレスを攻撃先のホストに、送信元は攻撃者とは無関係のIPアドレスに設定することで攻撃の送信もとを偽装。
送信元IPアドレスを攻撃先のホストに設定し、要求をブロードキャストさせることで、攻撃先に応答を集中させるDoS攻撃などがある。
IPデータグラム(パケット)の最大長は65,535バイト(約64KB)である。しかしネットワークアクセス層では1フレームはEthernetフレームのMTUは1500バイトである。
よってMTUを超えるパケットは分割されて送信される。これをフラグメント化という。
フラグメント化されたパケットは一つ一つにIPヘッダが付き、Identificationフィールドに同じ値がセットされる。
FlagsとFragmentOffsetフィールドでは分割されたパケットに残りがあるかどうかを判定するのに使用される。
受信側はこのフィールドの値を参考にパケットを再構成する。
攻撃者はこれを悪用し64KBを超えるIPパケットを分割し、Flagsフィールドを改ざんすることによって受信側をオーバーフローを起こさせるといった攻撃を行う。
コネクションレスを悪用してデータグラムを盗聴し、書き換えることによって攻撃先のホストに侵入を試みることもある。
またIPは暗号化されていないので、ヘッダだけでなくデータ部分も盗聴される可能性がある。
セキュリティ対策として、SSL/TLSなどの上位プロトコルの利用、IPsecの利用、IPv6への移行があげられる。
ネットワーク間の正常、異常を通知するためのプロトコル。ICMPはIPパケットを使って通信されるため、IPヘッダの後ろにICMPヘッダとデータが入る。
pingはICMPを使って構成されている。またデータグラムの配送中にエラーが発生したことを始点ホストへ通知するときや、非効率なルーティングを行っているときにルーティングテーブルを更新するときに使用される。
ICMPのtypeフィールドの値によって状態を判断できる
0:Echo要求への応答 3:宛先到達不能 4:発信の抑制指示 5:ルート変更 8:Echo要求 11:時間超過 12:パラメータの問題、ヘッダのエラー
さらにコードフィールドによって状態の詳細を知ることができる。
ICMPエラーを解析することによって相手先のOSの種類を特定することができる。
Host to Host層では、ホスト内のサービスを指定するためにポート番号をつかう。
ポートはTCP、UDPそれぞれ0~65535番まで使用することができる。
0~1023まではwell-knownポートであり、一般的なサービス用に割り当てられている
1024~49151はサービスに割り当てられるポートもあるが、空いているポートは通信時にクライアント側のポートとして一時的に使用可能。
IPアドレス+トランスポート層のプロトコルの種類+ポート番号の組み合わせをソケットと呼ぶ。
コネクション指向:データ通信の前に通信路を確保し、切断時には通信路を開放する手順を必要とする通信方法。TCP コネクションレス:通信前にコネクションを確立しない。UDP、IP。 ステートフル:ソケット接続を一連の処理が終わるまで切断せず、状態を維持すること。 ステートレス:ソケット接続を処理単位で切断すること。
・コネクション指向のプロトコルで電話同様、全二重のコネクションを使用する。 ・アプリケーションをTCPポートの番号で識別。 ・シーケンス番号により順番と受信エラーを管理する。 ・長いデータを連続したストリームとして扱う。 ・ハンドシェイクプロトコル
フラグフィールド内のフラグ
FIN:コネクションの終了要求 SYN:コネクションの確立要求 RST:相手方へTCPコネクションの切断要求 PSH: ACK:パケットを正しく受け取ったとき
コネクションの確立は3WAYハンドシェイクで確立する。
1.ホストAからSYNフラグと乱数で生成したシーケンス番号をSequence Numberに設定して送信する。 2.ホストBはACKとAのシーケンス番号の初期値+1をAcknowledgment Numberに設定する。B側ではSYNフラグとBが生成したシーケンス番号をSequence Numberに設定して送信する 3.AはBから送られてきたAのシーケンス番号+1をSequence Numberに、Bのシーケンス番号+1をAcknowledgment設定し送信する。
TCPのコネクションの切断は4WAYハンドシェイク
1
ホスト名からIPアドレスを得る、名前解決サービスを提供するサーバ。
初期のネットワークではホスト数が少なかったためhostsファイルで名前解決を行うことができた。
hostsファイルでは以下のように記述することで名前解決することができる。 [IPアドレス] [正式なホスト名] [エイリアス名] ex) 192.168.1.10 dynm7.mizuki.org dy1 192.168.1.11 nana7.mizuki.org na1
DNS名はドメインツリーと呼ばれる階層構造で名前を表現している
ex) www.company.co.jp www = ホスト名 company.co.jp = ドメイン名
DNSサーバは自身が管理するドメイン内情報と、サブドメインのDNSサーバのIPアドレスを管理している。
DNSを使って、ドメインからIPアドレスを得ることを正引きという。
ex)www.nanamizuki.sigma.co.jpを正引きでIPアドレスを調べるとき 「ルートネームサーバ」→「jpドメインのDNSサーバ」→「co.jpドメインのDNSサーバ」→「sigma.co.jpドメインのDNSサーバ」→「nanamizuki.sigma.co.jpドメインのDNSサーバ」