Monday, December 10, 2018

インジェクション攻撃

ウィキペディア

  • 適切に利用すれば任意の文字入力に対してセキュアであるようなAPIを用いる。
  • 型システムにより言語間の分離を強制する。
  • 既知の適切な値のみをホワイトリスト化するなどの入力バリデーションを行う。
  • 危険な文字をエスケープするなど、入力のエンコーディングを行う。
  • 出力をエンコーディングし、ウェブサイトの訪問者へのクロスサイトスクリプティング(XSS)攻撃を防ぐ。
  • HttpOnlyフラグを立てるとクライアントサイドのスクリプトはHTTP cookieの情報にアクセスできなくなり、ある種のXSS攻撃を防ぐことができる。
  • シェルのモジュールをカーネルから分離する。
  • SQLインジェクションについては、パラメータ化クエリ、ストアドプロシージャ、ホワイトリスト入力バリデーションなどにより、コードインジェクションの問題を緩和することができる。
  • ランタイムイメージのハッシュ検査 - メモリに読み込まれた実行可能イメージの全部または一部のハッシュを生成し、予め記憶済みの期待されるハッシュ値と比較する。
  • NXビット - 全てのユーザデータを実行ができないようにした特別な記憶領域に保存する。
  • カナリア - スタックにランダムに値を配置する。実行時、関数が値を返す際にカナリアの値が確認される。
  • (C言語における) Code Pointer Masking (CPM) - (変更が加えられる可能性のある)コードへのポインタをレジスタに読み込んだ後に、ポインタにマスクをすることで、ポインタが指し示すアドレスを効果的に隠すことが出来る。

インジェクション攻撃は3種類ある 2018
https://blog.ohgaki.net/there-are-3-types-of-injection-attack-vulnerability
 コードのインジェクション

  • SQLインジェクション
  • JavaScriptインジェクション
  • OSコマンドインジェクション

 データのインジェクション
 リクエストのインジェクション

インジェクション攻撃(通信用語の基礎知識)2008

No comments:

Post a Comment