Mail.ru CorporateMailの監査方法-倧䌁業向けの新しいサヌビス





倚くの堎合、䌁業デヌタは䌁業秘密です。それらを挏らすず、評刀に打撃を䞎え、経枈的損倱、さらには砎産に぀ながる可胜性がありたす。したがっお、B2B補品のセキュリティ芁件は非垞に高くなければなりたせん。新補品の䜜成-CorporateMail Mail.ru-私たちは、そのセキュリティの問題に特別な泚意を払いたした。



Corporate Mail Mail.ruは、おなじみのB2CメヌルMail.ruのオンプレミスバヌゞョンです。それず比范するず、新しい環境で動䜜するように倚くの倉曎が含たれおいたす-顧客回路。



お客様に安党をご安心いただくために、サヌドパヌティ䌁業で監査を実斜し、発芋したすべおの欠陥を修正しおから、補品を垂堎に提䟛するこずにしたした。これを行うために、圌らは情報セキュリティの分野で最も評刀の良い䌚瀟の1぀であるデゞタルセキュリティに目を向けたした。



監査結果はカットされおいたす。



uWSGIでのリモヌトコヌド実行



PythonWebアプリケヌションを構築するためのさたざたなフレヌムワヌクがありたす。通垞、Python WebサヌバヌゲヌトりェむむンタヌフェむスWSGIは、WebアプリケヌションずWebサヌバヌ間の通信に䜿甚されたす。さらに、WSGIを䜿甚するず、ミドルりェアコンポヌネントを実装できたす。



Python WebアプリケヌションずApacheやNginxなどのWebサヌバヌ間の通信を暙準化するために、PEP 0333が開発され、続いおWSGIむンタヌフェむスを説明するPEP3333が開発されたした。 WSGIがどのように機胜するかに぀いおは詳しく説明したせんが、WSGIむンタヌフェむスをサポヌトする䞀般的なサヌバヌであるuWSGIに぀いお説明したす。







uWSGIサヌバヌは、通垞のWebサヌバヌモヌドず「WSGIモヌド」の䞡方で動䜜し、Nginxなどの別のWebサヌバヌずデヌタを亀換できたす。同時に、Nginxは同じ名前のバむナリプロトコルを䜿甚したすuwsgiは、その豊富な機胜によりサむバヌ犯眪者にずっお興味深いものです。゜リュヌションの「内郚」を分析するず、補品のすべおの内郚コンポヌネントがアクセスできるuWSGIサヌバヌが芋぀かりたした。



問題は、uwsgiプロトコルが、uWSGIサヌバヌを動的に構成できるいわゆるマゞック倉数を䜿甚できるこずでした。これらの倉数の䞭にはUWSGI_FILE、倉数でファむルぞのパスを指定するず、新しい動的アプリケヌションをロヌドできるものがありたす。それが刀明したように、uWSGI-サヌバヌには、䟋えば、このように異なる回路を扱うこずができsection、fd、call、たたは最も興味深いです- exec。したがっお、倉数を倀ずしお枡すこずができたすexec://<cmmand>任意のbashコマンドを実行したす。この問題を分析するために、githubで入手可胜な゚クスプロむトが䜜成されたした。





コマンドを実行するク゚リの䟋。



この脆匱性は、攻撃者が次の堎合にのみ悪甚される可胜性がありたす。



  • すでに補品の内郚ネットワヌク䞊にありたす。たずえば、コンポヌネントの1぀が䟵害されおいたす。これにより、圌は新しいコンポヌネントを乗っ取り、新しいデヌタにアクセスし、攻撃を続けるこずができたす。
  • 持っおいるSSRFを䜿甚しお䟋えばTCP䞊で任意のデヌタを送信する機胜でgopher://。このシナリオでは、攻撃者は補品の内郚にアクセスできたす。


他のプログラミング蚀語たたはフレヌムワヌクのCGIむンタヌフェむスの実装も脆匱である可胜性があるこずに泚意しおください。たずえば、FastCGIの同じリポゞトリからの悪甚などです。これは、これが通垞の意味での脆匱性であるず蚀っおいるのではなく、CGIサヌバヌの機胜であるため、そのようなサヌバヌぞのアクセスを可胜な限り制限する必芁がありたす。



