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 する危険が...

CVE-2018-7160 と Chrome DevTools Protocol のメモ

機動戦士ガンダムユニコーン RE:0096を視聴したところ、感化されて Aimer を聴きながらユニコーンのガンプラを作って大変満足している。 Node.js の inspector モードで DNS Rebinding を利用した RCE (CVE-2018-7160) がどのようなものなのか手元で確認してみたのでメモ。 メモなのでかなり殴り書き。 Chrome DevTools Protoc...

Docker Remote APIを安全に利用する

Oculus Go で目がヤバ。 概要 Docker には REST API があって、クライアントはそれを通してDockerを自在に操作できる。 「開発環境だから…」という気持ちで dockerd -H tcp://0.0.0.0:2376 みたいに動作させると、悪意あるサイトを閲覧するだけでコンテナの Shell が取られるみたいなことが発生するので、開発環境でも証明書を使った認...

CookieのSameSite属性

概要 Cookieに新たにSameSite属性というものが提案され、主要なブラウザで実装が進んでいる。 かつてはFirst-Party-Only Cookieと呼ばれていたもの。 https://tools.ietf.org/html/draft-west-first-party-cookies-05 クロスオリジンへのリクエスト送信時にCookieを付与しないことで、予期せぬ形での情報漏洩を...

機密情報の比較処理、secure_compareの実装について

ActiveSupport::SecurityUtils.secure_compareやRack::Util.secure_compareについてメモ。 文字列が等価であるかどうか確認するのにa == bという風に書くことが多い。 しかし、機密情報の比較にこの形式を用いると、処理に要する時間からアルゴリズムが特定されたり、機密情報自体が漏れる可能性がある(所謂、Timing Attack)。 例え...