学習忘備録

学習のアウトプットや感じた事を発信していきます

安全でないデシリアライゼーション

書籍を読んで

www.amazon.co.jp

こちらの書籍を読んでWebアプリケーションを作る際に重要な要点を自分用としてアウトプットします。

安全でないデシリアライゼーション

概要

  • リアライゼーション
    • アプリケーション内部の構造を持ったデータを保存・伝送する目的でバイト列に変換すること
  • デシリアライゼーション
  • 情報漏洩
  • サイト改ざん
  • 不正な機能実行
  • 他サイトへの攻撃(踏み台)
  • 暗号通貨の採掘(マイニング)

脆弱性が生まれる原因

  • 外部からの信頼できない入力データを元にデシリアライズ処理を行うと、意図しないオブジェクトがメモリ上に生成される
    • オブジェクトはメソッドを持っているので、攻撃者はオブジェクトのプロパティを巧妙に設定することにより、任意のコードを外部から実行出来る場合がある

対策

安全でないデータをデシリアライズすることは基本的に危険であり、避けなければならない 対策としては以下が考えられる - シリアライズ形式ではなくJSON形式によりデータを受け渡す - クッキーやhiddenパラメータではなくセッション変数など書き換えできない形でシリアライズ形式のデータを受け渡す - HMACなどの改ざん検知の仕組みを導入してデータが改ざんされていないことを確認する