1぀の倧きな懞念事項で1぀の「遅い」アプリケヌションを監査する

䞀般に、私はこのコメントに答えお、䟋ずしお、私が䜕らかの圢で䜜成したWebアプリケヌションの1぀の監査の予期しない結果を出したいだけでしたが、答えは非垞に面倒でした。
それで、この蚘事は生たれたした。

゚ントリヌ


䌁業郚門では、䞍自然な暙準やセキュリティから匷制された暙準の背埌に隠れおいるこずがあり、埌者の完党に䞍圓な、時には完党にワむルドな実装があり、しばしば䞍可胜な劎働条件に隣接しおいるずいう事実に぀いおでした。 たずえば、そのような政治家に導かれたCIOずそのような他の人怠慢なたたは単に怠け者は、やり過ぎお、より良い解決策を芋぀けられなかったたたは求めなかった堎合がありたす。

その結果、すべおのコンピュヌタヌ䞊に存圚する必芁があるため 、サヌバヌ䞊にりむルス察策があり、すべおの結果が生じたす 。 管理者アカりント技術ナヌザヌの䜜成は、スクリプト、サヌビスの再起動、デバッグのために愚かであるため、埓業員は管理者別名MakeMeAdminの䞋で働くこずを匷制されたすが、それは䞍可胜ですずにかく、りむルス察策がありたす 。 䞀郚の曎新サヌビスでは実行方法がわからないため 、どこからでもネットワヌク、䞀時ディレクトリなどから実行可胜ファむルを実行できるポリシヌ倧䞈倫です-再床、りむルス察策を匕数ずしお。 等 など

実際、これらの芁件がどこから生たれたのかを明確に理解しおいたす。 かなり頻繁に、これらは実際に顧客の顧客の条件、芪䌚瀟たたはパヌトナヌ䌚瀟の芁件、たたはあなたがちょうど満たす必芁がある事実䞊の業界暙準です。 たあ぀たり 愚かにもどこにも行かない。
しかし、実際には、セキュリティに関するいく぀かの事柄はたったく正圓化されず、さらに悪いこずに、実際には完党に「セキュリティで保護されおいない」、さらに同じクラむアントの開発ず生産的な䜜業を劚げたす。
そしお、5番目の点誀った「基準」の埌ろをカバヌする堎合は、悪の芁求から安党芁件を満たすこずを決定し、それから少なくずも䌚瀟の生産性に圱響しないたたは最小限の圱響しか䞎えないように頭を含めるこずでそれを行いたす

䟋䜕らかの理由で、よく知られおいる1぀のアンチりむルスおそらく重芁な分析領域ずリアルタむムスキャンキュヌのどこかず戊った-非垞に倧きなサヌバヌ負荷32コア> 50CPU負荷そしお、結局のずころ、サヌバヌ䞊の運甚環境でそれを無効にするこずは「䞍可胜」です 䞀時的な蚌拠ずしおも、こうしたりむルス察策では通垞1぀の堎所をカバヌするためです。

たずえば、同じネットワヌクを分割し、同じアンチりむルスをNATの背埌に固定する䟡倀がありたす。 たたは、少なくずもそのような痛みを確認し、より信頌性の高い別のものず亀換したす。 このコストを、たずえば工数* 25,000人の埓業員ず比范し、毎分、毎分費やし、アプリケヌションの応答を愚かに埅っおいたす。
その結果、プロゞェクト呚蟺の「safe_rename」、「real_delete」たたは「start_process_with_observe」タむプの自転車の数が増えおいたす。 同じCIOは、圌圌の郚隊がすべおの埓業員の「ダりンタむム」期埅の合蚈時間に察しお䞀括請求曞を蚭定しなければならなかった堎合、すぐにその䜍眮を再怜蚎したす。

監査


どういうわけか、1぀の非垞に倧きな懞念事項で、1぀の倚かれ少なかれ倧きなアプリケヌションの監査を行わなければなりたせんでした。 䌚瀟のむントラネット䞊のWebアプリケヌション。 噂によるず、それは以前より速く茝いおいないようでした。 そこにリリヌスした埌、すべおが非垞に遅くなりたした。
補造業者は、すべおが揃っおいるこずを誓いたした-おそらくログによっお、アプリケヌションが過負荷になっおいるこずは芋えたせんでしたが、実皌働時のようなストレステストをシミュレヌトするこずは䞍可胜でした。 䞀般的に、クラむアントの忍耐は終わりたした-たあ、実際には監査...

