これはこれを尋ねるのに最適な場所ではないように感じます(単一の正しい答えはないため)が、もっと良い場所を考えることはできません。より良い推奨事項がある場合は、それを推奨してもらえますか。問題を完全にクローズするのではなく、移動できますか?
私は高校生のクラスにLinuxの一般的なセキュリティについて教えています。高レベルでは、特定のLinuxサーバーを使用して、一般的なセキュリティ問題(例:強力なpwハッシュアルゴリズムを使用して古いアカウントを閉鎖し、奇妙なプロセスが実行されていないか、起動時に実行されていないことを確認します。彼らのスキルレベルは広範囲であり、私が議論してきたものを使用するように動機づける方法を探しています(たとえば、crontabを見る、ユーザーとグループの構成を見る、開いているポートを見る)。
私はそれらを奨励するための競争を開催するために$ 200を与えられました、そして私は多分$ 10の増分でアマゾンのギフトカードの束を購入できると思いました。アイデアは、子供たちが見つけられるようにサンドボックスサーバーのさまざまな場所にある償還コードを「隠す」ことです。たとえば、パスワードをプレーンテキストで保存し、サンプルのユーザーアカウントの1つにコードの1つのパスワードを割り当てることができます。または、30秒ごとにコードの1つをシステムログに記録するcronジョブを設定することもできます。
私が探しているのは、サーバーをセキュリティで保護しようとしている人がそれらに遭遇するように、これらのコードを隠す場所/方法です。
ありがとう!
私はいくつかのアイデアを考えることができます:
ブート時に実行されるファイル内にコードを配置し、ユーザーがそのファイルでstrings
を実行したときに検出可能
コードをsuidスクリプトに配置します(決してsuidスクリプトを使用してはなりません)。
/ sbin上の誰でも書き込み可能なバイナリにコードを配置する
どこかで読み取り可能な設定ファイルにコードを配置する
tmpファイルにコードを置く
コードをチェーン名としてiptablesに置く
そういうもの。
ハッキングされるシステムを設定し、結果を判断することは、一般にCapture The Flag(CTF)として知られています。オープンソースのCTFはたくさんありますが、 root-the-box は、エクスプロイテーションに重点を置き、初心者向けのパズルを備えた素晴らしいCTFです。教育ツールである Damn Vulnerable Linux もあります。
より単純なCTFは、イースターエッグを次の攻撃を使用して取得できるユーザーアカウントの形式で持つことです。次の3つを選択したのは、彼が現実の世界でそれらを見たからです。
setuid backdoor rootまたは別のユーザーとして特権を取得します。または mountを使用した攻撃 などのより複雑なバリアント。
[-shadowファイルまたはhtpasswdファイルを john the
ripper 。
平文を読み取る パスワードは〜/ .bash_historyに保存されています ファイル。
現実の状況では、上記の攻撃は悪用後に起こります。侵入テスターとブラックハットは、このプロセスの自動化に役立つ Metasploitの悪用後のモジュール 、 Weevly 、および Veil-Pillage のようなツールを使用します。