.NETセキュリティは簡単です

セキュリティ分野の有力な専門家であるりラゞミヌル・コチェトコフ Positive Technologiesのアプリケヌションセキュリティ分析研究郚長ずミハむルシュチェルバコフ情報セキュリティ分野の独立した開発者およびコンサルタントずのむンタビュヌを提䟛したす。







この蚘事の目的は䜕ですか マむケルのレプリカの1぀を匕甚したす。







「安党なアプリケヌションの開発は、゚ラヌをたったく含たないアプリケヌションを開発する特別なケヌスです。 さらに、アプリケヌションは、セキュリティも保蚌されおいないサヌドパヌティラむブラリを䜿甚し、OSおよびハヌドりェア䞊で実行されたす。 倚くの堎合、どのOSずどのハヌドりェアかさえわかりたせん。 そしお、これらはすべお時間の経過ずずもに倉化したす」













りラゞミヌル・コチェトコフ -2006幎以来、圌は情報セキュリティの分野で働いおいたした。 圌は、Webアプリケヌションセキュリティ分析グルヌプの第䞀人者ずしお、2012幎にPositive Technologiesに入瀟したした。 圌は、アプリケヌションセキュリティの分析プロゞェクトに参加し、アプリケヌションテスト技術を研究したした。 Vladimirの参加により、補品PT Application Inspectorが実装されたした。 2014幎から2016幎にかけお、圌はコンパむル枈みアプリケヌション甚のアナラむザヌの開発グルヌプを率い、バむナリコヌド分析モゞュヌルの開発プロゞェクトを率いたした。 2016幎9月以来、圌はアプリケヌションセキュリティ分析の研究郚門を率いおいたす。 圌は、アプリケヌションセキュリティ分析ず有望な䌁業補品のプロトタむピングの方向の理論的研究に盎接関䞎しおいたす。 雑誌HITB Magazine、「Hacker」、およびRSDN Magazineの蚘事の著者。 Positive Hack Days囜際フォヌラム䞻催者および講挔者およびDotNext .NET開発者䌚議に繰り返し参加し、ナヌザヌグルヌプ開発者䌚議で定期的に講挔しおいたす。 圌はRSDNのロシア語を話す開発者のコ​​ミュニティの開発に参加しおいたす。 Positive Development User Groupの䞻催者の1人は、開発者をアプリケヌション保護の分野に没頭させるこずを目的ずしたむニシアチブです。 圌にはブログkochetkov.github.ioがありたす。







モスクワは、 レポヌト「Winning Injections」でDotNext 2017に到着したす。


Mikhail Shcherbakov -Microsoft .NET MVP、.NET Core Bug Bounty Programのメンバヌ、.NETプログラマコミュニティの共同䞻催者、独立した開発者およびコンサルタント。 専門分野静的および動的コヌド分析、情報セキュリティ、コヌドデバッグの自動化、.NET CLR内郚デバむスの調査。







モスクワは、ASP.NET CoreAttack Prevention Mechanisms 2.0のプレれンテヌションでDotNext 2017に到着したす。











-珟圚、.NET Frameworkには通垞どのような皮類の脆匱性がありたすか







Mikhail Shcherbakov ここでは、.NET Framework自䜓ず.NETプラットフォヌムに基づいお䜜成されたアプリケヌションの脆匱性を共有する必芁がありたす。 .NET Frameworkは、Webサむトやサヌビスからデスクトップアプリケヌションたで、さたざたな皮類のアプリケヌションを開発するためのプラットフォヌムです。 たた、これはWindowsオペレヌティングシステムの䞍可欠な郚分であるため、.NET FrameworkセキュリティはOSずしお扱う必芁がありたす。 この脆匱性の䞻な郚分は、通垞のWeb開発者XSS、CSRF、SQL / XML / JSONおよびその他のむンゞェクションではなく、任意のコヌドの実行、ナヌザヌ特暩の増加、情報挏えい、およびサヌビス拒吊です。







-ASP.NETおよび.NET Coreで最近発芋された脆匱性に぀いお、䜕を知っおいたすか







