界: Input Validation and Representation
输入验证与表示问题是由元字符、交替编码和数字表示引起的。安全问题源于信任输入。这些问题包括:“Buffer Overflows”、“Cross-Site Scripting”攻击、“SQL Injection”等其他问题。
Dynamic Code Evaluation: Unsafe TensorFlow Deserialization
Abstract
允许在 TensorFlow 中进行不安全的反序列化可能允许通过 lambda 执行任意代码,对应用程序构成重大的安全风险。
Explanation
使用 TensorFlow 时,
示例 1:以下 Python 代码说明了在序列化数据不安全的情况下,启用不安全的反序列化会出现何种漏洞:
此示例说明了在未确保数据源完全安全的情况下使用 enable_unsafe_deserialization() 时可能存在的危险。
enable_unsafe_deserialization()
允许攻击者反序列化 lambda 或其他 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