Citrix ADC

JSON-Denial-of-Service-Schutzprufung

Die json -拒绝服务(DoS) -Prüfung untersucht eine eingehenende JSON-Anforderung und prüft, ob Daten vorhanden sind, Die den Merkmalen eines DoS- angriffs entsprechen。Wenn die Anforderung JSON-Verstöße hatte, blockiert die Appliance die Anforderung, protokolliert die Daten, sendet eine SNMP-Warnung und zeigt auch eine JSON-Fehlerseite an。Der Zweck Der JSON-DoS-Prüfung best - ht darin, zu verhindern, dass ein Angreifer eine JSON-Anfrage sendet,嗯DoS-Angriffe auf Ihre JSON-Anwendungen oder Ihre Website zu startten。

Wenn ein客户端eine Anforderung一个eine Citrix ADC设备发送器,分析器json解析器die Anforderungsnutzlast。Wenn eine Verletzung beobachtet wd, setzt模具电器Einschränkungen für模具JSON-Struktur durch。Die Einschränkung erzwingt eine Größenbeschränkung für Die JSON-Anforderung。关于JSON-Verletzung最完美的wurde, führt die die Appliance daher eine action ausand antwortet mit der JSON-Fehlerseite。

JSON-DoS-Regeln

Wenn die Appliance eine JSON-Anforderung erhält, erzwingt der JSON-DOS-Schutz die Größenbeschränkung für die folgenden DoS-Parameter in der Anforderungsnutzlast。

  1. maximale Tiefe: maximale Verschachtelung (Tiefe) des json文档。Diese Prüfung schützt vor Dokumenten mit übermäßiger Hierarchietiefe。
  2. maximale Dokumentlänge: maximale Dokumentlänge des json - documents。
  3. maximale Array-Länge: maximale Array-Länge in einem beliebigen JSON-Objekt。Diese Prüfung schützt vor Arrays mit großen Längen。
  4. maximale Stringlänge: maximale Stringlänge im JSON。Diese Prüfung schützt vor Saiten mit großer Länge。
  5. 最大对象键数:在einem beliebigen JSON-Objekt中Maximale Anzahl von Schlüsseln。Diese Prüfung schützt vor Objekten mit einer großen Anzahl von Schlüsseln。
  6. maximale Objektschlüssellänge: maximale Schlüssellänge in einem beliebigen JSON-Objekt。Diese Prüfung schützt vor Objekten mit großen Schlüsseln。

关于JSON-DoS-Regeln, die während des JSON-Parsens validiert wurden。

  1. JSONMaxContainerDepth。Diese Prüfung kann aktiviert werden, indem die JsonMaxContainerDepth-Prüfung konfiguriert wid und standardmäßig ist die选项OFF。

  2. JSONMaxContainerDepth。Diese Prüfung kann durch die konfigurierbare Option jsonMaxContainerDepthCheck aktiviert/deaktiviert werden und under Standardwert kann mit der Option jsonMaxContainerDepth geändert werden。Sie können die Höchstwerte jedoch auf einen Wert zwischen 1 und 127变体。标准误差:5,最小误差:1,最大误差:127

  3. JSONMaxDocumentLength。Diese Prüfung kann aktiviert werden, indem die JsonMaxDocumentLength-Prüfung konfiguriert wid und die标准选项ist OFF。

  4. JSONMaxDocumentLength。Diese Prüfung kann durch Konfigurieren der JsonMaxDocumentLength-Prüfung aktiviert werden, und die Standardlänge ist auf 20000000 Byte festgelegt。Mindestwert: 1, Maximalwert: 2147483647

  5. JSONMaxObjectKeyCount。Die Regel überprüft, ob Die Überprüfung der maximalen JSON-Objektschlüsselanzahl ein- oder ausgeschaltet ist。Mögliche Werte: ON, OFF, Standardwert: OFF

  6. JSONMaxObjectKeyCount。Diese Prüfung kann aktiviert werden, indem die JsonMaxObjectKeyCount-Prüfung konfiguriert word。Die Prüfung schützt vor Objekten mit einer großen Anzahl von Schlüsseln, und under Standardwert ist auf 1000 Byte festgelegt。mindestert: 0, Maximalwert: 2147483647

  7. JSONMaxObjectKeyLength。Diese Prüfung kann durch Konfigurieren der JsonMaxObjectKeyLength-Prüfung aktiviert werden。Die Regel überprüft, ob Die Überprüfung der maximalen JSON-Objektschlüssellänge ein- oder ausgeschaltet ist。Standardmäßig ist es ausgeschaltet。

  8. JSONMaxObjectKeyLength。Der Scheck schützt vor Objekten mit großer Schlüssellänge。Standardwert: 128。Mindestwert: 1, Maximalwert: 2147483647

  9. JSONMaxArrayLength。Die Regel überprüft, ob Die Prüfung der maximalen JSON-Array-Länge EIN oder AUS ist。Standardmäßig ist es ausgeschaltet。

  10. JSONMaxArrayLength。Die Prüfung schützt vor Arrays mit großen Längen。Standardmäßig ist der Wert auf 10000 festgelegt。Mindestwert: 1, Maximalwert: 2147483647

  11. JSONMaxStringLength。Diese Prüfung kann durch Konfigurieren der JsonMaxStringLength-Prüfung aktiviert werden。Die Prüfung prüft, ob Die maximale JSON-Stringlänge EIN oder AUS ist。Standardmäßig ist es ausgeschaltet。

  12. JSONMaxStringLength。Der Scheck schützt vor Saiten mit großer Länge。Standardmäßig ist es auf 1000000 eingestellt。Mindestwert: 1, Maximalwert: 2147483647

Konfigurieren der JSON-DoS-Schutzprüfung

嗯den JSON-DoS-Schutz zu konfigurieren, müssen Sie die folgenden Schritte ausführen:

  1. anwendungs - firewall - profile für JSON hinzufügen。
  2. Legen Sie das anwendungs - firewall - profile für JSON-DoS-Einstellungen
  3. Konfigurieren Sie JSON-DoS-Variablen, indem Sie das anwendungsfirewall - profile binden

anwendungs - firewall - profile für JSON-DoS-Schutz hinzufügen

Sie müssen zuerst ein profile erstellen, das angibt, wie die Anwendungsfirewall Ihre JSON-Webinhalte vor JSON-DoS-Angriffen schützen muss。Geben Sie and der eingabeauforforderung Folgendes ein:

add appfw profile -type (HTML | XML | JSON)

Hinweis

Wenn Sie den Profiltyp auf JSON festlegen,信andere Prüfungen wie HTML odder XML nicht anwendbar。

Beispiel

添加appfw profile profile1类型的JSON

Festlegen des anwendungs - firewall - profiles für JSON-DoS-Schutz

Sie müssen das profile für eine oder mehere JSON-DoS-Aktionen und das JSON-DoS-Fehlerobjekt konfigurieren, die im anwendungs - firewall - profile festgelegt werden sollen。Geben Sie and der eingabeauforforderung Folgendes ein:

set appfw profile -JSONDoSAction [block] | [log] | [stats] | [none]

Blockieren - Blockieren Sie Verbindungen, die gegen diese Sicherheitsüberprüfung verstoßen。Log - Protokollieren Sie Verstöße gegen diese Sicherheitsprüfung。统计- Generieren Sie统计für diese Sicherheitsüberprüfung。Keine - Deaktiviert allle Aktionen für diese Sicherheitsüberprüfung。

Hinweis

Um eine oder mehere aktivieren zu aktivieren, geben Sie " set appfw profile -jsondosAction " ein, gefolgt von den zu aktivierenen Aktionen。

Beispiel

设置appfw profile profile1 -JSONDoSAction block log stat

防火墙防火墙-

嗯,JSON-DoS-Schutz bereitzustellen, müssen Sie das anwendungs - firewall - proffil mit den JSON-DoS-Einstellungen binden。Geben Sie and der eingabeauforforderung Folgendes ein:

绑定appfw概要文件<名称> -JSONDoSURL <表达式> [-JSONMaxContainerDepthCheck (|) [-JSONMaxContainerDepth < positive_integer >]] [-JSONMaxDocumentLengthCheck (|) [-JSONMaxDocumentLength < positive_integer >]] [-JSONMaxObjectKeyCountCheck (|) [-SONMaxObjectKeyCount < positive_integer >]] [-JSONMaxObjectKeyLengthCheck (|) [-JSONMaxObjectKeyLength < positive_integer >]] [-JSONMaxArrayLengthCheck (|) [-JSONMaxArrayLength < positive_integer >]][-JSONMaxStringLengthCheck (ON | OFF) [-JSONMaxStringLength ]]

Beispiel

绑定appfw profile profile1 -JSONDoSURL”。-JSONMaxContainerDepthCheck ON

Hinweis

Die JSON-DoS-Prüfungen sind nur anwendbar, wenn der Profiltyp als JSON ausgewählt ist。Außerdem werden SQL,跨站脚本,Feldformat和Formularfeldsignaturen bei JSON-Profilen auf Abfrageparameter angewendet。

JSON-Fehlerseite importieren

安弗德隆安弗德隆安弗德隆安弗德隆积木人,zeigt die电器费勒梅尔顿安。嗯dies zu tun, müssen Sie die JSON-Fehlerseite importieren。Geben Sie and der eingabeauforforderung Folgendes ein:

导入appfw jsonerrorpage [-comment ] [-overwrite]

Hierbei镀金:

src。URL(协议,主机,Pfad和名称)für den Speicherort, an dem das importierte JSON-Fehlerobjekt gespeichert werden soll。

Hinweis

Der Import schlägt fehl, wenn sich das zu importierende Objekt auf einem http - server befindet, für den Zugriff eine Clientzertifikatauthentifizierung erforderlich ist die ist ein zwingendes参数。Maximale Länge: 2047

的名字。名称,der dem JSON-Fehlerobjekt auf dem Citrix ADC zugewiesen werden soll。论证。Maximale Länge: 31 Kommentar。Kommentare,嗯Informationen über das JSON-Fehlerobjekt beizubehalten。Maximale Länge: 255 überschreiben。Überschreiben Sie jedes vorhandene JSON-Fehlerobjekt mit demselben Namen。

Beispiel-Konfiguration

添加appfw prof profjson类型JSON绑定appfw prof profjson -JSONDoSURL”。*” -JSONMaxDocumentLengthCheck ON -JSONMaxDocumentLength 30 -JSONMaxContainerDepthCheck ON -JSONMaxContainerDepth 3 JSONMaxObjectKeyCountCheck ON -JSONMaxObjectKeyCount 4 -JSONMaxObjectKeyLengthCheck ON -JSONMaxObjectKeyLength 10 -JSONMaxArrayLengthCheck ON -JSONMaxArrayLength 5 -JSONMaxStringLengthCheck ON -JSONMaxStringLength 30 

Beispiel für Nutzlasten, Protokollmeldungen und Zähler:

JSONMaxDocumentLength违反

JSONMaxDocumentLength: 30载荷:{“a”:“一”,“b”:“b”,“c”:“c”,“d”:“d”,“e”:“e”}

Protokollmeldung:

文档长度超过20000000 5月29日20:23:32  10.217.31.243 05/29/2019:20:23:32 GMT 0- ppe -0: default APPFW APPFW_JSON_DOS_MAX_DOCUMENT_LENGTH 136 0: 10.217.32.134 114-PPE0 - profjson http://10.217.30.120/forms/login.html文档超过最大文档长度(30)。cn1=30467 cn2=115 cs1=profjson cs2=PPE0 cs4=ALERT cs5=2019 act=blocked 

学院:

1 0 6 as_viol_json_dos_max_document_length 3 0 6 as_log_json_dos_max_document_length 5 0 6 as_viol_json_dos_dos_profile appfw__(profile1) 6 0 3 as_viol_json_dos_max_document_length_profile appfw__(profile1) 7 0 6 as_log_json_dos_max_document_length_profile appfw__(profile1) 8 0 3 as_log_json_dos_max_document_length_profile appfw__(profile1) 

JSONMaxContainerDepth违反

JSONMaxContainerDepth: 3载荷:{“a”:{" b ": {" c ": {" d ": {" e ": " f "}}}}}

Protokollmeldung:

May 29 19:33:59  10.217.31.243 05/29/2019:19:33:59 GMT 0- ppe -1: default APPFW APPFW_JSON_DOS_MAX_CONTAINER_DEPTH 4626 0: 10.217.31.247 22-PPE1 - profjson http://10.217.30.120/forms/login.html文档at offset(15)超过最大容器深度(3). cn1=30466 cn2=113 cs1=profjson cs2=PPE0 cs4=ALERT cs5=2019 act=blocked 

学院:

36 20999 7 1 0 as_viol_json_dos 37 0 6 1 0 as_viol_json_dos_max_container_depth 38 7 1 0 as_log_json_dos 39 0 6 0 1 0 as_log_json_dos_max_container_depth 40 0 7 1 0 as_viol_json_dos_profile appfw__ (profile1) 41 0 6 1 0 as_viol_json_dos_max_container_depth_profile appfw__ (profile1) 42 0 7 1 0 as_log_json_dos_profile appfw__ (profile1) 43 1 0 6 0 as_log_json_dos_max_container_depth_profile appfw__ (profile1) < !——NeedCopy >

JSONMaxObjectKeyCount违反

JSONMaxObjectKeyCount: 4

有效载荷:{“a”:“一”,“b”:“b”,“c”:“c”,“d”:“d”,“e”:“e”}

Protokollmeldung:

May 30 19:42:41  10.217.31.243 05/30/2019:19:42:41 GMT 0- ppe -1: default APPFW APPFW_JSON_DOS_MAX_OBJECT_KEY_COUNT 457 0: 10.217.32.134 219-PPE1 - profjson http://10.217.30.120/forms/login.html offset (41) that exceeds maximum key count (4). cn1=30468 cn2=118 cs1=profjson cs2=PPE0 cs4=ALERT cs5=2019 act=blocked 

学院:

94 119105 15 1 0 as_viol_json_dos 95 0 4 1 0 as_viol_json_dos_max_object_key_count 96 0 15 1 0 as_log_json_dos 97 0 4 1 0 as_log_json_dos_max_object_key_count 98 0 15 1 0 as_viol_json_dos_profile appfw__ (profile1) 99 0 4 1 0 as_viol_json_dos_max_object_key_count_profile appfw__ (profile1) 100 0 15 1 0 as_log_json_dos_profile appfw__ (profile1) 101 0 4 1 0 as_log_json_dos_max_object_key_count_profile appfw__ (profile1) < !——NeedCopy >

JSONMaxObjectKeyLength违反

JSONMaxObjectKeyLength: 10载荷:{“a”:“一”,“b1234567890”:“B”,“c”:“c”,“d”:“d”,“e”:“e”}

Protokollmeldung:

May 31 20:26:10  10.217.31.243 05/31/2019:20:26:10 GMT 0- ppe -1: default APPFW APPFW_JSON_DOS_MAX_OBJECT_KEY_LENGTH 102 0: 10.217.32.134 89-PPE1 - profjson http://10.217.30.120/forms/login.html对象密钥(b1234567890) at offset(12)超过最大密钥长度(10)。cn1=30469 cn2=118 cs1=profjson cs2=PPE0 cs4=ALERT cs5=2019 act=blocked 

学院:

242172 6 1 0 as_viol_json_dos 0 1 1 0 as_viol_json_dos_max_object_key_length 10 0 5 1 0 as_log_json_dos 11 0 1 1 0 as_log_json_dos_max_object_key_length 12 0 6 0 as_viol_json_dos_profile appfw__ (profile1) 13 0 1 1 0 as_viol_json_dos_max_object_key_length_profile appfw__ (profile1) 14 0 5 1 0 as_log_json_dos_profile appfw__ (profile1) 15 0 1 1 0 as_log_json_dos_max_object_key_length_profile appfw__ (profile1) < !——NeedCopy >

JSONMaxArrayLength违反

JSONMaxArrayLength: 5负载:{“a”:“一”,“c”:[“d”、“e”、“f”,“g”,“h”,“我”),“e”:[“e”,“e”]}

Protokollmeldung:

May 29 20:58:39  10.217.31.243 05/29/2019:20:58:39 GMT 0- ppe -1: default APPFW APPFW_JSON_DOS_MAX_ARRAY_LENGTH 4650 0: 10.217.32.134 153-PPE1 -profjson http://10.217.30.120/forms/login.html Array at offset (37) that exceeds the maximum Array length (5). cn1=30469 cn2=120 cs1=profjson cs2=PPE0 cs4=ALERT cs5=2019 act=blocked 

学院:

36 182293 10 1 0 as_viol_json_dos 37 0 1 1 0 as_viol_json_dos_max_array_length 38 0 10 1 0 as_log_json_dos 39 0 1 1 0 as_log_json_dos_max_array_length 40 0 10 1 0 as_viol_json_dos_profile appfw__ (profile1) 41 0 1 1 0 as_viol_json_dos_max_array_length_profile appfw__ (profile1) 42 0 10 1 0 as_log_json_dos_profile appfw__ (profile1) 43 0 1 1 0 as_log_json_dos_max_array_length_profile appfw__ (profile1)) < !——NeedCopy >

