公開されたバックアップファイルと参照されていないファイル、およびそれらを見つける方法
公開: 2021-08-24WordPressを安全に保つには、テスト、強化、監視、および改善の継続的なプロセスが含まれます。 WordPress管理者が自分のウェブサイトの安全を確保するために世話をすることができるいくつかのことがあります。 パスワードが特定の基準を満たしていることを確認することからPHPを強化することまで、これらのプロセスは、タイトでクリーンな船を確実に実行するのに大いに役立ちます。 見落とされがちなことの1つは、公開されたバックアップファイルと参照されていないファイルです。 これらのファイルは、ベストプラクティスに従うことで簡単に管理できるセキュリティリスクをもたらす可能性があります。
WordPressはディレクトリを使用して情報を整理します。 すべてのページとメディアはこの構造内にあります。 通常のインストールでは、この構造はvar / www / html / wordpress / wp-contentのようになります。
WordPress Webサイトをホストするサーバーを含むWebサーバーは、通常、特定のディレクトリ内にあるすべてのファイルをクライアントに提供するように構成されています。 PHPファイルなど、いくつかの例外があります。 ただし、管理者が明示的にアクセスをブロックしていない限り、クライアントがアクセスを要求した場合、Webサーバーがそれを義務付ける可能性があります。
一般的に言って、これは良いことであり、CSSファイル、JSファイル、画像など、Webページに関連するファイルが訪問者に提供される方法であるため、これはあなたが望んでいることです。 ただし、この動作は、バックアップファイルや参照されていないファイルなど、一般に公開することを意図していなかったファイルを無意識のうちに提供する可能性があることも意味します。
バックアップファイルと参照されていないファイルとは何ですか?
名前が示すように、バックアップファイルと参照されていないファイルは実際に作成されたバックアップであり、通常は構成ファイルなどのファイルを編集するときに作成される特定のファイルのバックアップ、または完全バックアップのいずれかです。 これらのバックアップファイルとは何か、およびそれらがどのように生成されるかを理解することは、問題に対処するために実行する必要がある最初のステップです。
WordPressファイルを編集する必要がある理由はたくさんあります。 ただし、WordPressサイトのファイルを編集するには、最初にバックアップを取る必要があります。セミコロンが1つ欠けていると、Webサイトがダウンする可能性があります。
もちろん、このような間違いは簡単に発生するため、本番Webサーバーでファイルを直接編集することはお勧めできません。 ベストプラクティスでは、最初にテストサーバーまたはステージングサーバーで変更をテストするように指示されています。 徹底的かつ成功したテストの後でのみ、変更をライブ/本番サーバーに移動できます。
ただし、実際には、ベストプラクティスが常に守られているとは限りません。 これは、小さな変化の場合に特に当てはまります。 ファイルのダウンロード、変更、テスト、および再アップロードのプロセスは、ライブサーバーでファイルを編集するよりもかなり時間がかかる場合があります。 私たちは皆そこにいました。
ライブサーバーでの編集は非常に簡単です。 SSHクライアントとVi(または改善されたバージョンが必要な場合はVim)を使用すると、驚異的なことができます。 サーバーに接続してディレクトリに移動したら、最初にファイル(wp-config.php.bakなど)のバックアップを取り、ライブファイルを編集して、すべてが正常であることを確認します。そして、それはすべてハンキードーリーです。 ただし、フォルダに残っているバックアップファイル(念のため)は、多くの痛みや苦痛の原因となる可能性があります。 ほとんどの場合、誰でもダウンロードでき、プレーンテキストで構成全体をダウンロードできます。
さらに、多くのWordPress管理者は、Vimなどのファイルエディタを使用してファイルを編集すると、バックアップ、リカバリ、およびロックファイルが自動的に作成されることに気付いていない可能性があります。 Vimはこれらのファイルを作成して、Vimがクラッシュしたり、予期せず終了した場合に作業を回復できるようにします。 これは間違いなく持っている価値のある機能ですが、これはまた、誰かがアクセスするのを待って、作成するつもりのないバックアップファイルがWebサイトの周りに散らばってしまう可能性があることも意味します。
同様に、パブリックフォルダに残されたディレクトリ全体のバックアップも同様に損害を与える可能性があります。 WordPress Webサイトのバックアップを取ることは重要ですが、これは新しいセキュリティリスクをもたらすことなく安全に行う必要があります。 これについては、この記事の後半で詳しく説明します。
バックアップファイルの一般的な例には、変更された古いバージョンの変更された構成ファイル、PHPファイル、またはその他のソースコード、および圧縮アーカイブ(.zip、.gz、.tar.gzアーカイブなど)形式の自動または手動バックアップが含まれます。
一方、参照されていないファイルは置き忘れたファイルであり、構成または設計上の決定により、それらが属していない場所に配置されてしまいます。
リスクは何ですか?
バックアップファイルや参照されていないファイルに誤ってアクセスできるようにしておくと、機密情報が漏洩する可能性があります。 ファイルによっては、機密データに構成パラメーターやソースコードが含まれている場合があります。これにより、悪意のあるユーザーがWebサイトの動作をよりよく理解できるため、Webサイトに対する攻撃を簡単に作成できます。 場合によっては、攻撃者がWordPressのインストール全体を制御できるようにするパスワードも漏洩する可能性があります。
誰かがあなたのウェブサーバーに残っているファイルを見つけることができるいくつかの方法があります。 一部の方法には技術的な専門知識が必要ですが、他の方法はGoogle検索のように単純であるため、露出のリスクが高まります。 サーバーにファイルが残っているかどうかわからない場合は、読み続けて、他の人よりも先にファイルを検索して見つける方法を学びましょう。
WordPressWebサイトでバックアップファイルと参照されていないファイルを見つける方法
バックアップファイルと参照されていないファイルを見つけるために誰かが使用できるいくつかの異なる方法があります。 サーバーの所有者として、あなたはそれをより直接的に行うことができるので、あなたは優位に立っています。 このセクションでは、これらのファイルをハントおよび削除するために使用できるツールから始めて、これらのさまざまなツールについて説明します。 次に、好奇心旺盛な猫がサーバー上のバックアップファイルと参照されていないファイルを見つける方法を見ていきます。
Webサーバーに残した可能性のあるバックアップファイルを探す場合は、3つの方法のうちの1つ(または複数)を使用できます。 最も簡単な方法は、ファイルの変更を監視するプラグインをインストールすることです。 または、findなどのコマンドラインツールを使用してファイルシステムに残っているバックアップファイルを検索するか、ファジングと呼ばれる手法を使用してバックアップファイルを検索することもできます。
ファイル整合性監視プラグイン
WordPressのファイル整合性監視ソリューションは、Webサーバー上のファイルの変更を簡単に監視し、何かが追加、削除、または変更されたことを検出した場合に警告するのに役立ちます。
これは、Webサイトファイル変更モニタープラグインを使用して実現できます。 プラグインはディレクトリのフィンガープリントを取得し、それを後続のフィンガープリントと比較します。 本質的に、チェックサムと同じ原理で動作するため、安全性と信頼性が高くなります。
WordPressで使用されるすべてのディレクトリに精通していない場合は、ファイル整合性モニターが特に効果的です。 このプラグインのもう1つの重要な利点は、監視が自動化されているため、ファイルをチェックすることを覚えておく必要がないことです。プラグインが自動的にチェックします。
探す
次に、findコマンドを使用してバックアップファイルを検索する方法を見てみましょう。 次のコマンドは、バックアップファイルの作成時に使用される一般的に使用されるいくつかのファイル拡張子を検索します。
find / var / www -type f \(-name '* .bak' -o -name '* .backup' -o -name '* .bac' -o -name '* .zip' -o -name '* .tar'-o -name '* .jar'-o -name' * .log'-o -name '* .swp'-o -name' * 〜'-o -name '* .old'-o- name '*。〜bk' -o -name '* .orig' -o -name '* .tmp' -o -name '* .exe' -o -name '* .0' -o -name '*。 1'-o -name '* .2'-o -name' * .3'-o -name '* .gz'-o -name' * .bz2'-o -name '* .7z'-o- name '* .s7z' -o -name '* .lz' -o -name '* .z' -o -name '* .lzma' -o -name '* .lzo' -o -name '* .apk '-o -name' * .cab'-o -name '* .rar'-o -name' * .war'-o -name '* .ear'-o -name' * .tar.gz'-o -name '* .tgz' -o -name '* .tar.z' -o -name '* .tar.bz2' -o -name '* .tbz2' -o -name '* .tar.lzma'- o -name '* .tlz' -o -name '* .zipx' -o -name '* .iso' -o -name '* .src' -o -name '* .dev' -o -name '* .a'-o -name '* .ar'-o -name' * .cbz'-o -name '* .cpio'-o -name' * .shar'-o -name '* .lbr'-o -name '* .mar' -o -name '* .f' -o -name '* .rz' -o -name '* .sfark' -o -name '* .xz' -o -name '*。 ace'-o -name '* .afa'-o -name' * .alz'-o -name '* .arc'-o -nam e '* .arj' -o -name '* .ba' -o -name '* .bh' -o -name '* .cfs' -o -name '* .cpt' -o -name '* .dar '-o -name' * .dd'-o -name '* .dgc'-o -name' * .dmg'-o -name '* .gca'-o -name' * .ha'-o -name '* .hki' -o -name '* .ice' -o -name '* .inc' -o -name '* .j' -o -name '* .kgb' -o -name '* .lhz' -o -name '* .lha' -o -name '* .lzk' -o -name '* .pak' -o -name '*。partimg。'-o -name' * .paq6 '-o -name '* .paq7' -o -name '* .paq8' -o -name '* .pea' -o -name '* .pim' -o -name '* .pit' -o -name '* .qda' -o -name '* .rk' -o -name '* .sda' -o -name '* .sea' -o -name '* .sen' -o -name '* .sfx' -o -name ' * .sit'-o -name '* .sitx'-o -name' * .sqx'-o -name '* s.xz'-o -name' * .tar.7z'-o -name '*。 tar.xz'-o -name '* .uc'-o -name' * .uc0'-o -name '* .uc2'-o -name' * .ucn'-o -name '* .ur2'- o -name '* .ue2' -o -name '* .uca' -o -name '* .uha' -o -name '* .wim' -o -name '* .xar' -o -name '* .xp3'-o -name '* .yz1'-o -name' * .zoo'-o -name '* .zpaq'-o -name' * .zz'-o -name '* .include'-o -name '* _1' -o -name '* _2' -o -name '* _x' -o -name '* bak' -o -name '* _bak' -o -name '* old' -o -name '* _old' -o -name '* _a' -o -name '* _b' -o -name '* _c' -o -name '* _d' -o -name '* _e' -o -name '* _ f'-o -name' * inc '-o -name' * _inc '-o -name' * _backup '-o -name '* –コピー' -o -name '* –コピー(2)' -o -name '* –コピー(3)' -o -name '* backup' -o -name '* -backup' -o -name '* -bak' -o -name '* -old' -o -name '* -1' -o -name '* -2' -o -name '* –コピー–コピー' -o -name '*(コピー) '-o -name' *(別のコピー) '-o -name' *(2番目のコピー) '-o -name' *(3番目のコピー) '-o -name' *(4番目のコピー) '-o- name '*(2番目のコピー)' -o -name '*(3番目のコピー)' -o -name '*(4番目のコピー)' -o -name '*(コピー)' -o -name '*(別のコピー) '-o -name' *(2番目のコピー) '-o -name' *(3番目のコピー) '-o -name' *(4番目のコピー) '-o -name' *(2番目のコピー) '-o -name' *(3番目のコピー) '-o -name' *(4番目のコピー) '-o -name'コピー* '-o -name'コピー(2)of * '-o -name'コピー(3)of * ' -o -name 'コピーのコピー*'-o -name'backup * '-o -name'backup_ *'-o -name'backup- * '-o -name'bak *'-o -name'bak_ * '-o -name' bak- * '-o -name'old *'-o -name'old_ * '-o -name'old- *'-o -name '1 *'-o -name '1_ *'-o -name '1- *'-o -name '2 *'-o -name '2_ *'-o -name '2- *' \)
ファジング
次のメソッドは、WordPressファイルに焦点を当てたワードリスト(プレーンテキストで収集されたファイル名とファイルパスのリスト)を備えたffufと呼ばれるコマンドラインベースのツールを使用します。 ffufは、一般的なバックアップファイル拡張子のコンマ区切りリストを使用して要求を行うように構成できます(この例では、.bakと.backupのみを含む短縮リストのみを使用しますが、実際にははるかに長くなる可能性があります)。
ffuf -u http://example.com/FUZZ -w wordlist.txt -e'.bak、.backup '
検索エンジン検索
検索エンジンは、Webサーバー上の情報の検索とカタログ化に非常に優れています。 誰かがこれを行うには、たとえば、クエリをドリルダウンして特定のサーバー上の特定のファイルタイプを見つけることができる高度な演算子を使用します。
このタイプの検索はGoogleドーキングとも呼ばれ、高度なフィルターと推論を組み合わせて使用できます。 推論とは、サーバーに何が存在するかを知らない人が一般情報を使用して、サーバーに存在する可能性のあるファイルや構造の種類を推測し、それらの特定のものを検索する方法です。
セキュリティスキャナー
Webサイトのディレクトリをスキャンできるスキャナーにはさまざまな種類があります。 最初のタイプのスキャナーはサイトクローラーと呼ばれ、検索エンジンがWebサイトを読み取るために使用するのと同じ基盤技術です。 ただし、これらのタイプのスキャナーは検索エンジン専用ではなく、無料でダウンロードできます。
たとえあなたの意図が良かったとしても、ほとんどの国でターゲットのウェブサイトをスキャンすることは違法です。 スキャナーは、所有しているWebサイトに対してのみ使用できます。 サードパーティのWebサイトをスキャンする場合は、同意があることを確認してください。 それでも、悪意のある人はセキュリティスキャナーを使用して、Webサイトについて詳しく知り、Webサイトにあるファイルの種類を理解することができます。
別の種類のスキャナーは侵入テストスキャナーで、残りのファイルを含む脆弱性についてWebサイトをスキャンできます。
バックアップまたは参照されていないファイルが見つかりましたか? これが何をすべきかです
Webサイトにバックアップファイルを保存することは決して良い考えではありません。 残念ながら、WordPress Webサイトの所有者と管理者が、データベースのバックアップを取るようにcronジョブ(スケジュールされたタスク)を構成し、これらのバックアップを同じサーバーに保存することは珍しくありません。 あなたは間違いなくあなたのウェブサイトをバックアップするべきですが、あなたはバックアップファイルがあなたがバックアップしたシステムのどこにも保存されないように注意するべきです。
ベストプラクティスに従うよく考えられたWordPressバックアップ戦略を持つことは、セキュリティの観点からだけでなく、ビジネス継続性の観点からも同様に重要です。 結局のところ、バックアップを使用してデータを復元できない場合、バックアップはあまり価値がありません。
バックアップファイルの列挙を防ぐ方法
この記事全体で見てきたように、WordPressWebサイトにバックアップファイルを保持することはかなり危険です。 そのため、変更をライブ/本番サーバーにプッシュする前に、常にテスト環境またはステージング環境を使用して変更を実行する必要があります。 ほとんどのマネージドWordPressホスティングアカウントには、すぐに使用できるステージング環境が付属しています。 また、ローカルなどのソフトウェアを使用して、PCでWordPressインスタンスを起動することもできます。
それでも、バックアップファイルをWebサーバーに保持することを選択した場合は、理想的には、提供するようにWebサーバーを構成したディレクトリからそれらを保持します。
さらに、WordPressファイルのアクセス許可を構成して、Webサーバーのユーザーへのアクセスを禁止します。これにより、構成が間違っている場合でも、Webサーバーがファイルを要求しているクライアントにファイルを提供できないようになります。 追加の手段として、データベースのバックアップを暗号化し、Webサーバーのユーザーが暗号化キーにアクセスできないようにすることをお勧めします。