2017/04/21

自動化はセキュリティの強化に役立つか

Server サーバー ラック 大規模 システム
2001 年 4 月 21 日 Teri Radichel 著

前回の Secplicity のブログ記事では、クラウドセキュリティの可能性を検証しました。自動化は、アプリケーションをクラウドに移行する最も重要な理由の 1 つです。サードパーティのクラウドプラットフォームは、システムの展開、監視、保守の手動タスクを自動化できるように設計されています。「AWS Architecting for the Cloud」というホワイトペーパーは、自動化によって可能になるクラウドアプリケーションのベストプラクティスを解説していますが、自動化はセキュリティの強化にどのように役立つのでしょうか。

手動プロセスには、人的エラーが起きやすいという必然的な問題があります。IBM のレポートによると、セキュリティ侵害の 95% は、人的エラーによるものです。自動化では、タスクをマシンが実行することで、人的エラーを少なくします。人間が自動化の仕組みを作る必要がありますが、事前にテストすることで、実行のたびに正しく動作することを確認できます。自動化の仕組みの開発には時間がかかりますが、長期的には、時間を節約し、運用上のエラーを防止できます。自動化を正しく実装すれば、システムの安全性が向上します。セキュリティを考慮して開発された自動化されたシステムには、監査、セキュリティチェック、役割の分離、ロールバックの機能を組み込むことができます。

セキュリティアプライアンスを手動で展開する場合の手順を考えてみましょう。たくさんの画面を表示し、たくさんのボタンをクリックして操作します。さらに、アプライアンスの構成にあたっては、ログインし、さらにボタンをクリックし、構成値を入力するといった手順が必要です。本番環境でそのアプライアンスに何らかの問題が見つかり、展開をすばやくやり直す必要があったとします。そういった状況で、リソースを正しく展開できることが事前のテストで確認されているスクリプトがあり、そのスクリプトを実行するだけで済むとすれば、便利ではないでしょうか。スクリプトを利用すればセキュリティアプライアンスを正しく展開できることがわかっていれば、自分の休暇中も代わりのスタッフに安心して仕事を任せられるでしょう。

いくつかのバージョンの展開コードを保存しておけば、不要な変更を自動的に防止し、修正できます。たとえば、あるアップデートを展開したところ、構成に何らかの問題があったとします。自動化されたシステムであれば、以前のバージョンにロールバックすることで、リソースを既知の正常な状態に戻すことができます。自動化された展開システムでは、変更を実行した日時や人を追跡できます。また、役割が強制的に分離され、重要なシステムへの変更の展開や承認を許可する人物を制御できます。セキュリティの自動化をソフトウェア展開システムに統合することで、自動テストが起動されるようにし、セキュリティ基準を満足しない展開が許可されないようにすることもできます。

セキュリティの自動化は、セキュリティ関連のイベントやインシデントへの迅速な対応にも役立ちます。自動化されたシステムでは、何度も繰り返されるセキュリティイベントを手動で確認することはありません。最も重要なアラートのログを解析し、想定外のアクションが発生した場合は、自動的にネットワークポートをブロックしたり、システムをシャットダウンしたりできます。不審な動作がマシンで発生した場合は、電子メールをエンドユーザに送信し、その動作が正しいかどうかを確認したり、正しくない動作であればヘルプデスクに問い合わせるように指示したりできます。セキュリティ基準に適合しない変更が検出された場合は、その変更を回避したり、自動的に安全な状態に戻したりできます。

最初は、自動化よりも手動でサーバにログインしてログを確認する方が簡単だと思えるかもしれません。自動化を実行するソフトウェアの作成には時間がかかりますが、多少の時間をかけてセキュリティを自動化することで、人的ミスを防ぎ、組織によっては、セキュリティチームが迅速かつ効果的にセキュリティイベントに対応できるようになります。詳細は、私が SANS に寄稿した AWS Security Automation に関する論文(英文)を参照してください。次回のブログ記事では、クラウドへのリソースの安全な展開方法を説明する予定です。— Teri Radichel(@teriradichel)