The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

11.05.2017 22:35  Yandex опубликовал статический анализатор файлов конфигурации nginx

Компания Яндекс опубликовала исходные тексты проекта Gixy, в рамках которого развивается статический анализатор, предназначенный для выявления проблемных настроек в файлах конфигурации nginx, которые могут отрицательно повлиять на безопасность. Код написан на языке Python и распространяется под лицензией MPL 2.0.

В настоящее время Gixy включает следующие плагины, выявляющие различные классы проблем:

  • ssrf - выявляет уязвимость Server Side Request Forgery, позволяющую выполнять различного рода запросы от имени Nginx. Проблема возникает, когда атакующий может контролировать адрес проксируемого сервера (второй аргумент директивы proxy_pass);
  • http_splitting - выявляет уязвимость HTTP Splitting, возникающую из-за неправильной обработки входных данных. Уязвимость может применяться для атак на приложение стоящее за Nginx (HTTP Request Splitting) или на клиентов приложения (HTTP Response Splitting).
  • origins - выявляет проблемы с проверкой заголовка запроса Referer или Origin, обычно возникающие из-за некорректного составления регулярного выражения;
  • add_header_redefinition - выявляет проблемы с переопределением "вышестоящих" заголовков ответа директивой "add_header";
  • host_spoofing - определяет возможность подмены заголовка запроса Host;
  • valid_referers - выявляет проблемы при конфигурировании модуля ngx_http_referer_module, вызванные использованием "none" в качестве принимаемого значения заголовка Referer;
  • add_header_multiline - определяет факты использования многострочных заголовков ответа.


  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Компания Яндекс подготовила собственную прошивку на базе платформы Android
  3. OpenNews: Яндекс начал формирование коллекции своих открытых проектов
  4. OpenNews: Яндекс подготовил репозиторий пакетов для распространения своих Linux-программ
  5. OpenNews: Опубликованы исходные тексты Яндекс-клиента для мгновенного обмена сообщениями
  6. OpenNews: Yandex выпустил браузер на основе Chromium