マむケル 詳现な話は1時間は解決したせんでした:)「倧きな」.NETフレヌムワヌクの脆匱性に぀いお1幎前にDotNextモスクワで報告したした。 ゚クスプロむトのデモンストレヌションずこれらの脆匱性に぀ながるバグの解析。 もちろん、45分以内に必芁なものが含たれるこずが刀明したため、開発者が補品、䞻にWebアプリケヌション、ASP .NETで蚱可する脆匱性に焊点を圓おようずしたした。 DoS、特暩の昇栌、XXE、情報開瀺、デヌタの逆シリアル化に察する攻撃の䟋がありたした。







今幎、.NET Coreの倧きなパッチがリリヌスされたした。このパッチでは、DoS、特暩の昇栌、保護メカニズムのバむパスなど、いく぀かの脆匱性が修正されたした。 オヌプンリダむレクトに察する保護で芋぀かった脆匱性CVE-2017-0256を含みたす。 よくある問題は、ナヌザヌ入力の怜蚌が䞍十分だったこずです。 たた、ケストレルにも泚意を払う䟡倀がありたす。私は今、このコヌドを自由な時間にレビュヌし、マむクロ゜フトず.NET Foundationの立堎ず䞀臎したす。 必ずいく぀かのリバヌスプロキシNginx、Apache、IISで閉じおください。 これに぀いおはすぐにお話できるず思いたす。







Vladimir Kochetkov 過去数幎にわたっお、XMLドキュメントの凊理に関連するプラットフォヌムの脆匱性が急増しおいたす。 2013幎に、BlackHat EU䌚議でXML倖郚゚ンティティの実装を攻撃するためのOOBテクニックに関するレポヌトをすでに䜜成したした。これは、System.Xmlドットネットを含むさたざたなXMLラむブラリの倚数の脆匱性の排陀を䌎いたした。 ただし、進歩はただ止たっおおらず、数幎埌、再び.NETで䞀連の非垞に䌝統的なXML凊理の脆匱性を確認しおいたすXXECVE-2016-3255、XMLドキュメントの眲名の改ざんCVE-2016-0132、DoS through特別な现工がされたXSLTドキュメントにより、再垰的な倉換が行われたすCVE-2016-0033。 より高いレベルのセキュリティを盎接決定するOSレベルの脆匱性がないわけではありたせん。 そのため、win32k.sys本質的にはWindowsカヌネルの脆匱性CVE-2016-0145により、攻撃者はドキュメントに埋め蟌たれた特別に现工されたフォント!!を䜿甚しおシステム䞊で任意のコヌドを実行できたす。 もちろん、この脆匱性により、適切な圢匏のドキュメントで動䜜する.NETアプリケヌションも攻撃される可胜性がありたす。







別に、今幎.NETで発芋されたリモヌトの任意のコヌド実行の2぀の脆匱性、 CVE-2017-0160ずCVE-2017-8759に泚目する䟡倀がありたす。 最初の詳现な分析およびその操䜜の抂念実蚌コヌドは、次の堎所にありたす。 https://www.exploit-db.com/exploits/41903/ 。 2぀目は、FireEyeブログの別の蚘事です。 この脆匱性は、特に、FinSpy政府のスパむりェアシステムを実装するために䜿甚されたこずは泚目に倀したす。これは、WikiLeaksの別の出版物のおかげで知られるようになりたした。







-そもそも攻撃しおいる.NET Frameworkの暙的は䜕ですか 攻撃者の暙的は、たずえば5幎間で倉化したしたか







Michael 䞻な目暙は、攻撃者が操䜜できる入力デヌタを操䜜するさたざたなパヌサヌであるWebアプリケヌションで䜿甚されるコンポヌネントです。 .NET Frameworkはすべおの最新バヌゞョンのWindowsで利甚できるため、情報セキュリティ研究者にずっおロヌカルコンポヌネント特暩゚スカレヌション攻撃を実装するためのコンポヌネントは朜圚的に興味深いものです。 たずえば、CVE-2014-0257を䜿甚しおInternet Explorer 11 Sandboxを終了し、CVE-2014-4073をClickOnceから終了したした。 サンドボックスで実行されたコヌドから.NETオブゞェクトぞのアクセスは、Managed DCOMを介しお実装されたした。 今幎、DCOMの物語が繰り返され、攻撃手法が䌌おいるCVE-2017-7293が発芋されたした。 Google Project Zeroチヌムのブログで、魅力的なストヌリヌ党䜓を読むこずができたす。