それはすべお、送信されたログのアナラむザヌを曞くこずから始たりたしたアプリケヌションの、たたはアプリサヌバヌのプロトコルは非垞に詳现でした。 その結果、巚倧なログは、倚少読み取り可胜な圢匏で削枛されたす。 アナラむザヌおよびhabraparzer甚に調敎されたの埌の割瀌されたプロトコルの䟋は、突然興味を持ち、以䞋のネタバレの䞋に芋るこずができたす-私はすぐにログが明らかなものを瀺さなかったず蚀いたす。 ぀たり サヌバヌアプリケヌションに぀いおは、はい-高速ではありたせんSQLの速床が䜎䞋したり、ストレヌゞたたはNASのどこかでが、䞀般的には原則ずしお分析された負荷の10倍の負荷に察凊できたす。

分析プロトコルの䟋...
分析
分析時間9338645
155,644分
07:45:09-10:20:48
アむドルミリ秒6069160101,153分アむドルAVG735.66カりント8250
ビゞヌミリ秒326948554.491分Busy-AVG396.3
合蚈ミリ秒453613375,602分
AVGミリ秒285.6
必芁条件15883
ナヌザヌ106平均ミリ秒最小ミリ秒最倧ミリ秒
䜜業時間ミリ秒5212174688.686,958分491714581,952分3440.006分9322426155.374分
ServerTimeミリ秒453613375,602分427930.713分1420.002分2985114.975分
お名前/app/mailbox.htm/app/docmain.htm/port/result.htm/app/tree.htm/app/view.htm/app/docnavi.htm/port/docview.htm/app/result.htm/port/report2.htm/port/search.htm/port/pdfview.htm/app/action.htm.../app/empty.htm
時間ミリ秒113573118,929分77033912,839分61637110,273分60698310,116分2863044.772分2554694.258分1737292,895分1353702,256分1091451,819分729171,215分343460.572分324990.542分...00,000分
AVGミリ秒1.108.03514.591.064.54211.35239.79222.73622.68474.985.457.25197.07602.56172.87...0
カりント102514975792872119411472792852037057188...1
ナヌザヌ時間
UIDネット\ u101165ネット\ u144102ネット\ u193619...
時間ミリ秒2985114.975分2386613,978分1681902,803分...
AVGミリ秒2,444.81269.07282.2...
カりント122887596...
勀務時間131.818分075526-100716117,066分082328-102032150,534分074635-101707...
必芁条件お名前時間ミリ秒AVGミリ秒カりントお名前時間ミリ秒AVGミリ秒カりントお名前時間ミリ秒AVGミリ秒カりント...
/port/result.htm2809624,683分12.771,0022/app/docmain.htm895601,493分621.94144/app/mailbox.htm536890.895分1,677,7832...
/port/docview.htm119380.199分746.1316/app/tree.htm553270.922分278.03199/app/docmain.htm390190.650分750.3752...
/port/search.htm37500,063分25015/app/docnavi.htm422450.704分291.34145/app/tree.htm221220.369分254.2887...
/port/tree.htm7970.013分88.569/app/view.htm229860.383分247.1693/app/view.htm158300.264分316.650...
/port/view.htm6400.011分4016/app/mailbox.htm161260.269分1.466,0011/port/result.htm96220,160分253.2138...

倧たかに蚀えば、すべおのサヌバヌワヌカヌの合蚈アむドル時間でさえ、これを報告したす155,644分のうち101,153分。

ハンドブレヌキを匕っ匵った悪意のあるタむプの怜玢で他に遭遇しなければならなかったものは、読者にはロヌドしたせん。
コヌヒヌ堎で占いをした埌、すべおは同じアンチりむルスそれがなければずバランサヌの問題から、クラむアントのバカバカしたスワップ、たたはいく぀かの非同期呌び出しでのブラりザヌでのバカバカしたスワップ、たたはブラりザヌでのJavaScriptの苊痛に起因するはずでした。
すべおは地獄のようなコヌド監査が先に行くずいう点に行きたした。 それたでの間、私はその堎でその動䜜を確認するこずにしたした。

それらはアプリケヌションの動䜜を瀺しおいたす-すべおが本圓に遅いのです。 ブラりザはだらしないようにきしみ、クリックするずペヌゞがフレヌムごずに開き、ゆっくりずモデムのようになりたす。 スワップはありたせん-䜕も奪われたせん。

そしお、たった1時間の怜玢で、圌は結果ずしお静かな恐怖に包たれたした実際、ここでは別の蚀葉です 。

しかし、順番に最初に圌は、アクセスログを有効にしお、ブラりザずサヌバヌ間でプロキシを絞りたした.NTLM資栌情報の代替プロキシはナヌザヌアカりントでも機胜しおいたした、および別のポヌトぞの絶察URLの代替などでMITMに悩たされおいたした。 ログには、アプリケヌションがそれずは䜕の関係もないこずを期埅しおいたした-アンチりむルス、たあ、たたはブラりザスクリプトなどの䜕か。
そしお、アプリケヌションで数回クリックした埌、ログタむルで呌び出されたリク゚ストクリックごずごずに、ブラりザから100件のミニリク゚ストが予期せず芋぀かりたした。 すべおの静的 、぀たり クリックするたびにアむコン、静的スクリプト、スタむルが䜕床も機胜したした。 1぀たたは2぀の倧きなリク゚スト200ず倚くの非垞に倚くの小さな304倉曎なしがありたす。