JSONMaxStringLength违反

JSONMaxStringLength: 10

有效载荷:{“a”:“一”,“c”:“CcCcCcCcCcCcCcCcCc”、“e”:[“e”,“e”]}

Protokollmeldung:

May 29 20:05:02  10.217.31.243 05/29/2019:20:05:02 GMT 0- pppe -0: default APPFW APPFW_JSON_DOS_MAX_STRING_LENGTH 134 0: 10.217.32.134 80-PPE0 - profjson http://10.217.30.120/forms/login.html String(cccccccccccccccc) at offset (27) that exceeds maximum String length(10)。n1=30470 cn2=122 cs1=profjson cs2=PPE0 cs4=ALERT cs5=2019 act=blocked 

学院:

44 91079 3 1 0 as_viol_json_dos 45 0 1 1 0 as_viol_json_dos_max_string_length 46 0 3 1 0 as_log_json_dos 47 0 1 1 0 as_log_json_dos_max_string_length 48 0 3 1 0 as_viol_json_dos_profile appfw__ (profile1) 49 0 1 1 0 as_viol_json_dos_max_string_length_profile appfw__ (profile1) 50 0 3 1 0 as_log_json_dos_profile appfw__ (profile1) 51 0 1 1 0 as_log_json_dos_max_string_length_profile appfw__ (profile1 < !——NeedCopy >

Konfigurieren des JSON-DoS-Schutzes mit Citrix GUI

Gehen Sie wie folgt vor,嗯die JSON-DoS-Schutzeinstellungen festzulegen。

  1. Navigieren Sie im Navigationsbereich zuSicherheit>配置文件
  2. “你在现场”配置文件汪汪汪Hinzufugen
  3. 我很高兴见到你Citrix Web应用防火墙Profilseiteunter Erweiterte爱因斯坦龙根auf Sicherheitsprüfungen
  4. Gehen Sie im AbschnittSicherheitsuberprufungen吧台JSON-Denial-of-Service-Einstellungen
  5. Klicken Sie neben dem Kontrollkästchen auf das Symbol der ausführbaren

    JSON-DoS-Sicherheitsuberprufungen

  6. 祝你好运Aktionseinstellungen呃死吧JSON-Denial-of-Service-Einstellungenaufzurufen。
  7. Wählen Sie die JSON-DoS-Aktion aus。
  8. 祝你好运好吧

    JSON-DoS-Aktionseinstellungen

  9. “你在现场”Citrix Web App防火墙配置文件螺母Erweiterte设置汪汪汪Entspannungsregeln
  10. Wählen我是AbschnittEntspannungsregelnJSON-Denial-of-Service-Einstellungen来自und klicken Sie aufBearbeiten

    JSON-DoS-Entspannungsregeln

  11. LegenSie in der应用防火墙JSON拒绝服务检查死亡JSON-DoS-Validierungswerte fest。
  12. 祝你好运好吧

    JSON-DoS-Entspannungsregeln

  13. 我很高兴见到你Citrix Web应用防火墙Profilseite螺母ErweiterteEinstellungen auf Profileinstellungen**
  14. Gehen Sie im AbschnittProfileinstellungenzum UnterabschnittJSON-Fehlereinstellungen嗯死亡JSON-DoS-Fehlerseitefestzulegen。

    JSON-DoS-Entspannungsregeln

  15. Legen Sie auf derJSON-Fehlerseite " object进口品"参数fest:

    1. Importieren来自。Importieren Sie die Fehlerseite als文本,Datei order URL。
    2. URL。URL,嗯den Benutzer auf die Fehlerseite umzuleiten。1 Datei。Wählen你是日本人,是日本人,是日本人。
    3. 文本。Geben Sie den Inhalt der JSON-Datei ein。
    4. “我是你的朋友”。
    5. Datei。Geben Sie den Dateinamen ein。
    6. Inhalt der Datei。Fügen你的家乡。
    7. 祝你好运好吧

    JSON-DoS-Importfehlerseite

  16. 祝你好运好吧
  17. 祝你好运多数时候
JSON-Denial-of-Service-Schutzprufung