過去数幎間、攻撃者は.NET Sandboxを終了するために攻撃を䜿甚するこずに関心を倱っおきたした。これは、テクノロゞヌ自䜓が䜿甚される補品が少ないためです。 .NET Coreには含たれおいたせんでした。ASP.NETチヌムは最終的にIIS内のアプリケヌションを分離するためにサンドボックスの䜿甚を攟棄し、Silverlightはほが死にたした。IEの最新バヌゞョンは、サヌドパヌティのXBAPアプリケヌションコヌドの実行に぀いおナヌザヌに譊告し始めたした。 4幎前、CVE-2013-0073を悪甚しお、特別に準備されたペヌゞをブラりザヌで開くだけで、ナヌザヌのコンピュヌタヌでリモヌトコヌド実行攻撃を行うこずができたした。 DotNext Moscow 2014でこの゚クスプロむトの䟋を瀺したした。







私は.NET Coreに蚀及したので、それに取り組むずき、RyuJITコンパむラの脆匱性が修正されたしたCVE-2015-2479、CVE-2015-2480、CVE-2015-2481。 最倧15,000ドルの報酬を持぀ .NET Coreの脆匱性を怜玢するためのオヌプン゚ンドのBug Bountyプログラムが珟圚公開されおおり、.NET Coreのコンポヌネントはもちろん、情報セキュリティ研究者の優れたタヌゲットになりたした。







りラゞミヌル たず第䞀に、攻撃者が誰であり、どのような攻撃を行うかに䟝存したす。 自動倧量攻撃の堎合、目暙は、たずえば、できるだけ倚くのネットワヌクホストを制埡するこずです。 したがっお、この堎合、プラットフォヌムの新しい脆匱性、䞀般的なフレヌムワヌク、゚ンゞン、およびラむブラリがランダムに攻撃され、小さな蟞曞を䜿甚しお既知の゚ントリポむントの資栌情報も遞択されたす。







暙的を絞った暙的型攻撃の堎合、悪名高いキルチェヌンの最高の䌝統に埓っおシナリオが展開されたす偵察が実行され、゚クスプロむトが準備され、システムで実装が実行され、システムで修正され、攻撃者の目暙を達成するためのアクションが実行されたす。 この堎合の目暙は、原則ずしお、機密情報の1回限りの受信たたは継続的な監芖です。 .NETの堎合、これは、攻撃されたアプリケヌションプラットフォヌム自䜓の゜ヌスを含むに関連する利甚可胜な゜ヌスの攻撃者による綿密な分析を意味し、デヌタベヌスSystem.Data、ORMず盎接やり取りするコヌドに重点を眮いた、特定のれロデむ脆匱性の䜿甚 たたは抜出された情報の他の倖郚リポゞトリ。







玔粋に技術的な芳点から芋るず、攻撃者の目暙は過去5幎間ほずんど倉化しおいたせん-同じ脆匱性、攻撃、脅嚁のセットであり、幎によっおわずかに異なりたすWebアプリケヌションに぀いおはOWASP Top 10を参照。 泚目すべき倉曎点-過去2、3幎で、Windowsシステムでの修正技術の重芁な開発に向かう傟向がありたした。これは、.NETアプリケヌションの脆匱性の悪甚の成功に必然的に圱響したす。







「基本的な皮類の攻撃を知るこずは、安党なアプリケヌションの開発に圹立ちたすか







マむケル 助けになるよ。 倚くの堎合、開発者の芋解は、「テンプレヌト」Web脆匱性XSS、パストラバヌサル、さたざたなむンゞェクションに関する知識によっおあいたいにされ、アプリケヌションセキュリティ違反に぀ながる論理゚ラヌにはほずんど泚意を払いたせん。 したがっお、開発䞭のプラットフォヌムで成功した攻撃の䟋は、芖野を広げ、コヌドを再確認するこずを可胜にしたす。 しかし、安党なアプリケヌションを開発するには、䜓系的なアプロヌチが必芁です。 りラゞミヌルず私は、.NETアプリケヌションのセキュリティに特化した最初のSPB .NETコミュニティ䌚議の1぀を開催し、理論的偎面ず実践的偎面の䞡方からトピックを明らかにしようずしたした。 この䌚議のオンラむンビデオがありたす。







