2017-01-31 41 views
0

コードが運用環境にリリースされる前に、Burpツールでスキャンされたアプリケーションで作業します。最近のスキャンにより、OSインジェクション攻撃の脆弱性が生じています。Mitigaing OSのインジェクション攻撃の脆弱性ASP.NETの脆弱性

私が見たOS注入攻撃の唯一の例は、unix、java、phpアプリケーションのためのものです。

これらの攻撃は、ASP.NET(MVC)アプリケーションに対して可能ですか?もしそうなら、このリスクをどのように緩和しますか? ASP.NET(および/またはMVC)自体がOS注入攻撃を防ぎますか?

答えて

1

フレームワークは、OSインジェクション攻撃自体に脆弱ではありません。このフレームワークを使用して作成するコードは、脆弱である可能性があります。たとえば、アプリケーションの外部からパラメータとして渡されるコマンドを実行するコントローラアクションがあると、すぐに脆弱になります。この例を考えてみません:

public ActionResult Index(string fileName, string arguments) 
{ 
    Process.Start(fileName, arguments).WaitForExit(); 
    return View(); 
} 

そこで、基本的に関係なく、あなたがユーザの入力を信用していないし、それを受け入れる前に、適切な衛生を実行いけアプリケーションを開発するために使用しているフレームワークやプログラミング言語。

0

OSインジェクション、次のようにdefined by the OWASP Foundationです:アプリケーションから外部アプリケーションを呼び出す

オペレーティング・システム・コマンドを。

[...]私たちが探してどうあるべきか

は、アプリケーションとオペレーティングシステム間の関係です。基礎となるオペレーティングシステムの機能を利用するアプリケーション。

Runtimeオブジェクトを使用するjavaでは、java.lang.Runtimeがこれを行います。 System.Diagnostics.Process.Startなどの.NET呼び出しでは、基礎となるOS関数を呼び出すために使用されます。 PHPでは、exec()やpassthru()などの呼び出しを探すことがあります。

もちろん、あなたの研究はすでにそれを示していました。

これらの攻撃は、ASP.NET/MVCアプリケーションに対して可能ですか?

はい、どこでも使用しているか、使用しているライブラリに直接または間接的にユーザー入力を提供するライブラリを使用すると、危険にさらされます。

この場合、このリスクをどのように緩和しますか?

いつものように、必要に応じてユーザー入力を適切にエスケープして消毒することによって、これには、クエリ文字列またはルートパラメータだけでなく、Cookie、HTTPヘッダーおよびその他のものも含まれます。

関連する問題