倧芏暡プロゞェクトの開発プロセスにセキュリティを統合したす









この蚘事では、ペンテスタヌのチヌムを倧芏暡プロゞェクト「MyOffice」の開発サむクルに導入した経隓を共有したいず思いたす。 ロシア語の実際の症䟋ず同様の䞻題の資料を芋぀けるこずはほずんど䞍可胜です。 ペンテスト、理論、実践、テクニック、ツヌルのファッショナブルな分野に興味があり、安党な開発のコンテキストで実際に脆匱性を発芋した人は誰でも猫にようこそ。 この蚘事には、理論的および実甚的な資料ぞの有甚なリンクがたくさんありたす。 しかし、順番に芋おみたしょう。







免責事項

この蚘事は2぀の郚分で構成されおいたす。 最初の郚分は組織であり、問​​題を特定し、䞀般的に䟵入テストぞのアプロヌチずタスクを解決する方法に぀いお話したすおそらく倚くの人に知られおいる情報が含たれおいたす。 2぀目はより技術的で、発芋されたツヌルず脆匱性の説明がありたす。

username技術的な詳现などの堎合は、2番目の郚分に進むこずができたす。

そしおもちろん、お茶をクッキヌず䞀緒に忘れないでください。







収集しお配垃したす



ペンテストアプロヌチのアむデア



ペンテストずその機胜ぞのアプロヌチを説明する短い玹介から始める䟡倀がありたす。 さたざたなプロファむルのさたざたな䌁業をカバヌする圓瀟の経隓に基づいお、次の郚門が最適ず思われたす。







1回の䟵入テスト



䞀郚の組織銀行や公的䌁業を含むが䟵入テストサヌビスを提䟛する䌚瀟に来お、ペンテスタヌに​​アドレスの範囲を発行するクラシックバヌゞョン。 䜜業を実行した埌、実装チヌムは脆匱性の修正に関する掚奚事項を提䟛したす。







仕事の皮類









耇雑なプロセスず同様に、安党性には「特効薬」はありたせん。アンチりむルス゜フトりェア、䟵入怜知システムなど、システムのセキュリティに完党な信頌を䞎える手段はありたせん。 䟵入テストに぀いおも同じこずが蚀えたす。䟵入テストでは、それぞれにマむナスずプラスがあるため、普遍的なアプロヌチはありたせん。







䞀時的な䟵入テストは、セキュリティの䞀般的な状態を評䟡するのに効果的です。ペンテスタヌは、資金が限られた攻撃者が短時間でシステムに䟵入しようずする状況ず、それが顧客の䌚瀟に䞎える損害をシミュレヌトしたす。







䟵入テストNを幎に1回繰り返したす



このアプロヌチは、「1回限りのペンテスト」たたはその個々の郚分を繰り返したす。 この堎合、セキュリティ監査は幎に数回実行されたす。 䜜業の皮類は、最初のアプロヌチず同じです。







䞀般的なセキュリティ問題の評䟡を䌎う最初の監査の埌、このアプロヌチにより、過去の監査で芋぀かった脆匱性に適甚可胜な修正、修正を適甚する際に発生した問題はい、たた発生、および次のチェックの結果に遅れずに぀いおいくこずができたす。







このオプションを䜿甚するず、過去の䟵入テストの結果に基づくサヌビスに察する認識が高たるため、監査人による䌚瀟の境界のより培底的な調査が可胜になりたす。







バグバりンティのアりト゜ヌシング



このアプロヌチの本質は、オヌプン/クロヌズベヌスで独自のバグバりントプログラムを䜜成するこずであり、これは倖郚組織によっお維持されたす。 このようなチヌムは、ペンテスタヌを恒久的に仕事に匕き付け、脆匱性ごずに個別に支払いを行いたす。 これは、研究者にずっおさらなる収入の良い機䌚です。 このアプロヌチの䜿甚䟋は、アメリカの䌚瀟SYNACKです。







「これはHackerOneずどのように違うのですか」ずいう合理的な疑問が生じたす。䞻な違いは、研究者の数ず圌らのスキルです。 このプログラムに参加するには、攻撃的な䌚瀟の仕事に応募するずきのように、面接ずテストタスクを行う必芁がありたす。 その結果、参加者は少なくなりたすが、党䜓的なスキルレベルは高くなりたすたた、スキャナヌレポヌトを投げるのが倧奜きなキャラクタヌがいないずいうこずもありたす。







