C and C++ Binaries


BADFUNC.CREATEPROCESS : CreateProcessの使用

要旨

特定の予防措置をとることが必要とされる CreateProcess() もしくは関連する関数を使用しています。

プロパティ

クラス名 Use of CreateProcess
日本語クラス名 CreateProcessの使用
クラス分類 セキュリティ (security)
ニーモニック BADFUNC.CREATEPROCESS
カテゴリー
CWE CWE:676 Use of Potentially Dangerous Function
CERT-C CERT-C:WIN02-C Restrict privileges when spawning child processes
DISA-3r10 DISA-3r10:V-6157 The designer will ensure the application does not contain invalid URL or path references.
BSI BSI:CreateProcess-02 Use of CreateProcess
  BSI:CreateProcess-03 Use of CreateProcess
  BSI:CreateProcess-04 Use of CreateProcess
OWASP-2017 OWASP-2017:A9 Using components with known vulnerabilities
OWASP-2021 OWASP-2021:A6 Vulnerable and outdated components
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっています。チェックを有効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += allow class="Use of CreateProcess"
全ての BSI 固有の BADFUNC クラスを含む BSI 関連クラスを有効にするには、 bsi 設定プリセットを使用してください。

ワーニングを引き起こす関数

BOOL WINAPI CreateProcess(
  • __in_opt LPCTSTR lpApplicationName,
  • __inout_opt LPTSTR lpCommandLine,
  • __in_opt LPSECURITY_ATTRIBUTES lpProcessAttributes,
  • __in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,
  • __in BOOL bInheritHandles,
  • __in DWORD dwCreationFlags,
  • __in_opt LPVOID lpEnvironment,
  • __in_opt LPCTSTR lpCurrentDirectory,
  • __in LPSTARTUPINFO lpStartupInfo,
  • __out LPPROCESS_INFORMATION lpProcessInformation)
BOOL WINAPI CreateProcessAsUser(
  • __in_opt HANDLE hToken,
  • __in_opt LPCTSTR lpApplicationName,
  • __inout_opt LPTSTR lpCommandLine,
  • __in_opt LPSECURITY_ATTRIBUTES lpProcessAttributes,
  • __in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,
  • __in BOOL bInheritHandles,
  • __in DWORD dwCreationFlags,
  • __in_opt LPVOID lpEnvironment,
  • __in_opt LPCTSTR lpCurrentDirectory,
  • __in LPSTARTUPINFO lpStartupInfo,
  • __out LPPROCESS_INFORMATION lpProcessInformation)
BOOL WINAPI CreateProcessWithLogonW(
  • __in LPCWSTR lpUsername,
  • __in_opt LPCWSTR lpDomain,
  • __in LPCWSTR lpPassword,
  • __in DWORD dwLogonFlags,
  • __in_opt LPCWSTR lpApplicationName,
  • __inout_opt LPWSTR lpCommandLine,
  • __in DWORD dwCreationFlags,
  • __in_opt LPVOID lpEnvironment,
  • __in_opt LPCWSTR lpCurrentDirectory,
  • __in LPSTARTUPINFOW lpStartupInfo,
  • __out LPPROCESS_INFORMATION lpProcessInfo)

解決法

以下の条件が満たされているか確認してください。

問題がないことを確認できた場合は、ワーニングの stateSuppressed (抑制)に変更して除外することができます。

関連のある設定ファイルパラメータ

このクラスは一般テンプレート設定ファイルで BAD_FUNCTION_* ルールセットによって実装されています。

設定ファイルの以下のパラメータがこのワーニングクラスのチェックに影響します。