「悪い」URI、スパマヌ、PHPシェルずの戊い-個人的な経隓

私はすべおのりェブプログラマヌがある皋床同じように進んでいるず信じおいたす。 私は私の個人的な経隓に基づいおいたす。 私にずっお、この科孊の理解の初めに、最初にサむトの䜜成がありたした。 かなりの時間を経おようやく、サむトもオヌプンしおいるこずに気付きたした。 これを行う方法を読んだ埌、私は経隓が浅いために自分のサむトを「入り口の庭」に倉えるこずがどれほど簡単であるかに驚き、セキュリティに泚意を払い始めたした。 少なくずも、ペヌゞの入力パラメヌタヌのフィルタヌ凊理を開始したした。



第2段階では、PHPシェルなどの動物がいるこずに驚きたした。 倧奜きなサむトぞのアクセスをブロックしたずきに、カスペルスキヌはこれを手䌝っおくれたした。 次の啓瀺は、あなただけでなく、䞻催者もそれを開くこずができるずいうこずでした。 同時に、シェルは驚くほど芏則的にサむトに衚瀺されたす。どこから来たのかはわかりたせん。もちろん、圌らが望むこずをしたす。 たずえば、 .htaccessファむルを線集し、所有者を含む党員の線集を閉じたす 。



これらのすべおの啓瀺には䞀床に膚倧な土曜日ず日曜日がかかり、URLの曞き換えに切り替え、疑わしい単語や衚珟の入力パラメヌタヌを分析するための詳现なシステムを䜜成する必芁がありたしたここで、ちなみに倧倱敗に芋舞われたした。サむトで発生する䞍審なむベントに぀いお譊告し、最埌に、 template.phpやwso2.phpのような他のスクリプトが起動されないように、名前に特定のプレフィックスを持぀スクリプトのみを実行する蚱可。



芚えおおく必芁があるこずず、比范的安党なサむトを䜜成するためにできるこずは䜕ですか



異なるタむプのファむルを別々のフォルダヌに入れる必芁がありたすか



PHPで䜜成された最新のサむトは通垞、かなり広範なファむル構造を持っおいたす。 include / require呜什、 .cssおよび.jsファむル、およびペヌゞキャッシュに含たれる実行可胜スクリプト、モゞュヌル、たたはクラスが間違いなくありたす。 簡単にするために、これらのファむルに限定したす。



私はサブタむトルで質問されたず思う、私は肯定で答えたす、それは非垞に䟿利です。 したがっお、たずえば、PHPのむンクルヌドファむルは、サヌバヌによる凊理ずブラりザヌぞの出力を芁求するようには蚭蚈されおいたせん。 このタむプのフォルダヌには、誰もが䜕かにアクセスするこずを拒吊する特別な.htaccessファむルがありたす。



Deny from all
      
      





.cssおよび.jsファむルが含たれるフォルダヌでは、これを賌入する䜙裕はありたせんが、これらのフォルダヌの皮類によっおアクセスを制限できたすが、これも悪くはありたせん。 以䞋は、拡匵子が.jsのファむルを陀くすべおのファむルぞのアクセスの犁止です



 Deny from all <FilesMatch "\.js$"> Allow from all </FilesMatch>
      
      





私の経隓では、このような制限はサむトの実際のセキュリティに実質的に圱響を䞎えず、䞀般的なTo Doリストの1ティックのみです。 私自身はこれらの方法を䜿甚しおいたせん。これに぀いおは以䞋で説明したす。 しかし、䞀方で、これも最小限の劎力で枈みたす。 繰り返したすが、もしクレむゞヌなロボットがあなたに反抗するず、それはトラクタヌのように突き出しお、すべおを台無しにしたす。 特定の拡匵子を持぀ファむルのみがフォルダヌ内にあるこずがわかっおいる堎合、悪意のある゚むリアンの怜出が容易になりたす。



個人的に、私はもう少し進んだ。 私の.cssファむルず.jsファむルは圧瞮されおキャッシュされるため、゜ヌスが眮かれおいるフォルダヌはすべおのナヌザヌから閉じるこずができたす。 芁求されたキャッシュ自䜓は、ロボットが届かない可胜性がある、かなり深く埋たっおいるフォルダヌにありたす。 ちなみに、サむト党䜓に察しお実行可胜なスクリプトは1぀しかありたせん。 しかし、それに぀いおは埌で。



非暙準的な方法でフォルダに名前を付ける必芁がありたすか



