はじめに
インジェクションとは、注入, 注射を意味します。
つまり、インジェクション攻撃とは「何か悪いものを注入する攻撃」を意味するのです。
では、一体どんな悪いものを注入し、具体的に何を指すのでしょうか?
早速見ていきましょー!✨
用語説明〜最速で理解したい人のためのIT用語集より抜粋〜
インジェクション攻撃(Injection Attack)・・・外部から不正な文字列を与え、悪意のあるプログラムを実行させる攻撃。
インジェクション攻撃の具体例
インジェクション攻撃では「悪意のあるコードを与える攻撃」が一般的で、具体例としては以下の3つが挙げられます。
<具体例>
・SQLを実行させデータベースの値を書き換えたり、悪意のあるデータを外部へ流出させたりする。
・PHPを実行させウイルスを忍ばせたり、会社のWEBサイトをめちゃくちゃにしたりする。
・OSコマンドを実行させ特定ユーザーの権限を昇格させたり、機密情報へのアクセス権を与えたりする。
SQLインジェクション (最も有名)
インジェクション攻撃の中で最も有名なのが「SQLインジェクション」です。
SQLとはデータの操作に使われるプログラミング言語で、データベースやサーバーなどで利用されています。
通常はWEBページに想定外の情報が入力されてもエラーを返す設計になっているのですが、システムに脆弱性があると、攻撃者がそこから悪意のあるSQL(コード)を送り込み、エラーではなくプログラムにそのまま実行させるのです。
SQLという裏側のコードを入力することで、コンピュータがそれをプログラムの一部だと解釈してしまうために、このようなことが起こってしまいます。
さらに別のケースでは、WEB上で買い物をした顧客の個人情報(クレカ, 住所など)を抜き取り、それを悪用することも考えられます。
もしサーバーごとハックされてしまえば、企業の情報が丸々盗まれてしまう可能性もゼロではないのです。
オソロシイですね・・
インジェクション攻撃からの対策
・システム/ソフトウェア/ネットワーク/モノ/ヒトに対して妥当性を判断する境界を定義し、常に検証する。(少しでも怪しいものはすべて拒否)
・妥当な値と想定される入力ミスのみをホワイトリストとして登録する。
・危険な文字をエスケープするように入力をエンコーディングする。(出力もエンコーディング)
・WAFなどのセキュリティソフトを導入する。
・言語の脆弱性を突かれないような対策をとる。
おわりに
いかがでしたでしょうか。
大規模なインジェクション攻撃などが発生してしまった場合、多額の賠償金が発生するだけでなく、企業のブランドイメージも失墜してしまいます。
事故は起きてからだとどうすることもできないので、日頃の注意がけや仕組みづくりが大事だといえますね。
この記事を通してインジェクション攻撃の理解を深めていただければ幸いです。
最後まで目を通していただきありがとうございました🙇♂️
参照元
.https://blog.ohgaki.net/there-are-3-types-of-injection-attack-vulnerability.
.https://www.otsuka-shokai.co.jp/words/injection-attack.html.
.https://ja.wikipedia.org/wiki/インジェクション攻撃.
.https://www.shadan-kun.com/blog/measure/5613/.
この記事へのコメントはありません。