Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

こわくない!SQL Server 2017 セキュリティ関連機能について

1,824 views

Published on

2018年3月14日に開催したWebinar

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

こわくない!SQL Server 2017 セキュリティ関連機能について

  1. 1. 山本 美穂 日本マイクロソフト株式会社 テクニカルエバンジェリズム本部 テクニカルエバンジェリスト Twitter: @mihochannel SlideShare: https://www.slideshare.net/mihochannel1
  2. 2. こわくない!シリーズについて  このシリーズでは、SQL Server をはじめとしたデータに関する初心者 の方向けに、広く活用可能な知識や 製品機能の理解をすすめることを目的としています。 タイトル 開催日時 スピーカー レベル 1 今こそはじめる SQL Server 機能一挙紹介!(前 編) 2017年11月15日(水) 16:30‐17:30 山本美穂 100 2 今こそはじめる SQL Server 機能一挙紹介!(後 編) 2017年12月13日(水) 16:30-17:30 山本美穂 200 3 こわくない!SQL Server Linux 版を理解しよう https://aka.ms/131sql 2018年1月31日(水) 12:00-13:00 山本美穂 200 4 こわくない!SQL Server 新機能を試してみよう https://aka.ms/214sql 2018年2月14日(水) 12:00-13:00 山本美穂 200 5 こわくない!SQL Server セキュリティ関連機能に ついて https://aka.ms/314sql 2018年3月14日(水) 12:00-13:00 山本美穂 200
  3. 3. https://support.hpe.com/hpsc/doc/public/display?docId=emr_na-a00039040en_us&docLocale=en_US https://www.youtube.com/watch?v=Gz68a-rw-G4
  4. 4. https://docs.microsoft.com/ja-jp/sql/connect/python/pymssql/python-sql-driver-pymssql https://www.microsoft.com/ja-jp/sql-server/sql-server-2017-pricing
  5. 5. 本日の目標 SQL Server の セキュリティについて理解する SQL Server がこわくなくなる!
  6. 6. 本日のアジェンダ セキュリティ概要 SQL Server のセキュリティを高める機能 まとめ
  7. 7. https://www.ipa.go.jp/security/vuln/10threats2018.html 第1位 標的型攻撃による情報流出 企業や民間団体や官公庁等、特定の組織 を狙う、標的型攻撃による攻撃が引き続き 発生している。メールの添付ファイルや ウェブサイトを利用してPCにウイルスを感 染させられると、別のPCに感染を拡大され、 最終的に個人情報や業務上の重要情報が窃 取される。 第8位 内部不正による情報漏えい 組織内部の従業員や元従業員により、私 怨や金銭目的等の個人的な利益享受のため 組織の情報が不正に持ち出されている。ま た、組織の情報持ち出しのルールを守らず に不正に情報を持ち出し、さらにその情報 を紛失し、情報漏えいにつながることもあ る。内部不正が発覚した場合、組織は、原 因追求等の対応に追われ、また社会的信用 の失墜等にもつながる。
  8. 8. https://www.ipa.go.jp/security/manager/know/sme-guide/sme-shindan.html
  9. 9. 平成 29 年個人情報保護委員会告示第1号) 個人データの漏えい等の事案が発生した場合等の対応について (PDF:128KB) (2)報告を要しない場合 次の①又は②のいずれかに該当する場合は、報告を要しない(※2)。 (※2) この場合も、事実関係の調査及び原因の究明並びに再発防止策の検討及び実 施をはじめとする上記 2.の各対応を実施することが、 同様に望ましい。 ①実質的に個人データ又は加工方法等情報が外部に漏えいしていないと判断される場合(※3) (※3) なお、「実質的に個人データ又は加工方法等情報が外部に漏えいしていない と判断される場合」には、 例えば、次のような場合が該当する。 ・漏えい等事案に係る個人データ又は加工方法等情報について高度な暗号化 等の秘匿化がされている場合 ・漏えい等事案に係る個人データ又は加工方法等情報を第三者に閲覧されな いうちに全てを回収した場合 ・漏えい等事案に係る個人データ又は加工方法等情報によって特定の個人を 識別することが漏えい等事案を生じた事業者以外ではできない場合 (ただし、漏えい等事案に係る個人データ又は加工方法等情報のみで、本人に被害 が生じるおそれのある情報が漏えい等した場合を除く。) ・個人データ又は加工方法等情報の滅失又は毀損にとどまり、第三者が漏えい 等事案に係る個人データ又は加工方法等情報を閲覧することが 合理的に予測できない場合 ②FAX 若しくはメールの誤送信、又は荷物の誤配等のうち軽微なものの場合(※4) (※4) なお、「軽微なもの」には、例えば、次のような場合が該当する。 ・FAX 若しくはメールの誤送信、又は荷物の誤配等のうち、宛名及び送信者名以外に個人データ又は加工方法等情報が含まれていない場合
  10. 10. Microsoft SQL プラットフォームでのプライバシーの強化と GDPR 要件への対応に関するガイド http://download.microsoft.com/download/4/9/4/4948194B-A613-49ED-90A5-5144313549AB/microsoft-sql-and-the-gdpr.pdf
  11. 11. セキュリティ機能だけでは、 データベース アプリケーションの安全性は 保証されません https://docs.microsoft.com/ja-jp/dotnet/framework/data/adonet/sql/sql-server-security
  12. 12. 本日のアジェンダ セキュリティ概要 SQL Server のセキュリティを高める機能 まとめ
  13. 13. できるだけ Windows 認証モードを 使用(Linux版でも利用可能)
  14. 14.  ログインには強力なパスワード アプリケーションで sa ログインを使用しない
  15. 15. サーバー(インスタンス)
  16. 16.  ログインだけでは十分な権限があるとはいえない。 データベース ユーザーの作成 https://msdn.microsoft.com/ja-jp/library/aa337545.aspx ログインの作成 https://msdn.microsoft.com/ja-jp/library/aa337562.aspx
  17. 17. データベース レベルのロール https://msdn.microsoft.com/ja-jp/library/ms189121.aspx サーバー レベルのロール https://msdn.microsoft.com/ja-jp/library/ms188659.aspx
  18. 18. https://docs.microsoft.com/ja-jp/sql/relational-databases/security/encryption/extensible-key-management-using-azure-key-vault-sql-server
  19. 19. SQL Server Audit (データベース エンジン) https://msdn.microsoft.com/ja-jp/library/cc280386.aspx ログインの監査の構成 (SQL Server Management Studio) https://msdn.microsoft.com/ja-jp/library/ms175850.aspx
  20. 20. 推奨事項 利点 Windows 認証を使用する • Active Directory による SQL Server プリンシパルの一元管理が可能になります。 • Kerberos セキュリティ プロトコルを使用してユーザーを認証できます。 • 組み込みのパスワード ポリシーを強制できます (強力なパスワードの 複雑さの検証、パスワードの期限、アカウント ロックアウトなど)。 ユーザーとアプリケー ションの認証に別々の アカウントを使用する • ユーザーとアプリケーションに付与されるアクセス許可を制限でき ます。 • SQL インジェクション攻撃などの悪意のあるアクティビティのリスク を低減できます。 包 含 デ ー タ ベ ー ス ユーザーを使用する • ユーザー アカウントまたはアプリケーション アカウントが、1 つの データベースに分離されます。 • 包含データベース ユーザーは、マスター データベースへの余計な ネットワーク ホップがなくなり、対象のデータベースに直接認証さ れるため、パフォーマンスが向上します。 • SQL Server と Azure SQL Database の両方、および Azure SQL Data Warehouse がサポー トされます。
  21. 21. https://docs.microsoft.com/ja-jp/sql/relational-databases/security/encryption/encryption-hierarchy
  22. 22. ENCRYPTBYPASSPHRASE DECRYPTBYPASSPHRASE
  23. 23. https://docs.microsoft.com/ja-jp/sql/relational-databases/security/encryption/choose-an-encryption-algorithm
  24. 24. 暗号化機能 内容 SQL Server への接続の暗号化 SQL Server に証明書を導入し、SSL により通信を暗号化 列レベルの暗号化 (CLE) テーブルの特定の列について暗号化を行う 格納されたデータ / キャッシュされたデータも暗号化された状態となる データの暗号化 / 暗号化解除は暗号化関数を使用して実施する 透過的なデータ暗号化 (TDE) Enterprise Edition で使用することが可能 (SQL Server 2008 以降の機能) 証明書により、データファイル / ログファイルを暗号化し、適切な設定が行われている SQL Server 以外 ではデータベースを使用することができなくする ファイルが持ち出された場合のデータ保護として利用可能 TDE により暗号化されたデータベースのバックアップは、適切な設定が行われた SQL Server 以外では リストアすることもできない バックアップの暗号化 Standard / Enterprise Edition で使用することが可能 (SQL Server 2014 以降の機能) 証明書により、データベースのバックアップの暗号化を行う Always Encrypted Enterprise Edition で使用することが可能 (SQL Server 2016 の新機能) • SQL Server 2016 SP1 では、全エディションで使用することが可能 テーブルの特定の列について暗号化を行う 格納されたデータ / キャッシュされたデータ / アプリケーションに返されるデータ / 暗号化列に対して 検索を実施したクエリの条件も暗号化された状態となる データの暗号化 / 暗号化解除はアプリケーション側のデータアクセスライブラリで透過的に実施される SQL Server の暗号化 https://msdn.microsoft.com/ja-jp/library/bb510663.aspx
  25. 25. SQL Server への接続の暗号化 SQL Server に証明書を設定し、暗号化接続を使用することで通信を暗号化 SQL Server への接続の暗号化 https://technet.microsoft.com/ja-jp/library/ms189067.aspx 検証を伴わない暗号化の使用 https://msdn.microsoft.com/ja-jp/library/ms131691.aspx
  26. 26. 列レベルの暗号化 (CLE : Cell Level Encryption) パスフレーズ / 対象キー / 非対称キー / 証明書により、特定列のデータを暗号化した状態 で格納 データの列の暗号化 https://msdn.microsoft.com/ja-jp/library/ms179331.aspx Col1 Col2 Col3 1 10000 UserA Col1 Col2 Col3 1 10000 0xA9ghba Col1 Col2 Col3 1 10000 UserA
  27. 27. 透過的なデータ暗号化 (TDE : Transparent Data Encryption) データ暗号化のためのキー (証明書) を用いて、データベース全体を暗号化 透過的なデータ暗号化 (TDE) https://msdn.microsoft.com/ja-jp/library/bb934049.aspx
  28. 28. バックアップの暗号化 データベースのバックアップを暗号化し、適切なキー (証明書) がない環境では、バック アップをリストアすることはできない バックアップの暗号化 https://msdn.microsoft.com/ja-jp/library/dn449489.aspx
  29. 29. Always Encrypted : 常に暗号化した状態でのデータ操 作 アプリケーション 列マスターキー (CMK) SQL Server 接続文字列に以下の設定を追加 Column Encryption Setting=enabled 列の暗号化キー(CEK) @Param = 'ABCDEFG' SELECT * FROM Table WHERE Col2 = @Param アプリケーションからは通常の文字列で検索 @Param = 0x7fg68 SELECT * FROM Table WHERE Col1 = @Param Col1 Col2 Col3 1 0x7fg68 JPN 2 0x7ff65e JPN 3 0y8fj75e USA Col1 Col2 Col3 1 0x7fg68 JPN Col1 Col2 Col3 1 ABCEDFG JPN SQL Server 側では暗号化された文字列のクエリで検索 (クエリキャッシュも暗号化された文字列でキャッシュ) データは暗号化された文字列で検索 (データキャッシュも暗号化された文字列でキャッシュ) 複合化された状態で見える 暗号化された状態で返却 Enhanced ADO.NET Library
  30. 30. 動的データマスク SP1 から全エディションで利用可能 特定の列のデータを取得時に透過的にマスクすることでセキュリティ向上させる UNMASK の権限を持っているユーザーはマスクされていない状態でデータを取得可能 Col1 Col2 Col3 1 10000 UserA 2 20000 UserA 3 30000 UserB UserA Col1 Col2 Col3 1 0 UxxA 2 0 UxxA 3 0 UxxB マスクした状態の列を返す SELECT * FROM Table
  31. 31. 行レベルセキュリティ SP1 から全エディションで利用可能 透過的にフィルターを設定することで、特定条件にマッチするデータのみを取得可能にする INSERT / UPDATE / DELETE については、ブロック述語を使用して制限をする Col1 Col2 Col3 1 10000 UserA 2 20000 UserA 3 30000 UserB UserA Col1 Col2 Col3 1 10000 UserA 2 20000 UserA SELECT * FROM Table フィルターして行を返す
  32. 32. SQL Server の監査機能 ログインの監査 サーバーの監査 (基本的な監査) データベースの監査 (詳細な監査) SQL Server Audit (データベース エンジン) https://msdn.microsoft.com/ja-jp/library/cc280386.aspx ログインの監査の構成 (SQL Server Management Studio) https://msdn.microsoft.com/ja-jp/library/ms175850.aspx
  33. 33. ログインの監査 SQL Server Management Studio (SSMS) で「サーバーのプロパティ」から設定可能 https://msdn.microsoft.com/ja-jp/library/ms177285.aspx ログインの監査の設定 ERRORLOG に出力されたログ
  34. 34. サーバー / データベースの監査の構成 監査仕様 サーバー監査 データベース監査
  35. 35. サーバー / データベースの監査 監査と監査仕様を組み合わせて情報の取得を行う https://msdn.microsoft.com/ja-jp/library/cc280663.aspx 監査の設定 監査仕様の設定 監査ログの内容
  36. 36. 本日のアジェンダ セキュリティ概要 SQL Server のセキュリティを高める機能 まとめ
  37. 37. セキュリティ機能だけでは、 データベース アプリケーションの安全性は 保証されません https://docs.microsoft.com/ja-jp/dotnet/framework/data/adonet/sql/sql-server-security
  38. 38.  本書に記載した情報は本書各項目に関する発行日現在のMicrosoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないためここに記載した情報に 対していかなる責務を負うものではなく提示された情報の信憑性については保証できません。  本書は情報提供のみを目的としています。Microsoft は明示的または暗示的を問わず本書にいかなる保証も与えるものではありません。  すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく本書の如何なる部分についても転載や検索システムへの格納または挿入を行う ことは、どのような形式または手段(電子的、機械的、複写、レコーディング、その他)および目的であっても禁じられています。 これらは著作権保護された権利を制限するものではありません。  Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確に供給 される場合を除いて本書の提供はこれらの特許、商標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。 © 2018 Microsoft Corporation. All rights reserved. Microsoft, Windows, その他本文中に登場した各製品名は、MicrosoftCorporation の米国およびその他の国における登録商標または商標です。 その他記載されている会社名および製品名は一般に各社の商標です。
  39. 39. https://www.microsoft.com/ja-jp/security/default.aspx https://www.microsoft.com/ja-jp/safety/ https://www.ipa.go.jp/security/vuln/10threats2018.html
  40. 40. https://docs.microsoft.com/ja-jp/dotnet/framework/data/adonet/sql/sql-server-security https://docs.microsoft.com/ja-jp/sql/relational-databases/security/surface-area-configuration http://download.microsoft.com/download/4/9/4/4948194B-A613-49ED-90A5-5144313549AB/microsoft- sql-and-the-gdpr.pdf
  41. 41. https://docs.microsoft.com/ja-jp/sql/relational-databases/security/encryption/extensible-key- management-using-azure-key-vault-sql-server https://docs.microsoft.com/ja-jp/sql/relational-databases/security/encryption/sql-server-encryption
  42. 42. https://view.officeapps.live.com/op/view.aspx?src=http%3A%2F%2Fdownload.microsoft.com%2Fdown load%2F8%2FF%2FA%2F8FABACD7-803E-40FC-ADF8- 355E7D218F4C%2FSQL_Server_2012_Security_Best_Practice_Whitepaper_Apr2012.docx

×