䜜業の皮類このアプロヌチのフレヌムワヌク内









このアプロヌチには、脆匱性に察する報酬に動機付けられた数十人の人間の「スキャナヌ」によるサヌビスの継続的な調査が含たれたす。 これにより、䜜業䞭により倚くのカバレッゞを提䟛できたす。







䞊蚘の利点にもかかわらず、このアプロヌチには欠点がありたす。









セキュリティ分析は継続的に機胜したす



このアプロヌチに぀いおは、蚘事で詳しく怜蚎したす。 その本質は、リリヌスからリリヌスたで開発された補品の継続的な研究です。







この堎合の䜜業の皮類のリストは、䞊蚘のアプロヌチよりもやや広範です。 以䞋が含たれたす。









デスクトップアプリケヌションやHarderingなどのアむテムに関しおは、タスクはバむナリの脆匱性を芋぀けるこずではなくデスクトップに぀いお説明する堎合、ネゞを完党に締めるこずではありたせんHarderingの堎合。 䞻なものは、Pentester偎からのシステムのビュヌです。







このアプロヌチの特城は、内郚からの保護を䜜成する䌁業の地元の譊備員の仕事に可胜な限り近いずいうこずです。









その結果、䜜業はもはや黒ではなく、私たちの愛する癜い箱によっお行われるこずがわかりたした。











このアプロヌチは、アプリケヌションのセキュリティを分析するための䌚瀟独自のリ゜ヌスセキュリティの専門家の䞍足などの問題の解決にも圹立぀こずに泚意するこずが重芁です。 倚くの研究者は、情報セキュリティのさたざたな分野で垞に経隓を積んでいるため、攻撃的な䌁業を奜む傟向がありたす。







SDLCず圌の友人SecureSDLCに぀いお少し



SDLC



定矩から始めたしょう。 SDLCは、アむデアが生たれおから実際に䜿甚されるたでの間にアプリケヌションを䜜成するために組織が䜿甚するプロセスを定矩する開発フレヌムワヌクです。







珟時点では、倚数のSDLCモデルがありたすが、最も有名なものはWaterfall、Iterative、Agileです詳现に぀いおは、 こちらを参照しおください 。 それらはすべお独自の長所ず短所があり、それぞれの䜿甚方法は非垞に異なりたす。 それはすべお、プロゞェクトの芏暡、予算、人的資源の量、およびその他の機胜に䟝存したす。 これらはすべお、6぀の䞻芁なステヌゞの存圚によっお結合されおいたす。













SecureSDLC



SecureSDLCは同じSDLCですが、Secureプレフィックスが付いおいたす。 プレフィックスを远加するだけで、すべおが安党になりたすいいえ。 このすべおの本質は非垞に簡単です。むンタヌネットの矎しい写真からわかるように、セキュリティ関連のアクションリスク蚈算、静的/動的コヌド分析、ファゞング、トレヌニングなどが各開発段階に远加されおいたす。







画像







埓来のSDLC実装では、セキュリティテストはテストフェヌズに限られおいたした。







拡匵された実装の目的は次のずおりです。









すべおは䜕に基づいおいたすか



珟圚、倚くの䌁業が安党な開発を実践しおいたす。 たずえば、Microsoft、Cisco、Dellなどの倧芏暡で有名なものです。 今日、自尊心のあるベンダヌは意思決定のセキュリティを監芖しおいたすしかし、これは垞にうたくいくずは限りたせん。 各メヌカヌには独自のアプロヌチがあり、開発の内郚機胜に基づいお圢成されたす。







スケルトンずしお、安党な開発を構築する堎合、倚くの人が䞖界で䞀般的に受け入れられおいる慣行を䜿甚したす。









むンタヌネットの次の写真では、ビゞネス機胜ずセキュリティ察策の察応を芋るこずができたす。















タスク条件



珟圚、倧芏暡なプロゞェクト詳现ず機胜-以䞋を実斜しおおり、2぀の倧きな領域で開発を行っおいたす。開発された補品の「最高」ずバむナリ研究です。 この蚘事では、ペンテスタヌ郚分に焊点を圓おたす。







最初に、このプロゞェクトの脆匱性を怜玢するプロセスは、単䞀のペンテストからペンテストたでの段階を経お、幎に数回、倖郚境界サヌビスず開発䞭の補品の䞡方で繰り返されたした。 私たちの意芋では、これらのアプロヌチは、継続的にセキュリティを分析するプロゞェクトずは異なり、それほど効果的であるず蚌明されおいたせん。







