3

教師と管理者が生徒のアクセス許可とアクセスを制御できるようにするプログラムを Java で開発しています。私はサーバーとクライアントを持っていますが、私の問題は、学生がタスクマネージャーを介して制限プログラムを簡単に閉じることができることです。cmd と powershell をブロックしたため、アクセスできません。タスクマネージャーをブロックすることもできますが、このリソースはそうでないよりも有益だと思います.

ルートキットがプロセスを隠すことができることは知っていますが、侵入的です。この問題を解決するために私が取るかもしれないアプローチを知っている人はいますか? おそらく、重要なプロセスを隠す「タスクマネージャー」をJavaで作成しますか?

どんな助けや指示も大歓迎です。ありがとう。

4

1 に答える 1

5

概要

生徒に制限付きの権限 (管理者以外のアカウント) で実行させ、システム (管理者) アカウントでガードを実行させることができれば、生徒はガードを殺すことができなくなります。あとは簡単です。Ravi Thapliyalが正しく述べたように、これが最初で唯一の防衛線になるはずです。何らかの理由でそれがオプションではない場合...

任意のソフトウェアのインストールを防ぐことができない場合、簡単にできる最善の方法は、互いの存在を監視する 2 つのプロセスを作成し、それらを生成したプロセスを終了することです。一方が死ぬと、もう一方は両方の新しいコピーを生成してから終了する必要があります。それらに Tuck と Hood という名前を付けます (または、アルファベット順で互いに遠く離れている、一見無関係で疑わしくない 2 つの名前)。特に、専門的なエラー メッセージ (「... への試みが検出されました」) と組み合わせると、ほとんどの学生は思いとどまるはずです。

任意のソフトウェアのインストールを防ぐことができれば、Shift キーを押しながらクリックしたり、Ctrl キーを押しながらクリックしたり、既にインストールされているタスク マネージャーで複数選択を実行するその他の機能をブロックしたりできます。他の、より直接的で単純な改ざんの種類を使用できる場合は、使用する必要があります。または、あなたが提案するように、他のすべてのタスクマネージャーをブロックして、独自のタスクマネージャーを作成してください。

ロビン・フッドとタック修道士

Robin Hood と Friar Tuckの物語にインスピレーションを得ることができます。この 2 つのプロセスは、特に終了するのが非常に困難でした。

このウイルスが行う悪ふざけのリストは非常に興味深いものですが、興味深い部分は次のとおりです。

... ロビン・フッドが X されたとき、次の一連のイベントが発生しました。

!X id1

id1:   Friar Tuck... I am under attack!  Pray save me!  (Robin Hood)
id1: Off (aborted)

id2: Fear not, friend Robin!  I shall rout the Sheriff of Nottingham's men!

id3: Thank you, my good fellow! (Robin)

各ゴースト ジョブは、他のジョブが強制終了されたことを検出し、最近強制終了されたプログラムの新しいコピーを数ミリ秒以内に開始します。 両方のゴーストを殺す唯一の方法は、それらを同時に殺すか (非常に困難)、意図的にシステムをクラッシュさせることでした。

...

基本的な考え方 (2 つのプロセスが相互に復活する) はまだ実行可能ですが、実際には 2 つのプロセスを同時に強制終了できるタスク マネージャーの形に大きなハードルがあります。ただし、この時点で、特にこれらの 2 つのプロセスがプロセス リストで隣り合って発生しない場合は、十分な防御策を講じることができます。もちろん、2 つにとどまる必要はありません。ユーザーがそれらをすべて見つけない限り、それらはすべて生き残ります。

同時に殺さない

ただし、ユーザーが複数のプロセスを選択して一度に強制終了できるという事実は残念です。Shift-クリックと Ctrl-クリックをグローバルに無効にすると、巻き添え被害が大きくなります。また、カスタム ビルドのタスク マネージャー (または適切なコンソール ベースのタスク マネージャー) を使用すると、そのマネージャーを簡単にバイパスできます。世界中のすべてのタスク マネージャーをブラックリストに登録して、複数の選択を防止します。

ただし、任意のソフトウェアのインストールと実行を防ぐことができれば (これは、すべての攻撃を防ぐためにほぼ確実に必要です)、システムに既に存在するタスク マネージャーのみを対象にして改ざんすることができます。それらを十分に改ざんすれば、お互いを守るために 2 つのプロセスが必要になることさえありません。ただし、2 つのプロセスがある場合は、タスク マネージャーの複数選択機能を無効にするだけで十分です。また、「プロセス ツリーを強制終了する」機能にも注意してください。

プロセスは、終了シグナルに反応する前に任意の時間を費やすことができます。2 つのプロセス間で TCP ループバックを使用して終了を同期し、一度に強制終了されないようにするというアイデアを試すことができます。ただし、これは、終了するように指示されずにプロセスが終了した場合には機能しません。

もう 1 つの潜在的な問題は、学生がガード プログラムの実行可能ファイルを削除してから、それを強制終了することを決定する可能性があることです。これは、適切なファイル ロックによって処理する必要があります。ただし、オペレーティング システムでこれが許可されている場合は、自分で防止する必要があります。ただし、現在実行可能ファイルを実行している場合でも、オペレーティング システムで任意のファイルの削除が許可されている場合は、すべての賭けがオフになります。

于 2013-06-24T17:14:09.033 に答える