ITセキュリティの基本、サーバー1台に対するセキュリティから考える

セキュリティアプリケーションのカバー範囲とOSI参照モデル・TCP/IP4階層モデル
ITセキュリティ対策の基本は、サーバー1台が自分で処理しているたくさんの仕事を、コンピュータの基本構成と言われるOSI参照モデルもしくはTCP/IPモデルの単位(レイヤーとか層とか言います)まで分解して、レイヤーの1つ1つに対してどの様なセキュリティ対策が必要なのか?という対策を練る事から始まり、データが通る道筋すべての暗号化など、多岐にわたります。PCI DSSで定められている定期的な問診票自己調査、侵入テスト、訪問調査など、セキュリティアプリケーション導入以外にも沢山ありますが、この記事では基本的なセキュリティアプリケーション導入の考え方に的を絞ります。

わかりにくい!という方は、サーバー1台を1つの会社とみなして、東門の扉、総務部、輸送部、営業部、倉庫管理部などがあり、各部署の異なる仕事が組み合わさって1つの会社(サーバー)が運営されている!部署(レイヤー)によってセキュリティ対策の施し方が違う!という考えで読み進めてもらえればと思います。WEBアプリサーバーでも、データベースサーバーでも、スマホアプリのサーバーでも、Linuxサーバーでも、Windowsサーバーでも、サーバーセキュリティの基本的な考え方は同じです。

WAFの立ち位置を明確にするため、WEBアプリケーションをOSI参照モデルの上に配置しました。

セキュリティアプリケーションのカバー範囲とOSI参照モデル・TCP/IPの4階層モデル

セキュリティアプリケーション
OSI
参照モデル
TCP/IP
4階層モデル
通信
プロトコル
FW
ファイヤー
ウォール
IDS・IPS
侵入検知
侵入防御
WAF
ウェブ
アプリケーション
ファイヤーウォール
WEBアプリケーション
Wordpress、EC-CUBE、Mautic、その他
php/RubyのCMS/フレームワーク全般など
HTTP
HTTPS

SQLインジェクション
XSS
改ざん、その他
第7層
レイヤー7
アプリ
ケーション層
第4層 アプリ
ケーション層
HTTP・SMTP
POP3・FTP
DNS・TLS
SSHなど

ミドルウェア
やOSへの攻撃
その他TCP/IP
ボディチェック
第6層
レイヤー6
プレゼン
テーション層
第5層
レイヤー5
セッション層
第4層
レイヤー4
トランス
ポート層
第3層 トランス
ポート層
TCP・UDPなど
ポート
スキャン
その他TCP/IP
ヘッダチェック
第3層
レイヤー3
ネット
ワーク層
第2層 インター
ネット層
IP・IPX・ARP
ICMPなど
第2層
レイヤー2
デバイス層 第1層 ネットワーク
インター
フェイス層
PPP・Ethernet
光ケーブルなど
第1層
レイヤー1
物理層

セキュリティアプリケーション、基本的に何が必要?

  • FW(FireWall)
  • IDS/IPS(Intrusion Detection System/Intrusion Prevention System:侵入検知/侵入防御)
  • WAF(Web Application Firewall)

が基本的に必要です。

IDS/IPSやWAFは動的診断(解析)の部類です。サーバー1台の中のあらゆるソースコードを直接スキャンして開発段階から脆弱性を抑える様な手法を静的診断(解析)と言います。

静的診断については、グローバルなセキュリティベンダー各社がひしめき合っており、静的だけでなく、AI解析も入れ、動的も含めたトータルセキュリティソリューションとして提供している企業も多いです。

セキュリティアプリケーションは何をしている?

FW(Firewall:ファイヤーウォール)

ファイヤーウォールは、Linuxサーバーの中で司令塔(社長や事業部長)としてあらゆる部署を管理しているカーネルという社長室の様な機能中枢の中にあり、iptablesだとかfirewalldなどと呼ばれています。ファイヤーウォールは、カーネルの中で社内各部署間(サーバー内)の連絡通路や社外(サーバー外)との連絡通路で常に検問をしています。猫専用連絡通路である東門の扉に人間が訪ねてきたら通過させない!など、通信プロトコルと呼ばれる通信規格や扉につけられている管理番号(ポート番号)や通行する生物の身元住所(IPアドレス)で通過者(通信データ)を絞り込みます。

