見出し画像

サーバセキュリティ

1 DNSサーバ

DNSサーバ:ドメイン名とIPアドレスの対応関係を管理して変換するサーバ
名前解決:ドメイン名とIPアドレスを変換する仕組み。DNSサーバはルートDNSサーバを頂点とした階層構造で、ドメイン名が重複しないように管理されている
完全修飾ドメインFQDN):ホスト名、ドメイン名、サブドメイン名など全てを省略せずに指定した記述形式のこと

コンテンツDNSサーバ:管理しているドメイン内のドメイン名とIPアドレスの対応を管理する。コンテンツDNSサーバに問い合わせを行うことで、名前解決を行うことができる。
DNSサーバに障害が発生すると通信できなくなるため、コンテンツDNSサーバはプライマリサーバとセカンダリサーバで冗長化することが推奨されている

キャッシュDNSサーバ:インターネット全体からコンテンツDNSサーバへ問い合わせを行うと、コンテンツDNSサーバに通信が集中するため、キャッシュDNSサーバを利用する。クライアントはキャッシュDNSサーバに、コンテンツDNSサーバへの問い合わせを代行してもらう。要求に対して、キャッシュDNSサーバが情報を保持していない場合はコンテンツDNSサーバに問い合わせるが、情報を保持していればキャッシュDNSサーバがクライアントに応答する。
キャッシュDNSサーバを利用することで、コンテンツDNSサーバへの不要な通信を削減し、クライアントへの応答時間を短縮できる。

2 DNSキャッシュポイズニング

DNSキャシュポイズニング:キャッシュDNSサーバに偽の情報を記憶させることで偽サイトに誘導する攻撃

DNSキャッシュポイズニングの流れ
・攻撃者は、偽の情報として登録したいドメイン名の名前解決をキャッシュサーバに行う。
・キャッシュサーバは情報を保持していない場合、コンテンツサーバに問い合わせを行う。
攻撃者は正規のDNSサーバよりも早く偽の応答を送ることで、キャッシュDNSサーバに偽の情報を記憶させることができる

DNSキャッシュポイズニング対策
DNSキャッシュポイズニングを防ぐためには、キャッシュDNSサーバをオープンリゾルバにしないことが大切である。
オープンリゾルバ・不特定多数の外部から要求を受け付ける状態のこと。

第三者がキャッシュDNSサーバを利用できないようにして、攻撃されないようにする。
次に、キャッシュDNSサーバが問い合わせに利用するポート番号がランダムになっていることを確認する。キャッシュDNSサーバは、正規の応答をトランザクションIDとポート番号で判断している。ポート番号が固定になっていると、トランザクションIDだけで正規の応答であるかを判断することになるので、ポート番号をランダムにすることで、応答の偽装が成立しにくくなる

3 DNSSEC

DNSSEC(DNS Security Extensions):DNSキャッシュポイズニングを抜本的に防ぐ対策で、コンテンツDNSサーバからの応答にデジタル署名を付けることで、応答の正当性を確認する仕組み

デジタル署名を検証することで応答の正当性を確認する
・DNSSEC対応DNSサーバはDNSKEYレコードとして公開鍵を設定し、RRSIGレコードとして応答に付与するデジタル署名を設定する
・クライアントからの問い合わせに対して、コンテンツDNSサーバはデジタル署名をつけて応答メッセージを返す
・キャッシュDNSサーバは、正規の応答であるかを判断するために、デジタル署名(RRSIG)を、公開鍵(DNSKEY)を使って検証する
デジタル署名を検証することで正規のコンテンツDNSサーバからの応答であると判断できるため、DNSキャッシュポイズニングによる攻撃を防げる

DNSSECが再注目されている理由
昔からある技術であるが、DNSキャッシュポイズニングによる攻撃を防ぐための抜本的な対策であることから近年注目されており、DNSSEC対応のDNSサーバが増えてきている

4 ログ

ログ:システムの動作を記録したもの。

システムを安定して運用するために、日頃からログを取得し、定期的に確認する必要がある。
ログは各機器で生成されるが、各機器内部に保存するだけでは不都合なログが消される可能性や、不具合でログが消える可能性がある。
ログサーバに集め、一元管理することでセキュアにログを管理できる。
さらにログを取得し、監視している事実を周知することで、内部不正の防止効果も期待できる

ログ取得時の3つの注意点
1 ログは必要十分に取得する。必要以上のログを取得すると、解析時間がかかり、本当に必要なログを見逃してしまう可能性もある
2 監視対象の機器は、NTPを利用して時刻同期をすることも大切である。各機器の時刻がずれると、時系列に合わせた正しいログ解析ができない
3 プロキシサーバを利用したログには注意が必要である。リバースプロキシサーバがWEBサーバへの通信を代理している環境の場合のログは送信元IPアドレスは全てリバースプロキシサーバになってしまう。本来のクライアントのIPアドレスは、X-Forwarded-ForというHTTPヘッダフィールを使って、
クライアントの送信元IPアドレスを記録できるようにする。

5 SYSLOGとSNMP

SYSLOG:ログサーバにログを送信するプロトコル。ログは各機器で生成されるが、そのまま機器内で管理するとログが消えるなどの問題が起こるため、SYSLOGを使ってログサーバにログを送る。ログサーバでログを集中管理することで、解析の効率化や運用管理の効率化ができる

SNMP(Simple Network Management Protocol):ネットワーク上の機器を管理するために利用されるプロトコル。管理する側のマネージャと管理される側のエージェントの2つの要素で構成される。
NSMPでできること・・・設定確認、設定変更、通知
 ・設定確認・・・マネージャがエージェントにGet-Requestを伝えて、エージェントは管理しているMIBから情報を取得してマネージャに応答する
  ・MIB(Management Information Base):階層構造で構成された機器情報を管理しているデータベース
 ・設定変更・・・マネージャからのSet-Requestに応じて、エージェントがMIBの情報を変更し、その結果を応答する
 ・通知・・・エージェントが自発的にTrapを使って、異常発生をマネージャに知らせる

ポーリング:SNMPのポーリングは、マネージャが定期的にエージェントに対して情報を要求して取得する機能。ポーリングを行うことでエージェントを管理する
Trap:エージェントがマネージャに対して自発的に情報を送信する機能。Trapにより監視対象機器の状態をリアルタイムに把握することができる

この記事が気に入ったらサポートをしてみませんか?