ModSecurity 2: Функции нормализации


Одно из того, что мне не нравилось в ModSecurity 1.x, это то, что его возможности противодействия обходу защиты были неявны. Входной поток всегда подвергался серии преобразований и всегда в одном порядке. С одной стороны это было удобно, так как вам не надо было заботиться об этом. Но такой подход - неявная нормализация - не надежен. (Не удивляйтесь). Во-первых, случаются ситуации, когда вам необходимо сделать некоторые преобразования (иногда специфичные) до того как вы увидите данные. Во-вторых, когда важен контекст, в котором используются входные данные. Такой подход не всегда подходит для выполнения специфичных преобразований - вы можете даже помочь злоумышленникам избежать обнаружения.

Вот почему, когда разрабатывал архитектуру ModSecurity 2.x, я пришел к гибкому решению, которое позволяет настраивать функции нормализации для каждой ситуации отдельно. Однако за новые возможности пришлось пожертвовать простотой - ModSecurity 2.x стал немного сложнее. Но хватит об этом, давайте обсудим улучшения.
В документации к ModSecurity 2.x описано 19 функций нормализации. Вот они:

  1. lowercase
  2. replaceNulls
  3. removeNulls
  4. compressWhitespace
  5. removeWhitespace
  6. replaceComments
  7. urlDecode
  8. urlEncode
  9. urlDecodeUni
  10. base64Encode
  11. base64Decode
  12. md5
  13. sha1
  14. hexDecode
  15. hexEncode
  16. htmlEntityDecode
  17. escapeSeqDecode
  18. normalisePath
  19. normalisePathWin
Имена большинства из них описывают себя сами. (Для ознакомления с другими обратитесь к документации). По умолчанию ModSecurity 2.x для входящего потока выполняет функции lowercase, replaceNulls и compressWhitespace. Если вам требуются другие действия, то вы можете их настроить, используя новое действие "t". Как и раньше, для задания списка действий по умолчанию для всех правил, вы можете использовать SecDefaultAction, например:
SecDefaultAction log,auditlog,deny,status:403,phase:2,
t:lowercase,t:replaceNulls,t:compressWhitespace
Этот пример взят из стандартной конфигурации. Также вы можете устанавливать действия для каждого правила отдельно, либо задавая их полностью, либо добавляя или удаляя их из стандартной конфигурации. Вот пример, где удалено действие compressWhitespace и добавлено replaceComments:
SecRule ARGS keyword t:-compressWhitespace,t:replaceComments
Для полного удаления всех нормализирующих функций просто добавьте специальное слово: none.
SecRule ARGS keyword t:none,t:normalisePathWin
А если встроенных функций нормализации вам не хватает, тогда в этом случае вы можете использовать новый API, который позволяет добавлять новые функции нормализации без изменения исходного кода. (За примерами обращайтесь к дистрибутиву.)
Источник: Web Security Blog
Перевод: ApacheDev.ru

Опубликовано в: Безопасность Июль 11, 2006

12 Комментариев »

  1. БЛИН СПАСИБА!!! ИСКАЛ 3 ДНЯ!!! ВОТ НАШЕЛ!!!! РЕСПЕКТ!!!!
    ______________
    xuxuxaxa.ru

    Комментарий от skif1993 — Август 28, 2008 @ 4:01 pm

  2. Нуждаетесь в дополнительном доходе с сайта? Мы можем Вам предложить участие в партнерской программе для бесконечного увеличения дохода. В зависимости от тематики веб-ресурса и его посещаемости, для некоторых web-сайтов участие в партнерках может приносить солидный гонорар.

    Комментарий от партнерская программа — Сентябрь 17, 2008 @ 2:37 pm

  3. Если брать отдельно инемного усложнить процесс, то это даст свои плоды, уличшит безопасность и нормализует работу

    Комментарий от Альби — Сентябрь 30, 2008 @ 12:23 pm

  4. Вот то, что я искала! Спасибо.

    Комментарий от Татьяна — Октябрь 16, 2008 @ 4:11 pm

  5. а как это использвать?

    Комментарий от Андрей — Октябрь 16, 2008 @ 4:12 pm

  6. “а как это использвать?”
    vot i u menya tokoi zhe vopros

    Комментарий от Иван — Октябрь 16, 2008 @ 4:13 pm

  7. Спасибо, именно то что искал

    Комментарий от Daemonz — Ноябрь 8, 2008 @ 12:44 pm

  8. Ну наконец нашел решение ! Спасибо автору огромное

    Комментарий от Механик Года — Ноябрь 29, 2008 @ 8:27 pm

  9. Блиин..спасибо вашему блогу. Хороший инструктаж

    Комментарий от Араб — Ноябрь 30, 2008 @ 9:24 pm

  10. poxa eu não entedo poxa ne uma que nada aqui narua os menino fica deseno que vc fes ipaquito foi verdade que vc namoro com a ivete sangalo foi vedade? fala com migo no msn ai mauriciomoreno13@hotmail.com

    Комментарий от mauricio andré — Декабрь 22, 2008 @ 1:23 am

  11. Реальная программулька. Думаю может пригодиться.

    Комментарий от сашка — Март 28, 2009 @ 6:33 pm

  12. А можно ли устанавливать действия для каждого правила отдельно, либо задавая их полностью, либо добавляя или удаляя их из стандартной конфигурации?

    Комментарий от Елизавета — Апрель 17, 2009 @ 12:07 pm

Оставить комментарий

You must be logged in to post a comment.

© apachedev.ru, 2005-2011