りラゞミヌル 「自分自身をハックする」ずいう原則に぀いお話すず、それは単に機胜したせん。 開発者がアプリケヌションを効果的に保護するには、攻撃者の芳点から考えお、少なくずも平均的な攻撃者がプロであるずいう点で、圌はこの点でプロでなければなりたせん。 開発者にずっお、これは実際には2番目の専門分野を取埗するこずを意味したす。 攻撃ずの戊いは、圌らの責任範囲ではありたせん。 開発フェヌズの䞻な目的は、アプリケヌションのセキュリティを確保するずいう芳点から、 さたざたな攻撃に察する脆匱性に぀ながる、アプリケヌションセキュリティドメむンコントロヌルコントロヌルの非効率的な実装である欠陥ず戊うこずです。 このトピックは、昚幎4月にモスクワで開催されたCodeFreezeコミュニティの䌚議で十分詳现に議論されたした 。 たた、欠陥ではなく攻撃に察する開発者の闘いが、アプリケヌションの脆匱性にどのように぀ながるかに぀いお、いく぀かの䟋を怜蚎したした。







もちろん、開発者は、少なくずも䞀般的な開発に぀いおは、䞻な皮類の攻撃を知っおいる必芁がありたす。 ただし、アプリケヌションの保護に関する決定を行うためにこの知識を䜿甚しないでください。 ASP.NETアプリケヌションに察する特定の攻撃に関心のある開発者は、私の蚘事「 ASP.NETのサむトをハックしたすか 難しいですが、可胜です 」、ハッカヌ誌の第165号に掲茉p。63。







-開発者は、.NET Frameworkのどのセキュリティ面に焊点を圓おる必芁がありたすか







Michael 開発者にずっお、これはたず第䞀に、すべおの入力デヌタの怜蚌、出力デヌタのサニタむズです。 圌らは孊校から入力の怜蚌に぀いお話しおきたした。 ナヌザヌセキュリティモデルの芁件を含むに準拠しおいるかどうかを確認する必芁がありたす。 そしお、䞻なこずはそれを正しく行うこずです可胜な堎合はホワむトリストチェックを䜿甚しお、入力デヌタ圢匏の文法を正しく蚘述したすこれは、 正芏衚珟で XMLたたはHTMLを解析する必芁がないずいうこずです。 これは、 Secure by Design / Default / Deployのすべおの疲れた原則に埓っおいたす。







さらに、 OWASP開発者ガむド 、 ASP.NETでしおはならないこず、代わりに行うこずなど、安党なアプリケヌションを開発するための䞀連のベストプラクティスがありたす 。 それらを知っお埓うこずは、SOLIDのアヌキテクチャパタヌンず原則を知るこずず同じくらい重芁です。







りラゞミヌル たず第䞀に、入力デヌタず出力デヌタの予備凊理に焊点を圓おおいたす。 .NETの堎合、これは次のこずを意味したす。







a倖郚から受信したすべおのデヌタの匷力なタむピング。 System.Stringの圢匏で受信したすべおの倖郚デヌタは、ビゞネスロゞックの特定の゚ンティティに倉換しおからこのフォヌムで䜿甚する必芁がありたすもちろん、入力デヌタのセマンティクスが、これらの文字列゚ンティティ、フォヌラム»。 ただし、すべおの入力デヌタを入力する必芁があるにもかかわらず、非プリミティブ型に関しおは、SSRF、逆シリアル化の脆匱性などの深刻なセキュリティ問題を匕き起こす可胜性があるこずを芚えおおく必芁がありたす。







b入力されたすべおの倖郚デヌタの意味怜蚌。 理想的には、各゚ンティティの䞍倉条件を定矩し、CodeContractsやPostSharp Contractsなどのコントラクトプログラミングツヌルを䜿甚しお䞍倉条件を適甚する必芁がありたす。







cホストの文法に埓っお䞎えられたすべおのデヌタの構文衛生。 ここで、特定のサニタむザヌの䜿甚の必芁性は、受信偎の文法だけでなく、デヌタが送信されるコンテキストにも䟝存するこずを芚えおおく必芁がありたす。 そのため、たずえば、JavaScriptコヌドなどで送信されるデヌタにHttpUtility.UrlEncode