Лицензия: CC-BY
Тип: Программы
Ключевые слова: nginx
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Andrey_Karpov, 23:18, 11/05/2017 [ответить] [смотреть все]
  • –4 +/
    Статический анализ, статический анализ везде Методология растёт и ширится И... весь текст скрыт [показать]
     
     
  • 2.4, Анонистый калий, 23:27, 11/05/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    А вы почему раньше Яндекса ничего не сделали?
     
     
  • 3.6, Sw00p aka Jerom, 02:04, 12/05/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    Потому-что внимательно читает документацию по настройке нгинкса И описанные аля... весь текст скрыт [показать]
     
     
  • 4.14, Аноним, 07:15, 12/05/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    Yandex распался несколько лет назад Многие крутые дяди и тети , которые там ра... весь текст скрыт [показать]
     
     
  • 5.17, тигар, 09:05, 12/05/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    ну потому там и мигрировали на бунту - ... весь текст скрыт [показать]
     
     
  • 6.20, Аноним, 09:36, 12/05/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    У тебя комплекс неполноценности.
     
     
  • 7.22, тигар, 09:47, 12/05/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    > У тебя комплекс неполноценности.

    обоснуй;)

     
  • 6.31, Аноним, 18:33, 12/05/2017 [^] [ответить] [смотреть все]  
  • +/
    Ну да, а во фрю коммитят чисто из альтруистических соображений code commit fe... весь текст скрыт [показать]
     
     
  • 7.32, тигар, 18:53, 12/05/2017 [^] [ответить] [смотреть все]  
  • +/
    ну не нужно путать NOCов и проектных админов Вменяемые проектные закончились... весь текст скрыт [показать]
     
     
  • 8.35, пох, 19:55, 12/05/2017 [^] [ответить] [смотреть все]  
  • +/
    если присмотреться к патчам - там далеко не один ae - просто не всем дано напря... весь текст скрыт [показать]
     
     
  • 9.36, тигар, 21:37, 12/05/2017 [^] [ответить] [смотреть все]  
  • +/
    речь выше шла о конкретной компании и там реально мало кого осталось с коммит-б... весь текст скрыт [показать]
     
     
  • 10.42, пох, 00:22, 14/05/2017 [^] [ответить] [смотреть все]  
  • +/
    работать приходится, да, а не развивать опенсорсе в рабочее время, кризис гово... весь текст скрыт [показать]
     
  • 4.19, пох, 09:35, 12/05/2017 [^] [ответить] [смотреть все]  
  • +3 +/
    чтение документации совершенно не помогает от ошибок и с недефолтным тоже Это ... весь текст скрыт [показать]
     
     
  • 5.24, PnDx, 13:56, 12/05/2017 [^] [ответить] [смотреть все]  
  • +/
    анализатор конфигов asterisk Если Вы про диалплан, то рассматривать работать с... весь текст скрыт [показать]
     
     
  • 6.26, пох, 14:15, 12/05/2017 [^] [ответить] [смотреть все]  
  • +/
    если работать как с программой на нечеловеческом языке, не уверен что анализатор... весь текст скрыт [показать]
     
  • 5.30, Sw00p aka Jerom, 17:20, 12/05/2017 [^] [ответить] [смотреть все]  
  • +/
    http nginx org ru docs http ngx_http_proxy_module html proxy_set_header Внимат... весь текст скрыт [показать]
     
     
  • 6.33, пох, 19:39, 12/05/2017 [^] [ответить] [смотреть все]  
  • +/
    осспди вы вообще конфиги нетривиальных систем-то видели хоть по телевизору ... весь текст скрыт [показать]
     
     
  • 7.37, Аноним, 22:26, 12/05/2017 [^] [ответить] [смотреть все]  
  • +/
    Я другой аноним не видел Можете показать примерчик, чтоб понимать, о чём речь... весь текст скрыт [показать]
     
     
  • 8.40, Sw00p aka Jerom, 01:00, 13/05/2017 [^] [ответить] [смотреть все]  
  • +/
    список рассылки нгинкса вам в помощь там куча нетривиальных конфигов, иногда ... весь текст скрыт [показать]
     
     
  • 9.45, пох, 10:24, 14/05/2017 [^] [ответить] [смотреть все]  
  • +/
    я что-то очень сомневаюсь, что вы там увидите хоть один кусок конфига крупных пр... весь текст скрыт [показать]
     
  • 8.43, пох, 00:41, 14/05/2017 [^] [ответить] [смотреть все]  
  • +/
    не, не могу - даже если б унес на память, там потроха конкурента яндекса, унылые... весь текст скрыт [показать]
     
  • 7.39, Sw00p aka Jerom, 00:54, 13/05/2017 [^] [ответить] [смотреть все]  
  • +/
    хех с основания нгинкса вижу ток они не содержат логику приложений в принципе... весь текст скрыт [показать]
     
  • 3.18, anonymous, 09:24, 12/05/2017 [^] [ответить] [смотреть все]  
  • +/
    Потому что опенсорс живёт по принципу DIY do it yourself Вот новичок боится з... весь текст скрыт [показать]
     
  • 2.12, Vkni, 06:05, 12/05/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –5 +/
    Только использовать для этого Питон - это надо себя сильно не любить У вас там ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.41, Sw00p aka Jerom, 01:04, 13/05/2017 [^] [ответить] [смотреть все]  
  • +/
    так говорю же эт тока ИБ-ещники так любят питон, вот и накалякали анализатор на ... весь текст скрыт [показать]
     
  • 1.2, kai3341, 23:21, 11/05/2017 [ответить] [смотреть все]  
  • +2 +/
    ммм, NGINX-Studio
     
     
  • 2.3, Andrey_Karpov, 23:26, 11/05/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Между прочим, масса ниш ещё не занято Выбирай и делай И анализаторы потихоньку... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.5, kai3341, 23:39, 11/05/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    Техническая сингулярность всё ближе Вокруг куча способов прострелить себе ногу ... весь текст скрыт [показать]
     
     
  • 4.8, Аноним, 05:17, 12/05/2017 [^] [ответить] [смотреть все]  
  • –3 +/
    Да еще вспомнити npm leftpad...
     
  • 3.13, Vkni, 06:08, 12/05/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    Да Только сложно, извините, поляну не испоганить В науке, к которой OSS по сво... весь текст скрыт [показать]
     
  • 1.7, Аноним, 02:22, 12/05/2017 [ответить] [смотреть все]  
  • +/
    хорошо было бы вдобавок выпустить анализатор кода анализатора файлов конфигураци... весь текст скрыт [показать]
     
  • 1.10, Аноним, 05:59, 12/05/2017 [ответить] [смотреть все]  
  • +/
    Проверил. Ошибок нет. Непонятно, то ли конфиги хорошие, то ли тулза плохая...
     
     
  • 2.16, Аноним, 09:02, 12/05/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Просто тулза - не панацея В статье описано, что она проверяет Неправильно скон... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.21, пох, 09:40, 12/05/2017 [^] [ответить] [смотреть все]  
  • +/
    зависит от того, что такое неправильный Не так заполняет переменные - не выяв... весь текст скрыт [показать]
     
     
  • 4.23, Аноним, 13:49, 12/05/2017 [^] [ответить] [смотреть все]  
  • +/
    Ты каждый раз, когда тебе нужны регексы, пишешь свой парсер ... весь текст скрыт [показать]
     
     
  • 5.25, пох, 14:01, 12/05/2017 [^] [ответить] [смотреть все]  
  • +/
    > Ты каждый раз, когда тебе нужны регексы, пишешь свой парсер?

    Тебе в данном случае нужны не регексы в общем виде, а _проверка_ что написанное совпадает с желаемым (и с учетом остального конфига). Так что да, придется именно свой - regex предназначена чтоб скрыть от разработчика ненужные детали, а тебе их наоборот анализировать надо.

    Занятие представляющееся мне унылым до чрезвычайности.

     
     
  • 6.27, Аноним, 14:58, 12/05/2017 [^] [ответить] [смотреть все]  
  • +/
    libpcre libastral решат проблему Правда лицензия на libastral дороговата, но ... весь текст скрыт [показать]
     
     
  • 7.28, пох, 16:34, 12/05/2017 [^] [ответить] [смотреть все]  
  • +/
    еще раз, медленно: pcre не помогает анализировать регексы, совсем.
    Так же как си-компилятор не помогает анализировать сишный код.

    Наоборот - по сути компилятор ты и будешь писать - только производящий не код, а паттерны для анализа.

     
     
  • 8.29, Аноним, 16:41, 12/05/2017 [^] [ответить] [смотреть все]  
  • +/
    А что в них анализировать-то, в регексах Ну, допустим, можно отсеять регексы, к... весь текст скрыт [показать]
     
     
  • 9.34, пох, 19:48, 12/05/2017 [^] [ответить] [смотреть все]  
  • +/
    > А что в них анализировать-то, в регексах?

    для начала, как обычно - typical human error, когда написано одно, а подразумевалось другое.
    Сложнее - когда у тебя их пачка, в экран, даже большой, не умещаются, и где-то кто-то когда-то вляпал нечто, что вроде бы работает, а на самом деле ему достается паттерн, предназначенный другому regexp.
    В принципе, даже более-менее понятно, как второе автоматизировать, но, слава тебе, Г-ди, что я не девоп.

     
     
  • 10.38, Аноним, 00:21, 13/05/2017 [^] [ответить] [смотреть все]  
  • +/
    Вот я и спрашиваю, что это за ошибки такие могут быть, что их можно отловить без... весь текст скрыт [показать]
     
     
  • 11.44, пох, 00:59, 14/05/2017 [^] [ответить] [смотреть все]  
  • +/
    > Вот я и спрашиваю, что это за ошибки такие могут быть, что

    я ж говорю - я, слава Аллаху, не девоп, мои ошибки могут быть нереферрентными. Надо брать статистику с большого проекта, и ловить типичные для него.

    > их можно отловить без libastral? Регулярки — не C, в них
    > мало конструкций, которые однозначно можно идентифицировать как некорректные.

    если бы в си была однозначность - не были бы нужны монстроидальные анализаторы, просто комплиятор выдал бы ошибку.

    Кстати, из свеженького личного - банальный копипаст, когда из трех скопированных блоков один исправить забыли. Пресловутый pvs вон вполне такое отлавливает, тут даже разбирать содержание не шибко надо.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor