$30 off During Our Annual Pro Sale. View Details »

Django のセキュリティリリースを見る

Django のセキュリティリリースを見る

Yamaguchi Takahiro

December 21, 2022
Tweet

More Decks by Yamaguchi Takahiro

Other Decks in Technology

Transcript

  1. Django のセキュリティリリー
    スを見る
    2022/10/26 nyk510

    View Slide

  2. Djangoはすごい! が頼り過ぎてる…?
    ● Djangoはフルスタックフレームワークでセキュリティについては心配ない、と思っている
    ● ただ実際にはたまにセキュリティインシデントが見つかってパッチが配布されている
    ● 具体的な中身とかどうやって開発されているとか知らない…おんぶにだっこ

    View Slide

  3. 今日の目的
    ● 今も残っている不具合を知る
    ● どういう方法で配布されているかの仕組みをしる

    View Slide

  4. Djangoのバージョン管理方法
    ● githubで管理されている
    ● 新しいバージョンができるとリリースのための tag が切られ公式サイトで通知される
    ● リリース一覧は https://docs.djangoproject.com/en/4.1/releases/ から見ることができる

    View Slide

  5. 最近のセキュリティ系のリリース
    Django 4.0.8 release notes https://docs.djangoproject.com/en/4.1/releases/4.0.8/ から拝借 (2022-10-16)

    View Slide

  6. 最近のセキュリティ系のリリース
    Django 4.0.8 release notes https://docs.djangoproject.com/en/4.1/releases/4.0.8/ から拝借 (2022-10-16)
    リリースページにセキュリティ issue であることがそのレベルと共に表記され

    - 高: リモートコード実行・ SQLインジェクション
    - 中: XSS・CSRFなどの攻撃系
    - 低: レアケースな設定の問題・未検証のリダイレクト問題等
    名前はCVE + わかりやすい説明と共に表記される。
    (国際化された URL における潜在的なサービス拒否の脆弱性 )

    View Slide

  7. CVEとは?
    情報セキュリティのおける脆弱性やインシデントに
    ついて固有の名前をつけて管理するデータベース
    昔は各種の団体やベンダーが独自報告して散逸して
    いることを問題視して作られた
    に作成せずCVEに統一されることで脆弱性の比較検
    討が容易になった(トノコト)
    https://www.cve.org/

    View Slide

  8. Django 4.0.8 に該当するページを調べるには?
    CVE から始まるIDで調べると出てくる
    ● https://www.cve.org/CVERecord?id=CVE
    -2022-41323
    先程よりも包括的な内容が記載されている
    ● django4.0.8以外でも修正されたことがわか

    内容と参照すべきリンクが記載されている
    ● 今回の場合だとリリースがどこに影響があっ
    たかや、どこで修正がされたか (commit) な
    ども記載がある。

    View Slide

  9. どういう内容だった?
    CVEのページに当該修正の commit log がある:
    https://github.com/django/django/commit/5
    b6b257fa7ec37ff27965358800c67e2dd11c9
    24
    修正内容は1行 (というより10文字ぐらい)・
    re.escape を追加するところ

    View Slide

  10. どういう内容だった?
    ● 言語指定に正規表現が受け付けられていた
    ● 内部に正規表現で意味がある単語が利用さ
    れるとクラッシュする
    ○ 例えば `e(` などをリクエストされたと
    き [re.error: missing ),
    unterminated subpattern at
    position 1] となる
    ● これによりDDos攻撃などに弱くなる

    View Slide

  11. 番外編: もしセキュリティ関連のミスを見つけたら?
    ● Djangoのissueを作らずメールせよとのこと
    ● 公にセキュリティの不備が知られるとまずいのでそうなってる

    View Slide