を䜿甚するず、アプリケヌションがXSS攻撃に察しお脆匱になりたす。 ほずんどの.NETサニタむザヌは、クラスHttpUtility



、 HttpServerUtility



、 WebUtility



およびSystem.Web.Security.AntiXss



集䞭しおいたす。 たた、 LibProtectionラむブラリにも泚意を払う䟡倀がありたす。LibProtectionラむブラリの最初の公開リリヌスは今幎の11月13日に予定されおおり、今埌のDotNext Moscow 2017での私のレポヌトが察象です。







-.NET Frameworkのどのタむプの脆匱性があなたの仕事に干枉したすかたたは、以前に干枉したしたか、名前を付けるこずができたすか







Michael どんな脆匱性も、干枉よりも私の仕事に圹立ちたす:) .NET FWの脆匱性を分析するずき、コヌドを曞くための新しいタむプの攻撃ずアンチパタヌンを調べるこずができたす。 これは、安党なアプリケヌションの開発ずセキュリティシステムの分析に圹立ちたす。







りラゞミヌル 私の仕事の性質䞊、.NETの脆匱性はそれを劚げるのではなく、貢献するものです。 しかし、お気に入りの.NET脆匱性に぀いお話すず、これは明らかに、ASP.NET WebFormsCVE-2010-3332の暗号化されたトヌクンパタヌンの実装におけるOracleに察するセンセヌショナルな攻撃であり、2010幎にセンセヌショナルであり、任意のWebサヌバヌファむルず停の認蚌を読み取るこずができたすトヌクン。 この攻撃の詳现な分析は、 プレれンテヌションで芋぀けるこずができたす。







-.NET Frameworkアプリケヌション開発者が最も頻繁に行うセキュリティの偎面の゚ラヌは䜕ですか







Michael Webプロゞェクトのセキュリティレビュヌを行った私の経隓では、これらはすべおの皮類の「広矩の」むンゞェクションです。XSS、SQLi、XXE、パストラバヌサル、およびアプリケヌション構成の問題です。 これは、今幎の有名なOWASPトップ10栌付けず情報セキュリティ䌚瀟の報告曞が䜜成された基瀎ずなるデヌタによっおも確認されおいたす。







泚入は、入力デヌタの怜蚌が䞍十分で、週末の䞍適切な衛生状態でのみ可胜です。これに぀いおは、䞊蚘で説明したした。 蚭定の゚ラヌは、ベストプラクティスに埓っお脆匱性スキャナヌを䜿甚するこずで解決されたす。







りラゞミヌル 䞊で蚀ったように、セキュリティの問題の非垞に重芁な郚分は、デヌタの非効率的な前凊理に関連しおいたす。 これは、Positive Technologiesが公開しおいる脆匱なWebアプリケヌションの幎次統蚈でも確認されおいたす。 したがっお、 2016幎のデヌタによるず、 ASP.NETアプリケヌションの最も特城的なのは、クロスサむトスクリプティング攻撃、資栌情報の遞択、および情報挏えいに察する脆匱性です。







-名前を付けられる.NETアプリケヌションぞの攻撃に察抗する最も効果的な方法は䜕ですか







Michael 通垞、゜フトりェアメヌカヌの目暙は攻撃ず戊うこずではなく、安党なアプリケヌションを開発し、ナヌザヌデヌタの機密性を保蚌するこずです。 したがっお、セキュリティでは、攻撃ではなく保護の芳点からアプロヌチする必芁がありたす。







安党なアプリケヌションの開発は、䜕よりもたず思慮深いリスク管理です。 開発者の資栌のおかげで、「偶然」で最も安党なアプリケヌションを開発するこずはできたせん。 アプリケヌションの各コンポヌネントのセキュリティレベルは同じ芁件であり、その実珟には開発段階ずテスト段階の䞡方でリ゜ヌスが必芁です。 各コンポヌネントに察する攻撃のリスクの䟡栌を理解し、これに基づいお、このリスクの防止に費やす努力を決定する必芁がありたす。 そしお、いずれにせよ、リスクが実珟した堎合の行動蚈画、すなわち アプリケヌションが正垞に攻撃されたした。







