C#


CSHARP.INSEC.HIC : Hostname in Condition (C#)

要旨

A host name is used in a condition.

プロパティ

クラス名 Hostname in Condition (C#)
日本語クラス名 Hostname in Condition (C#)
クラス分類 セキュリティ (security)
ニーモニック CSHARP.INSEC.HIC
カテゴリー
CWE CWE:287 Improper Authentication
OWASP-2017 OWASP-2017:A2 Broken authentication
OWASP-2021 OWASP-2021:A7 Identification and authorization failures
対応言語 C# で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで有効になっています。チェックを無効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += discard class="Hostname in Condition (C#)"

using com.juliasoft.julia.checkers;
using System;
using System.DirectoryServices;
using System.Net;

namespace DocumentationExamples
{

  public class Authentication
  {
    [SuppressJuliaWarnings(Value = new string[] { "production", "basicnullness", "shortcircuit", "nullness" })]
    public static void Main(string[] args)
    {
      bool found = false;
      IPAddress[] addrs = Dns.GetHostAddresses("www.example.com");
      foreach (IPAddress addr in addrs)
      {
        // these call to ToString() get compiled as Object.ToString(). Hence, these warnings appear
        // only if System.Net.dll is submittet as a library. Otherwise, the analyzer cannot link these call
        // to the actual one that is annotated inside the wizards
        if (addr.ToString().Equals("231.13.35.1"))                                   // Hostname in Condition (C#) warning issued here
          found = true;
        else if ("112.34.5.103".Equals(addr.ToString()))                             // Hostname in Condition (C#) warning issued here
          found = true;
        found |= addr.ToString().StartsWith("131.");                                 // Hostname in Condition (C#) warning issued here
      }
      if (found)
        Console.WriteLine("OK");

      DirectoryEntry dir = new DirectoryEntry("ldap://localhost:389/o=JNDITutorial") // Anonymous LDAP Authentication (C#)
                                                                                     //  warning issued here - LDAP password is set to none
      {
        AuthenticationType = AuthenticationTypes.None
      };
      DirectorySearcher searcher = new DirectorySearcher(dir)
      {
        PageSize = int.MaxValue,
        Filter = "(&(objectCategory=person)(objectClass=user)(sAMAccountName=AnAccountName))"
      };
      searcher.PropertiesToLoad.Add("sn");
      searcher.FindOne();
    }
  }
}

解決法

Check if the warning actually corresponds to a real security issue related to authentication and, if that is the case, use a more secure authentication procedure.

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

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