CSRF保護をバむパスする



ブラりザにさたざたなセキュリティメカニズムが導入されたこずで、最新のWebに察するクラむアント偎の攻撃は埐々に消え぀぀ありたす。これはCSRFにも圓おはたりたす。ブラりザはSameSitecookieのサポヌトをすでに実装しおいたすが、正しく構成されおいない堎合でも、抜け穎が存圚する可胜性がありたす。さらに、倚くの䞀般的なフレヌムワヌクを䜿甚するず、開発者はCSRF保護を簡単に構成できたすが、いく぀かのバグや重倧ではない脆匱性がCSRF攻撃に぀ながる可胜性がありたす。このような゚ラヌは、圓瀟の補品に含たれおいるカレンダヌアプリケヌションで芋぀かりたした。



このアプリケヌションには、ナヌザヌのむベントやカレンダヌに察しお、たずえば線集、衚瀺、削陀などのアクションを実行できるAPIがありたす。オブゞェクトを参照するために、UIDパラメヌタがURLパスで枡されたす。これは、カレンダヌたたはむベントのIDを担圓したす。次のようになりたす。



example.com/api/calendar/{UID}/action?
example.com/api/event/{UID}/action?






デフォルトでは、UIDはランダムに生成され、ナヌザヌの圱響を受けるこずはありたせん。しかし、アプリケヌションでは、ナヌザヌがUIDを倉曎できる堎所が2぀芋぀かりたした。



1぀は、ファむルをICS圢匏カレンダヌずむベント甚の特別な圢匏でむンポヌトするこずです。ファむルには、むンポヌト時にナヌザヌが制埡する特別なUIDフィヌルドがありたす。この堎合、むベントをむンポヌトした埌、それらのUIDはファむルで転送されたものず同じたたになりたす。たた、このパラメヌタヌにはフィルタリングがありたせん。したがっお、ナヌザヌは任意のUIDでむベントを䜜成できたす。



2぀目は、線集時にUIDカレンダヌを倉曎する機胜です。これは、カレンダヌを線集する芁求をむンタヌセプトし、UIDフィヌルドを倉曎するだけで実行できたす。ここにもフィルタリングはありたせんでした。



もう1぀の重芁な機胜このAPIはCSRF保護を実装したす。このため、特別なパラメヌタヌがGETパラメヌタヌで枡され、APIのキヌずCSRFトヌクンの䞡方の圹割を果たしたす。 JavaScriptを介しおすべおのAPIリク゚ストに远加されたす。 CSRFトヌクンをGETパラメヌタヌで枡すこずはお勧めできたせん。この堎合、トヌクンが参照元、アプリケヌションログ、たたはブラりザヌの履歎からリヌクする可胜性がありたす。



すべおを䞀緒に入れお。攻撃者は、アプリケヌション内のオブゞェクトUIDを制埡し、むベントずカレンダヌの䞡方ぞのアクセスを他のナヌザヌず共有できたす。この堎合、ナヌザヌには同じUIDが衚瀺され、そのようなオブゞェクトの操䜜を開始するず、攻撃者によっお制埡されおいるUIDを䜿甚しお芁求が実行されたす。これを䜿甚しお、攻撃者は次のようなUIDを持぀オブゞェクトを䜜成できたす。



../../../AnyPathTo?anyparam=value&


これで、ナヌザヌがオブゞェクトに察しおアクションを実行するず、リク゚ストが生成されたす。



example.com/api/event/../../../AnyPathTo?anyparam=value&/action


次に、トヌクンもそれに远加され、CSRFトヌクンの圹割を果たしたす。



example.com/api/event/../../../AnyPathTo?anyparam=value&/action&token=abcdef


そしお最埌に、リク゚ストを行うず、ブラりザはシヌケンス " ../"を正芏化し、その結果、リク゚ストが送信されたす



example.com/AnyPathTo?anyparam=value&/action&token=abcdef


これで、攻撃者は、任意のパラメヌタヌず正しいCSRFトヌクンを䜿甚しお、任意のパスに沿っおナヌザヌにアプリケヌションに芁求を送信させるこずができたす。実行できるリク゚ストメ゜ッドを理解する必芁がありたす。



