web-dev-qa-db-ja.com

リモートでのコード実行とXSSの脆弱性。これらが発見され、パッチが適用されたら、サーバーを保護するためにどのような手順を踏む必要がありますか?

実行しているサイトでのリモートコード実行の脆弱性とxssの脆弱性について通知を受けました。責任のあるコードを修正しましたが、その後にどのような手順を踏む必要があるのでしょうか。

  1. サーバーが安全であることを確認する
  2. データが侵害されていないことを確認する
  3. 悪意のあるファイルがアップロードされていないことを確認します。

リモートコード実行の脆弱性は特に悪質で、PHPコードをサーバーで実行し、出力をユーザーに表示することを許可しました。

アプリはAmazon Lightsailでホストされています。新しいインスタンスに再デプロイすると役に立ちますか?

1
Mark Brown

最善の解決策は再デプロイすることですが、質問に適切に回答することです:

  1. サーバーが安全であることを確認します。永続性を設定するように設定されている可能性がある、実行中のプロセスであるルートキットを探してください。
  2. データが危険にさらされていないことを確認します。残念ながら、これを行う確実な方法はありません。データは非常に簡単に持ち出される可能性があるためです。サーバーが危険にさらされていることがわかっている場合は、データが漏洩した可能性があると常に想定する必要があります。
  3. 悪意のあるファイルがアップロードされていないことを確認します。これは、最初のポイント自体でカバーされる必要があります。 PHP以外のファイルがシステムに残っている場合、問題は発生しません。この時点でできることは、すべてのphpファイルを手動で検索し、悪意のあるものかどうかを判断することです。

ご覧のとおり、上記のタスクには大きな負担がかかります!!したがって、ソリューションを再デプロイすることをお勧めします!

編集1:これはRCEにのみ適用されます。 XSSの視点の場合、入力が具体化されている限り、サーバー側から何もする必要はありません。

2
Ashutosh Raina

インフラストラクチャを壊さないでください。新しいインスタンスを立ち上げて、それにリダイレクトします。古いインスタンスの監視がなかった場合は、これに対処してください。

あなたが立っていたものをオフにする/イメージすることができる場合-あなたが誰かにこれを見てもらい、あなたが必要なスキルを持っているように聞こえないので違反が発生したかどうかを判断したいと思うでしょう。

すでに安全性が証明されていないアプリケーションとホストに対して侵入テストを実行します。私はすべてのユーザーへの通知に同意しません(最初のアクションとして)-違反は確認されておらず、公開に飛び込むことは評判を損ない、それに関連する多大なコストがかかります。

この段階で解決できるのは脆弱性だけです。

1
McMatty