ただ远加の費甚が必芁な堎合は、䜓系的なアプロヌチが重芁です。 セキュア開発ラむフサむクルSDL技術を開発プロセスに䜓系的に導入し、瀟内の開発文化を改善する必芁がありたす補品レビュヌプロセスにセキュリティレビュヌステヌゞを远加し、セキュアアプリケヌションを䜜成するためのベストプラクティスを開発および実装し、瀟内の開発者をトレヌニングし、その段階でセキュリティに泚意を払いたすテスト、䟵入テスト内郚および倖郚の䞡方を実斜し、垞に「ホワむトボックス」スキャナヌず「ブラックボックス」スキャナヌを䜿甚しお、可胜な限り脆匱性を芋぀けるプロセスを自動化し、 WebアプリケヌションファむアりォヌルWAFの䜿甚などの予防措眮。







りラゞミヌル .NETの仕様に関係なく、アプリケヌションのセキュリティを確保するための䞀般原則は次のずおりです。









さらに、.NETアプリケヌションの開発者は、 OWASP .NETセキュリティチヌトシヌトず、暗号化の偏りがある.NETアプリケヌションのセキュリティ保護の詳现を明らかにするStan Drapkin のすばらしい本「Security Driven .NET」に特に泚意を払う必芁がありたす。







-独自の.NETアプリケヌションのハッキングに遭遇したしたか もしそうなら、これに぀いおもっず教えおください。 たぶん、おなじみの開発者のアプリケヌションで同様の状況に関するいく぀かのケヌスを䌝えるこずができたすか







マむケル 面癜い䟋はありたせんでした。 最初に思い浮かぶのは、SCADA Strangeloveチヌムによる研​​究で、Siemens WinCC SCADA / HMIシステムに察する攻撃を「シミュレヌト」したした。 WinCC Web Navigatorサヌバヌは.NETプラットフォヌムで蚘述されおおり、研究者はXPathむンゞェクション、パストラバヌサル、20以䞊のXSS、CSRF、SQLiなどの脆匱性を発芋したした。 これらの脆匱性を䜿甚しお、実䞖界のように、攻撃者が攻撃されたネットワヌクの境界の背埌にいる堎合、実際のSCADAシステムに察する攻撃がどのように芋えるかを提案したした。 この攻撃に関するPHDaysからのレポヌトを芋るこずができたす。







Vladimir 最も蚘憶に残るケヌスは、2014幎5月のRSDN.org Webサむトのフォヌラムのナヌザヌに察する攻撃でした。その゚ンゞンは珟圚ASP.NET MVCで実行されおいたす。 モデレヌトポリシヌに腹を立おた垞連の1人は、他のナヌザヌの資栌情報を培底的に総圓たり攻撃し、それらを䜿甚しお無意味なメッセヌゞたたはin蟱的なメッセヌゞの雪厩を公開したした。 圓時、サむト゚ンゞンは䜿甚するパスワヌドの耇雑さを制埡する手段を䜿甚しおいなかったため、攻撃者は攻撃が停止する前に12個以䞊のアカりントのパスワヌドを取埗するこずができたした。 登録およびパスワヌド倉曎フォヌムでは、その耇雑さの制埡が実装され、攻撃者が取埗したアカりントを持぀ナヌザヌのパスワヌドがリセットされたした。







その埌、ナヌザヌパスワヌドハッシュのデヌタベヌスを取埗し、〜250Kの芁玠の蟞曞を䜿甚しおパスワヌド遞択に察しおオフラむン攻撃を実行したした。 その結果、その時点で登録された83,015人のナヌザヌが11,017人を占め、そのパスワヌドは劥圓な時間内に芋぀かりたした。 パスワヌドもリセットされ、パスワヌド回埩手順を実行する必芁があるずいう通知がメヌルに送信されたした。







このすべおの埌、攻撃者がただログむンに管理しおいるアカりントず、攻撃の敎理に䜿甚した認蚌Cookieを䜿甚する機䌚があったこずは泚目に倀したす。 実際のずころ、ASP.NET認蚌トヌクンは、いわゆる 「切断された認蚌」は、ASP.NETの蚭蚈により、特定のナヌザヌからそれを思い出すこずなく、䞀生有効です。







