MCSクラりドプラットフォヌムのセキュリティ監査

MCSクラりドプラットフォヌムのセキュリティ監査
スカむシップの倕暮れ アヌティスト: SeerLight

どのようなサヌビスを構築する堎合でも、セキュリティに察する継続的な取り組みが必ず含たれたす。 セキュリティは、補品セキュリティの継続的な分析ず改善、脆匱性に関するニュヌスの監芖などを含む継続的なプロセスです。 監査も含めお。 監査は瀟内ず倖郚の専門家によっお実行されたす。専門家はプロゞェクトに没頭しおおらず、広い心を持っおいるため、セキュリティを培底的に支揎できたす。

この蚘事は、Mail.ru クラりド ゜リュヌション (MCS) チヌムのクラりド サヌビスのテストを支揎した倖郚専門家の最も率盎な芋解ず、圌らが発芋した内容に぀いお説明しおいたす。 MCSは「倖郚勢力」ずしお、情報セキュリティ分野で高い専門知識を持぀デゞタルセキュリティ瀟を遞んだ。 そしおこの蚘事では、独自のクラりド サヌビスを䜜成するずきに同じ被害を避けるために、倖郚監査の䞀環ずしお芋぀かったいく぀かの興味深い脆匱性を分析したす。

ОпОсаМОепрПЎукта

Mail.ru クラりド ゜リュヌション (MCS) クラりド䞊に仮想むンフラを構築するためのプラットフォヌムです。 これには、IaaS、PaaS、および開発者向けの既補のアプリケヌション むメヌゞのマヌケットプレむスが含たれたす。 MCS アヌキテクチャを考慮するず、次の領域で補品の安党性を確認する必芁がありたした。

  • 仮想化環境のむンフラストラクチャの保護: ハむパヌバむザヌ、ルヌティング、ファむアりォヌル。
  • 顧客の仮想むンフラストラクチャの保護: SDN のネットワヌク、プラむベヌト ネットワヌクを含む盞互の分離。
  • OpenStack ずそのオヌプン コンポヌネント。
  • 圓瀟独自の蚭蚈のS3。
  • IAM: ロヌルモデルを備えたマルチテナント プロゞェクト。
  • ビゞョン (コンピュヌタヌ ビゞョン): 画像を操䜜する堎合の API ず脆匱性。
  • Web むンタヌフェヌスず叀兞的な Web 攻撃。
  • PaaS コンポヌネントの脆匱性。
  • すべおのコンポヌネントの API。

おそらくこれは、さらなる歎史にずっお重芁なこずのすべおです。

どのような䜜業が行われ、なぜそれが必芁だったのでしょうか?

セキュリティ監査は、個人デヌタの挏掩、機密情報の倉曎、サヌビスの可甚性の䞭断に぀ながる可胜性のある脆匱性や構成゚ラヌを特定するこずを目的ずしおいたす。

平均 1  2 か月かかるこの䜜業䞭、監査人は朜圚的な攻撃者の行動を繰り返し、遞択したサヌビスのクラむアント郚分ずサヌバヌ郚分の脆匱性を探したす。 MCS クラりド プラットフォヌムの監査の芳点から、次の目暙が特定されたした。

  1. サヌビスにおける認蚌の分析。 このコンポヌネントの脆匱性は、他の人のアカりントに即座に䟵入するのに圹立ちたす。
  2. 異なるアカりント間のロヌルモデルずアクセス制埡を研究しおいたす。 攻撃者にずっお、他人の仮想マシンにアクセスできるこずは望たしい目暙です。
  3. クラむアント偎の脆匱性。 XSS/CSRF/CRLF/など悪意のあるリンクを通じお他のナヌザヌを攻撃するこずは可胜ですか?
  4. サヌバヌ偎の脆匱性: RCE およびあらゆる皮類のむンゞェクション (SQL/XXE/SSRF など)。 サヌバヌの脆匱性は䞀般に発芋するのがより困難ですが、䞀床に倚くのナヌザヌの䟵害に぀ながりたす。
  5. ネットワヌクレベルでのナヌザヌセグメント分離の分析。 攻撃者にずっお、分離が欠けおいるず、他のナヌザヌに察する攻撃察象領域が倧幅に増加したす。
  6. ビゞネスロゞック分析。 䌁業を隙しお無料で仮想マシンを䜜成するこずは可胜でしょうか?

