on
Issue 13
🗞️ Articles
QEMU の VirtFS 機能における Race Condition の脆弱性 CVE-2021-20181 の技術的解説
QEMU の Host と Guest 間のファイル共有機能である VirtFS の Race Condition の解説。この脆弱性によって QEMU プロセスのダウンや、権限昇格の可能性がある。
GitHub の各種トークンのフォーマットが変更
GitHub の Personal Access Token や GitHub App などの各種認証トークンのフォーマットが変更される予定。
変更内容は下記の通り。
- 利用される文字種が
[a-f0-9]
から[A-Za-z0-9_]
に変更。つまり、大文字が含まれるようになる。 - 各トークンには次のような Prefix がつく
- Personal Access Token には
gp1_
- OAuth Access Token には
go1_
- GitHub App user-to-server Token には
gu1_
- GitHub App server-to-server Token には
gs1_
- GitHub App refresh Token には
gr1_
- Personal Access Token には
Prefix がつくことにより、git-secrets などのクレデンシャル検知ツールによる検知が容易になる。
Burp Suite のクローラーの課題と改善について
Burp Suite のこれまでのクローラーの課題とその改善についての紹介。Burp Suite 2 で導入された新しいクローラーでは、次のような機能が含まれている。
- 組み込みの Chromium ブラウザを利用してイベントハンドラを正しくトリガーできるようにした
- ログインの場所を記録することで、スキャン時に自動でログインを行う
- Chromium をヘッドレスで起動してクロールの様子をユーザーに見せることで、デバッグを行いやすくした
- OpenAPI 定義を利用した REST API のクロールとスキャン
GitHub で非常に低い確率でセッションのレースコンディションが発生し、別のユーザーのセッションになってしまう脆弱性が修正
2021/03/08(UTC)にて github.com の全ユーザーに対して強制ログアウトが実施された。その理由として非常に低い確率ではあるものの、セッションを扱うプロセスの Race Condition により、別のユーザーに有効なセッション Cookie が設定されてしまうケースがあったためと説明。
ModSecurity 3 でリクエストボディ / レスポンスボディの解析を無効にしている場合、他のルールもスキップされてしまう問題
ModSecurity 3 では SecRequestBodyAccess
と SecResponseBodyAccess
ディレクティブを無効にすることで、リクエストボディの検知をスキップすることができる。
しかしながら、実際には「リクエストボディ読み込み時の処理である Phase 2 をスキップ」するという処理のため、 phase:2
で定義されているルールは全てスキップされてしまう。
CRS では 80% が、Trustwave Spiderlabs rule set では 99% で phase:2
が利用されており、HTTP ヘッダを検知するようなルールも無視されてしまい、WAF Bypass につながると CRS チームが指摘している。
curl の脆弱性の半分は C 言語の誤解であるというレポート
curl の脆弱性の半分は C 言語の誤解(ミス)から生じているという curl 作者による調査。
Rust で書き直していれば生じなかったかもしれないということにも言及。
Go 言語での typosquat パッケージの調査
ライブラリ/パッケージ名の typo を狙って悪意あるパッケージをインストールさせる typosquatting について Go 言語で調査。
zentrio/typogenerater で 731 個のパッケージの typosquat なリストを生成したところ、logrus
や urfave/cli
の typosquat パッケージが存在していることが確認できた。
Spectre によるメモリリークをブラウザ上で確認できる PoC
Spectre で JavaScript の Array のメモリレイアウトを推測したり、ブラウザのレンダラプロセスのメモリリークを行う PoC.
OPA ポリシーの開発のヒント
conftest と Gatekeeper を使ったポリシーの導入の進め方について。 Konstraint を使ったポリシーの統一など。
GitHub の Fork collaboration 機能の脆弱性の解説
GitHub の Fork collaboration 機能の脆弱性の解説。Fork collaboration を有効にしていない場合でも、ベースリポジトリのメンテナがブランチに書き込めてしまうという脆弱性。
Web / REST API では適切に保護されていたが、GprahQL では適切に保護されていなかった模様。
Dockerfile のベストプラクティス
安全なイメージを作るための Dockerfile のベストプラクティスの紹介。
google/atheris を使った正規表現の Fuzzing
google/atherisを使って正規表現のバイパスを見つける Fuzzing の紹介。
Black Hat USA 2020 の動画が公開
Black HAT USA 2020 の動画が公開。全部で 91 のセッション。
Helm で二回目の Security Audit が実施
Trail of Bits によって 2 回目となる Helm の監査が実施された。全部で 14 の指摘項目があるが、いずれも致命的な脆弱性ではないよう。
異なる URL パーサーを使用していることによる SSRF
バリデーションと HTTP リクエストの送信箇所で異なる URL パーサーを利用している場合に生じた SSRF について Kibana を例に紹介。
一方は URL に含まれる Tab を削除するが、一方は Tab を切り捨ててしまうため、URL に差異が生じてしまう話。
SameSite Cookie における誤解について
SameSite Cookie が Chrome や Firefox で Lax
がデフォルト値になって久しいが、SameSite Cookie について解説しているコンテンツでは「Origin」「Site」「Domain」の用語が曖昧なまま説明されていることが多いという指摘。
SameSite Cookie は Cross Origin 通信ではなく Cross Site 通信で機能するものなので、Site を正しく理解することが重要。
🧰 Tools
gianlucafrei/Application-Gateway
OAuth2 ログインやそのセッション管理を行う HTTP リバースプロキシ。OWASP で現在進行中のプロジェクト。
doyensec/regexploit
ReDoS を検出するツール。Python, JavaScript, TypeScript, C#, JSON, YAML に対応。
benso-io/posta
postMessage
をトレースし、ウィンドウ間で送信されたメッセージの再生などを可能にするツール。 postMessage
による脆弱性などを調査などをユースケースとして想定。
kitabisa/teler
HTTP のアクセスログから攻撃を解析し、アラートを発火できるツール。バッファから読み込ませることができるのが特徴。
rewanth1997/kubectl-whisper-secret
secret リソースの作成を支援するツール。標準入力で値を入力してエンコード済みの Secret を生成してくれる。
💣 CVE
CVE-2021-21300 : 特定条件下で git clone
した場合に任意のコードが実行される脆弱性
シンボリックリンクのサポート( core.symlinks
)を有効にしていて、大文字と小文字を区別しないファイルシステム(NTFS, HFS+, APFS など)を利用している場合に影響する。
また、実際に攻撃を機能させるには GitLFS などの clean/smudge フィルタを使用していることが条件。
🚚 Intent to Ship
Secure Payment Confirmation V2 の Origin Traial が開始
window.appHistory
の追加(Prototyoe)
same-origin と same-frame の履歴とナビゲーションを管理する API で window.history
の代替となるもの。