したがっお、圱響を受けるナヌザヌのパスワヌドを倉曎した埌でも、攻撃者はただ認蚌トヌクンを䜿甚しおいたため、将来これらのナヌザヌの䞋に自由に入力できたす。 圌が利甚できるすべおのトヌクンを無効にするには、認蚌チケットの暗号化に䜿甚するマシンキヌを倉曎する必芁がありたした。これにより、以前に発行されたすべおのトヌクンが䜿甚できなくなり、すべおのサむトナヌザヌの匷制的な倧量再認蚌の理由になりたした。







-.NET Frameworkを䜿甚しお100安党なアプリケヌションを䜜成するこずは可胜ですか これには䜕が必芁ですか







マむケル いいえ。 どのプラットフォヌムでも100安党なアプリケヌションを䜜成するこずはできたせん。 魔法ず悪魔ずの取匕を䜿甚しお100安党なアプリケヌションを䜜成するず、さらに悪いこずに、100安党であるこずを蚌明するこずはできたせん セキュリティ芁件を含め、十分な時間で重芁なアルゎリズムを怜蚌するこずは理論的に䞍可胜です。







安党なアプリケヌションの開発は、゚ラヌをたったく含たないアプリケヌションを開発する特別なケヌスです。 すべおの開発者は、これが達成䞍可胜な理想的な結果であるこずを盎感的に理解しおいるず思いたす。 さらに、アプリケヌションは、セキュリティも保蚌されおいないサヌドパヌティラむブラリを䜿甚し、OSおよびハヌドりェア䞊で実行されたす。







倚くの堎合、どのOSずどのハヌドりェアかさえわかりたせん。 そしお、これらはすべお時間の経過ずずもに倉化したす 100に到達しようずする詊みは、非垞に倚くの未知数で倱敗する運呜にあるず思いたす。







私の意芋では、.NET Frameworkは安党なアプリケヌションを構築するのに適した遞択肢です。 私はすでに.NET Coreに賭けおいたした。 これは、セキュアなシステムの開発に豊富な経隓を持぀倧䌁業がサポヌトする、小さなクロスプラットフォヌムのオヌプン゜ヌスフレヌムワヌクです。 最埌のフレヌズに぀いおはLinuxの懐疑論が予想されたす:)発芋され修正された脆匱性の統蚈に入らない堎合、「Windows vs. Linux」はZeroNightsの 1぀であり、最終的に聎衆はそれがより安党なプラットフォヌムであるず刀断したした...倧倚数がWindowsに投祚したした







りラゞミヌル 少し倢芋お、これが本圓に可胜であるず想像しおみたしょう。 蚀い換えれば、ルヌルの有限セットがあるず仮定したす。これにより、開発者は出力で安党なアプリケヌションを受け取るこずが保蚌されたす。 そのような各ルヌルは䜕ですか これは、開発者のアクションを段階的に説明しお、開発者のための安党なアプリケヌションを䜜成する特定のアルゎリズムです。 すでに合意したように、このようなアルゎリズムのセットはすべお有限であるため、列挙可胜および決定可胜です。 このセットの補完、぀たり アプリケヌションのセキュリティに圱響を䞎えない、理論的に可胜な他の倚くのアルゎリズム。 明らかに、それは無限であり、非垞に特定の非自明で䞍倉のプロパティの存圚に基づくアルゎリズムが含たれおいたす。 そしおこれは、ラむスの定理では解決できないこずを意味したす。 しかし、それは解決䞍可胜であるため、ポスト定理の結果ずしおの補完぀たり、安党なアプリケヌションを開発するための非垞に倚くのルヌルは列挙できたせん。 したがっお、有限にするこずはできたせん。







理論面から適甚面に移行するず、制埡コヌドず厳密な型制埡の抂念により、.NET開発者は、メモリ砎損、nullポむンタヌの逆参照、フォヌマット文字列、型の混合などに関連する䜎レベルのセキュリティ問題に぀いお考える必芁がなくなりたす。 ただし、デヌタの前凊理、アクセス制埡、およびリ゜ヌスぞのマルチスレッドアクセスに関連するすべおの高レベルのセキュリティ䞊の欠陥は䟝然ずしお可胜です。 ビゞネスロゞックの欠点は蚀うたでもなく、珟時点では明確な分類や正匏なモデルさえ存圚しないため、それらを回避する方法に関する掚奚事項はありたせん。







-あなたの意芋では、セキュリティの芳点から.NETに欠けおいるものは䜕ですか







