.bash_profile and .bashrc
.bash_profile と .bashrc

~/.bash_profile~/.bashrc は、シェルコマンドを含むシェルスクリプトです。これらのファイルは、環境が正しく設定されるように、新しいシェルが開いたとき、またはユーザーがログインしたときに、ユーザーのコンテキストで実行されます。 ~/.bash_profile はログインシェルに対して実行され、 ~/.bashrc は、対話型の非ログインシェルに対して実行されます。これは、ユーザーが(ユーザー名とパスワードを使用して)コンソールに(ローカルまたはリモートでSSHなどを使用して)ログインすると、 ~/.bash_profile スクリプトは、最初のコマンドプロンプトがユーザーに返される前に実行されます。 その後、新しいシェルが開かれるたびに、 ~/.bashrc スクリプトが実行されます。これにより、ユーザーは特定のコマンドをいつ実行するか、よりきめ細かく制御できます。これらのシェルスクリプトは、ローカルユーザーが独自の環境を構成するために書かれることを意図しています。

macOS Terminal.appは、新しいターミナルウィンドウが開かれるたびにデフォルトでログインシェルを実行するため、〜/ .bashrcの代わりに毎回〜/ .bash_profileを呼び出すという点で少し異なります。

攻撃者は、永続性を得るために、他のバイナリを実行するために使用される可能性がある任意のシェルコマンドを挿入することにより、これらのシェルスクリプトを悪用する可能性があります。 ユーザーがログインするか、新しいシェルを開くたびに、変更された〜/ .bash_profileおよび/または〜/ .bashrcスクリプトが実行されます。[1]

ID: T1156
Tactic: Persistence
Platform: Linux, macOS
Permissions Required: User, Administrator
Data Sources: File monitoring, Process monitoring, Process command-line parameters, Process use of network
Version: 1.1
Created: 14 December 2017
Last Modified: 13 June 2019

Procedure Examples

Name Description
HiddenWasp

HiddenWasp は、自身を /etc/rc.localに追加することにより、再起動永続性を設定します。[3]

Linux Rabbit

Linux Rabbit は、rc.local と.bashrc ファイルを通して感染端末への永続性を維持します。[2]

Mitigations

Mitigation Description

Restrict File and Directory Permissions

ファイルとディレクトリへのアクセスを制限

これらのファイルを変更不可とし、特定の管理者のみが変更可能とすると、攻撃者がユーザーレベルの永続性を簡単に作成する能力は制限されます。

Detection

ユーザーは〜/ .bashrcおよび〜/ .bash_profileファイルをカスタマイズできますが、これらのファイルに通常記載されるコマンドの種類は限られています。 ログイン時にユーザープロファイルがロードされるときに、未知のプログラムの実行、ネットワークソケットのオープン、ネットワークを越えようとする動き、などの異常なコマンドがないか監視します。

References