CVE-2019-19781 Vulnerability Workaround Adımları
Çalışma Öncesi
Citrix ADC cihaz/ cihazlar güncel konfigürasyonu kaydedilir ve bir güncel back-up dosyası oluşturup download edilir.
Standalone Sistem
Citrix ADC cihazına SSH ile bağlanılır. Aşağıdaki komut dizini ile bir responder policy oluşturulur ve override global noktasına 1 priority ile bind edilir ve konfigürasyon kaydedilir.
enable ns feature responder
add responder action respondwith403 respondwith "\"HTTP/1.1 403 Forbidden\r\n\r\n\""
add responder policy ctx267027 "HTTP.REQ.URL.DECODE_USING_TEXT_MODE.CONTAINS(\"/vpns/\") && (!CLIENT.SSLVPN.IS_SSLVPN || HTTP.REQ.URL.DECODE_USING_TEXT_MODE.CONTAINS(\"/../\"))" respondwith403
bind responder global ctx267027 1 END -type REQ_OVERRIDE
save config
2. adım olarak netscaler sisteminde ilgili parametre değişikliği yapılır ve geçerli olabilmesi için reboot edilir.
shell nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0
shell "echo 'nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0' >> /nsconfig/rc.netscaler"
reboot
HA (High Availability) Sistem
Primary
Citrix ADC primary cihazına SSH ile bağlanılır. Aşağıdaki komut dizini ile bir responder policy oluşturulur ve override global noktasına 1 priority ile bind edilir ve konfigürasyon kaydedilir. Citrix ADC sisteminde ilgili parametre değişikliği yapılır ve geçerli olabilmesi için secondary’den başlayarak cihazlar kontrollü şekilde reboot edilir.
enable ns feature responder
add responder action respondwith403 respondwith "\"HTTP/1.1 403 Forbidden\r\n\r\n\""
add responder policy ctx267027 "HTTP.REQ.URL.DECODE_USING_TEXT_MODE.CONTAINS(\"/vpns/\") && (!CLIENT.SSLVPN.IS_SSLVPN || HTTP.REQ.URL.DECODE_USING_TEXT_MODE.CONTAINS(\"/../\"))" respondwith403
bind responder global ctx267027 1 END -type REQ_OVERRIDE
save config
shell nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0
shell "echo 'nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0' >> /nsconfig/rc.netscaler"
NOT: Secondary node ilk olarak reboot edilir. Secondary node ayağa kalktıktan sonra failover işlemi yapılır ve diğer node (yeni secondary) reboot edilir; cihazın tekrar ayağa kalkması sonrasında kontroller yapılır ve çalışma sonlandırılır.
reboot
Secondary
Secondary node üzerinde aşağıdaki komut dizini çalıştırılır.
shell nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0
shell "echo 'nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0' >> /nsconfig/rc.netscaler"
ilk olarak secondary cihaz reboot edilir.
reboot
Değişiklikleri Geri Alma (Standalone, HA)
Eklenen policy Citrix ADC üzerinden kaldırılır. Konfigürasyon bu hali ile kaydedilir.
unbind responder global ctx267027
save config
Yapılan parametre değişikliği aşağıdaki komut ile geri alınır ve cihaz reboot edilir.
shell nsapimgr_wr.sh -ys skip_systemaccess_policyeval=1
shell "sed -i '' '/skip_systemaccess_policyeval=0/d' /nsconfig/rc.netscaler"
Cihaz reboot adımı.
reboot
NOT: Yukarıda uygulanan policylerin çalışması için reboot adımına gerek yoktur fakat zararlı olabilecek komutların çalıştırılıyor olmasına karşın mevcut sessionları sonlandırmak adına reboot etmek gerekir.
Ayrıca Citrix’ in paylaştığı çözüm adımlarına buradan ulaşabilirsiniz!