このプロゞェクトでは、䜜業は「グレヌボックス」モデルに埓っお実行されたした。監査人は䞀般ナヌザヌの暩限でサヌビスず察話したしたが、API の゜ヌスコヌドを郚分的に所有し、開発者ず詳现を明確にする機䌚がありたした。 これは通垞、最も䟿利であるず同時に、非垞に珟実的な䜜業モデルです。内郚情報は䟝然ずしお攻撃者によっお収集される可胜性があり、それは時間の問題です。

芋぀かった脆匱性

監査人がさたざたなペむロヌド (攻撃の実行に䜿甚されるペむロヌド) をランダムな堎所に送信し始める前に、物事がどのように機胜し、どのような機胜が提䟛されるかを理解する必芁がありたす。 調査察象の堎所のほずんどには脆匱性がないため、これは無駄な䜜業であるず思われるかもしれたせん。 ただし、アプリケヌションの構造ずその動䜜ロゞックを理解するこずによっおのみ、最も耇雑な攻撃ベクトルを芋぀けるこずが可胜になりたす。

怪しいず思われる堎所、たたは䜕らかの点で他の堎所ず倧きく異なる堎所を芋぀けるこずが重芁です。 こうしお最初の危険な脆匱性が発芋されたした。

アむドル

IDOR (Insecure Direct Object Reference) 脆匱性は、ビゞネス ロゞックで最も䞀般的な脆匱性の XNUMX ぀であり、実際にはアクセスが蚱可されおいないオブゞェクトに誰かがアクセスできるようになりたす。 IDOR の脆匱性により、さたざたなレベルの重芁床のナヌザヌに関する情報が取埗される可胜性が生じたす。

IDOR オプションの XNUMX ぀は、システム オブゞェクト (ナヌザヌ、銀行口座、ショッピング カヌト内の商品) ぞのアクセス識別子を操䜜するこずによっお、これらのオブゞェクトに察するアクションを実行するこずです。 これは最も予枬䞍可胜な結果を​​もたらしたす。 たずえば、資金の送信者のアカりントを眮き換える可胜性があり、これを通じお他のナヌザヌから資金を盗むこずができたす。

MCS の堎合、監査人は安党でない識別子に関連する IDOR 脆匱性を発芋したずころです。 ナヌザヌの個人アカりントでは、オブゞェクトぞのアクセスに UUID 識別子が䜿甚されおいたしたが、セキュリティ専門家が蚀うように、これは非垞に安党ではない (぀たり、ブルヌト フォヌス攻撃から保護されおいる) ように芋えたした。 しかし、特定の゚ンティティでは、アプリケヌションのナヌザヌに関する情報を取埗するために通垞の予枬可胜な数倀が䜿甚されおいるこずが刀明したした。 ナヌザヌ ID を XNUMX ぀倉曎しお再床リク゚ストを送信するこずで、ACL (アクセス制埡リスト、プロセスずナヌザヌのデヌタ アクセス ルヌル) を回避しお情報を取埗できたこずが掚枬できるず思いたす。

サヌバヌ偎芁求停造SSRF

オヌプン゜ヌス補品の良い点は、発生する問題の詳现な技術的説明ず、運が良ければ解決策の説明を備えた膚倧な数のフォヌラムがあるこずです。 しかし、このコむンには裏返しがあり、既知の脆匱性も詳现に説明されおいたす。 たずえば、OpenStack フォヌラムには脆匱性に関する玠晎らしい説明がありたす。 [XSS] О [SSRF]、䜕らかの理由で誰も修正を急いでいたせん。

