web-dev-qa-db-ja.com

ウェブサイトがハッキングされたと誰かが言ったとき、それは実際にはどういう意味ですか?

私は多くの人々が彼らのウェブサイトがいくつかの脆弱性を使ってハッキングされたと言うのを見ました。これが何を意味するのか私は完全に理解していません。

Webサイトを制御する唯一の方法は、FTPの詳細を取得することです。

したがって、ハッキングとは、他の誰かがどういうわけかFTPの詳細を入手したことを意味すると思います。これは正しいです?

8
user1858027

これは非常に広範な質問です。 「ハッキング」という言葉はあまり説明的ではありません。技術者は、何が起こったかを具体的に説明する可能性が高くなります。通常、「私のサイトはハッキングされています」は「私のウェブサイト/ウェブサーバーが何か悪いこと/望ましくないこと/驚くべきことをしている」ことを意味するために使用されます。

これが発生するいくつかの方法を次に示します。

  1. 攻撃者はWebサーバー(オペレーティングシステムまたはWebサーバーアプリケーション自体)にアクセスします。これは、サーバー管理者が使用するさまざまな資格情報(FTP、SSH、SQLなど)を推測または盗むことによる可能性があります。

  2. 攻撃者は既存のWebページを操作して、意図しない何かを実行させます。これは、 SQLインジェクション または クロスサイトスクリプティング の脆弱性のようなメソッドを介して発生する可能性があります。 Open Web Application Security Project(OWASP)でより詳細なリストを参照してください

  3. Webサーバーは正常に動作していますが、ユーザーまたは管理者はWebサーバーの動作を理解しておらず、「ハッキング」されていると考えています。 2006 では、 CentOS が「 ハッキングの成功のためにApache Webサーバーの設定ページを間違えた市のマネージャーによるFBIへの公式の苦情 ".

不明な点がある場合は、明確にするか、質問してください。非常に幅広いトピックです!

13
scuzzy-delta

用語「ハッキング」は、Webサイトへの攻撃に関連する場合、いくつかの異なる意味を持つ可能性があります。いくつかの種類の「ハック」の異なるtargetsに焦点を当てましょう:

  • serviceが提供されます-一部の攻撃(DoS/DDoS)は、ユーザーが特定のサービスを利用できないようにすることを目的としており、収益の損失につながる可能性があります
  • 情報保存-攻撃(SQLインジェクションなど)は脆弱性に依存して、データベースまたはサーバー自体に保存された機密情報や重要な情報を開示します
  • server自体(Web /アプリケーションサーバー)-攻撃により、基盤となるサーバーが侵害される可能性があります(SSH/FTP資格情報の開示など)
  • sers-攻撃は、Webサイトの脆弱性を(ab)使用してユーザーに害を与える可能性があります(クロスサイトスクリプティング、クロスサイトリクエストフォージェリ、オープンリダイレクトなど)
  • その他のドメイン-さまざまなドメインでホストされているさまざまなWebサイトを攻撃するために、脆弱性が悪用される可能性があります
7
Gurzo

これは非常に幅広い質問ですが、簡単に説明できるように最善を尽くします。

Webサイトは、非常に複雑なソフトウェアの一部になる可能性があります。多くのサイトはstatic、つまりプレーンHTMLドキュメントのみを提供している可能性がありますが、それらの多くはdynamic、つまり、データベースリソースまたはファイルにアクセスできるスクリプトからHTMLコンテンツを出力する。これらは一般的にPHP=またはASP.NETで記述されていますが、他にも多くのテクノロジーが存在します。そのため、これらのスクリプトの1つにエラーがあると、攻撃者がサーバーを危険にさらす可能性があります。

しかし、私たちはすでに一歩先を行っています。サーバーはすでに非常に複雑なシステムであり、ハードウェア、ファームウェア、ソフトウェアが含まれています。ハードウェアは、外部ソース(ネットワークケーブルやキーボードなど)から信号を受け取り、RAMに保存してシステムソフトウェアで処理できる)データに変換します。変換プロセスと状態管理は多くの場合、ファームウェアと呼ばれるハードウェア周辺機器で直接実行される特別なタイプのソフトウェアによって処理されます。このファームウェアは、着信生データをシステムソフトウェアが必要とする複雑な構造に変換するのに役立ちます。そこから、オペレーティングシステムソフトウェア(カーネルなど)は、生の構造とユーザープログラムに抽象化のレイヤーを提供します。これは、別の非常に複雑なソフトウェアセットになる可能性があります。さらに、オペレーティングシステム上で実行されるユーザープログラムがあり、これにはWebサーバーやFTPサーバーが含まれる場合があります。