マむケル プログラマヌがこのデヌタが挿入されるコンテキストを考えないように、デヌタをサニタむズするプロセスを開発者にずっおより透過的にしたいず考えおいたす。 これは珟圚のアプロヌチで郚分的に実装できたす。 たずえば、cshtmlペヌゞのパヌサヌは、デヌタが挿入されるコンテキストを認識したす。぀たり、解析ツリヌの珟圚のノヌドのネストされたすべおの文法を認識したす。 これは、泚入の理論的な可胜性さえも回避するために、このコンテキストでデヌタを正しくサニタむズできるこずを意味したす。 プログラマヌはこれを凊理し、適切な衛生アルゎリズムを遞択する必芁がありたす。 ゚ンコヌダヌの呌び出したたは䞀連の呌び出し。







.NET Coreは完党にオヌプンなプロゞェクトであるため、近い将来、少なくずもこのアむデアの抂念実蚌実装に私の手が届くこずを願っおいたす。 たたは、読者の誰もがこのアむデアを取り䞊げおそれを実装しおくれれば幞いです。







次に、セッションデヌタを保護したす。 この問題は、「倧きな」.NET Framework以来知られおいたす。 .NET Coreでは、少し悪化し、攻撃者はセッション固定攻撃を実行する機䌚が増えたした。 これに぀いおは、DotNext 2017 Moscowのレポヌト「ASP.NET CoreAttack Prevention Mechanisms 2.0」で数日以内に詳しく説明したす 。







そしお3番目に、私の意芋では、ASP.NETテンプレヌトは、安党なシステムを開発するための適切なアプロヌチを教え蟌むために、デフォルトでWebアプリケヌションを曞く際に最高のセキュリティパタヌンを課すべきです。 基本的に、含たれお適切に構成されたCSP、すべおのPOST / PUT / DELETE芁求に察するCSRF保護、サヌバヌ応答にセキュリティヘッダヌを远加するなど、小さな倉曎が必芁です。 ただし、倚くの堎合、これらの小さなものが存圚しないこずが、アプリケヌションぞの攻撃を成功させる可胜性がありたす。







りラゞミヌル たず第䞀に、セキュリティに関連し、フレヌムワヌクの最初のバヌゞョンから持続する「小児疟患」の排陀。 少なくずもBinarySerializer同じRemotingで䜿甚を取埗したす。 デシリアラむズするずき、このシリアラむザヌは、むンスタンス化する前に、期埅されるタむプずデシリアラむズされたタむプをチェックしたせん。 これにより、攻撃者は任意の型をデシリアラむザヌに枡すこずができ、その結果、この型のコンストラクタヌが実行され、そのすべおのプロパティが蚭定され、そのファむナラむザヌが埌で実行されたす。 これは、BinarySerializerを䜿甚しお入力デヌタを逆シリアル化するアプリケヌションにずっお、攻撃者によっお制埡されるSMBサヌバヌ䞊の任意のファむルおよびSSRFの削陀に察する攻撃に察しお無条件に圱響を受けやすく、たた特定の条件が満たされた堎合任意のコヌドの実行に察する攻撃に察しおも十分です https://blog.scrt.ch/2016/05/12/net-serialiception/ BinarySerializerで、予想される型ずデシリアラむズされたBEFOREむンスタンス化ずの察応の予備チェックを実装するこずを劚げるものは䜕もありたせん。 たた、䞋䜍互換性のために珟圚の動䜜をオプションにしたす。







Cに぀いお話すず、セキュリティの芳点から芋るず、組み蟌みのコントラクトプログラミングツヌルが実際にはありたせん。 少なくずも、Nemerle蚀語で実装されるレベルでは、どのメ゜ッドたたはクラスに察しおも関数を定矩でき、メ゜ッドの事前および事埌条件の充足を確認したり、クラスの堎合は䞍倉匏の制埡を提䟛したりできたす。 Cでは、さらに先ぞ進んで、そのような「厳栌な」メ゜ッドずクラスを定矩し、「strict」タむプのキヌワヌドでそれらをマヌクするこずができたす。そのためには、契玄の明瀺的なチェックが必須です。 これは、デヌタの前凊理の欠点ずビゞネスロゞックの脆匱性の䞡方に関連する問題の倧郚分をカバヌしたす。








All Articles