SQLインジェクション:定義、ダメージ、防御

アダプティブな多要素認証でデータ漏えい、弱いパスワード、フィッシング攻撃に対抗する方法を解説します。

更新済み: 2024年11月07日 読了目安時間: ~

 

この記事は機械翻訳されました。

 

SQLインジェクションは攻撃のフォームです。 ハッカーは、デバイス(コンピューターなど)とデータストレージセンター(サーバーなど)との間のプライベートな会話であるべきものの間を行き来します。

ハッカーが内部に足を踏み入れると、その人物はほとんど何でも監視、変更、削除することができます。そして、その結果は壊滅的なものになる可能性があります。

SQLインジェクションとは?

どのWebサイトもコードに依存しています。ブロガーは、 コーディングは最終的に必須のスキルになると述べています。現代社会で生き抜くためには、誰もがIT化を行う必要があります。 しかし、現時点では、コーディングができる人々は、これらのスキルを使用して、Webサイト運営の基本的な部分を操作しています。

最近のほとんどのWebサイトは、次のような データベースで実行されます

  • 製品を販売します。
  • ログインを許可します。
  • ブログを公開します。

このようなサイトは、構造化クエリ言語 (SQL) に依存しています。プログラマーは、この言語を使用して、サイトがデータを管理および配信するのを支援します。このようなサイトと対話するたびに、リクエストとコマンドはSQLを介してサイトに送られます。ハッカーは、SQLインジェクション攻撃中に、その言語を新しい目的にねじ曲げます。

ハッカーはほぼすべてのSQLコマンドを操作できますが、一般的なターゲットには次のものがあります。

  • WHERE: 選択したいデータの場所を検索するとき
  • UPDATE: データの更新を求めている場所
  • INSERT: 新しいデータを許可する場所
  • 選択: ある種のデータを名前で識別する場合、またはデータを並べ替える場合

ハッカーは、SQL インジェクションを使用して次のことを行う可能性があります。

  • 狩る。 ハッカーがSQLデータを変更すると、隠しておきたいものが見つかる可能性があります。
  • アクセス。 ハッカーは、サイトのロジックを変更したり、データベース内のデータを取得したりする可能性があります。これにより、誰かが すべてのユーザー名とパスワードを表示でき、不正な侵入が可能になる可能性があります。
  • 計画。 ハッカーは、データベースがどのようにプログラムされ、ITがどこに保存されているかを調べることができます。 その研究は、次の攻撃に使用される可能性があります。

SQL インジェクションには、主に 2 つのタイプがあります。

  • ファーストオーダー。 アプリケーション(アプリケーション)は、データを提供する機会を提供します。 ユーザーがコードを入力すると、システムは安全でない方法でコードを処理します。
  • セカンドオーダー。 アプリケーション(アプリケーション)は入力を受け取り、後でITを格納します(データベース内にITを配置するなど)。 アプリケーション(アプリケーション)が別のリクエストを受け取ると、その奇妙なデータが取得され、安全でない方法で組み込まれます。

SQL インジェクションの例

ここでは、ITがどのように展開するかを確認するために、SQL攻撃の1つのタイプだけを見ていきましょう。 開発者はコード行を共有できるため、ITがどのように実行されるかをリアルタイムで確認できます。 しかし、私たちはすべての読者のために私たちの定義を高いレベルに保ちます。

この例では、データベース内の既知の人物の名前は Johnson です。

ハッカーがあなたのウェブサイトを攻撃し、その人はログインするように促されます。

その人は、フィールドに「Johnson」という単語を入力しません。代わりに、ユーザーは "OR 1 が 1 に等しい" などの一連のコードを入力します。

システムはこれをコマンドとして解釈し、IT部門はデータベース全体を検索してITを解決します。 ハッカーが十分に強力なコードを書いていれば、サーバーはデータテーブル内のすべての内容を吐き出すように誘導される可能性さえあります。

ウェブサイトGabは まさにこのような攻撃を受け、ハッカーはこれらすべてにアクセスできました。

  • 公開投稿
  • 非公開のピアツーピア投稿
  • Group (グループ) posts
  • プロフィール情報
  • ユーザー名
  • パスワード

Gabのユーザーが別のサイトで同様のユーザー名とパスワードの組み合わせを使用した場合、さらに深刻なリスクに直面しました。ハッカーは 、他のサイトでこれらの認証情報を試し て、オンライン生活にさらに深くアクセスすることができました。

SQLインジェクション攻撃を防ぐことができるか?

IT部門は、 データベースを介してWebサイトを管理するのに迅速かつ効率的です。 すべてのページを処理するために堅牢なサーバーは必要ありませんし、ボタンを押すだけでコンテンツを変更することができます。ただし、このテクノロジーで構築されたサイトを保護するように注意する必要があります。

独自のSQLコーディングを送信して、SQLインジェクション攻撃に対する脆弱性を検出します。サーバーがこれらの項目をコマンドとして解釈していることを示す異常な応答を探します。

次に、 許可される文字とコマンドのセットを開発することを検討してください。フィールドボックスに好きなように入力させないでください。彼らがタップアウトできるものを、コードとは見なせないとわかっている用語に制限します。

参考文献

2016年のコーディングは、1816年の読書のようなものです。(2016年10月)。プレンダ。

データベース駆動型のWebサイトに関する5つの重要なポイント。(2016年6月)。Business 2 コミュニティ.

データベース駆動型のWebサイト。(2003年10月)。医学図書館協会のジャーナル。

極右プラットフォームのGabは、ITがハッキングされたことを確認しています。 (2021年3月)セキュリティ。

SQLインジェクション防止チートシート。OWASPです。

アイデンティティ施策を推進