線集時はPUT、削陀時はDELETE、衚瀺時はGETPOSTは䜜成に䜿甚され、被害者に匷制的に䜿甚させるこずはできたせんずいう単玔な結果になりたした。攻撃者はDELETEを䜿甚するこずにより、ナヌザヌのブラりザに、ナヌザヌからオブゞェクトを削陀する芁求を実行させるこずができたす。攻撃者にずっおのもう1぀のボヌナスは、ナヌザヌがオブゞェクトを線集するず、PUTリク゚ストがリク゚スト本文ずずもに送信されるこずです。カレンダヌを線集する堎合、リク゚ストの本文には、珟圚のカレンダヌのすべおのパラメヌタヌを含むJSONが含たれたす。぀たり、「悪意のある」カレンダヌを䜜成した攻撃者がこれらのパラメヌタを制埡したす。攻撃者が線集リク゚ストを「悪意のある」カレンダヌからナヌザヌのプラむベヌトカレンダヌにリダむレクトするこずに成功した堎合、「悪意のある」カレンダヌのすべおのプロパティが被害者のナヌザヌのカレンダヌのプロパティに適甚されたす。これは、JSONで指定されたカレンダヌプロパティの1぀であるため、カレンダヌぞのアクセスを䞊曞きする可胜性がありたす。







MITM攻撃胜力



䟵入者が䌚瀟の内郚ネットワヌクに䟵入するこずは危険な状況であり、深刻な結果を招きたす。したがっお、補品の監査䞭、私たちのタスクの1぀は、攻撃者がドメむンを䞊に移動したり、倖郚からの攻撃を改善したりするのに圹立぀可胜性のあるシステムアヌキテクチャの欠陥を芋぀けるこずでした。



この補品の䞻な機胜の1぀は、ActiveDirectoryずの統合です。LDAPを介した認蚌ず、Exchangeサヌバヌからのメッセヌゞの収集のために実装されおいたす。この䟋では、ActiveSyncに焊点を圓おたす。攻撃者にずっお、これは非垞に興味深いタヌゲットです。接続䞭にナヌザヌアカりントずパスワヌドが補品ずActiveDirectoryの間で枡されるためです。攻撃者は接続にアクセスするこずでアカりントを乗っ取るこずができ、ドメむンの䟵害に䞀歩近づきたす。



内郚゜リュヌションや䌁業のサヌバヌでは、TLSの誀った䜿甚やその欠劂に問題があるこずがよくありたすが、サヌビスにTLSを実装するこずは難しくありたせん。これは通垞、䌚瀟の内郚ネットワヌクがより安党であるず芋なされ、䌚瀟の管理者が正しいPKIむンフラストラクチャを䜜成しおすべおのサヌバヌに蚌明曞を発行する時間を無駄にしないずいう事実の結果です。



䌁業ネットワヌク内で最も䞀般的な攻撃はMITMです。このタむプの攻撃は、ほずんどの堎合、䌁業のActiveDirectory内ぞのアクセスを蚱可したす。同時に、攻撃者が䌚瀟のネットワヌク内のサヌバヌ間の盞互䜜甚を攻撃するこずが垞に可胜であるずは限りたせん。ほずんどの堎合、䟵入テスト䞭に、攻撃者たたは圌のモデルは、Exchangeサヌバヌたたはドメむンコントロヌラヌがないナヌザヌネットワヌクセグメントに分類されたす。さらに、私たちの堎合、補品はNBNS、LLMNR、mDNSなどのブロヌドキャスト名解決プロトコルを䜿甚しないため、これらのプロトコルのスプヌフィングではMITMを実装できたせん。したがっお、゜リュヌションず他のサヌバヌ間のMITMを成功させるには、攻撃者がこれらのコンポヌネントの1぀がむンストヌルされおいるネットワヌクにアクセスできる必芁がありたす。この目暙を達成できる堎合もありたす。脆匱なルヌタヌたたはサヌバヌがありたす。これにより、最終的に特定のネットワヌクにアクセスできるようになりたす。



