- 適切に利用すれば任意の文字入力に対してセキュアであるような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