叀兞的なアプロヌチで私たちに合わなかったものは䜕ですか 1回限りのペンテストにはいく぀かの欠点がありたす。









開発䞭の補品の内郚機胜に぀いおの監査人の認識が䜎く、コンポヌネントによる分離がないためペンテスタヌの堎合、補品は特定のアドレスパッケヌゞ、モバむルアプリケヌションパッケヌゞ、たたはデスクトップアプリケヌションバむナリのように芋えたす、補品のリストは倚くの本を含む本棚のように芋えたす欠萜しおいる名前-目は豊富なサヌビスから逃げ出したす。











このため、時間の割り圓おの問題が発生したす。これはプロゞェクト党䜓に割り圓おられ、コンポヌネントにあたり泚意を払うこずができたせん。 リ゜ヌスの割り圓おは非効率的であり、補品の詳现な調査には適しおいたせん。 したがっお、補品を条件付きコンポヌネントに分割するこずが決定されたした。







補品のリストを収集したす



私たちの堎合、ドキュメントの共同線集、ファむルの保存、メヌルシステム、メッセンゞャヌのプラットフォヌムであるMyOfficeずいう補品で、New Cloud Technologies瀟ず協力しおいたす。 これらすべおのために、モバむル版ずデスクトップ版の䞡方がありたす。















MyOfficeのような倧芏暡な補品で䜜業を開始する前に、メむンのモゞュヌルずパヌツ䞀芋分割できないように芋えたすを匷調衚瀺しお、たったく同じ本棚が機胜しないようにする必芁がありたす。 これは、アプリケヌションの内郚プロセスずチヌムリ゜ヌスの割り圓おをよりよく理解するために必芁です。







次のようになりたした。









これはすべお、研究者にずっお非垞に興味深いものです。これたでにない前䟋のない技術を研究する機䌚ず、すでに研究されたトピックをさらに掻甚する機䌚の䞡方です。







スプリント蚈画



このような補品の開発プロセスにシヌムレスに統合するには、グロヌバルな蚈画サむクル、この堎合はリリヌスサむクルに適応する必芁がありたす。 「MyOffice」の新しいバヌゞョンのリリヌスは3か月ごずに行われたす。 したがっお、私たちはわずか3か月間だけスプリントを生きたす。 私たちの理解におけるスプリントずは䜕ですか







私たちにずっおのスプリントは、可胜な限り䜜業を蚈画しようずする時間のセルです。 倧きなスプリントの内郚には、より小さな枬定単䜍、぀たり1週間に盞圓するスロットがありたす。 利甚可胜な補品を入手し、それらのサむクルず倉曎の条件を確認し、これらの補品の監査を必芁な順序でスプリントのスケゞュヌルに入れお、スロットに分割したす。







圓然、開発日を控えめに蚀っおも、非垞にひどい結果になるこずがわかっおいるため、「期限が来たらどうするの」ずいう正圓な質問が予想されたす。















ここで、叀い子䟛向けのゲヌムが助けになりたす-「タグ」。 他のチップを移動できる空のセルがあり、それによっおボックスを離れるこずなく順序を倉曎できるこずを芚えおいたすか 私たちの堎合、ボックス-これは「スプリント」です。







さたざたな「予定倖の」䜜業、開発された補品で䜿甚されるサヌドパヌティ゜リュヌションのレビュヌ、およびプロゞェクトに関連する他の䜜業があるため、空のスロットの数を増やすこずが決定されたした。 したがっお、私たちは蚈画を立おお移動し、空のスロットはい぀でも満たすこずができたす。







スプリントの1぀の䟋最初の数字はスプリントの週番号です







  1. コンポヌネントWebアプリケヌションメヌル、連絡先、カレンダヌ
  2. コンポヌネントWebアプリケヌションメヌル、連絡先、カレンダヌ
  3. Android、iOS、Tizen甚のネむティブモバむルアプリ
  4. Android、iOS、Tizen甚のネむティブモバむルアプリ
  5. 認蚌サヌバヌ Webアプリケヌションバック゚ンド
  6. ファむルサヌバヌバック゚ンド、Webダッシュボヌド、および管理API
  7. ドキュメント゚ディタヌWebパネル、Beckend゚ディタヌ
  8. ファむルサヌバヌのデスクトップクラむアント
  9. メヌル、カレンダヌ、連絡先、ドキュメント甚のデスクトップクラむアント
  10. Web、MacOS、Win、LinuxおよびそれらのAPI甚のメッセンゞャヌ
  11. ミス
  12. ミス
  13. ミス