これらのレイヤーはすべて攻撃面を表します。これは、本質的に、攻撃者によって悪用される可能性のあるソフトウェアバグの可能性があることを意味します。最も一般的に攻撃される層はユーザープログラムですが、それらはすべてターゲットとしての可能性があります。たとえば、ネットワークカードのファームウェアは、802.11n wifiプロトコルをデコードしてから、データをイーサネットフレームに変換します。ネットワークカードのファームウェアに欠陥が発見された場合、WiFi信号を介して特別に細工されたデータのパケットを送信することにより、デバイスが誤動作する可能性があります。これにより、サービス拒否(DoS)状態が発生し、デバイスがデータの送受信を停止する可能性があります。

オペレーティングシステムは非常に複雑なソフトウェアであり、これもまた大きな攻撃対象となる可能性があります。最近のオペレーティングシステムとそのカーネルの脆弱性はあまり一般的ではありませんが、まだ存在しています。これの良い例は MS08-067 です。これは、リモートの攻撃者が実行可能コードを含む特別に細工されたパケットを送信することを可能にするWindowsサービスの脆弱性であり、そのコードは最終的にサーバ。そのコードにより、システム上に新しいユーザーが作成されるか(後でリモートデスクトップ経由でログインできる)、コマンドプロンプトが生成され、TCP接続を介して攻撃者にパイプされるこれらのタイプの攻撃は両方とも、サーバー自体またはそのFTPサービスの資格情報を知る必要なく、攻撃者がサーバーを完全に危険にさらします。

もちろん、これらの種類のバグは、Webサーバーソフトウェア自体(Apache/IISなど)やFTP、SSH、VNC、SQLなどのユーザーがインストールしたサービスにも影響します。これらのサービスのいずれかがリモートでコードを実行することは完全に可能ですバグ、コマンドインジェクションバグ、サービス拒否のバグ、認証バイパスバグなど。これらのバグは頻繁に発見され、パッチが適用されるため、最新の状態に保つことが重要です。それらを最新に維持しないと、攻撃者がバグを使用してシステムに不正アクセスする可能性があります。

最後に、実際のウェブサイトがあります。 PHPまたはASP.NETを介してWebアプリケーションと呼ばれる)動的サイトを使用している場合、基本的にユーザーからのHTTPリクエストを受け取り、そのHTTPリクエストをWebアプリケーションが理解できる形式に解析し、リクエストに基づいてアクションを実行し、一部のコンテンツを出力します。これらすべての領域にバグがある可能性があります。しかし、最も一般的な領域は、ユーザーの要求に基づいてアクションが実行される部分です。たとえば、URLからパラメーターを取得し、SQLデータベースクエリで使用して、フォーラム投稿のリストを取得し、結果を出力します。 HTML形式で表示されます。SQLクエリ操作が適切に記述されていない場合、悪意のあるユーザーが、クエリの動作が異なる特別な形式のURLを作成できる可能性があります。たとえば、すべてのフォーラム投稿ではなくすべてのユーザーレコードを返します。これはSQLと呼ばれます次に、それらの資格情報を取得し、ハッシュされたパスワードをオフラインでクラックし、それらを使用してサイトにログインします。

もう1つの一般的な脆弱性は、Webアプリケーションがリソースへのアクセスを適切に制御しない場合に発生する、安全でないダイレクトオブジェクトリファレンスのバグです。たとえば、ユーザーがアクセスできるドキュメントのリストがあり、ドキュメントを表示するスクリプトに数値IDが渡されている場合があります。 document.php?id=123。ドキュメントのリストにはユーザーがアクセスできるドキュメントのみが表示されますが、ユーザーはURLのIDを変更して、すべきではないドキュメントを直接参照する可能性がありますにアクセスできます。適切なチェックが含まれていない場合、ユーザーはアクセスできないはずのページや操作にアクセスできる可能性があります。これにより、悪意のあるユーザーが別のユーザーの設定を変更できる可能性があります。

他の2つの一般的な脆弱性、クロスサイトスクリプティング(XSS)とクロスサイトリクエストフォージェリ(CSRF)により、攻撃者は正当なユーザーに脆弱なサイトへの特別に細工したリンクを送信し、JavaScriptを実行したり、操作を実行したりできます。ユーザーが期待していなかったサイト。これにより、アカウントや個人情報が盗まれる可能性があります。収集されたこれらの情報から、攻撃者はそのユーザーとしてログインしたり、許可されていないはずのその他の操作を実行したりできる可能性があります。

