脆弱なライブラリvuln-lib.jar
があるとします。このライブラリをソースコードにインポートしますが、実際には使用しません。
#My imports
import com.vuln.lib.*
#My code ..
次に、このアプリケーションをサーバーにデプロイします。ライブラリがソースコードの一部として提供するクラスをコードが使用していない場合でも、このライブラリの既知の脆弱性を悪用することはできますか?もしそうなら、それはどのように起こりますか?
はい、これは逆シリアル化によって適切な状況で実行できます。
攻撃者はそのデータを提供し、シリアル化されたデータストリーム内のjarファイルのクラスを参照します。
逆シリアル化に関して利用可能な記事やビデオがたくさんあり、なぜそれが問題なのか。 https://github.com/trendmicro/SecureCodingDojo/ も役立つかもしれません。