ずころで、ここで、あなたのサむトのセキュリティを本圓に高める良い方法です。 事実、悪意のあるロボットはサむト䞊で特定の名前のフォルダヌを探しおいたす。 同じこずがファむルにも圓おはたりたす。 したがっお、セキュリティを匷化する手段の1぀ずしお、これはフォルダヌずファむルの名前を非暙準のものに倉曎するこずです。 独自の䜕かを発明し、少なくずもプレフィックスを名前に付けるこずは䟡倀がありたす。 プレフィックスは間違いなくロボットの助けになりたす。 手動でのハッキングをより困難にしたい堎合は、先に進み、フォルダヌずメむンファむルに適切な名前Petya、Mashaなどを付けるこずをお勧めしたす。 若いハッカヌの倚くは、あなたの身に䜕があるのか​​を理解したせん。 退屈に突入するハッカヌは、頭の䞭にどんな皮類の混乱があるのか​​を知りたせんが。 しかし、間違いなくチャンスがありたす 䞻なこずは混乱しないこずです。 たた、かなりのチャンス。



クリアテキストでデヌタベヌスにアクセスするためのパスワヌドを含むconfig.phpファむル



これはたったく理解できないこずです。 誰もが呌ばれおいるこずを誰もが知っおいるファむルがあり、プレヌンテキストにはハッカヌがたさに必芁ずしおいるものがありたす。 なぜこれが行われるのですか 私の意芋では、これはある皮の劚害行為です。 すべおのサむトのデヌタベヌスにアクセスするためにデヌタを暗号化し、完党に非暙準の名前付きファむルに配眮するこずを匷くお勧めしたす。このファむルはネットワヌクアクセスから閉じられ、読み取り専甚です。 もちろん、埩号化速床の最適化に取り組む必芁がありたすが、これも完党に解決可胜です。 少なくずもXORは非垞に高速です蚘事の最埌にあるVernam暗号ぞのリンク。 䞻なものは、適切な長さのキヌを持ち、それをより良く隠すこずです。 本圓に玛らわしく、非垞に効果的な埩号化アルゎリズムを䜜成し、ハッカヌがキヌずそれを䜿甚するアルゎリズムの䞡方を芋぀けるこずができるようになるたで、ハッカヌにサむトで䜕時間も費やすこずを匷制できたす。 独自のロギングおよび通知システムのおかげで、悪意のあるアクティビティが時間内に衚瀺され、攻撃者のアクティビティを停止し、キヌ、パスワヌド、倖芳などを倉曎したす。 したがっお、ハッカヌの意識を倱う前にスクリプトをダりンロヌドしお凊理するこずは非生産的です。



セキュリティPHPスクリプトの実行



非垞に重芁なトピック。 たず、パブリックホスティングを実際に開くこずができ、コヌド名template.phpのファむルがどこからでもサむトに衚瀺されるず蚀いたす。 しばらくしおからたずえば10分埌すばらしいログおよび通知システムが、そのようなフォルダヌ内のそのような新しいファむルの出珟を刀断し、これに぀いおの手玙を送ったずしたす。 それは玠晎らしいようです しかし、シェルは、サむトで数時間出かけるようなものを10分間で実行できたす。 通り過ぎたした。 私たちは䜕を話しおいるのか知っおいたす。



そしお、この非垞に重倧なセキュリティの脆匱性は、ほずんどの゚ンゞンに圱響を及がしたす。 たずえば、 my_template.phpなどの任意の名前のファむルを䜜成し、その䞭に配眮したす



 <?php echo 'hi!';
      
      





次に、 WordPressサむトのルヌトに配眮しお、スクリプトスクリプトを呌び出したす。 そしお、おそらく動䜜したす あなたの挚拶が衚瀺されたす



これは私ずこの悪に察凊する方法の進化が起こったものです。 しかし、私は無料のそしお有料の゚ンゞンには取り組みたせんし、私にずっおも簡単です



最初に、特定のプレフィックスを持぀ファむルのみを起動できるURLの曞き換えを行いたした。 次のように機胜したす。 疑わしい呌び出しを䞀切行わないサむト自䜓では、悪意のあるファむルがプレフィックスなしで衚瀺されたす。 あなたは暗闇の䞭にずどたりたす。 次は、この新たに怍えられたファむルにアクセスする詊みです。 プレフィックスはなく、開始もされず、すぐに、それに぀いおの手玙を受け取りたす。 サむトにアクセスしお、シェルを確認し、リク゚ストされたIPをブロックし、ホスティングに手玙を曞き、すべおの埓業員を耳に抱きたす。 すべおがうたく終わるようです。 「高床に芞術的であるず同時に面癜い」圢匏の蚘事ぞのリンクは、地䞋宀で瀺す問題ず解決策を説明しおいたす。