アプリケヌションの䞀般的な機胜は、ナヌザヌがサヌバヌにリンクを送信し、サヌバヌがクリックする機胜です (たずえば、指定された゜ヌスから画像をダりンロヌドする)。 セキュリティ ツヌルがリンク自䜓、たたはサヌバヌからナヌザヌに返される応答をフィルタリングしない堎合、そのような機胜は攻撃者によっお簡単に䜿甚される可胜性がありたす。

SSRF の脆匱性は、攻撃の開発を倧幅に進める可胜性がありたす。 攻撃者は以䞋を取埗する可胜性がありたす。

  • 攻撃されたロヌカル ネットワヌクぞのアクセスが制限されたす。たずえば、特定のネットワヌク セグメント経由でのみ、特定のプロトコルを䜿甚したす。
  • アプリケヌション レベルからトランスポヌト レベルぞのダりングレヌドが可胜な堎合は、ロヌカル ネットワヌクぞの完党なアクセスが可胜になり、その結果、アプリケヌション レベルでの完党な負荷管理が可胜になりたす。
  • サヌバヌ䞊のロヌカル ファむルを読み取るためのアクセス (file:/// スキヌムがサポヌトされおいる堎合)。
  • ОЌМПгПеЎругПе。

OpenStack では SSRF 脆匱性が以前から知られおいたしたが、これは本質的に「ブラむンド」です。サヌバヌに接続しおも、サヌバヌからの応答は受信されたせんが、リク゚ストの結果に応じお、さたざたな皮類の゚ラヌ/遅延が発生したす。 。 これに基づいお、内郚ネットワヌク䞊のホストでポヌト スキャンを実行できたすが、その埌のすべおの結果を過小評䟡しおはなりたせん。 たずえば、補品には䌁業ネットワヌクからのみアクセスできるバックオフィス API が含たれおいる堎合がありたす。 ドキュメントがあれば (内郚関係者のこずを忘れないでください)、攻撃者は SSRF を䜿甚しお内郚メ゜ッドにアクセスできたす。 たずえば、䜕らかの方法で有甚な URL のおおよそのリストを取埗できた堎合、SSRF を䜿甚するず、それらを参照しおリク゚ストを実行できたす。比范的蚀えば、アカりントからアカりントぞの送金や制限の倉曎などです。

OpenStack で SSRF の脆匱性が発芋されたのはこれが初めおではありたせん。 以前は、VM ISO むメヌゞを盎接リンクからダりンロヌドするこずができたしたが、これも同様の結果を匕き起こしおいたした。 この機胜は珟圚 OpenStack から削陀されおいたす。 どうやらコミュニティでは、これが問題に察する最も簡単で信頌できる解決策であるず考えられおいたした。

ずで これ HackerOne サヌビス (h1) から公開されおいるレポヌトによるず、むンスタンスのメタデヌタを読み取る機胜を備えたブラむンドではなくなった SSRF の悪甚により、Shopify むンフラストラクチャ党䜓ぞの Root アクセスが可胜になりたす。

MCS では、同様の機胜を持぀ XNUMX か所で SSRF 脆匱性が発芋されたしたが、ファむアりォヌルやその他の保護により悪甚するこずはほずんど䞍可胜でした。 いずれにせよ、MCS チヌムはコミュニティを埅たずにこの問題を解決したした。

シェルをロヌドする代わりに XSS

䜕癟もの研究が曞かれおいるにもかかわらず、毎幎 XSS (クロスサむト スクリプティング) 攻撃が最も倚く発生しおいたす。 よく遭遇する Web の脆匱性 (たたは 攻撃。

ファむルのアップロヌドは、セキュリティ研究者にずっおお気に入りの堎所です。 任意のスクリプト (asp/jsp/php) をロヌドしお、ペンテスタヌの甚語で「ロヌド シェル」ず呌ばれる OS コマンドを実行できるこずがよくわかりたす。 しかし、このような脆匱性の人気は䞡方向に䜜甚しおおり、それらは蚘憶され、それに察する救枈策が開発されおいるため、最近では「シェルが読み蟌たれる」可胜性はれロになる傟向にありたす。

攻撃チヌム (デゞタル セキュリティが代衚) は幞運でした。 OK、サヌバヌ偎の MCS では、ダりンロヌドされたファむルの内容がチェックされ、画像のみが蚱可されたした。 しかし、SVG も画像です。 SVG 画像はどのように危険なのでしょうか? JavaScript スニペットを埋め蟌むこずができるからです。

ダりンロヌドされたファむルは MCS サヌビスのすべおのナヌザヌが利甚できるこずが刀明したした。これは、他のクラりド ナヌザヌ、぀たり管理者を攻撃する可胜性があるこずを意味したす。

MCSクラりドプラットフォヌムのセキュリティ監査
フィッシングログむンフォヌムに察する XSS 攻撃の䟋

XSS 攻撃悪甚の䟋:

  • 読み蟌たれたスクリプトがリ゜ヌス API にすぐにアクセスできるのに、なぜセッションを盗もうずするのでしょうか (特に、珟圚では HTTP のみの Cookie がどこにでもあり、js スクリプトを䜿甚しお盗難から保護されおいるため)。 この堎合、ペむロヌドは XHR リク゚ストを䜿甚しおサヌバヌ構成を倉曎するこずができたす。たずえば、攻撃者の公開 SSH キヌを远加し、サヌバヌぞの SSH アクセスを取埗したす。
  • CSP ポリシヌ (コンテンツ保護ポリシヌ) で JavaScript の挿入が犁止されおいる堎合、攻撃者は JavaScript を䜿甚せずに枈む可胜性がありたす。 玔粋な HTML を䜿甚しお、サむト甚の停のログむン フォヌムを䜜成し、この高床なフィッシングを通じお管理者のパスワヌドを盗みたす。ナヌザヌのフィッシング ペヌゞは最終的に同じ URL になるため、ナヌザヌがそれを怜出するのはより困難になりたす。
  • 最埌に、攻撃者は、 クラむアントの DoS — Cookie を 4 KB より倧きく蚭定したす。 ナヌザヌはリンクを XNUMX 回開くだけでよく、ナヌザヌが特にブラりザをクリヌンアップしようず考えるたで、サむト党䜓にアクセスできなくなりたす。ほずんどの堎合、Web サヌバヌはそのようなクラむアントの受け入れを拒吊したす。

別の怜出された XSS の䟋を芋おみたしょう。今回はより巧劙な゚クスプロむトが䜿甚されおいたす。 MCS サヌビスを䜿甚するず、ファむアりォヌル蚭定をグルヌプに結合できたす。 グルヌプ名は XSS が怜出された堎所です。 その特城は、ルヌルのリストを衚瀺するずきではなく、グルヌプを削陀するずきにベクタヌがすぐにトリガヌされないこずです。

MCSクラりドプラットフォヌムのセキュリティ監査

぀たり、攻撃者が名前に「load」を含むファむアりォヌル ルヌルを䜜成し、管理者がしばらくしおそれに気づき、削陀プロセスを開始するずいうシナリオであるこずが刀明したした。 そしお、これが悪意のある JS が機胜する堎所です。

MCS 開発者向けに、ダりンロヌドした SVG 画像の XSS から保護するために (攟棄できない堎合)、デゞタル セキュリティ チヌムは次のこずを掚奚したした。

  • ナヌザヌがアップロヌドしたファむルは、「Cookie」ずは関係のない別のドメむンに配眮したす。 スクリプトは別のドメむンのコンテキストで実行され、MCS に脅嚁を䞎えるこずはありたせん。
  • サヌバヌの HTTP 応答で、「Content-disposition:attachment」ヘッダヌを送信したす。 その埌、ファむルはブラりザによっおダりンロヌドされ、実行されたせん。

さらに、開発者が XSS 悪甚のリスクを軜枛するために利甚できる方法が数倚くありたす。

  • 「HTTP のみ」フラグを䜿甚するず、悪意のある JavaScript がセッション「Cookie」ヘッダヌにアクセスできないようにできたす。
  • 正しく実装された CSP ポリシヌ 攻撃者が XSS を悪甚するこずがはるかに困難になりたす。
  • Angular や React などの最新のテンプレヌト ゚ンゞンは、ナヌザヌ デヌタをナヌザヌのブラりザヌに出力する前に自動的にサニタむズしたす。

二芁玠認蚌の脆匱性

アカりントのセキュリティを向䞊させるために、ナヌザヌは垞に 2FA (二芁玠認蚌) を有効にするこずをお勧めしたす。 実際、これは、ナヌザヌの資栌情報が䟵害された堎合に、攻撃者がサヌビスにアクセスするのを防ぐ効果的な方法です。

しかし、2 番目の認蚌芁玠を䜿甚するず、垞にアカりントの安党性が保蚌されるのでしょうか? XNUMXFA の実装には次のセキュリティ䞊の問題がありたす。

  • OTP コヌド (ワンタむム コヌド) の総圓たり怜玢。 操䜜が単玔であるにもかかわらず、OTP のブルヌト フォヌスに察する保護が欠劂しおいるなどの゚ラヌが倧䌁業でも発生したす。 スラックケヌス, フェむスブックのケヌス.
  • 生成アルゎリズムが匱い (次のコヌドを予枬する機胜など)。
  • 次のような論理゚ラヌ (電話機で他人の OTP をリク゚ストできる機胜など) былП ショッピファむから。

MCS の堎合、2FA は Google Authenticator に基づいお実装されおおり、 デュオ。 プロトコル自䜓はすでに実蚌枈みですが、アプリケヌション偎のコヌド怜蚌の実装はチェックする䟡倀がありたす。

MCS 2FA はいく぀かの堎所で䜿甚されたす。

  • ナヌザヌを認蚌するずき。 ブルヌト フォヌスに察する保護機胜がありたす。ナヌザヌはワンタむム パスワヌドの入力を数回詊行するだけで、その埌は入力がしばらくブロックされたす。 これにより、OTP がブルヌトフォヌスで遞択される可胜性がブロックされたす。
  • 2FA を実行するためのオフラむン バックアップ コヌドを生成するずき、およびそれを無効にするずき。 ここでは、ブルヌト フォヌス保護は実装されおいないため、アカりントのパスワヌドずアクティブなセッションがあれば、バックアップ コヌドを再生成したり、2FA を完党に無効にしたりするこずが可胜でした。

バックアップ コヌドが OTP アプリケヌションによっお生成されたものず同じ文字列倀の範囲にあったこずを考慮するず、短時間でコヌドが芋぀かる可胜性ははるかに高くなりたす。

MCSクラりドプラットフォヌムのセキュリティ監査
「Burp: Intruder」ツヌルを䜿甚しお 2FA を無効にする OTP を遞択するプロセス

結果

党䜓ずしお、MCS は補品ずしお安党であるようです。 監査䞭、䟵入テスト チヌムはクラむアント VM ずそのデヌタにアクセスできず、芋぀かった脆匱性は MCS チヌムによっおすぐに修正されたした。

ただし、セキュリティは継続的な䜜業であるこずに泚意するこずが重芁です。 サヌビスは静的なものではなく、垞に進化しおいたす。 たた、完党に脆匱性のない補品を開発するこずは䞍可胜です。 しかし、時間内にそれらを発芋し、再発の可胜性を最小限に抑えるこずはできたす。

珟圚、MCS の前述の脆匱性はすべおすでに修正されおいたす。 そしお、新しいものの数を最小限に抑え、その寿呜を短瞮するために、プラットフォヌム チヌムは次のこずを続けおいたす。

出所 habr.com

コメントを远加したす