「趣味と実益のための著名なOSSライブラリ起因の脆弱性の探求」という題でセキュキャンで講義してきた

セキュリティ・キャンプ全国大会 2021 オンラインで講義をしました!!

www.ipa.go.jp

去年も講義してたけど、去年は翌日の坂本真綾のライブで打ち上がって頭が書き換えられてブログ書いてなかったっぽい。 また名古屋旅行したい。次の動画は去年の打ち上げの参考動画です。

www.youtube.com

講義内容

前座として脆弱性を取り巻くライフサイクルの話をした後、安全でないデシリアライゼーションの演習をやり、その後、XMLパーサのしばき方を学び、実際にGitHubで公開されているOSS脆弱性を探す演習をやりました。 OSSライブラリ起因の脆弱性といっても幅広いので、各プログラミング言語にデフォルトで存在するライブラリ起因の脆弱性に焦点を当てて、安全でないデシリアライゼーションとXMLパーサ関連の脆弱性の話をしました。ちょっと講義タイトルは詐欺気味なところは否めない....

日本語でProperty-Oriented Programmingに言及している資料やXMLパーサに対する攻撃手法を細かに分類した資料は無かったので公開する意義のある良い資料ができた気がしています。 詳しい内容は講義資料を既に公開しているのでそちらの方を見てもらえると🙏

speakerdeck.com github.com

こだわりポイントはBillion Laugh、Quadratic BlowupといったDoS脆弱性をDocker上で安全に試せるようにしたところです。 次のコマンドで気軽にDoSを楽しめるので、暇な人はやってみてください!!

$ git clone git@github.com:tkmru/seccamp2021-b5.git
$ cd seccamp2021-b5
$ cd handson/xml-parser/billion-laughs/etree/
$ docker build . -t billion-laughs-etree
$ docker run billion-laughs-etree
CPU: 0.0 %, Memory: 540 KB
CPU: 95.0 %, Memory: 308920 KB
CPU: 97.5 %, Memory: 601304 KB
CPU: 98.6 %, Memory: 896032 KB
CPU: 99.0 %, Memory: 1188776 KB
CPU: 101 %, Memory: 1572960 KB
CPU: 101 %, Memory: 1602120 KB
CPU: 101 %, Memory: 1595464 KB
CPU: 99.3 %, Memory: 0 KB
./run.sh: line 12:     7 Killed                  python vulnerable.py
CPU:  %, Memory:  KB

講義資料を作りながら8件ほどOSS脆弱性を見つけてIPAに報告できたのも良かったけど、さてCVE付くのはいつになるんだろう....