界: 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