競合状態の脆弱性実験
本研究では、いくつかの環境問題を構築する研究室では、あなたは環境return-to-libc攻撃実験を使用することができます。
競合状態を指す又は複数のスレッドが同時にデータの同じ部分にアクセスする動作、結果がデータにアクセスするために、異なるスレッドを実行するために依存します。root権限を持つプログラムは、競合状態の脆弱性が存在する場合、攻撃者は、このようにプログラムの動作を変更する、抜け穴と競合する並列プログラムスレッドを実行することができます。
準備
- あなたが保護をオフにする必要があるので、環境保護の実験は、競合状態に対する攻撃をオープンしました。地域全体がスティッキービットを書き込むことができるこのオプション手段は、リンクターゲットフォルダとして開いているフォルダではありません
- 私たちの新しい作業ディレクトリ
- /ホーム/ shiyanlou /シードの新vulp.cファイル:
実験1:ルート・ファイルのいずれかの所有者を書き換え
- 下記に示すように、まず、これらの文書のアクセス権と所有者に、有料の注意をいくつかのファイルを作成します
$ ls -l
-rw-rw-r-- 1 shiyanlou shiyanlou 10 Apr 23 13:33 append_text 《--VULP输入文件
-rw-rw-r-- 1 root root 0 Apr 23 13:32 root_file 《--目标文件
-rw-rw-r-- 1 shiyanlou shiyanlou 0 Apr 23 13:45 tmp_file 《--助攻
-rwsr-xr-x 1 root root 7403 Apr 23 13:27 vulp 《--漏洞文件
-rw-r--r-- 1 root root 454 Apr 23 13:27 vulp9321.c
- タイムスタンプcheck.shをチェックするスクリプトを作成し、コマンドを追加vulpを実行します
- 攻撃コードとコンパイルattacker.cを作成します。
- 端末内の[ファイル]> [開く]タブ新しいタブをクリックし、攻撃の実行check.shを実行します
実験2:保護A:リピート
我々は攻撃の成功の確率を減らすことができるように私たちは、より多くの競合状態を追加することができます
- 変更vulp9321.cファイル、再コンパイルと繰り返し攻撃
実験3:保護B:最小特権の原則
プログラムの基本的な問題は、それが最小特権の原則に違反していることで、プログラマは、ユーザーがプログラムを右大きすぎる可能性が走る認識し、そのアクセス制限機能の導入が、それはまた、競合状態のリスクを紹介します。より良いアプローチは、必要性が復元するときにsetuid root権限を一時的に禁止されたシステムコールを使用することです。