界: Input Validation and Representation

入力の検証や表現の問題は、メタキャラクター、代替エンコーディング、数値表現などによって引き起こされます。セキュリティの問題は、入力を信頼することに起因します。この問題に含まれるのは、「Buffer Overflow」、「Cross-Site Scripting」攻撃、「SQL Injection」などです。

Dynamic Code Evaluation: Unsafe TensorFlow Deserialization

Abstract
TensorFlow での安全でないデシリアライゼーションを許可すると、ラムダを通じて任意のコードの実行が許可される可能性があり、アプリケーションに重大なセキュリティ リスクをもたらします。
Explanation
TensorFlowを使用する場合、enable_unsafe_deserialization() によって攻撃者がラムダやその他の Python 呼び出し可能オブジェクトをデシリアライズできるようになります。この機能は柔軟性を持たせたい場合や複雑なモデルの復元に役立ちますが、シリアライズされたデータが可能である場合は脆弱性が生じます。

例 1: 次の Python コードは、シリアライズされたデータが安全でない場合、安全でないデシリアライゼーションを有効にするとどのように悪用されるかを示しています。

import tensorflow as tf

tf.keras.config.enable_unsafe_deserialization()

model = tf.keras.models.load_model('evilmodel_tf.keras')
model([])



この例は、データのソースが完全に安全であることを確認せずに enable_unsafe_deserialization() を使用した場合の潜在的な危険性を示しています。
desc.structural.python.dynamic_code_evaluation_unsafe_tensorflow_deserialization