Linux User Namespace のメモ

Linux Usernamespace は namespace ごとに UID / GID をマッピングすることができる これはプロセスが namespace の内と外で違う UID / GID を持つことが可能ということを指す プロセスは namespace の外では0以外のUIDを持つことができるのと同時に namespace 内では UID を0として持つことができることになる つまり、u...

ネットワーク経由で取得した共有ライブラリをファイルを作成せずに読み込む

夏休み突入でぇ~す!(CV: 門脇舞以) → 終了、了解! 皆さんはネットワーク経由からローカルにファイルを作成せずに共有ライブラリを読み込みたいと思ったことはありませんか? 僕はありません。 共有ライブラリのロード まずは普通に共有ライブラリをロードしてみる。以下のような共有ライブラリを用意する。 #include <stdio.h> void __attribute__ ((co...

seccompによる制限下にある特権コンテナで breakout する

前回 は CAP_DAC_READ_SEARCH が許可されている状態で open_by_handle_at を利用することでホスト側のファイルを読み出したり、シェルを取得するなどした。 このとき、seccomp で open_by_handle_at が禁止されている場合は Operation not permitted で失敗する。 [root@b8bf54fb1c48 tmp]# ./a.o...

open_by_handle_at(2) でコンテナから Break Out する

俺たちの夏休みはこれからだ!(今日が最終日) 前回は ptrace を使用して seccomp による制限を回避してみた 。 今回は seccomp とコンテナの関係、コンテナからホストへの break out についてのメモです。メモなので雑に書いています。 コンテナと seccomp LXC や Docker でも seccomp が利用されており、コンテナを break out する危険が...

ptrace を使用して seccomp による制限を回避してみる

オススメ整体 or マッサージ情報を募集しています。 前回 は ptrace を使用して簡易的な strace を作成した。 同様にシステムコールの監視を行うものといえば seccomp だ。 seccomp によって特定のシステムコールは呼び出しが禁止されるが、ptrace によって回避することができる。 seccomp のドキュメント には次のような記述がある。 The seccomp c...