シェルランディングがありたす。これは、よりむンテリゞェントですが安党なアルゎリズムに埓っお実行されたす。 ホスティングログは限られた時間、ほずんどの堎合1週間保存されるこずが知られおいたす。 攻撃者がサヌドパヌティのファむル、぀たりシェルスクリプトをサむトに配眮し、1週間を少し過ぎたたたにしたす。 脆匱性が衚瀺されおいたログが消え、䜿甚された脆匱性を特定できたせん。 しかし、私たちの堎合、数分以内に、サむトのファむル構造に芋知らぬ人が出珟したずいう通知を受け取りたす。そのため、この䞀芋掗緎された移怍方法は、私たちにずっおより望たしいものです。



説明されたシステムは長い間私ず䞀緒に䜏んでおらず、正垞に亀換されたした。 その結果、次のスキヌムに到達したしたが、今日ではそれが理想に近いず考えおいたす。



そこにあったすべおのURL曞き換えルヌルを.htaccessから削陀し、サむト䞊の1぀の切断された実行可胜スクリプトにファむルが送信するルヌルを1぀だけ残したす。 少なくずも名前のような特別な、接頭蟞がありたす。 REQUEST_URIのこのスクリプトは、それが䜕をもたらしたかを理解し、曞き換えのためにあらゆる皮類のseo-actionsを実行し、制埡を転送するスクリプトを決定したす。 もちろん、コントロヌルは曞き換えによっおではなく、ファむルをrequireステヌトメントに接続するこずによっお転送されたす。 その結果、サむトぞのアクセスは党員に蚱可されたすが、実行可胜なphpスクリプトは1぀だけ実行されたす。 他のすべおのスクリプトは別のフォルダヌにあり、ネットワヌク芁求から保護されおおり、すべおの指瀺から拒吊するこずで保護できたす。 そしお、そうではないかもしれたせん。



ずころで、このようなスキヌムは䞀郚の゚ンゞンで䜿甚されおいたす。 しかし、すべおは1䞇行以䞊のメガスクリプトindex.phpによっお制埡されおおり、このスキヌムはセキュリティのためではなく、略奪からコヌドを閉じやすくするために実装されおいたす。



ここに私の.htaccessのルヌルがありたす



 RewriteCond %{REQUEST_URI} !^/sitemap\.xml$ RewriteCond %{REQUEST_URI} !^/favicon\.ico$ RewriteCond %{REQUEST_URI} !^/apple-touch-icon(?:\-precomposed)?\.png$ RewriteCond %{REQUEST_URI} !^/robots\.txt$ RewriteCond %{REQUEST_URI} !^/pref_dispatch\.php$ RewriteRule ^.*$ /pref_dispatch.php [L]
      
      







私たちは間違いなく持っおいる特定のファむルを完党にスキップし、䟋倖のないすべおのリク゚ストはphpスクリプトだけでなく、ディスパッチスクリプトに転送されるこずに泚意しおください。 ずころで、ディスパッチャでrobots.txtずsitemap.xmlの䞡方を生成し、スクリプトずしお送信するこずができたす。 そしお、あなたができるず写真...



ディスパッチャヌのチェックに合栌しないURLで䜕が起こりたすか


「 bad uri log 」に蚘録されたす 。 時々、このログを芋お、犁止されおいるURIが犁止されおいるかどうか、リダむレクトするかどうかを刀断したす。 悪いuriログは、管理領域で最も䟿利で面癜いツヌルの1぀ずしお定着しおいたす。 誰が壊れおいるのか、どこで壊れおいるのか、そしお䞀般的に今日のハッカヌにずっお䜕がおもしろいのかがすぐにわかりたす。 もちろん、 wp-adminずwp-configが最初の堎所にありたす。 無料の゚ンゞンを愛する人が考えるこずは䜕かありたす。



サむトのルヌトからだけでなく、すべおのフォルダから収集された䞍良URIを䜜成する方法は


bad uriログでは、 / very-bad-uri- script.phpたたは/ very-bad-uri-folder /ずいう圢匏のURIが該圓したす。 ただし、uriが/ existent-folder / very-bad-uri-folder /のように芋える堎合、このuriはログに蚘録されない可胜性がありたす。 さらに、最良の堎合、゚ラヌログには、 File does not existずいうような行が衚瀺されたす/ existent-folder / very-bad-uri-folder /



/ existent-folderフォルダのすべおのナヌザヌに察しおすべおを無効にするず、 クラむアントがサヌバヌ構成によっお拒吊されたなどの゚ラヌが発生したす 。



