御成門プログラマーの技術日記

Microsoft AzureやAngularなどの技術情報を発信します。

Microsoft Tech Summit 2018 セッション要約「クラウド ネイティブなセキュア アプリケーションの作り方に PCI DSS を添えて」

登壇者情報

シグマコンサルティング株式会社
冨田さん

株式会社 kyrt
近江 武一

セッション内容まとめ

セッション資料

www.slideshare.net

安全とは

  • 安全とは危険を考えること
  • 危険を回避する行動が計画され、実行されていること
  • 安全のためには危険を認識する必要がある

金融におけるリスクとは

f:id:tt-suzukiit:20181120184829p:plain
用語集 ダウンサイドリスク「リスク管理」

  • 期待していた結果に対する揺れの幅
  • いい結果でも期待していた結果がでなければリスクである
    →アップサイドリスク

PMBOKにおけるリスクとは

  • リスクとは、それが発生すれば少なくともスコープ、スケジュール、コスト、品質といった
    プロジェクト目標に影響を与える不確実な事象・状態

つまり

  • リスクには定義がある
  • 金融の世界のリスクと、プロジェクトマネジメントの世界のリスクは、ほぼ同じ意味で定義されている。

こんなのはセキュアじゃない

f:id:tt-suzukiit:20181120185038p:plain

  • OSにはパッチを当ててはいけないと信じている
  • 誰かに相談したら「特定のアプアライセンス製品を入れないと認証準拠できない」と言われたのでかった。
  • 台帳で管理しろと言われたので、何に使うかわからないけど大量のEXCEL台帳を作った。
  • いろんなものが秘伝のたれで動いている。

本セッションでいいたいこと

f:id:tt-suzukiit:20181120185509p:plain

セキュアなアプリケーションの定義

f:id:tt-suzukiit:20181120191024p:plain

必要な人だけが必要な情報にアクセスできる仕組みを備えている
  • 認証と認可の仕組みが備わっている。
何かにアクセスしたというログが残る仕組みを備えている
  • Azureのリソースを追加・変更・削除したログ(アクテビティログ)
  • アプリケーションに対するアクセスログ(アクセスログ)
  • データに対してアクセスしたログ(監査ログ)

Key Goal Indicator(KGI)

クラウドは「脅威」なのか「好機」なのか
クラウドはセキュリティリスクではなく好機である f:id:tt-suzukiit:20181120190137p:plain

Key Performance Indicator(KPI)

  • PCI DSSの要件に対してどれだけ準拠できているか

情報セキュリティ - CIA

クラウドネイティブなセキュリティ f:id:tt-suzukiit:20181120192708p:plain * Confidentiality(気密性)
* Integrity(完全性)
* Availability(可用性)

CIA対策の方針
  1. 認証、アクセス制御
    AzureAD認証、RBAC、SQL Database アクセス制御
  2. 不正アクセス防止
    ネットワーク分離、セキュリティパッチ適応
  3. 操作、監査、ログ、監視
    Activity Log、Diagnotics Log、Azure Monitor
  4. 暗号化 -鍵管理
    Azure Key Vault

認証、アクセス制御

ネットワーク、サーバー、データベース等の設置、設定変更、撤去への認証とアクセス制御
  • 重要:すべてのリソース構成、設定はアクセス制御化でコード実施可能
  • 適切なアクセス制御とコードによる設定を実装した環境下では、構成基準が明確化され、定期的な確認も現実的に実行可能となる。
    PCI DSS要件では構成基準の作成と、保持を求めている。
  • Azureではリソースの作成時に、ユーザー指定の管理アカウントを作成する。あるいはランダムに作成したキーを使用する。
    PCI DSS要件

Azure Resources

Azure Resourcesが持つアクセス制御機能
  • SQL Database
    User,Login
  • Cosmos DB
  • Azure Key Vault
    Data Planeアクセス
  • Azure Storage
    Shared Access signature(SAS)

Unauthorized Access -不正アクセス

AAD認証を経由した不正アクセス
  • パスワード漏洩
    →MFA、パスワードロック
  • 内部犯行
    →暗号化、監査ログ
経由しないアクセス
  • ネットワークセキュリティ →VNet、NSG、LB
  • セキュリティパッチの自動化
    →PaaS利用
  • 多段防御・・攻撃を受けた場合多段な防衛線は効果的
    • Vnetにサービスを配置
    • 役務ごとにサブネットを割り当てる
    • サブネット間の通信はNSGで制限する
    • データは暗号化して保存する
    • 鍵管理はKey Vaultを利用する
不正アクセスへの防御は、脅威分析を行い軽減策を検討する
ネットワーク分離と通信制
  • 仮想ネットワーク(VNet)で、専用のプライベートアドレス空間を用意し、外部からのアクセスを制限
  • VNetへのアクセスは、AzureLB(L2)、AzureGateway経由とする
  • Subnet間通信をNetwork Security Group(NSG)で必要なものだけに制限
  • SQL Database棟等のマネージド・サービスとの通信は、Virtual Network Service Endpointで制限

ログ、監視

ログの種類
  • Application Log
    アプリケーションによって作成されたログ
  • Diagnotics Log
    • Tenant log:Azure ADなどSubscriptionの外側で作成されるログ
    • Resource log:NSGや、StorageなどResourcesが生成するログ
  • Activity Log
    • 主にAzure Resource Managerで発生したアクテビティを記録
    • リソースの作成、更新、削除など
ログの保管
Application Insight
  • アプリケーションログの保存に利用。
  • 容量が増えやすいログが多いので容量課金ではない。
  • SQL分のトラッキングなどリッチなクライアントライブラリ
  • 高速で柔軟なクエリが可能。
Log Analytics
  • AzureResource、インフラのログ
  • 容量課金で長期保存向け
  • 主にインフラのログ用
  • 監査などで保存期間が定められている場合にも対応

暗号化、鍵管理

データの暗号化
  • 暗号化自体のコストは低い →AzureではデフォルトでSQLDatabase, Storageなどの内容は暗号化される。

  • 問題は鍵管理 →鍵管理のために、Azure Key Vaultがある

Azure Key Vaultへのアクセス
  • 管理プレーンへのアクセスはAzureAD+RBACで保護
  • データプレーンへのアクセスはアクセス権で保護
仮想ネットワークサービスエンドポイント
  • 特定の仮想ネットワークからのみアクセス可
  • 制限はデータプレーンのみ
お得情報
  • Azure Key Vaultは高度なセキュリティが求められているアプリでなくても使うと便利。
  • Webとバッチで別のWeb Appsになっていて、設定が2か所のAppSetingsに分かれてしまうなどの場合、簡単に便利に使える

最後に

f:id:tt-suzukiit:20181120201628p:plain Azureでは、セキュアで低コストなサービスがそろっているので、使いましょう。 自分で作ったら負けです。

以上です。他のセッションもまとめています

onarimonstudio.hatenablog.com