従来のすべてのウイルス対策ソフトウェアは、ソフトウェア会社によって発見され、定義に追加された後、シグネチャを使用して既知のマルウェアを検出します。ヒューリスティックな定義では、修正されたマルウェアを引き続き検出できるようになっていますが、私が知る限り、それは特定のタイプのプログラムに限定されており、マルウェアを個別に書き直すことで簡単に打ち破ることができます。
だから私が探しているのは、次のタイプのセキュリティプログラムの例です。私が心に留めていることのいくつかのアイデアは存在しないかもしれないことに気づきます!
VBulletin PHPフォーラムソフトウェアには整合性チェッカーがあります。残念ながら、このようなマルウェアはフォームアドオンのフォーラムのデータベースに自分自身を追加することが多いため、整合性によってスキャンされません。チェッカーWindowsにはいくつかのルートキットスキャナーがありましたが、それらの名前を思い出せません。
私のできる限りの質問にお答えしますが、ここにリストされているツールには、中程度から重い設定とシステムセキュリティの十分な理解が必要です。オンにして忘れることができるツールはありません。また、完全に理解していないツールでシステムをいっぱいにすると、パフォーマンスが低下し、攻撃対象領域が増えるだけです。あなたが尋ねた質問のそれぞれは、多くのページのリソースで独自の答えを持つことができるので、私はそれを単純に保つようにしています。これらのツールを使用する前に、これらのツールについてよく理解してください。
正常であることがわかっているファイルのデータベースを使用するファイル整合性スキャナー、またはこれまでに見られたすべてのファイルのリストを作成し、見たことのない実行可能ファイルをユーザーに警告します。ウイルス対策会社はおそらくこのようなものを持っていますが、それが公になっているのではないかと思います。
[〜#〜] aide [〜#〜] など、利用できるファイル整合性チェッカーは多数あります。これらの整合性チェッカーは、システム上のすべてのファイルのハッシュの保護されたリストを作成するため、ファイルを変更するとアラートが発生します。データベースの更新は、ソフトウェアのアップグレード直後に行われることになっています。実行可能ファイルのみを操作し、変更された実行可能ファイルの実行を防止する整合性チェッカーが必要な場合は、 [〜#〜] ima [〜#〜] 、Linuxの整合性測定アーキテクチャ。これは、カーネルに組み込まれたセキュリティ機能であり、実行前にファイルを検証して、ファイルのハッシュ(拡張属性に格納されている)が有効であることを確認します。信頼のルートは、ハッシュツリーを使用して、通常はTPMなどの安全なハードウェアに格納されている単一の信頼されたハッシュに到達します。ただし、IMAは必然的に デマンドページング を破壊することに注意してください。これは、大きな実行可能ファイルのパフォーマンスに影響を与える可能性があります。
特定のオペレーティングシステムとマザーボードのBIOS領域に必要なデータベースに基づいて、異常なメモリコンテンツを探すメモリスキャナ。また、チップセットとIOMMUが異常な方法で構成されているかどうかを確認することもできます。
実行時に動作するこのようなものを私は知りませんが、 CHIPSECフレームワーク を使用できます。 CHIPSECは、ファームウェアが最大のセキュリティのためにシステムを正しく構成したことを確認するために、さまざまなファームウェア属性を検証するユーティリティのコレクションです。有用なモジュールと一般的な脆弱性は、そのwikiに リストされている です。フレームワークは主に、実行時にファームウェアを上書きできるようにするファームウェアの誤設定をスキャンするように設計されています。
IOMMUが正しく構成されていることを確認するユーティリティを知りません。一般に、カーネルログが、保護するメモリ範囲に関するIOMMU情報を提供するBIOSによって提供されるACPIテーブルであるDMARに関する情報を提供しているかどうかを確認することで、それが機能していることを確認できます。私は tboot が [〜#〜] drtm [〜#〜] を実装する過程でいくつかの基本的な健全性チェックを行うと信じています。 方法があるかもしれません カーネルの脆弱性を利用してIOMMUをバイパスすることに注意してください x2APICまたは割り込み再マッピングがサポートされていない場合 、または- [〜#〜] ats [〜#〜] (アドレス変換サービス)は、すべてのPCIeデバイスでサポートおよび有効化されています。
ハードウェアのセキュリティは複雑で、率直に言って少し怖いです。 One paper は、IOMMUを通常より安全であると考えられているモードに切り替える方法を説明しますが、GPUがシステムメモリに対して悪意のある攻撃を実行することを可能にします。個々のプロセッサーモデルごとのインテルのデータシートは、数千ページに及ぶ膨大な技術情報(MSR、MMIOなど)に及ぶ場合があります。このうち、情報の大部分は意図的に隠されており、NDAで保護された機密文書でのみ利用できます。 IOMMUの制限を理解することは簡単な作業ではありません。
カーネルの異常なフックや実行中の異常なスレッドなどをスキャンするルートキットバスター。
通常、セキュリティソフトウェアはカーネルの下で実行されるため、これは困難です。カーネルを危険にさらしたルートキットは、ルートキットスキャナーを自由に変更できます。異常なフック(ハイジャックされたsyscallテーブルなど)をスキャンしようとするカーネルモジュールは多数ありますが、それらは多くの場合、敗北するのは簡単で、あいまいなためにセキュリティに依存する傾向があります。 ハイパーバイザーベースのソリューション はいくつかありますが、多くの場合、かなり実験的またはプラットフォーム固有のものです。
暗号化されたデータなどのメモリ内の異常なもの、および実行可能なバイナリコードまたは異常な暗号化されたトラフィックを含むネットワークトラフィックをスキャンする常駐データスキャナー。また、別のネットワーク監視コンピューターと通信して、監視コンピューターに表示されて不一致を引き起こしているルートキットネットワークに隠されているトラフィックをチェックすることもできます。
これは、「ルートキットバスター」についての前の質問と同じようです。システムにルートキットがある場合、メモリのスキャンは確実に実行できません。ルートキットがない場合でも、ヒューリスティック分析に依存する傾向があります。コンピューター上の静的ファイルとは異なり、メモリは絶えず変化し、自己編集され、非常に難読化される可能性があります。たとえば、関数は、実行される直前、上書きされる前に暗号化および復号化されたままにできます。ソフトウェアは、x86の turing-complete page fault handler を使用して実行できます。 スレッドコード (マルチスレッドとは関係ありません!)は、コードの意図を隠すために使用できます。これは、本質的に意図的なROPであり、ガジェットを順不同で実行するためです。
ネットワークまたはホスト(専用コンピューターで実行中)に出入りするネットワークトラフィックを監視する侵入検知システム(特に異常ベース)。
これはNIDSまたはネットワーク侵入検知システムと呼ばれます。彼らはしばしば、無料であるかもしれないしそうでないかもしれない高度に設定可能なルールセットを使用します。最も人気のあるNIDSツールの1つは Snort です。これには、無料のコミュニティルールセットと、専門的に開発された商用ルールセットの両方があります。構文に慣れたら、独自の異常検出ルールを作成することもできます。 Snortは少しリソースが重い可能性があり、攻撃対象領域が大きいため、前述のように物理ファイアウォールで実行するのが理想的です。ログを他のサーバーにリモートで送信できます。
主にヒューリスティックな脅威検出プログラム、およびこれらの線に沿ってあなたが心に留めているものすべて!
検出システムがホスト上で実行されている場合(上記のようにネットワーク経由ではない)、それはHIDSまたはホスト侵入検出システムです。 HIDSソフトウェアは、整合性チェッカーと一緒に実行されるか、独自に組み込まれている場合があります。HIDSには、 [〜#〜] ossec [〜#〜] など、実行可能なオプションが多数あります。これらは多くの場合リソースに負荷がかかり、注意深くそれを正しく保守しない限り、特に効果的ではないことに注意してください。箱から出してすぐに機能する「設定して忘れる」HIDSソフトウェアはありません。セキュリティを向上させたい場合は、システムに合わせてカスタマイズする必要があります。