IDS/IPS(Intrusion Detection System/Intrusion Prevention System:侵入検知/侵入防御)

社内(サーバー内)の営業部(Apache)とか、輸送部(メール)とか、倉庫管理部(データーベース)とか、社屋の建屋の基礎(OS)とか、社内の各部署の中に指名手配犯(怪しい通信データ)が入り込んでいないか?シグネチャと呼ばれるセキュリティ脆弱性のブラックリストを元にして見張り、見つけた際にメール通知などを行ってくれるのがIDS(侵入検知)、防御してくれるのがIPS(侵入防御)です。指名手配情報であるセキュリティ脆弱性情報は、JVNNVDなどの様な脆弱性情報の収集団体が世界中に存在し、CVEと言われるセキュリティ脆弱性の世界共通の識別番号を付けて、重複しない様に管理されています。ですが、毎日、新たな脆弱性が数多く世界中で生まれ続けているため、どこのベンダーのシグネチャも「パーフェクト防御リストだぜ!」とは言い切れず、脆弱性情報の収集元や収集方法も異なり千差万別です。未知のセキュリティ脆弱性の被害者、世界第1号は人柱であり、人柱は大切なシグネチャの情報源です。そのため、シグネチャ登録されていなくても、過去の経験やノウハウから、『怪しい通信』を駆除するアノマリ(振る舞い)検知と言われる機能などもほとんどのベンダーで導入されています。動的診断の部類です。

WAF(Web Application Firewall)

WordPressやEC-CUBEやMauticなどのCMS、CakephpやSymfonyやLaravelなどのphp系フレームワーク、Ruby on RailsなどのRubyフレームワーク、の様にまさにWEBアプリケーションに対するファイヤーウォールです。ちょっと難しくなりますが、お問合せフォームやログイン画面の入力窓に対するSQLインジェクション(データベースに対する攻撃)、怪しいjavascriptを送り付けられて情報漏えいなどを起こすクロスサイトスクリプティング(XSS)、httpヘッダインジェクションなど、主にWEBサイトを見る人のブラウザとWEBサーバーの間の通信の警備です。WAFにもIDS/IPSと同じ様にシグネチャやアノマリ(振る舞い)検知があり、全く反対の考え方として、社長だけ(特定の通信データ)通行を許可して、他は全部通さない様なホワイトリスト方式も組み合わせて使われたりします。動的診断の部類です。

ネットワーク層のセキュリティが結構大事

OSI参照モデルの第3層、レイヤー3、ネットワーク層が実は大事だったりします。ネットワークが貧弱だと、私のスマホからWEBサイト見られるに、他県の他人からはWEBサイトが見られない!など、サーバーオーナーが知らないところで機会損失してしまう事が結構あります。ネットワークの監視を行っているとDDOS攻撃などで上記のような状態に陥っていると思われるケースもあります。ネットワークに関しては、AMAZON AWSやMicorosft Azureなどのクラウドであれば、多層防御のファイヤーウォールの外側でDDOS攻撃やSyn Flood攻撃等に対するセキュリティ対策までデフォルトで行っていることなどが明示されています。経験上、ネットワークで困った時は、細かいテクニックで奮闘するよりもクラウドを選択してDR(Disaster Recovery)冗長化を行う事が一番早いと感じています。

第1層、レイヤー1、物理層はサーバー会社が一番いい

セコムとか、冷却とか、非常電源だとか、普通の会社でサーバールームを作って管理するのはかなり費用がかかります。物理層はどう考えてもグローバルメジャークラウド各社のデータセンターをはじめ、サーバー会社(クラウド会社)が一番いいと思います。中小零細企業のサーバールーム、24h365日、警備員は立っていますか?24h365日ネットワーク/セキュリティ監視を行っている人はいますか?そんな人件費ありますか?頑強で冷却設備の整ったサーバー専用の建物ですか?サーバーのパーツ(消耗品)が壊れたら部品交換する技術者はいますか?東日本のデータセンターが地震で止まったら、オーストラリアや西日本のデータセンターに自動でシステム移行引継ぎできますか?全部クラウドならできます。

