「趣味と実益のための著名なOSSライブラリ起因の脆弱性の探求」という題でセキュキャンで講義してきた
セキュリティ・キャンプ全国大会 2021 オンラインで講義をしました!!
去年も講義してたけど、去年は翌日の坂本真綾のライブで打ち上がって頭が書き換えられてブログ書いてなかったっぽい。 また名古屋旅行したい。次の動画は去年の打ち上げの参考動画です。
講義内容
前座として脆弱性を取り巻くライフサイクルの話をした後、安全でないデシリアライゼーションの演習をやり、その後、XMLパーサのしばき方を学び、実際にGitHubで公開されているOSSの脆弱性を探す演習をやりました。 OSSライブラリ起因の脆弱性といっても幅広いので、各プログラミング言語にデフォルトで存在するライブラリ起因の脆弱性に焦点を当てて、安全でないデシリアライゼーションとXMLパーサ関連の脆弱性の話をしました。ちょっと講義タイトルは詐欺気味なところは否めない....
日本語でProperty-Oriented Programmingに言及している資料やXMLパーサに対する攻撃手法を細かに分類した資料は無かったので公開する意義のある良い資料ができた気がしています。 詳しい内容は講義資料を既に公開しているのでそちらの方を見てもらえると🙏
こだわりポイントは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付くのはいつになるんだろう....