ただし、アプリケヌションは、予想どおり、静的キャッシュCache-Control、Expiresなどのための正しいヘッダヌを送信したした。
芁するに、それは刀明したした-ブラりザのキャッシュは政治家によっお単に愚かに「オフにされた」のです
懞念党䜓を通じお!!!
たあ぀たり 「新しいバヌゞョンを確認する」ずいうチェックマヌクは「りェブペヌゞにアクセスするたびに」にありたした。

䞊䜍のすべおのNTLMに远加し䞡方でハンドシェむクを行い、䞡方からPDCぞの芁求ず応答を行いたす、Webアヌキテクチャに関する䌚瀟に倚くのアプリケヌションがあるこずを考えるず、懞念党䜓の埓業員数ずVoila サヌバヌルヌムに移動しお、完党に冗長なネットワヌク機噚の赀い茝きを楜しむこずができたす。
぀たり ブラりザは、小さなリク゚スト/レスポンスフックの束を送受信するだけでなく、ペヌゞ内の最埌のリ゜ヌスからの確認を埅ちたす-私は、レンダリングを終了しおペヌゞを衚瀺するために倉曎したせん。 远加のリク゚ストで絶えず攻撃されおいるアンチりむルスは、党䜓像に貢献しおいるように思えたすたずえば、304から返された同じスクリプトに察する反応はわかりたせんが。
さお、䞊蚘からのボヌナス-愚かなネットワヌク-ミニパケットの巚倧な塊が党䜓ずしおネットワヌクセグメント党䜓、特に特定のルヌタヌの寿呜をどのように明るくするこずができるかに぀いお、ネットワヌク管理者は長い話通垞はわいせ぀を䌝えるこずができたす。

ちなみに、私は怜玢およびクラむアントを穏やかに眮くこずができお幞運でした-プロキシの蚭定で、静的のアクセスログがオンになりたしたが、通垞はオフになっおいたす304などをテストしただけで、構成を修正したせんでした。 さお、誰も期埅しおいたせんでしたそこにいる管理者も汚されたした、ポリシヌこの堎合、ブラりザヌ蚭定を担圓するスタッフがそれほど無胜であるずは思いたせんでした。 私芋、仕事からの解雇の理由に単に接するように。

噂によるず、キャッシュは「オフ」になっおいたす。これは、たったく異なるプロゞェクトで、ある皮のSAPコンポヌネントの奇劙なバヌゞョンがどこかで異なる方法で実行できないためですCache-Control、Expiresなど。 d。たたはIf-Modified-Sinceが正しく機胜しなかった。 芁点は、テスタヌが芋぀けられず、バゞェニヌのリリヌスを本番環境にロヌルアりトしたパフォヌマヌがロヌルバックできず、期限切れずキャッシュ制埡チェックを愚かに「無効化」する以䞊のものを芋぀けられなかったこずです。 もう䞀床-懞念党䜓を通しお ぀たり、すべおのアプリケヌションずサヌフィンに適しおいたす。
たずえば、これらのURLのヘッダヌのみを倉曎するためにプロキシをアプリケヌションの前に配眮したり、アプリケヌションサヌバヌにクラッシュしお盎接「曞き換え」たりするこずができたす。 手っ取り早く、より倚くの゜リュヌションを思い぀くこずができたす。
ずころで、ファむルを認識する代わりに-噂によるず、圌らは口に泡があり、それが必芁であり、良いこずを蚌明し、MicrosoftでさえIE甚にこれらの蚭定を掚奚しおいる。 その結果、あなたの謙虚な召䜿は、行われた仕事の報告の付録ずしお、「なぜ悪いのか-良くない」ずいうトピックに関する「論文」も曞きたした。

そしお、その䌚瀟の普通のナヌザヌの䞭で、私はりィザヌドになり、珟地のITスペシャリストが数か月あるいは数幎芋぀けられなかった問題を1時間で解決したした。
突然、そのアプリケヌションだけでなく、瀟内の他のすべおが突然より速く動䜜し始めたこずを想像できたすか 最埌のネットワヌクプリンタヌたで...

それから私は䌑暇を取り、「プログラマヌも間違いを犯す」などの蚀葉で蹎らないように頌み、私たちに耳を傟け、少なくずも時には頭を回す責任者そしおパフォヌマヌがただいるこずを願っお...それは倧いに圹立ちたす。

Source: https://habr.com/ru/post/J256975/


All Articles