今回と次回の2回に分けて、ネットギア製スイッチが備えるアクセス制御リスト(ACL : Access Control List)を利用したネットワークセキュリティの実現について取り上げてみよう。セキュリティというとルータやファイアウォール機器を想像することが多いが、スイッチでもセキュリティ対策が可能な製品は存在する。
アクセス制御が必要な場面
一般的に、「ネットワークセキュリティ」というと「インターネットからLAN側への不正侵入」を想定することが多い。そして、その機能を受け持つ主役となるのはルータが備えるファイアウォール機能であったり、専用のファイアウォール機器であったり、プロキシサーバであったりする。
近年では、いわゆる標的型攻撃の事案が増加していることから、外部からの不正侵入だけを考えていればよい、とはいかなくなった。「不正攻撃目的のWebサイトにアクセスしたことに起因するマルウェア感染」「メールの添付ファイルを開いた際のマルウェア感染」といった問題も顕在化している。
こうした事案では、外部からの侵入だけでなく、攻撃対象になったコンピュータから盗み出した情報を攻撃者のところに送信するための、アウトバウンドのトラフィックが発生する。もちろん、マルウェア感染を阻止するのが先決だが、その次の防壁としてアウトバウンドのトラフィックを阻止する必要もある。
また、マルウェアに感染していなくても、ソフトウェアのトラブルや操作ミスなどの事情から、おかしなトラフィックを発生させて、ネットワークの機能に影響を及ぼすクライアントPCが出現する可能性も考えられる。
こうした状況を考慮すると、単にLANとインターネットの間の防壁を堅固にするだけでなく、LAN内部でも何らかのアクセス制御機能を用意できると便利だ。たとえば、リモート操作によって遠隔地にある特定のコンピュータ、あるいは特定の範囲のコンピュータだけをネットワークから切り離すことができると便利である。
こうした仕組みを実現するには、以下のような機能が必要になると考えられる。
・特定のPCから発生するトラフィックを遮断する
・特定のPCに宛てたトラフィックを遮断する
・特定の種類のトラフィックだけを通す
・特定の種類のトラフィックだけを遮断する
ここでいう「特定の」とは、1台だけ、あるいは1種類だけを指す場合と、グループ化した複数台、あるいは複数種類を指す場面の両方を意味している。標的型攻撃のような事案が発生していなくても、特定のコンピュータ、あるいは特定のIPアドレス範囲に属するコンピュータを(ケーブルを引き抜くという物理的手段に拠らずに)遮断できると、何かと役に立つのではないだろうか。
アクセス制御の方法(1) ユーザー認証や端末認証
では、そういったアクセス制御機能を実現するには、どういった手段が考えられるだろうか。
たとえばWebサーバやファイルサーバであれば、ユーザー認証によるアクセス制御を利用する形態は一般的だ。ユーザー名とパスワードの組み合わせだけでなく、指紋などの生体情報、あるいはトークンなどの専用ハードを利用する方法もある。こういった方法ではクライアントPCを限定するのではなく、それを利用する「人」を限定する。
WebサーバでSSL(Secure Socket Layer)を導入すれば、正しいクライアント証明書をインストールしたPC(正確には、そこで動作するWebブラウザ)にのみアクセスを認めるという形で、クライアントPCを限定することも可能である。ただし、証明書を管理・配布するという新たな手間が発生する。
IEEE802.1Xによる端末認証という手もあるが、これも環境整備と維持管理の手間がかかりそうである。
アクセス制御の方法(2) MACアドレスの利用
もっと簡単にPC単位のアクセス制御を行うには、ハードウェアを個体識別する手段が必要になる。そこで考えられる方法としては、LANアダプタのMACアドレスを利用するのが手っ取り早い。LANアダプタのMACアドレスは全世界の全製品について重複がない建前だから、個体識別の手段としては好適である。
また、48ビットあるMACアドレスの上位ビットを調べることで、LANアダプタのベンダまで識別できるし、同じベンダのLANアダプタを使用するPCをグループ化することも、理屈の上では可能である(これについては次回に取り上げる)。
アクセス制御の方法(3) IPアドレスの利用
個々のPCごとに重複しない情報ということなら、IPアドレスもある。ルータやファイアウォール製品がアクセス制御を行う際に多用する方法だ。ネットワークアドレスという形でエリアごとにグループ化できる点も都合が良い。
IPアドレスは、手作業で個別に設定する方法と、DHCP(Dynamic Host Configuration Protocol)によって自動的に割り当てる方法があるが、後者でもMACアドレスと紐付けることで固定的なIPアドレス割り当てが可能なので、実質的に前者と同様の運用が可能になる。PCの個体識別を行うのであれば、この方法がお薦めだ。
ちなみにIPv6の場合、基本的にはMACアドレスを利用してIPv6アドレスを生成するので、それを利用すれば実質的に、固定的なIPv6アドレスを得られることになる。
なお、その気になれば送信元MACアドレスにしても送信元IPアドレスにしても、偽装することは不可能ではない点に留意する必要はある。もっとも、偽装するには、まずどういうアドレスに偽装すればよいかを攻撃者が知る必要があるが。
現実的に見て使いやすいアクセス制御方法は?
このように、PC単位でアクセス制御を行う際の手段をいろいろ列挙してきたが、特に専任の管理者がいない組織や規模の小さい組織であれば、できるだけ管理面の負担は軽減したい。すると、クライアント証明書やIEEE802.1Xは相対的にハードルが高い。また、サーバレベルのアクセス制御には対応できても、ネットワーク機器のレベルでは対応しづらい難点もある。
そうなると、ハードルが低いのはMACアドレスを使用する方法である。ネットワークに接続する以上は必須の情報であり、しかも最初から重複のないアドレスをハードウェアのレベルで振ってあるからだ。個別のPCごとにMACアドレスを把握する手間はかかるが、デジタル証明書の管理・配布を行うよりは楽である。
こういった情報を最初に整備しておけば、ネットギア製スイッチが備えるACLの機能を利用して、MACアドレス、あるいはIPアドレスを利用したアクセス制御を行えるようになる。ネットギア製のスイッチ製品では、前者をMAC ACL、後者をIP ACLと称する。
スイッチでACLを設定する理由と、使用した製品
では、スイッチでACLの設定を行う利点は何だろうか。それは、スイッチはレイヤー2で動作するネットワーク機器であり、上位プロトコルに依存しないアクセス制御が可能になる点である。
IP ACLを利用したアクセス制御では、IPアドレスやポート番号といった情報を利用することになるが、いずれにしても、IPトラフィックに対して、IP関連の情報に基づいた制御をかけることしかできない。また、先に述べたように、IPアドレスと特定のハードウェアを紐付けるには、それなりの前提条件整備が必要になる。
ところがMAC ACLであれば、上位プロトコルがIPでもその他のプロトコルでも関係なく制御でき、イーサネットフレームの送出そのものを直接的にコントロールできる。しかも、MACアドレスはLANアダプタごとに固有のものだから、特定のハードウェアと紐付けるのは容易である。
MACアドレスに拠る方法とIPアドレスに拠る方法は決して排他関係にあるわけではないので、併用したり、場面に応じて使い分けたりできる。レイヤー2のレベルでアクセス制御するにはMACアドレスが、レイヤー3のレベルでアクセス制御するにはIPアドレスが好都合だからだ。
なお、IPアドレスについてはネットワークアドレスという形でグループ化できるが、ネットギア製スイッチのMAC ACLでは、MACアドレスについても(しかるべき条件が整っていれば)グループ化が可能である。
MAC ACLやIP ACLを設定する際の具体的な作業内容については、次回に取り上げることにしよう。