Miscはこれらの空きスロットにすぎず、その存圚は非垞に重芁です。 , , ( , API-), (10 ). Misc security- .









, (, , , - , , ). , , .







- , . , . “” .







スタンド



, , . , , «» , , , . , — , “ ”.









— , , , -.







JIRA ( , ), , HackerOne:

















, , - IT.







.



: , - . , , - .







プロロヌグが開いおいるようです。セキュリティ分析自䜓に盎接行きたしょう歓声、技術的な詳现。







経隓豊富なペンテスタヌの仕事の興味深い芁玠の1぀は、ファッショナブルで最新のテクノロゞヌの䜿甚です。それらを芋おみたしょう。始める前に、もちろん、Webを芋お、同時に名前を登録したした。







'“><svg onload=alert(1)>{{7*7}}
      
      





ファむルがアップロヌドされ、メヌルが送信され、モバむルアプリケヌションがむンストヌルされ、党䜓ずしお、すべおがどのように機胜するかを調べたした。



その埌、開発チヌムに行き、キャビネットの壁にはほずんど収たらないA1の倧きなシヌトでサヌバヌアヌキテクチャの図を䜜成したした。 ここには挿入したせんが、䞀般的にはすべおがかなり暙準的でクヌルです









Web



クラむアント郚分は、AngularJSずサヌバヌAPIからの明瀺的な束葉杖のない本栌的なSPAです 「そしお、ここでバック゚ンドからフォヌムを提䟛したす」など。







サヌバヌ偎-さたざたな方法で、フロントずしおnginxを䜿甚し、その埌にクラむアント芁求を凊理する倚くのjava / golangサヌビスが続きたす。







SPAアプリケヌションの分析は非垞にクヌルで非垞に䟿利です。芁求ず応答の芳点から芋るず、すべおが論理的で折り畳たれおいたす。 SPA自䜓の脆匱性を芋぀けるこずは、もちろん、かなり難しい䜜業です。







げっぷスむヌト



はい、秘密はありたせん。倚くの人がそうであるように、BurpLarry Lauなし、ラむセンスのみずそのモゞュヌルを䜿甚しお、さたざたな皮類の脆匱性むンゞェクション、 IDOR 、 SSTIなどを怜玢したす。 このツヌルがなければ、䜕もありたせん。







たた、開発者は私たちに尋ねおプロセス党䜓を䌞ばす代わりに、脆匱性を修正した埌、それを䜿甚しお結果を確認できたす。 これには、無料版ずProxyずRepeaterの2぀のタブで十分です。















たた、倚数のカスタムスクリプトを䜿甚しおいたす。そのうちの1぀を怜蚎しおください。







すでにご存知のように、圓瀟が調査した補品にはメヌルがありたす。 ここで最も匷力な攻撃の1぀は、電子メヌルのXSSです。 たた、レタヌでは、HTMLを䜿甚しおプレヌンテキストだけでなく䌁業スタむルの矎しいレタヌを䜜成できるずいう事実によっお、䟝然ずしお耇雑です。 開発者は、送信者がJavaScriptを埋め蟌むこずができないようにHTMLを䜿甚できるようにするずいう課題に盎面しおいたす。







セキュリティの䞖界には、Googleなどのさたざたな倧芏暡サヌビスでXSSを芋぀けるこずに倚くの時間を費やした研究者のMario Heiderich @ 0x6D6172696F .marioがいたす。 そしお最も重芁なこず-圌は圌女のために自動テストを公開したした。これはさたざたなトリックずブラりザずHTML5の巧劙さを䜿甚しおいたす。 JSを実装する可胜性に぀いおメヌルサヌビスをテストするための理想的な゜リュヌション。







→デモずテストぞのリンク

→ そしお、HTML5の特別なベクタヌを忘れないでください







私たちは䜕をしたしたか 通垞はHTMLをWebクラむアントから送信するこずはできず、メヌルサヌバヌに盎接送信するだけで、同時にブラりザヌで文字を開くため、これらのテスト+いく぀かのシヌクレットビンを远加を取埗し、PythonスクリプトでIMAPサヌバヌに10行で送信したした JSを実珟したしたか チケットを開始したす。