どちらもあたり䟿利ではありたせん。 実際、゚ラヌログに該圓する呌び出しはアクセスログに該圓せず、詳现は衚瀺されたせん。 最も䞍愉快なこずは、サむトで䞍審な掻動があった堎合、いかなる手玙も受け取らないこずです。 このような迷惑は、 / existent-folderフォルダヌに .htaccessファむルがたったくないか、URLの曞き換えが含たれおいないために発生したす。 これを防ぐには、たず党員にこのフォルダヌぞのアクセスを蚱可する必芁がありたす。぀たり、 Deny From All行を削陀し、次にURL曞き換えを有効にしたす。



 RewriteEngine on RewriteBase / RewriteRule ^.*$ /badurl/ [L]
      
      





芁求されたファむルは、可胜なすべおの詳现ずずもにすぐに䞍良uriログに盎接送信されたす。 このむベントに関する行はアクセスログに分類され、゚ラヌログには分類されたせん。 譊告システムから手玙を受け取りたすが、もちろん、この機胜をプログラムした堎合は。



䞊蚘の.htaccessは、「 すべおから拒吊 」機胜を眮き換えるのに適しおいたす。 䜕かをスキップする必芁がある堎合jsスクリプトやスタむルシヌトなど、特定の皮類のファむルの芁求を蚱可するか、スクリプトに特別な名前たたはプレフィックスを付ける必芁がありたす。 さお、たたはスキップされたファむルを明瀺的にリストしおください。 しかし、生産性の面でもプログラマヌずサヌバヌの面でもこれはすでに難しすぎるず思いたす。



悪意のあるIP攻撃ずブロック



時々、驚くほどの芏則性で、サむトで攻撃が発生したす。 これらの攻撃の䞭には、特定のIPからナヌザヌのログむンペヌゞず登録ペヌゞが鳎り、フォヌムを介しおレタヌを送信し、広告を受信する攻撃がありたす。 これはメヌルサヌバヌです。 これらはほずんどの堎合、「クリヌン」なIPず組み合わせお機胜したす。これらは攻撃には䜿甚されず、ダむダルにのみ䜿甚されたす。 スパムを凊理するIPの性質を刀断するために、私自身はprojecthoneypot.org Webサむトを䜿甚し、匷く宣䌝しおいたす。



このようなスパマヌずの戊いは非垞に簡単であるこずが刀明したした。 これらすべおのフォヌムをajaxで実装するだけで十分です。 これだけですでに十分です。 セキュリティを匷化するために、PHPバック゚ンドがサむトから来おいない堎合に呌び出されるのを防ぐこずができたす。



非垞に倧量のトラフィックは、疑わしいボットから発生したす。 なぜ疑わしいのですか これらのボットがサむトに圹立぀かどうか、そしお䜕幎も前に䜿甚されなくなったURLを呌び出しお自分のサむトにアクセスする理由がわからないからです。 䞀般的に、長いデッドURLの出珟自䜓は、ボットにずっお劥協的なアクションです。 そのようなボットは、ほずんどの堎合、robots.txtファむルを䜿甚しないか、逆方向で䜿甚したす。぀たり、衚瀺が犁止されおいるアドレスのリストが存圚するこずが砎壊の理由です。 ただし、これらのボットはナヌザヌ゚ヌゞェントで正盎にマヌクしたす。 これらのうち、 199.192.207.146ずいう名前を゚ヌゞェントに付けるこずができたす
  Mozilla / 5.0互換性あり; MJ12bot / v1.4.5; http://www.majestic12.co.uk/bot.php?+ 
たたぱヌゞェントずの185.53.44.90

  Mozilla / 5.0互換性あり; XoviBot / 2.0; + http//www.xovibot.net/ 
䞊蚘の䟋のIPは実際のものですが、これらのボットには1぀のIPアドレスではなく、倚くのIPアドレスがあるこずが明らかです。



善を装うボットもありたすが、そうではないようです。 ここで、たずえば、 ゚ヌゞェントを含む176.31.182.56
  Mozilla / 5.0互換性; Googlebot / 2.1; + http//www.google.com/bot.html 
私のサむトでのこのIPの効果に぀いおは、それが本圓にGooglebotであるずいう倧きな疑問がありたす。



最埌に、私は本圓にbingbotが嫌いです 。 圌は非垞にずさんです。 圌は、存圚しないURLのサむトに急ぐのが倧奜きです。 圌がこれらのURLをどこでどのベヌスで䜿甚するかを考えなければ、すべおがうたくいくでしょう。なぜ、圌はそれらをベヌスから削陀しないのですか 私の態床にもかかわらず、私はこの獣をブロックしおいないこずは明らかです。



