ラック:アプリケーションのセキュリティ向上に「Vault」でシークレット管理
ラックは、組織のインシデント対応や運用監視を行うセキュリティオペレーションセンター(JSOC)、サイバー救急センターなどを提供している。今回は、インシデント事例からDevSecOpsを実現する戦略的セキュリティ対策をテーマに解説した。なお、ラックはHashiCorpのHyper-Specialized Partnerでもある。
まずは、Webアプリケーションに関する重大リスクをまとめた『OWASP(Open Web Application Security Project)トップ10』から見てみよう。上位はアクセス制御の不備、暗号化の失敗、インジェクション攻撃が並び、続く4位には『安全が確認されない不安な設計』とある。これは最新版で初めてランクインしたものであり、設計上の欠陥と実装上の欠陥を区別していることがポイントだ。
ラック 執行役員 CTOの倉持浩明氏は、「戦略によるミスは戦術でリカバリーできないと言われるように、安全でない設計は完ぺきな実装で修正することはできません」と指摘する。アプリケーションの安全性を高めるには、設計段階からセキュリティを要件定義に盛り込みレビューしていく『セキュリティ・バイ・デザイン』、実装段階では『ペイブドロード(Paved Road:舗装道路)コンセプト』という考えがあるという。
ペイブドロードとは、(荒野ではなく)ガードレールもある舗装道路で運転者がルールを守り、高速走行するイメージだ。開発現場には信頼性が高く、安全性が検証されているツールを導入し、セキュリティを維持しながら高速に開発できるようにする。「ペイブドロードを用意することが戦略的なDevSecOpsのアプローチ」と倉持氏は言う。
具体的にDevSecOpsにつながる施策として、シークレット管理がある。シークレットとはIDやパスワード、APIキー、認証トークン、証明書など、アプリケーションのセキュリティを守るために欠かせないものの総称であり、開発現場では様々なところにシークレットが存在する。
もし、シークレット管理に不備があるとインシデントにつながりかねない。実際にラックが対応したインシデントから、倉持氏がいくつか例を挙げた。1件目は設定の不備。オンプレミスからクラウドに移行する際の検証環境のセキュリティグループに不備があり、外部から侵入されていたという。バックドアが仕掛けられたままで本番環境に移行してしまったため、本番サーバーが攻撃者から侵入されてしまった。
2件目は認証情報管理の不備。ある企業ではキャンペーンサイトなど急激な負荷増加にも対応できるようにクラウドでAutoScalingを設定していたところ、請求金額が不自然なほど急激に増加。調べたところクラウドの認証情報が窃取されたために、攻撃者がクラウドのインスタンスを大量に作成して仮想通貨のマイニングに使っていた。
ラックが運営しているJSOCでも、シークレットを狙う攻撃を何度も検知しているという。攻撃者は日常的にアクセスキーをあさるようなスキャンを行っており、作業ミスや設計の不備で公開ディレクトリに置いてあると瞬く間に窃取され、前述したような不正アクセスや不正使用につながる。下図のようなファイルが公開フォルダに残っていないか、よく確認しよう。
他にもシークレットの漏えいには、ソースコードにシークレットを直接書き込み、そのソースコードをGitHubで公開したために攻撃者にシークレットが渡ってしまうケースもある。何らかのルートでシークレットが攻撃者の手に渡ると、シークレットを置き換える、または権限を廃止する必要があるため、この作業を速やかに行うことで被害を最小限に食い止めることにもつながるという。
特に開発チームの責任者であれば、開発現場で扱うシークレットが漏えいしないように何らかの対策を施す必要がある。その1つのソリューションとなるのが、HashiCorp Vaultによるシークレット管理だ。
Vaultは、開発現場における各種シークレットの『Create/Update/Rotate/Revoke』を一元管理し、動的なシークレットとすることで漏えいリスクを軽減する。ラックを通じたVault導入事例には、Excelで管理していたサーバーのユーザーIDやパスワードをVaultから発行するように変更したケース、ソースコードにシークレットを書き込んでいたところをVaultにシークレット発行をリクエストするように変更したケース、KubernetesのPodが使うシークレットをVaultで一元管理するように構築したケースなどがあるという。
ここであらためて組織規模で取り組むべき、戦略的なセキュリティ対策に目を向けよう。実現に向けて有効なのがリスクアセスメントを実施し、取り組みの優先順位を決めて、実装へと進むという流れだ。セキュリティのフレームワークとして倉持氏が挙げるのが、The Center for Internet Security(CIS)が管理する、2021年5月にリリースされた『CIS Controls v8』だ。何をすればいいのかが『18の対策(コントロール)』として提示されている。ここにある基本的な対策を行うことで「70%以上の攻撃が防御可能」と倉持氏は言う。
なお、ラックでは2022年12月よりDevSecOps開発環境の導入支援サービスを提供開始している。業務フローを洗い出し、IaCやシークレット管理を実践することでDevSecOpsの実現に導き、迅速なアプリケーションリリースとビジネスの継続性に役立てることが可能だ。
クロージング:HashiCorpで実現する、DevSecOpsやゼロトラストセキュリティ
クラウドを中心に構成するダイナミックインフラはメリットがあるものの、従来の境界型のアプローチでは防御しきれなくなるという課題も生じる。本イベントの最後には、HashiCorp JapanでSE Directorを務める小原光弥氏が登壇し、「セキュリティ侵害事故の多くが人に起因しています。そのため、人の介在を極小化するような運用の自動化、またアクセスの正当性を確認するためのクレデンシャル管理を軸としたセキュリティ対策が重要になります」と強調する。
同社では、どのリソースへアクセスする場合であろうとも、人もマシンも認証・認可され、権限は必要最低限かつ最小限の時間内に留めるだけでなく、データを継続的に防御し、暗号化するべきという思想の下でプロダクトを構成している。マシンの認証と認可は『HashiCorp Vault』、マシン間のアクセス制御は『HashiCorp Consul』、人からマシンへのアクセス制御は『HashiCorp Boundary』が担う。人の認証と認可については、既存で使用されているSSO製品との連携でカバーする。
たとえば、HashiCorpのプロダクトでDevSecOpsを実現するのならば、HashiCorp Terraformでインフラを構成管理し、HashiCorp WayPointでアプリケーションのデリバリーを実施。そして、Vaultで認証やシークレットを管理するという構成が考えられる。
では、セキュリティにおいてはどのように寄与するのか、サイバー攻撃の段階別に同社のプロダクトがどう防御するかも見ていこう。1ステップ目は初期アクセス。Vaultはインフラやリソースへのアクセスを制御し、Boundaryでユーザーやセッションを監視・管理する。2ステップ目は権限の昇格。攻撃者は管理者権限やルート権限を付与するトークンを探すが、Vaultはシークレットの動的な作成や失効を行い、攻撃者の権限昇格を防ぐという。
そして、3ステップ目はクレデンシャルアクセス(IDとパスワードの窃取)。Vaultで金庫のようにシークレットを安全に保管し、盗難から守る。4ステップ目は横方向の移動。侵入に成功した攻撃者は横方向(別サービス)にも侵攻していくが、VaultとConsulが連携することでサービス間通信の不正アクセスを防ぐ。
最後の5ステップ目はデータの流出。データが平文のままでは容易に情報が攻撃者の手に渡ってしまうが、Consulは継続的に検証と承認を行うことでネットワーク通信を保護できる。加えて、Vaultで256ビット暗号鍵(AES 256)を使用することでデータ流出を防ぐことが可能だ。
実際のシステム構成例は下図のようになる。システム利用者(左)が個人情報を入力すると、データはVaultで暗号化され、アプリケーションがデータベースアクセスに必要なシークレットを発行する。Consulで安全な通信を行い、暗号化されたデータがデータベースに格納される。開発者や運用者(右)は自社の認証基盤で認証された後、Boundaryを介して対象システムに接続する。このときに必要最小限かつ短時間のシークレットをVaultが生成するという。
このようにHashiCorpのプロダクトが連携することで、アイデンティティベースで制御し、ゼロトラストセキュリティを実現していく。最後に小原氏は、「Vault、Consul、Boundaryという3つのソリューションを組み合わせた『HashiCorp Stack」によって、ゼロトラスト環境の実現をサポートしていきます」と力強く述べた。
トヨタやDNP、ラックの“実践知”を動画でいつでもご覧いただけます!
今回、記事の中で紹介した『HashiCorp Virtual Strategy Day Japan Vol.3』をオンデマンド配信しています。より詳細な取り組みはもちろん、図表を交えながら解説しているため、有名企業による“実践的なクラウド活用”について理解を深めていただけます。いつでも好きなタイミングで視聴いただけますので、ぜひお役立てください。