information security
情報セキュリティとはなにか、そのシステムは?そして、理想的な情報セキュリティシステムとは?を考察したものです。また、情報セキュリティに関するコラムもよければご覧ください。
情報セキュリティとは
一般的には情報の正常性を確保すること。RAS(RASIS)の確保。
※RAS(RASIS)・・Reliability(信頼性) Availability(可用性) Serviceability(保守性) Integrity(完全性) Security(機密性)
とはいえ、具体的になにをすればいいのかを考察します。
- 情報セキュリティが必要になった経緯
- 必要なシステム(サービス)
- システム構成
- サイジング
- システム(サービス)の運用
- 理想のシステム(サービス)
情報セキュリティが必要になった経緯
要データをコンピューターで扱うようになり、インターネットも普及し、システム外部と(物理的に)繋げることが可能になった。同時にシステム外部からもアクセスできるようになり、サイバー攻撃を受けるようになった。
サービスやビジネス活動の低下、重要データの流出(機密情報、顧客情報など)を防ぐためには、サイバー攻撃のリスクを回避する必要性が生じた。特に企業では、社会的な信頼性を失うことは直接経営へのダメージとなるため、情報セキュリティは備えるべき最重要項目となっていった。
このことは、DoS(Denial of Service)攻撃が頻発したころからだと思われる。その後、攻撃手法は増え悪質化していき、その度に対策も更新されていった。自分のところは中小企業だし狙われない「対岸の火事」的発想は神話になった。インシデント事例をみても狙いやすい中小企業から侵入している。
国が中小企業対策に力を入れているのは、そういった観点からでもある。大企業は黙っていても保身のために対策するのである。最近は、ランサムウェアという金銭目的とした標的型の攻撃が増えている。どれだけの企業や組織が攻撃を受けて、その対応に時間・費用・労力を掛けなければいけなくなったか、明示するまでもないだろう。
ネットワーク・ログを監視している方々ならわかると思うが、常に攻撃にさらされている。攻撃側も組織化していて、侵入口を探してアクセスしているところ、侵入口を確保するところ、そして、ウィルスを仕掛けるところ、実際に金銭を要求するところ、などである。詐欺グループの組織犯罪と似ていて、胴元へはなかなかたどり着かないようになっている。ニュースでも耳にすると思うが、国主導で活動しているところもありそうだから、恐ろしいかぎりである。
必要なシステム(サービス)
ざっくりとした構成図で申し訳ないが、一般的に構成されているシステムを示したものである。
実際には個々の企業・組織でサービスや構成は異なり、クラウドなども利用されている。情報セキュリティは、各装置やソフトだけでなくネットワーク全体についても必要となる。
主だった機器ごとの説明をします。
FW(FireWall)
ACL(Access Control List)へIPアドレスの可否を設定して制御する機器。NAT(Network Address Translation)機能などの制御機能も搭載されている。
上記装置は一例である。
SW(スイッチ)、LB(ロードバランサ)等
SW(スイッチ)はネットワークを制御する機器。性能や機能によって、コアSW、アクセスSW、エッジSWなどに分かれる。基本的には、そのSW配下にネットワークが作られる。また、VLAN(Virtual LAN)などの技術によって論理ネットワークが構築される。
LB(ロードバランサ)は、ネットワーク上のトラフィックの負荷分散をおこなう機器。SWと組み合わせて使うことでネットワーク上のデータの流れを制御することができる。
FWもSWも見た目はあまり変わらない。イーサネットの挿入口があり、インプットとアウトプットで制御する装置であるからである。
サーバー類
インフラ(infrastructure)は、仮想基盤を使ってサーバー類を構築することが主流である。仮想基盤用のハードウェアに仮想化ソフトウェア(ミドルウェア)を載せて、その上にOS+ソフトウェアを複数作成して運用する形式である。
リソース(CPU、メモリ、HDD、NIC)を必要に応じて構築するサーバーごとに(仮想的に)割り当てるので、ハードウェアとして汎用性があって効率的に構築できる。
デメリットは、ハードウェアに問題が生じると仮想基盤上にある仮想マシンすべてに支障が出るということであり、クラスタ単位※での冗長化も考慮しなければならないことである。※仮想基盤の構成単位をクラスタという。
仮想化ソフトウェアは「VMware」製品などがある。
以下、サーバーの種類ごとに説明する。
メールサーバー
基本的には、送信用(SMTP)サーバー・受信用(POP/IMAP)サーバーの二種類を構築する。
メールサーバーソフトウェアとして、Sendmail(Linux)、Postfix(Linux)、Microsoft Exchange Server(Windows)などがある。
クラウドを利用しやすいサービスである。フィルタリングソフトやセキュリティ機能の導入は必須で、認証やポートの設定も必要不可欠である。それらの設定や導入によって構成が変わってくる。
DNSサーバー
Domain Name System。ネットワーク上では端末やサーバーはIPアドレスで管理されるが、便宜上はホスト名やドメイン名などの情報(URL)を使う。情報(URL)とIPアドレスを紐づけしておくサービスがDNSである。DNSサーバーで、名前をIPへ変換してくれるし逆引きもできる(名前解決)。このサービスによって、情報(URL)を変えずにIPアドレスを変更できるなどのメリットがある。
DNSサーバーソフトウェアとしてBIND(Linux)がある。現在のバージョンはBIND 9でDNSSEC※をサポートしている。
※DNS Security Extensionsは、データ作成元の認証やデータの完全性を確認できるようにした拡張仕様である。
WEBサーバー
情報公開サーバー。組織で利用する場合、内部用のサービスと外部用のサービスで分ける場合が多い。
WEBサーバーソフトウェアとして、Apache(アパッチ)、Nginx(エンジンエックス)がある。また、WindowsサーバーではIIS(Internet Information Service)がある。
クラウド上に設置する場合も多い。CMS(Contents Management System)を利用してサイトを作成し管理する。HTML、PHP、Javaなどのプログラム言語も利用できる。
DHCPサーバー
Dynamic Host Configuration Protocol。ネットワークに接続されたデバイスに自動的にIPアドレスを割り振るサービス。明示的にIPアドレスを設定する場合もあるが、ある範囲(セグメント、VLAN)内で割り振ることによって効率的にIPアドレスを利用できる。
DHCPサーバーソフトウェアとして、ISC DHCP(Linux)がある。
プロキシ(Proxy)サーバー
代理サーバー。プロキシ方式では、インターネットへアクセスするのにプロキシ経由でアクセスする。キャッシュされているWEBサイトであればその情報を返す。また、リバースプロキシ方式では、クライアントから直接WEBサイトへアクセスする。インターネットへの接続が日常になっている現在では、負荷分散や高速化する必要があるのでリバースプロキシ方式を利用している場合が多い。
プロキシサーバーソフトウェアとして、Squid(Linux)などがある。 セキュリティ対策として、URLフィルタリングソフトと連携して利用する。
NTPサーバー、DBサーバー
NTP( Network Time Protocol)は、時刻同期するサービス。端末(クライアント)、サーバーの時刻同期を取る。
DB(DataBase)。Oracle、postgre(ポスグレ)、MariaDBなどがある。
サービスの分だけサーバーがある。AP(アプリケーション)サーバー等。
以下、認証システムについて説明する。
認証システム
情報セキュリティの実現においては必要な仕組みである。ユーザー(クライアント)にどのようなアクセス権を与えるのかなど、なりすまされない仕組みや利便性を考慮して構築しなければならない。
実際には個々のサービス(サーバー)で認証方式が異なるため、それぞれに応じた認証ができるように組み込まなければならない。だが、それぞれに応じた認証でユーザー(クライアント)へ負荷を掛けるのは非効率的なので、SSO(Single Sign On)を導入するのが一般的である。
RADUISサーバー
アカウントとパスワードなどの認証情報を照合するサーバー(サービス)。
RADUISサーバーソフトウェアとしては、FreeRADUIS(Linux)がある。
LDAPサーバー
Lightweight Directory Access Protocol。ディレクトリ単位でアクセス管理するサービスを提供するもの。DAPから改良されて処理負荷を軽くしたもの。
LDAPサーバーソフトウェアとしては、OpenLDAP(Linux)がある。
その他の認証系サーバー
他にも、Samba(Linux)、Active Directory(Windows)、OpenAM(Linux)などのアクセス管理や認証サーバーがある。実際にはこれらのサーバーをSAML(Security Assertion Markup Language)などを使ってアカウントの同期を取ってSSOを実現する。
データの流れ
基本的には、利用するプロトコルのやり取りの分、データが存在する。主要なデータの流れを示す。
メールデータの流れ
SMTP(Simple Mail Transfer Protocol)で送信、POP(Post Office Protocol)あるいはIMAP(Internet Message Access Protocol)で受信する。送受信ではDNSで相手先を確認し、フィルタ機能によって排除し、必要があれば隔離・解析をおこなう。メールにおいて気を付けるべきは、添付ファイルとスパムである。添付ファイルはウィルスチェックによって確認するが、Emotet※のようにマクロで仕掛けられた攻撃は排除が難しい。スパムは受信ではもちろん、ウィルスが入り込まれた後にそのクライアントが踏み台にされメール攻撃するのも防がなければならない。
※あたかも正規メールのように装い、ウィルスを侵入させ、バックドアを作る等のメール攻撃。
攻撃手口等参照URL:
メールにおいては、ユーザー(クライアント)での注意喚起が重要である。システム側で防ごうとしても、フィッシングやEmotetは防ぎきれない。
インターネットアクセス
基本的にHTTP(Hypertext Transfer Protocol)でアクセスする。最近はセキュリティのためHTTPS(Hypertext Transfer Protocol Secure)へ改版されている場合が多い。それによって、暗号化やサーバー証明書を用いて安全性を確保できるようにする。
外部へのアクセスでは、FTP(File Transfer Protocol)を利用することもあるが、通常は上記の二種類のプロトコルを利用することが多い。それらの下位層には必ずIP(Internet Protocol)があり、ほとんどの場合このIPをもとに相手先を判断する。そのためサイバー攻撃は、このIPを偽装あるいはなりすまして実行される。
出入口(GateWay)でのIPの確認はFWにより許可・拒否を実施する。前述したように偽装やなりすましもあるので内部へ侵入した場合でもIDS(Intrusion Detection System)やIPS(Intrusion Prevention System)を用いてシグニチャ(ウィルスなどの特徴パターン)やふるまいなどで排除するような設計にしなければならない。
しかし、インターネットについても、ユーザー(クライアント)での注意喚起が重要である。不用意にアクセスした結果、情報が搾取されウィルスの侵入につながるのである。企業や組織によっては、システム上の設定によってアクセス可能な場所を絞っている。情報セキュリティ上は正解なのかもしれないが、個人的にはいかがなものかと思う。働いているのが人間であることを忘れている。極端な統制はストレスを生んで、いい結果をもたらすことはない。統制していないからインシデントが発生しているという表面的な知見は新たなインシデントを誘発するだけである。
システム構築(アーキテクチャ)
サーバーを並べてクライアントへサービスを提供できるようにすればいいものではない。システムには運用・保守が必要である。定期的な保守やインシデント発生時でも可用性(Availability)を維持するようにしておかなければならない。
具体的なアーキテクチャをあげておく。
冗長化
稼働している本番機と同様の機器を予備機として設置して構成。基本的には、稼働に影響があるサーバーは冗長化するのが望ましい。
デュアルシステム・・装置構成の二重化。基幹システムなど障害発生時でも稼働を維持する構成。
デュプレックスシステム・・稼働系と待機系。障害発生時には切り替えて稼働を維持する。
フォールトトレランス
耐障害性の仕組みや設計思想のことである。
フェイルソフト・・障害時、機能を低下させて稼働継続させる。(継続重視)
フェイルセーフ・・障害時、安全な方向へ移行させる。(安全重視)
フールプルーフ・・あらかじめ、障害が発生しないような仕組み。(予防措置)
※冗長化のように機器を切り替えて稼働継続させるのは、フェイルオーバーという。
クラスタ・システム
仮想基盤を使用してサーバーを構築する場合、クラスタ単位で冗長化する仕組みが必要となる。一例として、VMware HA(High Availability)では、「物理サーバーに障害が発生した場合、影響を受けた仮想マシンは、キャパシティに余裕のある別の物理サーバー上で自動的に再起動。OSに障害が発生した場合、仮想マシンを同じ物理サーバー上で再起動」機能で冗長化を実現する。
その他、システム構築に留意する事項
サイジング
実際にシステム構築するときは、機能要件を満たした各サービスの利用者数や稼働率を求めて機器の選択および構成をおこなう必要がある。算出し結果をもとに適切な機器構成を図ることをサイジングという。
システムは3~5年程度で更改されることが多い。既存システムの再改築となる場合も多い。サイジングをおこなう際には、更改することを見越した内容にしなければならない。つまり、利用者数の増減によるシステムの変更や新規サービスの導入あるいは変更を念頭にサイジングしなければならない。
机上ではパフォーマンスがアップするはずの構成が、実際に組み込むと逆に低下することがある。可能であれば、テスト環境で事前検証して実測値を把握しておく必要がある。
稼働率
可用性の指標として稼働率がある。
MTBF(Mean Time Between Failures)平均故障期間とMTTR(Mean Time To Repair)平均修理期間を用いると稼働率はMTBF(稼働期間)をMTBF+MTTR(全期間)で割った割合。すべて冗長化すれば修理期間は無いのだから稼働率100%となるはずですが、実際には確認作業や設定調整などで稼働できない期間は発生する。
システム(サービス)の運用
機能要件を満たしたシステムでも適切な運用をしなければ何にもならない。監視管理や適切な保守、定期的なメンテナンスは必須で、インシデント発生時の対応はBCP(Business Continuity Planning)に関わるので十分な配慮が必要である。
監視管理
監視には、死活(ハートビート)監視、アラート監視がある。独立した監視サーバーでおこなうのが一般的である。
・死活監視・・稼働しているサーバーへ信号を送り動作していることを確認する。
・アラート監視・・各種サーバー、NW機器からのアラート情報を収集して、管理者へ情報送信する。
ログ
インシデント発生時の解析をおこなうために必要不可欠な収集情報である。適切なログの取得管理をしていないと原因究明に時間が掛かって、事業継続に支障をきたすことにもなりかねない。もちろん日常の稼働状況を確認するのにも必要である。ただし、過剰なログ取得や保存はシステム稼働の負荷にもなるので適切な設定・運用が必要となる。
情報セキュリティ
ここまででネットワーク・システムの構成要素および関連事項を説明した。それぞれの項目で説明した内容もあるが、以降は、情報セキュリティに特化した内容を説明する。
情報セキュリティ基本方針
情報セキュリティポリシーが、国の指針として挙げられている。そこには「基本方針」、「対策基準」、「実施手順」があり、「基本方針」をもとに「対策基準」、「実施手順」を決めていく。現状のビジネス形態を考えれば企業としては念頭に置かなければならないことであり、決めておかなければならない方針・対策・基準である。
基本的に企業・組織の信頼や経営に直接関わることなので、トップダウンで決めた方がよいとされる。大事なのは、その方針がビジネス形態に即したものであるかで、全社・全組織へ浸透・網羅されることである。
情報セキュリティについて、どのような姿勢で臨んでいるのか、どのような体制をもって、どういった対策を施しているのかを明示しておくことは企業・組織の信頼性を誇示することでもある。取り扱う顧客情報(個人情報保護法)やネット上のやり取り(サイバーセキュリティ基本法、著作権法、不正アクセス禁止法など)の安全を確保できる内容も考慮しておかなければならない。
教育
もっとも大切なのは教育である。知らない間に違反したあるいは知っていても自己許容から違反してしまうケースが多い。いかに優秀なセキュリティソフトやツール、対策を施しても利用する人の倫理観次第ということになってしまう。
いまは生まれた時からネットワーク社会にさらされているのだから、情操教育でネットワーク社会でのコンプライアンスを教えるべきであるし、小学校から具体的な事例に基づいて学ぶべきだと思う。ネットワーク上の倫理観を徹底しなければ、健全なネットワーク社会は実現できない。
情報の収集
常に(セキュリティ)情報を収集しておく必要がある。その中から自システムに関係ある事項を整理し対応しなければならない。
もっとも必要なのは、『脆弱性情報』である。
脆弱性とは、ソフトウェア、機器、サービスでサイバー攻撃を受ける可能性がある情報である。単純にバグや不具合というものではない。存在が確認された時点で関係機関が対応してパッチや対策あるいは回避策を提示する。
米国ではCISA、日本ではJPCERT/CCが中心的に発信している。CISA(Cybersecurity and Infrastructure Security Agency)のサイバーセキュリティ・アラート&アドバイザリ、JPCERT/CC(Japan Computer Emergency Response Team Coordination Center)の緊急情報の注意喚起は要確認である。
米国(CISA)のサイバーセキュリティ・アラート&アドバイザリ:
JPCERT/CC:
サイバー攻撃
サイバー攻撃としてひとつに括られるが、様々な攻撃形態と種類がある。
昨今は標的型で金銭目的の攻撃が多い。いわゆるランサムウェアである。パソコン内のデータを人質に金銭などを要求するのでそう呼称される。脆弱性を突いてマルウェアを侵入させることが常道である。
他にもDoS(Denial of Service attack)攻撃やフィッシング攻撃は依然としてはびこっている。
攻撃も巧妙化している。詐欺関係のニュースでは、指令役と実行役などと階層化されているように、サーバー攻撃も同様に階層化されているようだ。おおよそ以下のように構成されていると考えられる。
・常に侵入先を探索・・URL情報をもとにアクセスして侵入を試みて、リストアップする。
・アタック先を選別・・さらにターゲットを絞る。
・アタックを実行・・脆弱性などの侵入口からウィルスを侵入させる。
・金銭要求・・金銭目的である場合、解除条件で仮想通貨などで金銭要求する。
もっと分業されているかもしれないし、ビジネス化されていることも指摘されている。URLなどから公的機関や企業が狙われやすい。最初はブルートフォースアタック※などの単純攻撃で様子をみて、一度リストアップされると攻撃は繰り返される。
※考えられるパターンの総当たり攻撃。例えば、パスワードを何度入力してもロックが掛からなければリストアップされる等。
対応・対策
基本的なことだが、常に情報収集し脆弱性は素早く対応・対策する。前述したが、教育によるひとりひとりの認識を高めることが大事で、メール攻撃はひとりが感染すれば蔓延してしまう。だからといって、ガチガチに利用制限するのも適切な対策とは思えない。働く人のケアがもっとも大事で、余裕の持てる職場作りが必要である。ストレスが掛かる状況、不満のある環境で不具合や不祥事が発生しやすい。誰もがその働く環境を失いたくないとする気持ちが、もっとも大切な情報セキュリティ対策である。
細かい攻撃ごとの対応・対策も必要だが、上記の内容が非常に大切である。結局、なりすまされてしまえば侵入されてしまうので、常日頃の確認・対応が重要となる。
実際の状況
インシデント事例をみると、要因は異なるが情報セキュリティ対応・対策の不備で多くに被害へつながっている。
・人手不足で情報セキュリティ対策が疎かになり、脆弱性は放置され、定期的なアップデートもできていなかった。
→情報セキュリティを軽視していたわけではないだろうが、認識されていながら黙認されていた。
・自社では情報セキュリティ対策は万全だったが、関連会社にてウィルス感染しサーバー間で蔓延してしまった。
→関連会社へのケアまでされていなかったようだ。ネットワークで接続されている機器は関連会社でも自社システムとして考慮が必要だった。
・ウィルス感染に気付くまで時間が掛かり、原因特定できる情報が失われてしまい、復旧までに時間が掛かってしまった。
→インシデント発生および対応策が十分なされていなかった。エスカレーションや周知が機能していなかったか、全社的な取り組みがなされていなかった。
上記事例は具体的な事例からポイントを抜粋している。対策費用と失った信頼は計り知れない。トップダウンで全社的に取り組む必要があるというのは、インシデント発生時の被害が経営に及ぶためである。大企業はそれなりの対策が施されているようだが、中小企業は費用も掛かるためまだまだ不十分である。
例えば、体制を整え、少なくとも脆弱性対応を実施し、教育を施すぐらいは、それほど費用を掛けずにおこなえる。繰り返しになるが、そこで働く人々の意識が大事ということである。
参考サイト
サイバーセキュリティ経営ガイドラインと支援ツール
情報セキュリティ対策支援サイト
CSIRT(Computer Security Incident Response Team)
最後に、CSIRTについても触れておこう。情報セキュリティ上のインシデントが発生した場合に対応するチームである。大企業などでは専門チームがいる場合もあるが、一般的にはシステムを運用管理する部署で対応する。また、各部署で担当者を決めて、インシデント発生時にチームとなって対応する。形式より迅速で正確な対応ができる体制が構築されていればいい。
理想の情報セキュリティ・システムとは
現状もちゃんとできていないのに理想もないのだが、ここはそれを超越して考えてみる。
RASISが高いことになるが、具体的には、「故障なく稼働率100%を維持、稼働を継続しながら保守ができ、サイバー攻撃を受けても完全防御、業務データは100%確保」となる。限りなく難しいが不可能ではない。稼働では完全な冗長化をおこない、バックアップセンターで業務データを保持しておけば、サイバー攻撃以外はどうにかなりそうである。逆にサイバー攻撃がなければRASISなどの概念も生まれなかったかもしれない。
いまのAIがもっと進化※し情報セキュリティの分野で威力を発揮できるのなら、攻撃を事前に察知しその攻撃に見合った対策を瞬時に講じ、防御だけでなく攻撃者を特定できるなら理想に近づくかもしれない。もっともAIに重要なシステムを牛耳られて映画のような結末になる懸念をされる人もいるかもしれない。無いとは言い切れないが、マシンがマシンを維持できるようなことができれば、それはそれで理想的だろう。
※現状でもchatGPT等の学習は進歩していると思う。しかし、人工知能としてはまだまだ駆け出しであろう。量子コンピューターのようなテクノロジーの発展で理想的なものが見えるかもしれない⁉