Security Technical Implementation Guides (STIGs)に準拠したWindows Serverを追加費用無しで利用できるようになりました

2019.09.29

中山(順)です

先日、Security Technical Implementation Guides (STIGs)に準拠したWindows AMIが追加費用なしで利用でいるようになりました。

Introducing new Amazon EC2 Windows Server AMIs for DISA STIG compliance

Security Technical Implementation Guides (STIGs)とは

STIGsは、アメリカ国防総省(DOD)のセキュリティ要件に準拠するためにDefense Information Systems Agency (DISA) = アメリカ国防情報システム局が提供するチェックリスト/ベストプラクティス集です。

The Security Technical Implementation Guides (STIGs) are the configuration standards for DOD IA and IA-enabled devices/systems. Since 1998, DISA has played a critical role enhancing the security posture of DoD’s security systems by providing the Security Technical Implementation Guides (STIGs). The STIGs contain technical guidance to “lock down” information systems/software that might otherwise be vulnerable to a malicious computer attack.

Security Technical Implementation Guides (STIGs)

8.4. セキュリティー技術導入ガイド (SECURITY TECHNICAL IMPLEMENTATION GUIDE)

DISA STIG について

今回のアップデートでSTIGsに基づいた設定が済んでいるAMIを利用できるようになりました。一部の設定はAMIに組み込まれていないため、詳細はドキュメントを確認してください。

Amazon EC2 Windows Server AMIs for STIG Compliance

実際にどのような設定が行われているのか?

STIGsの具体的な内容については、以下のサイトでリストを入手可能です。

SRG / STIG Library Compilations

"Compilation - SRG-STIG Library - NON-FOUO"にはWindows Serverだけでなく、様々なアプリケーションやOSに関する設定のリストが含まれています。 本投稿の執筆時点では、Windows Server 2012 / 2012 R2については"U_MS_Windows_2012_and_2012_R2_DC_STIG_V2R17_Manual-xccdf.xml"に具体的な設定が記述されています。 その一例として、15分間操作を行わなかった際に画面がロックされる設定がありました。具体的な記述は以下の通りです。