セキュリティアプリケーションの金額と選び方

基本的にサーバー選びの段階で、IDS/IPSとWAFの付随有無、付随している場合、それぞれのベンダー名や商品プランまで確認して、ベンダーのWEBサイトをチェックする事をお勧めします。お得感が高いケースは、サーバー会社側でセキュリティベンダーのドメイン数無制限プランなどにまとめてドーンと入っているケースで、WAFもIPSも含まれているプランです。月3000円程度以上のVPSなどが該当しやすいと思われます。ご参考までに弊社では、VPSの場合、条件に合致するEX-COUDのWordpressホスティングを推奨しています。ただ、WEBサイトの運営規模に応じて、より良いプランに価格も含めて変更が必要になるかも!という心持ちは持っておいた方がいいです。

FW(Firewall:ファイヤーウォール)

ファイヤーウォールは、基本的にサーバーを構築したら自分で設定するか、最初からサーバーの中に存在しています。iptablesだとかfirewalldが標準でサーバー内についてくるので、選択肢は基本的には無いです。レンタル共有サーバーであればサーバー会社が設定してくれています。VPSやクラウドを使う場合は、専門業者にサーバーセットアップから任せた方が賢明です。毎月のサーバー代さえ払っていれば、ファイヤーウォールの費用は不要な事が一般的です。

ただ、ネットワークを組んで複数のサーバーを構築し、ファイヤーウォールを多層展開するなどを行うと、特にオンプレミスと言われる自社の社屋内に物理サーバーを置いて多層ファイヤーウォールで管理する場合は、かなりのお金が必要です。

※クラウドを使うと、物理サーバーの購入費、選別検討費、消耗パーツの修理作業代、消耗パーツ代、物理セットアップ費用などの大きな出費が無くなります。

IDS/IPS(Intrusion Detection System/Intrusion Prevention System:侵入検知/侵入防御)

サーバーを立ち上げたら勝手についてくるものではないです。金額もピンからキリまであります。見張りを行う社内(サーバー内)部署間の仕切り扉の数(監視ポート数)、通信データのボリューム、5分単位のピーク時トラフィック、WAFとセットで販売されているなど、ベンダー各社で料金や販売プランはまちまちです。月5,000円など生やさしい金額ではない事がほとんどです。

ブラックリストであるシグネチャの更新精度を見極めたり、設定や管理の手間なども見極める必要が有ります。各ベンダーのシグネチャ更新手法や収集方法などは簡単に比較できません。また、システム環境によっては、WAFとIDS/IPS一体型の便利な商品を導入出来ない!などのケースもあり、サーバー業者など経験豊富な専門家に相談する事をお勧めします。

無料OSSで自分でIDS/IPSサーバーを立ち上げて頑張る!というツワモノさんには、Snort、OSSEC、 Suricataなどがあります。

WAF(Web Application Firewall)

サーバーを立ち上げたら勝手についてくるものではないです。数多くのベンダーがありますが、突き詰めていく算出すると似たり寄ったりな価格が見えてくる事も有ります。価格基準に用いられる項目は、IDS/IPSと同じ項目以外に、WEBサイトのページ数(URL数)などが基準となるベンダーもあります。50ページ未満のWEBサイトであればSiteLockなどで安い商品もあります。

クラウド型WAF、アプライアンス型と言われる物理サーバー設置のWAF、ソフトウェア型と言われる既存サーバーにインストールするWAFなど、色々な種類も存在します。既存サーバーインストール型WAF等を選ぶと、サーバーへの負荷が大きくなり、表示速度が遅くなるなどの影響もあり、最近の主流はWAFサーバーの管理も不要で、本丸のWEBサーバーなどへの負荷が少ないクラウド型WAFです。

セキュリティと利便性はトレードオフで紙一重という事も有り、価格だけにとらわれず、WEBサイトの将来の見込PV、規模成長性、ツールとしての機能面、カスタマーサポートの対応、シグネチャの更新、導入のやりやすさ、対応可能な脆弱性攻撃の幅、DDOS攻撃対応、など自社のシステム運用環境に見合ったものを慎重に選択する事が大切です。

