潜在的なリスク
MATLAB® Web App Server™ には、HTTP リクエストの取得と再現を防止する特定のメカニズムがありません。
MATLAB Web App Server の開発版には、HTTPS 以外の認証または承認のメカニズムがありません。
ネットワークにアクセスできるすべてのユーザーは、このソフトウェアで作成された任意のアプリケーションを実行し、アプリケーションがアクセスを承認されている任意のデータを読み取ることができます。
認証および役割ベースのアクセス機能が必要な場合は、MATLAB Web App Server 製品を購入する必要があります。
MATLAB Web App Server をインストールすると、ホスト マシン上に 2 つの低特権ユーザー アカウントが作成されます。
これらの低特権アカウントは、すべてのユーザーに付与された権限を継承することができます。すべてのユーザーに付与される権限を制限するように注意する必要があります。
サーバーとアプリケーションは 2 つの異なる低特権ユーザー アカウントで実行されますが、サーバーによってホストされるすべてのアプリケーションは同じ低特権ユーザー アカウントで実行されます。
同じアプリケーションの複数のコピーが同時に実行されると、それらが互いに干渉する可能性があります。この状況は、アプリケーションがファイルや非同時データベースなどの任意の共有リソースにデータを書き込む場合に発生します。
複数のアプリケーションをサーバーにデプロイする場合、サーバーはセッション間でクッキーを共有するため、1 人のユーザーが複数のアプリケーションにアクセスすると、アプリケーション間でクロストークが発生する可能性があります。
この状況により、同じユーザーが実行する複数のアプリケーション間で意図せずにクロストークが発生する可能性があります。
デプロイされた Web アプリケーションは、"データ" 攻撃または "コード インジェクション" 攻撃に対して脆弱になる可能性があり、悪意のある入力または不正な形式の入力がシステムを破壊するために使用される可能性があります。サーバーは、どちらの種類のインジェクション攻撃に対しても明示的な保護機能を備えていません。MATLAB の特定の機能、特に関数
eval()
は、インジェクション攻撃のリスクを高める可能性があります。一般的な対応策は、入力のサニタイズまたは入力のホワイトリスト化です。MATLAB には、信頼されていない入力の検証を支援できるregexp
やregexprep
などの関数が含まれています。アプリケーションが間接的に
eval()
を呼び出し、コード インジェクション攻撃に対して脆弱になる可能性があります。他の MATLAB 関数は、同じコード インジェクションの脆弱性を示す可能性があります。コード的な入力 (XML、SQL、JSON など) を処理するすべての関数は、コード インジェクションに対して潜在的に脆弱です。
MATLAB
system()
、dos()
、またはunix()
コマンドを介してオペレーティング システムにアクセスするアプリケーションも、コード インジェクションに対して脆弱である可能性があります。
MwWebAppWorkerR2023b
アカウントはサーバー上のapps
フォルダーにアクセスできるため、実行中の任意の Web アプリがフォルダー内の他の.ctf
ファイルの内容を読み取る可能性があります。これは、承認を使用する場合にも該当します。つまり、Author
の役割をもつすべてのユーザーは、その気さえあれば、他のすべてのアプリのコピーを取得できる可能性があると想定する必要があります。
メモ
次のリストは既知のリスクを示しており、すべてが網羅されているわけではありません。