<Group id="V-36735"><title>WINGE-000029</title><description>&lt;GroupDescription&gt;&lt;/GroupDescription&gt;</description><Rule id="SV-51583r2_rule" severity="medium" weight="10.0"><version>WN12-GE-000024</version><title>The system must support automated patch management tools to facilitate flaw remediation.</title><description>&lt;VulnDiscussion&gt;The organization (including any contractor to the organization) must promptly install security-relevant software updates (e.g., patches, service packs, hot fixes).  Flaws discovered during security assessments, continuous monitoring, incident response activities, or information system error handling must also be addressed.&lt;/VulnDiscussion&gt;&lt;FalsePositives&gt;&lt;/FalsePositives&gt;&lt;FalseNegatives&gt;&lt;/FalseNegatives&gt;&lt;Documentable&gt;false&lt;/Documentable&gt;&lt;Mitigations&gt;&lt;/Mitigations&gt;&lt;SeverityOverrideGuidance&gt;&lt;/SeverityOverrideGuidance&gt;&lt;PotentialImpacts&gt;&lt;/PotentialImpacts&gt;&lt;ThirdPartyTools&gt;&lt;/ThirdPartyTools&gt;&lt;MitigationControl&gt;&lt;/MitigationControl&gt;&lt;Responsibility&gt;&lt;/Responsibility&gt;&lt;IAControls&gt;&lt;/IAControls&gt;</description><reference><dc:title>DPMS Target Windows 2012</dc:title><dc:publisher>DISA</dc:publisher><dc:type>DPMS Target</dc:type><dc:subject>Windows 2012</dc:subject><dc:identifier>2350</dc:identifier></reference><ident system="http://iase.disa.mil/cci">CCI-000366</ident><fixtext fixref="F-44712r1_fix">Establish a process to automatically install security-related software updates.</fixtext><fix id="F-44712r1_fix" /><check system="C-46846r1_chk"><check-content-ref name="M" href="DPMS_XCCDF_Benchmark_Windows_2012_DC_STIG.xml" /><check-content>Verify the organization has an automated process to install security-related software updates.  If it does not, this is a finding.</check-content></check></Rule></Group><Group id="V-36736"><title>WINGE-000030</title><description>&lt;GroupDescription&gt;&lt;/GroupDescription&gt;</description><Rule id="SV-51584r1_rule" severity="medium" weight="10.0"><version>WN12-GE-000025</version><title>The system must query the certification authority to determine whether a public key certificate has been revoked before accepting the certificate for authentication purposes.</title><description>&lt;VulnDiscussion&gt;Failure to verify a certificate's revocation status can result in the system accepting a revoked, and therefore unauthorized, certificate.  This could result in the installation of unauthorized software or a connection for rogue networks, depending on the use for which the certificate is intended.   Querying for certificate revocation mitigates the risk that the system will accept an unauthorized certificate.&lt;/VulnDiscussion&gt;&lt;FalsePositives&gt;&lt;/FalsePositives&gt;&lt;FalseNegatives&gt;&lt;/FalseNegatives&gt;&lt;Documentable&gt;false&lt;/Documentable&gt;&lt;Mitigations&gt;&lt;/Mitigations&gt;&lt;SeverityOverrideGuidance&gt;&lt;/SeverityOverrideGuidance&gt;&lt;PotentialImpacts&gt;&lt;/PotentialImpacts&gt;&lt;ThirdPartyTools&gt;&lt;/ThirdPartyTools&gt;&lt;MitigationControl&gt;&lt;/MitigationControl&gt;&lt;Responsibility&gt;&lt;/Responsibility&gt;&lt;IAControls&gt;&lt;/IAControls&gt;</description><reference><dc:title>DPMS Target Windows 2012</dc:title><dc:publisher>DISA</dc:publisher><dc:type>DPMS Target</dc:type><dc:subject>Windows 2012</dc:subject><dc:identifier>2350</dc:identifier></reference><ident system="http://iase.disa.mil/cci">CCI-000366</ident><fixtext fixref="F-44713r1_fix">Install software that  provides certificate validation and revocation checking.</fixtext><fix id="F-44713r1_fix" /><check system="C-46847r1_chk"><check-content-ref name="M" href="DPMS_XCCDF_Benchmark_Windows_2012_DC_STIG.xml" /><check-content>Verify the system has software installed and running that provides certificate validation and revocation checking.  If it does not, this is a finding.</check-content></check></Rule></Group><Group id="V-36773"><title>WINSO-000021</title><description>&lt;GroupDescription&gt;&lt;/GroupDescription&gt;</description><Rule id="SV-51596r2_rule" severity="medium" weight="10.0"><version>WN12-SO-000021</version><title>The machine inactivity limit must be set to 15 minutes, locking the system with the screensaver.</title><description>&lt;VulnDiscussion&gt;Unattended systems are susceptible to unauthorized use and should be locked when unattended.  The screen saver should be set at a maximum of 15 minutes and be password protected.  This protects critical and sensitive data from exposure to unauthorized personnel with physical access to the computer.&lt;/VulnDiscussion&gt;&lt;FalsePositives&gt;&lt;/FalsePositives&gt;&lt;FalseNegatives&gt;&lt;/FalseNegatives&gt;&lt;Documentable&gt;false&lt;/Documentable&gt;&lt;Mitigations&gt;&lt;/Mitigations&gt;&lt;SeverityOverrideGuidance&gt;&lt;/SeverityOverrideGuidance&gt;&lt;PotentialImpacts&gt;&lt;/PotentialImpacts&gt;&lt;ThirdPartyTools&gt;&lt;/ThirdPartyTools&gt;&lt;MitigationControl&gt;&lt;/MitigationControl&gt;&lt;Responsibility&gt;&lt;/Responsibility&gt;&lt;IAControls&gt;&lt;/IAControls&gt;</description><reference><dc:title>DPMS Target Windows 2012</dc:title><dc:publisher>DISA</dc:publisher><dc:type>DPMS Target</dc:type><dc:subject>Windows 2012</dc:subject><dc:identifier>2350</dc:identifier></reference><ident system="http://cce.mitre.org">CCE-23043-3</ident><ident system="http://iase.disa.mil/cci">CCI-000057</ident><fixtext fixref="F-44717r2_fix">Configure the policy value for Computer Configuration -&gt; Windows Settings -&gt; Security Settings -&gt; Local Policies -&gt; Security Options -&gt; "Interactive logon: Machine inactivity limit" to "900" seconds" or less, excluding "0" which is effectively disabled.</fixtext><fix id="F-44717r2_fix" /><check system="C-46851r2_chk"><check-content-ref name="M" href="DPMS_XCCDF_Benchmark_Windows_2012_DC_STIG.xml" /><check-content>If the following registry value does not exist or is not configured as specified, this is a finding:

Registry Hive: HKEY_LOCAL_MACHINE 
Registry Path: \Software\Microsoft\Windows\CurrentVersion\Policies\System\

Value Name: InactivityTimeoutSecs

Value Type: REG_DWORD
Value: 0x00000384 (900) (or less, excluding "0" which is effectively disabled)</check-content></check></Rule></Group>

やってみた

実際に設定が含まれているか確認してみましょう。

AMI IDの確認

まずはAMI IDを確認します。今回提供されるAMIのIDはPublic Parameter Storeで確認することができました。なお、現時点では英語版のAMIのみが提供されているようです。

$ aws ssm get-parameters-by-path --path /aws/service/ami-windows-latest --query Parameters[].Name | grep STIG
"/aws/service/ami-windows-latest/Windows_Server-2012-R2-English-STIG-Core",
    "/aws/service/ami-windows-latest/Windows_Server-2019-English-STIG-Core",
    "/aws/service/ami-windows-latest/Windows_Server-2012-R2-English-STIG-Full",
    "/aws/service/ami-windows-latest/Windows_Server-2016-English-STIG-Full",
    "/aws/service/ami-windows-latest/Windows_Server-2016-English-STIG-Core",
    "/aws/service/ami-windows-latest/Windows_Server-2019-English-STIG-Full",

今回は2012R2で確認してみたいと思います。

$ aws ssm get-parameters --names /aws/service/ami-windows-latest/Windows_Server-2012-R2-English-STIG-Full
{
    "InvalidParameters": [],
    "Parameters": [
        {
            "Name": "/aws/service/ami-windows-latest/Windows_Server-2012-R2-English-STIG-Full",
            "LastModifiedDate": 1568846011.978,
            "Value": "ami-0b69c31435ec52e44",
            "Version": 1,
            "Type": "String",
            "ARN": "arn:aws:ssm:ap-northeast-1::parameter/aws/service/ami-windows-latest/Windows_Server-2012-R2-English-STIG-Full"
        }
    ]
}

インスタンスの作成

インスタンスの作成方法は通常の手順を同じなので割愛します。

設定の違いを確認

先ほどの画面ロックの設定を確認して見ましょう。 以下の通り、記載のレジストリキーが設定されていることが確認できます。

なお、標準のAMIにはレジストリキー自体がありませんでした。

STIGsに対応したAMIから作成したインスタンスにリモートデスクトップ接続を行って15分ほど放置したところ、想定通り画面がロックされました。標準のAMIから作成したインスタンスではロックされませんでした。

まとめ

STIGsに基づいたAMIからWindows Serverのインスタンスを作成することで様々なリスクを抑止することができそうです。

攻撃者があらゆる方法で攻撃の足がかりを探して侵入を試みます。 OSのレイヤーも例外ではありません。 少しでもリスクを排除したいのであれば利用を検討してみてはいかがでしょうか?