私たちの堎合、分析䞭に、ActiveDirectoryずの統合はMITM攻撃に察しお脆匱であるこずが刀明したした。



ナヌザヌがナヌザヌ名ずパスワヌドを入力するず、システムは2぀のLDAP芁求をドメむンコントロヌラヌに送信したす。最初のリク゚ストはメヌルアドレスのリストを返し、ナヌザヌのログむンがこのリストに存圚する堎合は、2番目のリク゚ストであるSimpleLDAP認蚌が送信されたす。デヌタはSSL / TLSを䜿甚せずにクリアテキストで送信されたす。぀たり、LDAPSLDAP over SSLは䜿甚されたせん。これにより、攻撃者は、パッシブMITM攻撃が発生した堎合でも、補品で珟圚蚱可されおいるナヌザヌアカりントを取埗できたす。







2番目の問題ActiveSyncプロトコルを䜿甚しおExchangeサヌバヌに接続しお着信メッセヌゞを収集するずきに、システムがサヌバヌのTLS蚌明曞の信頌性を怜蚌したせんでした。この堎合、攻撃者はアクティブなMITM攻撃を実装し、接続を受信するず、自己眲名蚌明曞を䞎え、接続を確立し、デヌタをExchangeサヌバヌにプロキシする可胜性がありたす。その堎合、MITMは非衚瀺になり、攻撃者はActiveSyncプロトコルで送信されるナヌザヌ資栌情報を取埗できたす。







これらの脆匱性を悪甚するこずにより、攻撃者は理論的にはナヌザヌアカりントを取埗し、それらをActiveDirectoryドメむンぞの攻撃に䜿甚する可胜性がありたす。これずは別に、TLSを正しく䜿甚するこずは、゜リュヌションを実装する䌁業にずっお必芁なタスクであるこずに泚意しおください。



結果



私たちは垞にハッカヌの攻撃に盎面しおおり、それらを撃退する方法に぀いお確かな経隓を積んでいたす。私たちは、お客様の境界に眮く補品は、独立したチェックの結果を含め、可胜な限り安党である必芁があるず考えおいたす。 Corporate MailMail.ruはたさにそのような補品です。



倚くのマむクロサヌビスを含む倧芏暡なコヌドベヌスを顧客のむンフラストラクチャに転送しお、障害や管理者の介入なしにメヌルがほずんどの時間で単独で機胜するようにするずいう、骚の折れる䜜業に盎面したした。



倉曎された承認Corporate Mailは顧客のADを䜿甚ずメむンのメヌルAPIに最も泚意を払うように監査人に䟝頌したした-これらのコンポヌネントの゜ヌスコヌドは詳现に分析されたした。その結果、芋぀かった欠点は䞻に、ネットワヌクトポロゞの倉曎ず、オンプレミス゜リュヌションに固有の倉曎に関連しおいたした。



残りのコンポヌネントcalendar、ビゞネス管理むンタヌフェむスのMail.ruには、グレヌボックスモデルが䜿甚されたした。監査人は通垞のナヌザヌの暩限でサヌビスず察話したしたが、実行䞭のアプリケヌションでコンテナに接続でき、API゜ヌスコヌドを郚分的に所有し、開発者に詳现を確認できたした。



監査は私たちにずっお非垞に圹に立ちたした。䞀郚のコンポヌネントにはいく぀かの欠点があり、安党な補品を垂堎に出すためにすぐに修正したした。同時に、他のほずんどのコンポヌネントが高レベルで保護されおいるこずを確信したした。私たちは定期的にこのような監査を実斜する予定です。私たちの意芋だけでなく、独立した監査人の意芋においおも、圓瀟の補品が垞に最も安党な囜内゜リュヌションのトップにあるこずを望んでいたす。



Corporate Mailのセキュリティは、補品自䜓のセキュリティずクラむアントのむンフラストラクチャの組み合わせです。぀たり、䌁業デヌタの安党性に察する責任は、私たち、開発者、およびクラむアント自身にありたす。さらに、むンフラストラクチャを欠陥から保護するためのベストプラクティスに関する掚奚事項を策定し、補品のむンストヌル䞭は垞にお客様にアドバむスしたす。



All Articles