個人的には、『URLページ数縛り』や『5分間のピークトラフィックボリューム縛り』などは厄介だと感じています。

無料OSSで自分でWAFサーバーを立ち上げて頑張る!というツワモノさんには、ModSecurityなどがあります。

セキュリティアプリケーションベンダー各社に確認すべきこと

シグネチャの収集方法や収集元を聞いて精度を比較する

シグネチャの蓄積手法や活用方法は非常に大切です。セキュリティアプリケーションベンダー各社の実力と言っても過言ではない。NVDやJVNだけではカバーしきれません。たとえば、WatchguardなどはLastlineとカスペルスキーから提供を受けているものと、Watchguard自社のTDR(Threat Detection and Response)に蓄積した情報などからシグネチャの脆弱性情報を得ています。CVEの様に脆弱性情報の重複管理の精度が高く、より多くの脆弱性に素早く対応出来るセキュリティベンダーを使う事が理想です。重複管理が甘い場合、その会社のツールの処理速度の劣化、つまり、導入先のパフォーマンス劣化原因になります。主要なシグネチャ収集先は教えてくれることもあると思います。細かいところまでは、リストでPDFなどをもらわないと口頭説明は無理だと思います。

暗号化防御を採用している場合

PCI DSSを読むと果てしない作業にうんざりしますが、データ通信が発生するところには必ず、暗号化が付いてまわります。各社が採用している暗号化方式を具体的に聞いて、強度を比較するべきです。SSL/TLSの話でよく出てきますが、通信の暗号化アルゴリズムと鍵交換アルゴリズムの組合せなど、暗号化スイートについていろいろと具体的に教えてもらうようにしましょう。教えてくれるかどうかわかりませんが・・・。

yum update頻度

Linuxサーバーの更新作業の事を指します。クラウド型WAFなどは特に確認しておきましょう。本体がマルウェアやDDOSでやられてしまっていては話にならないです。オンプレミスで自社物理運用する場合、自社セキュリティWAFやIDS/IPSサーバーのyum update頻度と検証環境の2環境費用の毎月の予算があるかどうか?です。セキュリティWAFサーバーにセキュリティソフトが入っていなかった!という記事も見た事があると思います。手間とコストを考えるとクラウド型WAFは非常に魅力的です。

課金軸は何か?

5分間のピークトラフィックなのか?URLのページ数なのか?その他なのか?今の世の中、従量課金がほとんどだと思います。何を課金軸に設定しているか?必ず確認し、自社のシステム運用との相性を考えましょう。

セキュリティアプリケーション導入してないと何が起こる?

大変なことがいっぱい起きます。情報漏えいで、さらっと株価が1000億円下がっている企業などもあります。よろしくない事でマスコミから注目を浴びる事になります。

脆弱性検知ツールVuls(VULnerability Scanner)

SSHによるサーバーの脆弱性スキャンツールです。誇らしき日本製です!ウイルス対策ソフトは、インストールされているパソコン自分自身のスキャンですが、Vulsは様々なサーバーの脆弱性スキャンを行います。すごいところは、セキュリティ脆弱性リストをNVDやJVNから取得してきて最新の脆弱性と突合できる点です。ありそうでなかった、かなりすごいセキュリティチェックツールです。

静的診断はトリアージ結果の精度とボリュームコントロールが重要

ソースコードを直接チェックする静的診断についてです。静的診断は、誤検出によるトリアージ結果のボリューム過多などの課題があるため、IBMのIntelligent Finding Analytics (IFA) の様にAIを活用し、トリアージの精度を高めている製品などもあります。開発段階からコンパイル前後を含めて言語を問わずに使えます。静的診断は、ソースコードの開発段階でトリアージできるため、リスク低減などに寄与します。ソースコード診断です。

これだけやってもメール着弾マルウェアは防げない!侵入前提の多層防御が現代のセキュリティ

マルウェアは、そもそもセキュリティ守備エリアがサーバー1台と異なります。メールセキュリティ、見抜けないなりすましメールと危険拡張子とhtmlメールのリスク!を参照ください。Microsoftですらマルウェア侵入されています。メールセキュリティの難易度は別格でさらに高いです。