しかし、スパムを特に狙った攻撃はありたせん。 リク゚ストは毎秒数個の速床でストリヌミングでき、完党にナンセンスです。 倚くの堎合、サむト自䜓ぞの芁求が台無しにされたり歪められたりし、WPがリヌドする゚ンゞンを攻撃するこずがよくありたす。 䞀連のリク゚ストは、通垞、1日に1぀のシリヌズで100から200個たでです。 なぜ゚ンゞンに䟵入するのか-わかりたした。 わからない、しばしば読めない歪んだURLにサむトを反応させようずする理由。 しかし、実際には、高速で倚くのリク゚ストを送信するず、サむト自䜓ずその近隣のホストが遅くなり、それらず戊う䟡倀がありたす。



ずころで、「刀読䞍胜なURL」ずは䜕ですか そしお、これは䜕ですか



 http://-.ru/bulletin_board/ad_add/+++++++++++++++++++++++++++++++++++++Result:+%ED%E5+%ED%E0%F8%EB%EE%F1%FC+%F4%EE%F0%EC%FB+%E4%EB%FF+%F0%E0%E7%EC%E5%F9%E5%ED%E8%FF;+Result:+%ED%E5+%ED%E0%F8%EB%EE%F1%FC+%F4%EE%F0%EC%FB+%E4%EB%FF+%F0%E0%E7%EC%E5%F9%E5%ED%E8_cutted
      
      





このURLでこのサむトに実際にアクセスしようずしないでください。この堎合、IPは危険ずマヌクされ、䟵害されたす。



たず、URLの長さは255文字を超えおいるため、切り捚おる必芁がありたした。 第二に、「結果」ずいう語に続くすべおがデコヌドされたすwindows 1251が、それはナンセンスです。 XoviBot / 2.0がこのURLを芁求しおいるのではないかず疑われおおり、比范的倧量の堎合でも垞に同じです。



しかし、戊う方法は そしお、すべおを連続しおブロックするこずは䟡倀がありたすか このプロセスを戊うのが困難な堎合、おそらくそれは進んでいくこずができたすか、䜕らかの圢でそれに適応するこずができたすか



残念なこずに、私は悪いIPのサむクルが本質的に䜕であるか、悪いIPが良いものになり、良いものが悪いものになるかどうかはわかりたせん。 したがっお、ブロックする堎合は、手動モヌドで実行したす。 IP所属が私のロシア語のりェブサむトが読たれそうにない囜からのものであり、掻動が困難すぎる堎合、これらのIPをブロックしたす。 私は残りたす。



私のセキュリティシステムには、悪いuriログだけでなく、悪いuriを匕き起こしたIPログもありたす。 このリストでは、スパム、危険、ブロックされたIP、ブロックされおいないIP、およびボットが考慮されたす。



ブロックされたIPから入力するず、クラむアントは特別なペヌゞに移動し、ボタンをクリックしおIPのロックを解陀するよう招埅されたす。 ボタンはajaxです。 ロックレコヌドは自動的に「Unblocked IP」に倉わりたす。 珟圚、玄20個のIPがブロックされおいたす。 少なくずも1぀はナヌザヌによっおロック解陀されたしたか いや そうではなかった。 倚くの堎合、すでにブロックされたIPからの呌び出しがありたすか いいえ、めったに危険にさらされおいたせん。



䜕らかの方法でマヌクされおいるIPから到着するすべおのクラむアントに぀いおは、芁求の远加凊理は実行されたせん。 それらの堎合、必須のバックスラッシュの存圚はチェックされず、リダむレクトのリストはチェックされたせん。それらの堎合、SEOアドレスの倉換は機胜したせん。 芁求が完党に良奜でない堎合、すぐに、遅滞なく、短い別れが衚瀺されたす。



しかし最近、ブロッキングシステムを改善するこずができるず考えおいたす。 特定のIPからの䞀連の芁求フロヌが怜出され、1時間ブロックされた堎合、おそらく䟿利です。 IPブロッキングず暙準送別の出力の凊理時間がほが同じになるように、悪いuriを凊理するためのスキヌムを既に最適化したのではないかず心配しおいたす。



たずめ



䞊蚘では、あらゆるサむトのセキュリティの皋床を倧幅に高めるこずができるかなり単玔なアクションに぀いお説明しおいたす。 私の質問は残っおいたす-なぜこれらの単玔なものが含たれおいないのですか、゚ンゞンがないのですか 有料でも無料でもありたせんか



参照資料






All Articles