安全なコーディング方法の遵守

Bot 開発者は、Bot ロジック や DLL 用に記述された C# コードなどのコードが、標準の安全なコーディング方法に従うようにする必要があります。

次のセキュリティ チェックのリストは、一般的に適用可能なものであり、Bot の作成に適しています。

これらのチェックは、ソフトウェアのセキュリティ向上に取り組む非営利団体である Open Web Application Security Project (OWASP) によって識別された特定のソフトウェアの脆弱性に対応しています。次の OWASP に関する各問題は、MITRE (非営利の研究開発グループ) から提供されている、ソフトウェア開発で発生する可能性があるソフトウェア セキュリティ脆弱性のリスト (共通脆弱性タイプ一覧 (CWE)) に含まれる、特定の項目に対応しています。

開発者は、その環境の内部セキュリティ ポリシーに従って、安全なコーディング方法についてさらに検討する必要があります。

OWASP の問題 説明 対応する CWE
A1: インジェクション ほとんどのデータ ソースには、インジェクション ベクター、環境変数、パラメーター、外部および内部 Web サービス、すべてのタイプのユーザーが含まれます。インジェクションの欠陥は、攻撃者が悪意のあるデータをインタープリターに送信できる場合に発生します。
  • CWE-78: OS コマンドで使用される特殊要素の不適切な中立化 (「OS コマンド インジェクション」)
  • CWE-89: SQL インジェクション
  • CWE-94: コード インジェクション
  • CWE-434: 危険なタイプのファイルの無制限アップロード
  • CWE-494: 整合性未確認のコードのダウンロード
  • CWE-829: 信頼できない制御範囲からの機能のインクルード

A2: 認証の不備 攻撃者は、クレデンシャル スタッフィング、デフォルトの管理アカウント リスト、自動ブルート フォース、および辞書攻撃ツールに対して、何億もの有効なユーザー名とパスワードの組み合わせにアクセスできます。セッション管理攻撃は、特に期限切れのないセッション トークンに関してよく理解されています。
  • CWE-306: 重要な機能に対する認証の欠如
  • CWE-307: 過度な認証試行の不適切な制限
  • CWE-798: ハードコードされた資格情報の使用
  • CWE-807: 信頼できない入力に依存したセキュリティ判定
  • CWE-862: 認証の欠如
  • CWE-863: 不正な認証
A3: 機密データの漏洩 攻撃者は、暗号を直接攻撃するのではなく、データの転送中やブラウザーなどのユーザーの Client から、キーを盗んだり、中間者攻撃を実行したり、平文データをサーバーから盗んだりします。通常、手動攻撃が必要です。以前に取得したパスワード データベースは、グラフィックス処理ユニット (GPU) によるブルート フォース攻撃を受ける可能性があります。
  • CWE-311: 機密データの暗号化の欠落
  • CWE-319: 機密情報の平文通信
A5: アクセス制御の不備 アクセス制御の悪用は、攻撃者の中心的なスキルです。SAST および DAST ツールは、アクセス制御の欠如を検出できますが、それが存在するときに機能しているかどうかを検証することはできません。アクセス制御は、手動で検出することも、特定のフレームワークにアクセス制御がない場合は自動化を通じて検出することもできます。
  • CWE-73: ファイル名やパスの外部制御
  • CWE-285: 不適切な認証
A6: 不適切なセキュリティ設定 攻撃者は多くの場合、パッチが適用されていない欠陥を悪用したり、デフォルトのアカウント、未使用のページ、保護されていないファイルやディレクトリなどにアクセスしたりして、システムへの不正アクセスや知識を取得しようとします。
  • CWE-250: 必要以上に高い権限でのプログラム実行
  • CWE-676: 潜在的に危険な関数の使用
  • CWE-732: 重要なリソースに対する権限付与の不備
A9: 既知の脆弱性のあるコンポーネントの使用 既知の多くの脆弱性に対して既に記述された悪用を見つけるのは簡単ですが、その他の脆弱性では、カスタム攻撃を開発するために集中的な努力を必要とします。
  • CWE-190: 整数オーバーフローまたはラップアラウンド
  • CWE-327: 不完全または危険な暗号アルゴリズムの使用
  • CWE-759: ソルトなしの一方向ハッシュの使用