
拡張可能で設定可能なホストトリアージ。
SitRepは、軽量で拡張可能なホストトリアージの代替手段を提供することを目的としています。チェックは独立したファイルから実行時に動的に読み込まれます。これにより、オペレーターは既存のチェックを迅速に修正したり、必要に応じて新しいチェックを追加したりできます。
チェックはカテゴリごとにグループ化され、OpSecセーフ/アンセーフとしてマークできます。アンセーフチェックは、/AllowUnsafeフラグが指定された場合のみ読み込まれます。
興味深い結果は「[*]」で強調表示されます。
チェックはカテゴリに分類されています。これにより、適切なグループで表示できます。現在利用可能なチェックは以下の通りです。
環境
防御
権限
ソフトウェア
資格情報
以下のチェックは現在OpSecセーフではないとマークされています。
この構成を確認し、必要に応じてOpSecタグを更新する必要があります。
すべてのチェックはデフォルトで有効になっています。ただし、チェックは動的に読み込まれるため、無効にすることが可能です。
チェックの無効化
CheckBaseにはブール型の「Enabled」プロパティが含まれており、デフォルトはtrueです。これは派生クラスにコンストラクターを追加して設定できます。以下の例では、CurrentUserチェック(CurrentUser.cs)を無効にしています。
public CurrentUser()
{
base.Enabled = false;
}
ビルドからチェックを除外する
チェックは動的に読み込まれるため、他の変更を加えずにビルドからチェックを除外することが可能です。最も簡単な方法は、Visual Studioでチェッククラスを右クリックし、「プロジェクトから除外」を選択することです。同じコンテキストメニューから「プロジェクトに含める」を選択して再追加できます。
この方法には、コンパイルされたアーティファクトからコードを削除できるという利点があります。
すべてのチェックを実行
SitRep.exe /AllowUnsafe
OpSecセーフチェックのみを実行(デフォルト)
SitRep.exe
SitRepは、execute-assembly(または同等の方法)で実行するように設計されています。

チェックはCheckBaseを継承し、ICheckインターフェースを実装します。これにより、動的チェック読み込みに必要なパターンが強制されます。必要に応じて他のメソッドやクラスを追加できます。
ICheckインターフェースは以下のプロパティとメソッドを公開します:
派生クラスはCheckBaseで定義された「ToString()」メソッドをオーバーライドする必要があります。このメソッドは各チェックの出力を表示する際に呼び出されます。
ネイティブメソッドへのアクセスは、「NativeMethods」フォルダーのクラスを介して提供されます。各クラスは、それが相互作用するDLLにちなんで名前が付けられています。
チェックは独自のエラーハンドリングを提供する責任があります。現在のチェックでは、チェックメソッド全体をtry-catchブロックでラップしており、このパターンの使用が推奨されています。
以下に空のチェックの例を示します。
using SitRep.Interfaces;
using System;
namespace SitRep.Checks.Software
{
class ExampleCheck : CheckBase, ICheck
{
public bool IsOpsecSafe => true;
public int DisplayOrder => 1;
public Enums.Enums.CheckType CheckType => Enums.Enums.CheckType.Credential;
public void Check()
{
try
{
throw new NotImplementedException();
}
catch
{
Message = "Check failed [*]";
}
}
public override string ToString()
{
throw new NotImplementedException();
}
}
}
PRを歓迎します。チェックはスタンドアロン(つまり、他のチェックの出力に依存しない)であることを確認してください。可能な限り、チェックは自己完結型であり、すべての単一使用コードはチェッククラス内に存在する必要があります。
ドメイン参加済みのWindowsエンドポイントをモックしようとしたことがありますか?それが理由です。
SitRepは、Seatbelt、SharpUp、およびランダムなStackOverflowの投稿のコードを利用しています。適宜クレジットが追加されています。