親子の会話で出てくるような素朴な疑問点から、クラウド環境における情報セキュリティの技術を学習する連載。今回は、クラウド環境でリモート管理とデータ転送を安全に行うための基礎知識について。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
親子の会話で出てくるような素朴な疑問点から、クラウド環境における情報セキュリティの技術を学習する本連載「親子の会話から学ぶクラウドセキュリティ」。
初回は、クラウドを始める前に覚えておきたいセキュリティの基礎知識、第2回はネットワーク関連セキュリティ、第3回はセキュリティの運用・監視に関する内容について解説しました。今回は、クラウド環境でリモート管理とデータ転送を安全に行うために必要な基礎知識についてです。
さて、今日もサーバを管理しようかな。
今日もがんばっているわね。あら、そのリンクから管理者の画面に行けるのかしら? ユーザーも管理者の画面が見られるの?
パスワードはかけてあるよ。でも、管理者のアクセスはユーザーと同じじゃだめなの?
ユーザーと同じようにインターネットから直接アクセスして、管理できるようにすると、攻撃を受けるリスクが高まるのよ。管理者は踏み台サーバを利用して、直接アクセスしないようにしましょうね。
クラウドサーバにはリモート管理が必須です。一般的に、クラウドサーバの管理といえばSSH(Secure Shell)によるアクセスが主流だと思いますが、管理用のWebインタフェースなどが存在するサーバや機器なども存在します。専用のクライアントで特定のポートにアクセスするものもあるかもしれません。そういったものを、管理のためとはいえ、インターネットから直接アクセス可能な状態にしておくのは、攻撃を受けるリスクが高くなり、非常に危険です。インターネットからアクセス可能な機器は「SHODAN」や「Censys」などの検索エンジンで検索可能です。想定していないサービスがインターネットに公開されていないか、確認しておきましょう。
管理アクセスには踏み台サーバを用意し、そこからのアクセスのみを許可する設定をお勧めします。踏み台サーバに対するアクセスは、SSHと公開鍵認証によるアクセスのみを許可する構成にすると安心です。
インターネットに公開するポートが増えれば増えるほど、管理やセキュリティ対策のコストは増加します。特にデータベースサーバなどのインターネットに公開していない機器のポートを、管理のためだけに開けることはお勧めできません。管理アクセスはできるだけ集約し、不正なアクセスを検知・防御しやすくしましょう。
Amazon Web Services(AWS)では、踏み台サーバ構築手順に関するドキュメントを公開しており、その中で高可用性とセキュリティに関するベストプラクティスについて触れています。
踏み台サーバはPublic subnetに置き、Private subnet上のインスタンスに対して管理アクセスを行うようにします。セキュリティグループの設定により、必要なアクセスのみを許可するように設定しましょう。
友達がこのWebサービスで使うデータファイルを1週間ごとに作ってくれているんだ。どうやってファイルをクラウドに送ってもらうのがいいかな?
SFTP(SSH File Transfer Protocol)で送信してもらうのがいいんじゃないかしら。SSH(Secure Shell)でファイルを転送できるのよ。
そうなんだ。でもSSHを使ったら、友達にサーバの中身を詳しく見られちゃうかもしれないよね? ちょっといやだなあ。
そういうときは権限を正しく設定すれば大丈夫だよ。友達には、鍵の管理によく気を付けてもらうようにね。
ファイル転送のプロトコルとしては、FTP(File Transfer Protocol)やSFTP(SSH File Transfer Protocol)、SCP(Secure Copy Protocol)、FTPS(FTP over SSL/TLS)などが利用可能です。FTPは暗号化されていない通信なので、クラウド環境はもちろん、通常は利用をお勧めしません。SFTPとSCPはSSHを利用して暗号化されたファイル転送プロトコルで、FTPSはSSL/TLSを利用して暗号化するものです。
クラウド環境では管理用にSSHを利用している場合が多いと思います。そのため、SFTPを利用すると、ファイル転送用に別途ポートを開く必要がないというメリットがあります。SSH同様、公開鍵認証が可能なので、利用することをお勧めします。
AWSでは、「AWS Transfer Family」により、SFTPなどを利用して「Amazon S3(Simple Storage Service)」へファイル転送を行えます。SaaS型のサービスであるため、専用のサーバを用意することなくファイル転送を行え、運用コストの削減につながります。
えーっと、これがSSHで使う鍵、これがクラウド上のデータ保存をする鍵、なんか鍵がたくさんあってよく分からないなあ。
いろいろな鍵があるわね。それぞれ用途は違うけど、鍵は大切なものだから管理をしっかりね。
でも、この公開鍵っていうのはみんなに渡してもいいんだよね? なんで?
公開鍵は、自分以外の人に使ってもらうための鍵だからよ。
「鍵」とは、データを暗号化したり、復号したりするために必要なデータのことです。鍵の長さ(データのサイズ)は暗号化方式によって指定されていることが多いです。鍵は通常、暗号化の用途ごとに用意されます。
有名な暗号化方式は理論が公開されていますが、理論が分かっていても、鍵を知らなければ復号できないことで、安全性が保証されています。このことは、「ケルクホフスの原理」として知られており、安全な暗号かどうかの判断基準の一つとなっています。
主な鍵には、対称鍵暗号(共通鍵暗号)に使われるものと、非対称鍵暗号(公開鍵暗号)に使われるものが存在します。対称鍵暗号は、暗号化と復号に同じ鍵を使用する方式です。暗号化する人と復号する人の両者が同じ鍵を持っています。非対称鍵暗号は、公開鍵と秘密鍵の2つの鍵を使用する方式です。公開鍵はその名の通り、自分以外の人に公開する鍵です。秘密鍵は、自分だけが持っている鍵です。もし秘密鍵が漏れた場合、その鍵を用いた暗号は安全ではなくなります。
非対称鍵暗号では、暗号化する人が、復号する人の公開鍵を使ってデータを暗号化し、復号する人は自分の秘密鍵を使って復号します。この場合、秘密鍵は復号する人しか知らないはずなので、2者間で安全にデータをやりとりできます。
非対称鍵暗号の仕組みは電子署名にも使われます。電子署名は、対象のデータが間違いなく署名者によって署名され、改ざんされていないことを確認するための仕組みです。署名者は自分の秘密鍵を使用してデータに電子署名を付与し、相手に送信します。データを受け取った人は署名者の公開鍵を使用して電子署名を検証し、署名者本人のものであることを確認します。
電子署名の例としては、マイナンバーカードに含まれる電子証明書を用いた署名などがあります。マイナンバーカードに含まれている秘密鍵による電子署名で、「e-Tax」などで送信するデータが本人のものかどうかを確認できます。
AWSでは、AWSのサービス上で使用する鍵を管理する「AWS Key Management Service(KMS)」が存在します。データの暗号化や電子署名に使用するための鍵の生成と管理が可能です。鍵の一元管理が行え、利用者の管理コストを削減できます。
SSH接続の際に使用するキーペアは、公開鍵と秘密鍵のペアです。これらは端末側で管理する必要があります。特に秘密鍵は他のユーザーに盗まれたり、改ざんされたりすることのないよう、管理やアクセス制御を適切に行うよう気を付けましょう。
よし、サーバのセキュリティパッチを最新にしたよ。そろそろ終わりにしよう。
お疲れさま。サーバは万全みたいだけど、あなたの端末のセキュリティパッチは大丈夫かしら? 確認してあげてね。
サーバじゃなくてもセキュリティパッチが要るの?
管理用の端末のようなクライアント機器もセキュリティパッチが必要よ。踏み台サーバなども忘れずに最新の状態にしてあげましょうね。
サーバを最新の状態に保つことはもちろん大切ですが、管理用の端末や、そこにインストールされているソフトウェアにも最新の状態にすることが大切です。前述の踏み台サーバも忘れないようにセキュリティ対策を行いましょう。
Windows端末であれば毎月第2火曜日(日本時間の第2水曜日)に定期的なアップデートが公開されるので、更新タイミングの参考にするといいでしょう。また、緊急度の高いセキュリティパッチなどは随時公開されるので、常に最新のセキュリティ情報を確認することも重要です。
また、ウイルス対策ソフトも最新の状態に更新しておかなければ効果が薄れてしまいます。例えば、「管理用の端末で受信したメールからウイルスに感染し、気付かずにサーバに接続してしまった」といったことになれば、ウイルスはサーバやクラウド上のネットワーク内に横展開し、甚大な被害に遭いかねません。もし、普段インターネットに接続していない端末を久しぶりに接続する場合などは、何か作業を行う前に、アップデートを心掛けましょう。
管理アクセスが悪用されたら大変だね。気を付けなきゃ!
そうね、管理者のための環境もしっかりセキュリティ対策しましょう。
Copyright © ITmedia, Inc. All Rights Reserved.