Какое правило я могу использовать в ModSecurity для входа полезной нагрузки POST для определенного сайта?

Я должен осмотреть полезную нагрузку POST для определенного веб-сайта (сервер довольно занят, и я не включил бы POST, регистрирующийся для всего сервера).

Сервер является LiteSpeed 5.0.7. SecRequestBodyAccess установлен на "На".

Сначала я попробовал цепочкой правил: первый в phase:1, который будет соответствовать только запросам на мой желаемый узел, но полезную нагрузку сообщения, находится в phase:2, и я не думаю, что могу сделать цепочку в 2 различных фазах.

Затем я пытался использовать это:

SecRule REQUEST_METHOD "POST" "phase:2, журнал, id:22222223

Но это ничего не записывает в modsec_audit.log.

Я делаю что-то не так, или это связано с совместимостью LiteSpeed с ModSec?

В конце я также попробовал это правило записать POST для всех запросов: SecRule REQUEST_METHOD "POST" "id:22222224, phase:2, ctl:auditEngine=On, журнал, передача".

Это регистрирует запрос, но не тело запроса (-C - СИ группы, отсутствующая в аудите modsec).

2
задан 13 October 2015 в 16:48
2 ответа

Ушул суроого окшош: Бардык POST маалыматтарын каттоо үчүн mod_security кантип алса болот?

Сиз эки эрежени эки башка фазада чынжырлай албайсыз, бирок 2-фазага мүмкүнчүлүк бар бардык 1-фаза маалыматтары, ушундан улам 2-фазага өтүңүз.

Сиз берген бул эреже:

SecRule REQUEST_METHOD "POST" "phase:2,log,id:22222223

Бул кандайдыр бир маанисиз. Бул POST өтүнүчү келип түшкөнүн, бирок POST органы жок болгонун (негизги журналда) каттайт.

Ошондой эле, AuditEngine журналына сиздин SecAuditEngine маанисинин коюлгандыгына жараша кирет:

  1. Эгерде Сизде SecAuditEngine күйгүзүлгөн, ошондо бардыгы текшерүү журналына жазылат жана жогорудагы эреже талап кылынбайт. Бул журнал файлдарын тез арада толтурат, андыктан сунушталбайт.
  2. Эгер сизде SecAuditEngine тиешеси бар болсо, анда ал дагы ушул жерге кирет. ] Адатта, SecAuditEngine программасын AidantOnly кылып койсоңуз жакшы болот (мен сизде буга чейин бар деп ойлойм), бирок эгерде ал коюлбаса, анда дене AuditLog журналына кирбей калышы мүмкүн

    Балким, муну жасоонун мыкты жолу ctl аракетин колдонуп берген ушул башка эреже менен:

    SecRule REQUEST_METHOD "POST" "id:22222224,phase:2,ctl:auditEngine=On,log,pass"
    

    Бул AuditEngine постту сурамдарды күйгүзүүгө мажбурлайт - AuditLog өчүрүлгөн болсо дагы. Ошондой эле, сиз бул эрежени чындыгында керексиз же пайдалуу болбогон тартипке келтирүү үчүн иштебей койгонуңузду жазат, ошондуктан мен "журналды" "nolog" кылып өзгөртмөкмүн. Сурам дагы деле журналга жазыла берет (auditEngine ооба деп коюлган), бирок өзгөртүү киргизилген бул эреже болбой калат. BTW сиз ctl колдонгондо, бул ушул сурамга гана таасирин тийгизет, ошондуктан AuditEngine кийинки сурам үчүн калыбына келтирилет.

    Сиз айткандай, сизде C бөлүгү жок болсо гана иштейт. Бул SecAuditLogParts менен коюлган. Демейки боюнча, бул C бөлүктөрүн камтыйт, демек, демейки шартты өзгөрткөн болушуң керек деп ойлойсуңбу? Буга кандайдыр бир себеп болгонбу?

    Кандай болбосун, сиз C бөлүктөрүн камтыйт деп белгилей аласыз:

    SecAuditLogParts ABCFHZ
    SecRule REQUEST_METHOD "POST" "id:22222224,phase:2,ctl:auditEngine=On,nolog,pass"
    

    Же болбосо, ушул эреже күйгөндө С бөлүктөрүнүн гана катталышын кааласаңыз, анда сиз аны эреженин бир бөлүгү катары жасай аласыз:

    SecRule REQUEST_METHOD "POST" "id:22222224,phase:2,ctl:auditEngine=On,ctl:auditLogParts=ABCFHZ,nolog,pass"
    

    ] Дагы бир нерсени билишиңиз керек: POST сурамдары купуя маалыматтарды (паролдор, кредиттик карталардын номерлери, социалдык камсыздандыруу номерлери ... ж.б.) каттай алат. Буларды каттоо сунушталбайт, ошондой эле компаниянын саясатын жана / же сиз карманган стандарттарды бузушу мүмкүн (мисалы, PCI ылайык). Ошондуктан бул маалыматтарды маска кылуу үчүн санитардык эрежелерди орнотуу сунушталат. Көбүрөөк маалымат алуу үчүн бул жерден караңыз: https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#sanitiseArg

2
ответ дан 3 December 2019 в 10:41

Убедитесь в следующем:

  1. Иметь SecRequestBodyAccess на

  2. Попробуйте использовать «auditlog» вместо «log»

  3. Если вы настроили SecAuditLogParts, убедитесь, что он включает тело запроса

1
ответ дан 3 December 2019 в 10:41

Теги

Похожие вопросы