他にも多くのWebアプリケーションバグのクラスが存在します-リモートファイルインクルード(RFI)、ローカルファイルインクルード(LFI)、無制限のアップロードバグ、セッションIDリーク/予測可能性、安全でない通信など。---を確認することをお勧めします OWASPトップ1 より包括的なリスト。

つまり、全体として、攻撃者がWebサイトに侵入する可能性のあるベクトルは多数あり、FTPなどのサービスは全体像のほんの一部にすぎません。

5
Polynomial

いいえ、サイトが侵害される可能性のある方法は他にもたくさんあります。 FTPは、サイトにデータを取得する多くの方法の1つにすぎません。 webdavやHTTPなどのその他のプロトコルを使用して、ファイルをサイトに転送できます。さらに、ほとんどのWebサイトには、サイトのコンテンツに関する永続的な情報を格納するデータベースバックエンドがあります。これまでにアクセスしたほとんどすべてのブログ、ニュースサイト、フォーラム、ストア、および検索エンジンにはデータベースがあります。

データベースは、ファイルに実際にアクセスするよりもはるかに一般的な攻撃経路です。 SQLインジェクションなどの手法により、悪意のあるコマンドが正当なコマンドであるかのようにデータベースに送信される可能性があります。これにより、情報(パスワードやパスワードハッシュなど)が漏洩したり、サイトのフロントページにハッキングされたメッセージなどの情報が追加されたりする可能性があります。

他の手法では、サーバー自体を攻撃することなくサイトを攻撃します。クロスサイトスクリプティングと呼ばれる攻撃のカテゴリは、正当なサイトへの接続のアクセス許可またはセッションの下でエンドユーザーのコンピューターに悪意のある行為を行うような方法でサイトに情報を送信できる方法を調べることによって機能します信頼。これは通常JavaScript攻撃ですが、他のベクターを使用することもできます。

まれに、サイトが実行されているサーバーを実行する実際のソフトウェアにエクスプロイトが存在する可能性があり、これらのエクスプロイトを使用して、サイトまたはサーバーが通常行うべきではないことを行うためのアクセス権を取得できます。

全体として、ハッキングされているサイトについて言及することは、誰かがサイトの整合性を危うくする何かをしたことを意味し、それはさまざまなことである可能性があり、FTPパスワードの取得はおそらく最も一般的ではありません(ただし、まだ起こります)。

3
AJ Henderson

あなたのウェブサイトがハッキングされたとき、それはウェブサイトへの不正なアクセスや変更があるを意味します

サーバーが[〜#〜] http [〜#〜]および[〜#〜] ftp [〜#〜]サービスを実行している可能性があるため、誰かが持っている可能性があります[〜#〜] ftp [〜#〜]の認証情報が見つかりました。 時々脆弱性が発見され、ユーザー名とパスワードを回避します!

おそらく[〜#〜] ftp [〜#〜]サービスには、ユーザー名とパスワードをバイパスできる脆弱性はありませんが、別のサービスを開始したり別のサービスをインストールしたりする脆弱性がある可能性があります[〜#〜] ssh [〜#〜]または[〜#〜] rdp [〜#〜]!などのプログラム次に、新しいサービスまたはプログラムで脆弱性を分析できます。

2
ponsfonze

「つまり、ハッキングとは、他の誰かがどういうわけかFTPの詳細を入手したということだと思います。これは正しいですか?」

不正解です。

ウェブサイトをハッキングする方法はたくさんあります。 SQLインジェクションはすぐに頭に浮かびます。

ウェブサイトがハッキングされたと誰かが言った場合、それは侵害されていることを意味します。

1
k1DBLITZ

不正解です。

ハッカーは、SQLインジェクション、XSS、LFI、RFI、認証バイパスなどのいくつかの脆弱性を悪用する可能性があります。

彼はFTPログインをブルートフォースするか、SSH経由でアクセスできます。

または、共有ホスティングを使用している場合、ウェブサイトに脆弱性がない場合でも、ハッカーは同じサーバー上の他のウェブサイトを悪用し、特権エスカレーションエクスプロイトを使用してサーバー全体をハッキングし、アップロードまたはアクセスを維持するためにいくつかのコードを挿入します。

0
boz456