コンテナの変更
あるDockerコンテナが侵害された可能性があるという疑いがあります:
Copy docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cc03e43a052a lamp-wordpress "./run.sh" 2 minutes ago Up 2 minutes 80/tcp wordpress
あなたは簡単に次のコマンドで、このコンテナに対して行われた変更をイメージに関して見つけることができます:
Copy docker diff wordpress
C /var
C /var/lib
C /var/lib/mysql
A /var/lib/mysql/ib_logfile0
A /var/lib/mysql/ib_logfile1
A /var/lib/mysql/ibdata1
A /var/lib/mysql/mysql
A /var/lib/mysql/mysql/time_zone_leap_second.MYI
A /var/lib/mysql/mysql/general_log.CSV
...
前のコマンドで C は 変更 を意味し、A は 追加 を意味します。
興味深いファイル(例:/etc/shadow
)が変更されたことがわかった場合は、悪意のある活動をチェックするためにそのファイルをコンテナからダウンロードできます:
Copy docker cp wordpress:/etc/shadow.
あなたは新しいコンテナを実行し、その中からファイルを抽出して元のものと比較することもできます。
Copy docker run -d lamp-wordpress
docker cp b5d53e8b468e:/etc/shadow original_shadow #Get the file from the newly created container
diff original_shadow shadow
もしいくつかの疑わしいファイルが追加された とわかった場合は、コンテナにアクセスして確認できます:
Copy docker exec -it wordpress bash
画像の変更
エクスポートされたDockerイメージ(おそらく.tar
形式)が与えられた場合、container-diff を使用して変更の概要を抽出 できます。
Copy docker save < imag e > > image.tar #Export the image to a .tar file
container-diff analyze -t sizelayer image.tar
container-diff analyze -t history image.tar
container-diff analyze -t metadata image.tar
その後、イメージを展開 して、ブロブにアクセス して、変更履歴で見つけた疑わしいファイルを検索できます:
基本的な分析
実行中のイメージから基本情報 を取得できます:
Copy docker inspect < imag e >
あなたはまた、次のようにして変更履歴の要約 を取得することもできます:
Copy docker history --no-trunc < imag e >
あなたはまた、次のようにしてイメージからdockerfileを生成 することもできます:
Copy alias dfimage = "docker run -v /var/run/docker.sock:/var/run/docker.sock --rm alpine/dfimage"
dfimage -sV=1.36 madhuakula/k8s-goat-hidden-in-layer s >
ダイブ
Dockerイメージ内の追加/変更されたファイルを見つけるためには、dive (リリース からダウンロード)ユーティリティを使用することもできます。
Copy #First you need to load the image in your docker repo
sudo docker load < image.tar 1 ⨯
Loaded image: flask:latest
#And then open it with dive:
sudo dive flask:latest
これにより、Dockerイメージの異なるブロブをナビゲート して、変更/追加されたファイルを確認できます。赤 は追加されたファイルを、黄色 は変更されたファイルを示します。Tab キーを使用して他のビューに移動し、スペース キーを使用してフォルダを折りたたんだり開いたりします。
これにより、イメージの異なるステージのコンテンツにアクセスできなくなります。それを行うには、各レイヤーを展開してアクセスする必要があります 。
イメージが展開されたディレクトリから、イメージのすべてのレイヤーを展開してアクセスできます。
Copy tar -xf image.tar
for d in ` find * -maxdepth 0 -type d ` ; do cd $d; tar -xf ./layer.tar ; cd .. ; done
メモリからの資格情報
ホスト内でdockerコンテナを実行すると、ホストからps -ef
を実行するだけでコンテナで実行中のプロセスを見ることができます。
したがって(rootとして)、ホストからプロセスのメモリをダンプして、次の例のように 資格情報を検索することができます。