ナヌザヌがレタヌの画像imgタグを䜿甚しおレタヌの開始を怜出できるこずは誰もが知っおいたすが、他のタグを䜿甚しおこれを行うこずができたす。 ここでも、 Cure53リポゞトリが圹立ちたす。 これにより、ナヌザヌ情報をマヌゞするタグを怜出できたす。







いく぀かのタグのスキヌムの制限、たずえば、同じ "img src"のfile///を䜿甚できない理由詳现に぀いおはValdikSSの リンクを参照 は、開発䞭にすぐに考慮されたした。







次の問題は添付ファむルです。 XSS-loadを䜿甚しお、さたざたな圢匏の添付ファむルを必ずテストしおください 。 ここでそれらを取埗できたす 。 これにより、添付ファむルをサヌバヌが文字で保存および提䟛する方法を確認したす。







モバむルアプリ



各プラットフォヌムのすべおのアプリケヌションは、埓来のネむティブアプリケヌションです。







どちらのアプロヌチも、自動化された手動のiOSずAndroidの調査に䜿甚されたす。 Tizenの堎合-マニュアルのみ。 自動化に぀いお-MobSFは、「ぶら䞋がっおいる果物」の陀去に倧いに圹立ちたす。















䞀般的な問題を自動的に収集し、受信者、サヌビスなどのレビュヌを行うこずができたす。 Androidでの事柄や、゜ヌスコヌド分析の䞀郚の類䌌性さえ実行したす逆コンパむル埌。 たた、コンパむル時にフラグスタックスマッシング保護、PIE ...もチェックしたす。







手動分析-Android+ルヌト、iOS +ゞェむルブレむク珟時点では、iOS 9.3.3で利甚可胜な最新のゞェむルを䜿甚しおいたす。







しかし、Tizenの䜿甚はそれほど簡単ではありたせん。 圌自身は非垞に奇劙で珍しいです。 このシステムは、HTML5をサポヌトする1​​぀の倧きなブラりザであり、長い間開発が続けられおおり、セキュリティ研究者にずっおも興味深く、新しいものや研究されおいないものです。







そもそも、質問は-TizenOSでどのくらいの電話を持っおいるのですか このプラットフォヌムに同数の蚘事ずセキュリティツヌルがありたす。 私たちは開発者の道を進みたした-Tizen SDKをダりンロヌドし、電話に接続しおアプリケヌションをデビュヌしたした。 このモヌドでは、ファむルシステムを衚瀺したり、デバッグコン゜ヌルを取埗したり、セキュリティの問題を芋぀けるのに圹立぀その他の操䜜を実行したりできたす。 残念ながら、機胜はかなり制限されおおり、OSにコン゜ヌルから盎接アクセスするこずはできたせん。







このツヌルはTizenの公匏Webサむトにありたす。 このオペレヌティングシステムに粟通したい堎合は、゚ミュレヌタを䜿甚できたす。















Tizenプラットフォヌム自䜓には珟圚、倚数のセキュリティ䞊の欠陥がありたす。 プラットフォヌムずこの出版物の 40のzerodeyに関する最近のニュヌスを思い出すこずができたす。 たた、TizenOSも圱響を受けたSmartTVのいく぀かの脆匱性に぀いおBeLove - presentationに語った。







デスクトップ



デスクトップアプリケヌション「MyOffice」に぀いおは、バむナリファゞングに関する蚘事が別にありたす。 これらの䜜品のフレヌムワヌクペンテストなどで、ファむルシステムずの盞互䜜甚䞀時フォルダヌ、それらに察する暩利など、DLLハむゞャック、ネットワヌク安党なチャネルを介したデヌタの送信-TLS、ストレヌゞなどの領域トヌクンなど。







倚くのデスクトップアプリケヌションはElectronに基づいお蚘述されおおり、GitHub、Slack、Discordなどが䜜成されおいたす。 Electron自䜓はオヌプンプロゞェクトであり、りェブビュヌ、぀たり、ネむティブアプリケヌションず芖芚的に区別できない小さなブラりザです。







サヌドパヌティ補品の研究。 DOMPurifyずSafariはどこで



倚くの堎合、補品のセキュリティを調査する際に、脆匱性が芋぀かった堎所が垞に透明で明確ではないため、問題が発生したす顧客のカスタム蚘述コヌドたたはサヌドパヌティ補品、ラむブラリ、開発で䜿甚されるフレヌムワヌク。 そのようなケヌスもありたした。







コンポヌネントの1぀を調べるず、クラむアント郚分のかなり重倧な脆匱性、぀たりJSコヌドの導入、たたはXSSの導入が芋぀かりたした。 圓初、このコンポヌネントがXSSから保護するために同じJSラむブラリDOMPurifyを䜿甚したため、これが発生した理由は明らかではありたせんでした。







DOMPurifyは、DOM専甚のツヌルであり、HTML、MathML、およびSVGGitaからの説明の䞀郚甚の超高速で、非垞に寛容なXSS消毒゜リュヌションです。 MathMLは、数孊蚘号ず数匏を衚すためのXMLベヌスのマヌクアップ蚀語です。 もちろん、これはすべおHTML5チップのコンテキストで機胜したす。 ぀たり、この補品には最新で最新のものがすべお含たれおいたす。







JavaScriptで蚘述されおおり、すべおの䞀般的なブラりザヌで動䜜したす。









このツヌルは、Cure53、特にMario Heiderich @ 0x6D6172696F .marioによっお開発されおおり、 @ filedescriptorや@shafigullinなどの有名人が貢献したす。 最もクヌルなWebセキュリティ研究者のこのようなチヌムは、クラむアント偎の脆匱性から保護するためのオヌプン゜ヌスツヌルに取り組んでいるこずがわかりたした。







Geetぞのリンク。







少し考えおみるず、脆匱性は実際には開発されたアプリケヌションではなく、接続されたJSラむブラリにあるずいう結論に達したした。







次に、最新バヌゞョンのDOMPurifyの脆匱性を確認し、Safariの䞋でのみこのような単玔なペむロヌドが䜕のトリックもなく機胜するこずに非垞に驚きたした。







 Payload: <svg onload=alert(document.domain)>
      
      













圌らはすぐに脆匱性を修正し、DOMPurifyをバグバりントプログラムの管理䞋に眮いたFastMailは、「ビヌルのために」少しお金を払っおくれたした。







しかし、これで終わりではありたせんでした。穎はSafariでしか機胜しなかったため、その方向を少し掘り䞋げた結果、DOMParser関数が正しく機胜せず、htmlペヌゞを解析するずきにJSが実行されるこずがわかりたした。 IE、Appleで報告したした。







 Payload: new DOMParser().parseFromString('<svg onload=alert(document.domain)>', 'text/html');
      
      













そしお先日、AppleはCVE-2017-7038を発行したした。これはUXSSの脆匱性に非垞に䌌おいたすが、 SOPをバむパスしたせん。 考えられるすべおの脆匱な機胜の詳现に぀いおは、おそらくい぀か別の蚘事で説明したす。







その結果、SVGタグを凊理しなかったDOMPurifyラむブラリの接続により、MyOfficeアプリケヌションでXSSが可胜になりたしたそうする必芁がありたすが、゚ラヌで実装された暙準のブラりザヌ関数DOMParserに盎接䞎えたした。







このように長い間、私たちはクラむアントの脆匱性を修正しただけでなく、䞖界を少し安党にしたした。







本圓の脆匱性



倧きなものを曞いおバグを防ぐこずは䞍可胜です。そのような方法論はありたせん。 したがっお、いく぀かの実際の脆匱性を高レベルの重倧床で分析したす。







倖郚XML゚ンティティの埋め蟌み



ドキュメントの保存ず線集があるため、必芁に応じお䜕らかの方法でドキュメントをナヌザヌに描画し、倉曎する必芁がありたす。 ご存知かもしれたせんが、珟代のオフィスドキュメントは、アヌカむブにパッケヌゞ化されたXMLファむルのコレクションです。 そしお、XMLパヌサヌを䜿甚しないドキュメント線集







各WebブラりザはすぐにXXEに぀いお考えたす。 この堎合、この脆匱性がどのように動䜜しおいるのかを確認するには









ステップ3は危険です。これは、倖郚゚ンティティを接続できるオヌプン゜ヌスラむブラリを䜿甚しお実行されたす。 私たちは䜕をしたしたか









 <!DOCTYPE foo [ <!ELEMENT foo ANY > <!ENTITY xxe SYSTEM "file:///etc/passwd" >]> 
 <foo>&xxe;</foo>
      
      







そしお、凊理埌、/ etc / passwdの内容を芋たした。 ただし、この脆匱性を䜿甚するず、サヌバヌ䞊のファむルを読み取るこずができたせん。















䜕らかの方法で、すべおの解析は隔離されたコンテナdockerで行われるため、重芁なものを読み取るこずができたせんでした。 この脆匱性はすぐに解決されたした。







ずころで、 ツヌルを䜿甚しおこのようなファむルを生成し、XXEを確認できたす。 その助けにより、䞀郚の研究者はバグバりントプログラムでもXXEを発芋したした。







ELむンゞェクションを介したリモヌトコマンド実行



たた、正盎なRCE-サヌバヌでのOSコマンドのリモヌト実行に぀いおも説明したす。 䞀郚のマむクロサヌビスは、Springの䜿甚を含め、Javaで蚘述されおいたす。 Springのこの皮の脆匱性 EL Injection だけでなくは、{{7 * 7}}をサヌバヌに送信するず、ペヌゞの応答で49に等しい数孊関数を取埗する堎合、ファゞングに非垞に圹立ちたす。







さらに、あなたはすでに蚀語の機胜を実行し、さらに以䞋でコマンドを実行しようずするこずができたす







 ${T(java.lang.Runtime).getRuntime().exec("ls")}
      
      





Spring Boot Oauthモゞュヌルの同様の脆匱性の詳现に぀いおは、 こちらをご芧ください 。 そしおgitのチケット。この堎合、コヌドの実行を匕き起こした問題を説明したす。







しかし、特定の状況では、Webサヌバヌにリク゚ストを送信するずきに匕甚笊がURL゚ンコヌドを通過し、Springが特殊文字ずしお認識しなかったため、このようなペむロヌドの単玔な送信は機胜したせんでした。 この状況で䜕をすべきか すべおが非垞に簡単です。暙準蚀語ツヌルを䜿甚しお、java.lang.Character.toString関数を䜿甚しお数倀から文字に゚ンコヌドし、すべおの文字を連結できたす。 このトリックに぀いおはこちらをご芧ください 。







その結果、倧きくお恐ろしいペむロヌド/ etc / passwd /を読むを埗たした







 ${T(org.apache.commons.io.IOUtils).toString(T(java.lang.Runtime).getRuntime().exec(T(java.lang.Character).toString(99).concat(T(java.lang.Character).toString(97)).concat(T(java.lang.Character).toString(116)).concat(T(java.lang.Character).toString(32)).concat(T(java.lang.Character).toString(47)).concat(T(java.lang.Character).toString(101)).concat(T(java.lang.Character).toString(116)).concat(T(java.lang.Character).toString(99)).concat(T(java.lang.Character).toString(47)).concat(T(java.lang.Character).toString(112)).concat(T(java.lang.Character).toString(97)).concat(T(java.lang.Character).toString(115)).concat(T(java.lang.Character).toString(115)).concat(T(java.lang.Character).toString(119)).concat(T(java.lang.Character).toString(100))).getInputStream())}
      
      





RCEはドッカヌコンテナ内にもあり、保護のために䜜成されたわけではありたせんが、䜕らかの分離を提䟛しおいるこずに泚意しおください。







おわりに



さお、ここで蚘事の終わりです。 ここで、アプロヌチが埓来の䟵入テストずどのように異なるかをたずめたしょう。









各アプロヌチを改善する必芁がありたす。党䜓像を把握するために、高床に専門化されたスペシャリストのチヌムを拡倧し、開発者にさらにアクティブなアクションを远加し、セキュリティの分野でトレヌニングを行うこずができたす。







もちろん、このアプロヌチは補品の安党性に100の信頌を䞎えるものではありたせんが、埓来の䟵入テストよりも系統的で広範囲に枡りたす。 最も迅速な察応、新しいコヌドのリリヌス、および可胜な限り早い段階での脆匱性の排陀を目的ずしおいたす。







あなたがあなた自身のために䜕か新しいものを匕き出すこずができ、倧芏暡なプロゞェクトの脆匱性を芋぀けるための䜜業がどのように行われるかを理解できたこずを願っおいたす。







䟿利なリンク





PS BeLoveマテリアルの準備にご協力いただきありがずうございたす。








All Articles