The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Уязвимость конфигураций Nginx с некорректными настройками блока alias, opennews (??), 05-Июл-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


22. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +6 +/
Сообщение от Тот_ещё_аноним (ok), 05-Июл-23, 22:13 
Прям проникся с каментов Си-хейтеров

Новость: "При неправильно написанной конфигурации вебсервера будет дырка"

Виноваты язык Си и те кто сервер написал
Написавшим дырявый конфиг и не исправившим с 2018 года - почет и уважение

Логика)

Ответить | Правка | Наверх | Cообщить модератору

24. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  –4 +/
Сообщение от Аноньимъ (ok), 05-Июл-23, 22:23 
Обычно принято конфиги на вилидность проверять прежде чем применять.

Но сишники такой простой идеи не понимают, ведь С/С++ компиляторы любой бред шизофреника маньяка готовы компилировать и это у них ФИЧА такая.

Ответить | Правка | Наверх | Cообщить модератору

27. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  –1 +/
Сообщение от Тот_ещё_аноним (ok), 05-Июл-23, 22:39 
Так все эти конфиги - валидные
Если кто-то спек не прочёл - ссзб
Ответить | Правка | Наверх | Cообщить модератору

31. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +1 +/
Сообщение от Аноним (28), 05-Июл-23, 23:36 
> Если кто-то спек не прочёл - ссзб

Есть один важный принцип проектирования софта, называется «principle of least astonishment». Если ты про него не знаешь — ССЗБ.

Ответить | Правка | Наверх | Cообщить модератору

48. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  –1 +/
Сообщение от Sw00p aka Jerom (?), 06-Июл-23, 07:04 
>называется

Даффай по-руцки, "защита от ивана-дурака" :)

Ответить | Правка | Наверх | Cообщить модератору

73. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  –2 +/
Сообщение от Тот_ещё_аноним (ok), 06-Июл-23, 13:03 
Когда-то в инструкции по эксплуатации автомобиля писали, как регулировать зазоры клапанов
Теперь, что аккумуляторную жидкость пить нельзя

Ожидаемое поведение в конфиге вебсервера? Это серьёзно?
Читаем спецификацию и никаких сюрпризов

Ответить | Правка | К родителю #31 | Наверх | Cообщить модератору

104. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +3 +/
Сообщение от Аноним (28), 06-Июл-23, 18:30 
> Когда-то в инструкции по эксплуатации автомобиля писали, как регулировать зазоры клапанов

Конфиг веб-сервера — это не клапана, а руль и педали.

> Ожидаемое поведение в конфиге вебсервера? Это серьёзно?

Абсолютно серьёзно. Особенно в конфиге вебсервера. Вебсервер чаще всего взаимодействует с публичным интернетом и ошибки в его конфигурации могут быть особенно опасны, в чём мы и убедились. Если у админа нет синдрома саванта, ошибки неизбежны, поэтому и конфиг должен быть интуитивно понятным, и цена ошибки должна быть минимальна. Ни то, ни другое нельзя сказать про сабж.

Ответить | Правка | Наверх | Cообщить модератору

135. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +2 +/
Сообщение от Аноним (-), 08-Июл-23, 00:01 
> Когда-то в инструкции по эксплуатации автомобиля писали, как регулировать зазоры клапанов

ЧСХ водители с удовольствием послали эти автомобили туда где не светит солнце при первой же возможности. Потому что если кто хотел водить авто - это совсем не значит что он хотел загорать под жигуленком вместо поездки на шашлыки. Автомобили покупают не для того чтобы с клапанами сношаться.

Ответить | Правка | К родителю #73 | Наверх | Cообщить модератору

43. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +/
Сообщение от Аноньимъ (ok), 06-Июл-23, 01:38 
> Так все эти конфиги - валидные
> Если кто-то спек не прочёл - ссзб

Вот я и говорю, типичный сишный маразм.

Спек конечно же стоит прочитать, только в спеке будет undefined behaviour через абзац, а double не меньше float который может быть любого размера как боженька пошлёт.
Ну и конечно же неотлавливаемые переполнения целых чисел.

Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

126. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  –1 +/
Сообщение от Аноним (-), 07-Июл-23, 19:16 
> Вот я и говорю, типичный сишный маразм.

Этот маразм сам по себе ортогонален сям и происходит из API файловых систем. Даже в HTML можно пути указывать как ../img/abc.jpg - и это валидный синтаксис. Сервер должен его отработать. Вот прям так, с вылезанием на уровень вверх - если права на это есть.

> Спек конечно же стоит прочитать, только в спеке будет undefined behaviour через
> абзац, а double не меньше float который может быть любого размера

Казалось бы при чем тут апи файлух с его дурацкостями? Это апи и у остальных такое же. А либы могут взять как эти так и те.

> Ну и конечно же неотлавливаемые переполнения целых чисел.

А у кого оно отлавливаемое без жесткого хита в перфоманс? :)

Ответить | Правка | Наверх | Cообщить модератору

128. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +1 +/
Сообщение от Аноним (128), 07-Июл-23, 19:42 
> Этот маразм сам по себе ортогонален сям и происходит из API файловых систем. Даже в HTML можно пути указывать как ../img/abc.jpg - и это валидный синтаксис. Сервер должен его отработать. Вот прям так, с вылезанием на уровень вверх - если права на это есть.

Вот только этот путь не имеет отношения к файловой системе сервера. Это исключительно УРЛ-путь и обычно обрабатывается самим браузером, а на сервер приходит уже конечный вариант пути.

Ответить | Правка | Наверх | Cообщить модератору

136. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  –1 +/
Сообщение от Аноним (-), 08-Июл-23, 00:02 
> Вот только этот путь не имеет отношения к файловой системе сервера. Это
> исключительно УРЛ-путь и обычно обрабатывается самим браузером, а на сервер приходит
> уже конечный вариант пути.

Эта семантика взята именно из ФСовских апи. Так что насчет не имеет отношения - булшит однако. Особенно для сервера статики.

Ответить | Правка | Наверх | Cообщить модератору

139. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +/
Сообщение от Аноним (128), 08-Июл-23, 06:12 
Она не взята, она всего лишь может совпадать. От того, что сайт переехал на винду или на молодёжно-экспериментальную ОС с базой данных вместо привычной файловой системы, - УРЛ сайта никак не изменится. Но даже если на сервере стоит линукс, эти имена каталогов и файлов не обязаны присутствовать на сервере.

И уж конечно же семантика УРЛ никак не подразумевает выхода за границы корня сайта и возможность получения любого файла с сервера. Ибо - ещё раз - УРЛ не имеет никакого отношения к файловой системе сервера.

Ответить | Правка | Наверх | Cообщить модератору

145. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  –1 +/
Сообщение от Аноним (-), 10-Июл-23, 16:24 
> Она не взята, она всего лишь может совпадать.

Не просто может - но и совпадает вот. И это вполне легитимная конструкция.

> От того, что сайт переехал на винду

В винде вон та семантика тоже IIRC работает.

> или на молодёжно-экспериментальную ОСс базой данных вместо
> привычной файловой системы,

Из такого припоминается всерьез разве что PalmOS - и сервировать с ЭТОГО файло никто всерьез и не пытался даже. Да и модно-молодежным этот кусок фэйла назвать сложно. Остальные вообще жесткая маргинальщина и вот это - их проблемы. Если они как-то вывесят posix api они должны будут ../ как-то обрабатывать. Не вывесят - останутся без софта под чудо ос, уж как им удобнее.

> - УРЛ сайта никак не изменится. Но даже если на сервере стоит линукс, эти имена
> каталогов и файлов не обязаны присутствовать на сервере.

Не обязаны - но в случае статики удобно. А каким-нибудь sendfile() еще и эффективно на уровне оси. Но вы конечно можете вместо этого с базы вытаскивать - заодно RPS и прогрузку 100500гигабит интерфейса сравним и оверхед администрирования. Можно даже с подъемом контейнера, это проще администрежа БД.

> И уж конечно же семантика УРЛ никак не подразумевает выхода за границы
> корня сайта и возможность получения любого файла с сервера.

И тем не менее прям в стандарте пачка интереснейших грабель, типа кучи вариантов представления одного и того же. Это и всяким ACL и проч доставляет, а уж всяким стыкам фронт-бэк и подавно. И таки это продолб стандарта. Если на уровне стандарта сделать реализацию сложной и грабельной, на этом будут налетать. Очень странно.

> Ибо - ещё раз - УРЛ не имеет никакого отношения к файловой системе сервера.

В случае статики это 1:1 mappging зачастую. Так проще админить вот это все и сервировать просто и быстро. И таки та семантика - откровенно списана с posix api. Вероятно потому что сервера обычно на *никсах были.

Ответить | Правка | Наверх | Cообщить модератору

129. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +1 +/
Сообщение от Аноньимъ (ok), 07-Июл-23, 20:11 
> Этот маразм сам по себе ортогонален сям и происходит из API файловых

Ничего такого в апи файлух нет.

> Сервер должен его отработать.

Должен, и если запрос валидный должен отдать ресурс, а если невалидный, должен послать нафиг.

Так же как ФС пошлет вас если вы сделаете запрос на несуществующий или ограниченный правами файл.

>Казалось бы при чем тут апи файлух с его дурацкостями?

Мы тут вообще то говорили о спеках к файлу конфигурации.

> А у кого оно отлавливаемое без жесткого хита в перфоманс? :)

Главная страшилка сишников. Прямо жёсткий ужасный хит п е р ф о м а н с а!
Правда это проверка одного флага ЦП после операции.
Ну ладно, а опциональную то проверку можно, как в проклятом расте?

Ответить | Правка | К родителю #126 | Наверх | Cообщить модератору

137. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +/
Сообщение от Аноним (-), 08-Июл-23, 00:12 
> Ничего такого в апи файлух нет.

А почему тогда синтаксис вида cd ../../dir - работает и без всяких вебсерверов вообще? :)

> Должен, и если запрос валидный должен отдать ресурс, а если невалидный, должен послать нафиг.

Ну так согласно доке - там все так и задумано. То что такая разница в варианте с / и без очень спорное решение - другой вопрос. Это просто хреновая имплементация фичи, забаговывающая человека.

> Так же как ФС пошлет вас если вы сделаете запрос на несуществующий
> или ограниченный правами файл.

А там запрос так то легитимный. Просто админ возможно имел в виду не это. Или именно это. Возможны варианты. Просто неудачная реализация, багующая двуногих.

> Мы тут вообще то говорили о спеках к файлу конфигурации.

А на него были спеки? И как они звучали?

> Главная страшилка сишников. Прямо жёсткий ужасный хит п е р ф о м а н с а!

Тормозной софт мало кому нужен. Особенно критичный к скорости. Типа сжатия, крипто, кодеков, да даже, блин, вот тормозной вебсерв для статики мало кому вперся.

> Правда это проверка одного флага ЦП после операции.

Да, а теперь представь себе этот шит в каком-нибудь крипто. После каждого действия. При том что оно из этих действий целиком и состоит. Вся алгоритмика и просядет в разы. И тут вон те пойдут покупать в разы больше серверов, под ту же нагрузку. Аж два раза. А еще у них там энтерпрайзные SSD сейчас - где IO измеряется миллионами IOPS, сетевки на добрых 100Гбит если не более и проч. И тут ты такой якорь вбил. И скорость в разы - упс. И много кому такой софт вопрется? :)

> Ну ладно, а опциональную то проверку можно, как в проклятом расте?

А оно там только в дебаг режиме и работает. Если из сей такое хочется сделать - соберите с asan и ubsan, получите примерно такого же уродца. С тем же хитом перфоманса. Ловить переполнение будет, и даже левые обращения к памяти и out of bounds всякий :). Только вот превратить си в какую-то яву - ну, круто, да. Если в дебаг режиме. А если в проде - такое себе.

Ответить | Правка | Наверх | Cообщить модератору

29. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +3 +/
Сообщение от Аноним (29), 05-Июл-23, 23:22 
Так это не баг, а фича. Alias сопоставляет префикс как подстроку, там / - просто символ, как и любой другой.

Скажем, есть /var/www/images/photo-1.jpg (photo-2.jpg итд), и хочется по /photos/1.jpg отдать /var/www/images/photo-1.jpg итд. С текущей реализацией alias это легко делается безо всяких регулярных выражений. А если "починить" "уязвимость", подобные конфигурации сломаются.

Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

32. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +/
Сообщение от Аноним (28), 05-Июл-23, 23:38 
Хорошая фича, и кейс вполне реальный. Но можно при этом не отдавать ../../../etc/passwd?
Ответить | Правка | Наверх | Cообщить модератору

39. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +3 +/
Сообщение от mistiqemail (ok), 06-Июл-23, 01:13 
скорее не так, отрезать все что выходит за рамки / веб сервера. тогда ничего левого и не будет отдано.
Ответить | Правка | Наверх | Cообщить модератору

45. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +1 +/
Сообщение от Аноним (20), 06-Июл-23, 03:00 
Ну здесь идея в том что alias может указывать на любой каталог, независимо от того где расположен корень веб-сервера. Иначе толку от этой директивы немного.
Ответить | Правка | Наверх | Cообщить модератору

46. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +1 +/
Сообщение от mistiqemail (ok), 06-Июл-23, 03:07 
> Ну здесь идея в том что alias может указывать на любой каталог,
> независимо от того где расположен корень веб-сервера. Иначе толку от этой
> директивы немного.

Я понимаю идею, но если возникает необходимость перехода где-то внутри ФС вне рута веб сервера это выглядит как недостаток архитектуры веб приложения.
Как вариант разрешить симлинки из рута веба в другие каталоги, но не более. То есть, альяс ограничен рутом и строго симлинками.

Ответить | Правка | Наверх | Cообщить модератору

53. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +1 +/
Сообщение от 1 (??), 06-Июл-23, 09:30 
> Как вариант разрешить симлинки из рута веба в другие каталоги, но не более.

Ну а дальше он по этим симлинкам и вылезет :-)

P.S. Приплетание С тут по принципу "И казалось бы, причём здесь Лужков" ? Ах да ... те, кто хает сишку тогда только родились.

Ответить | Правка | Наверх | Cообщить модератору

89. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +1 +/
Сообщение от Аноньимъ (ok), 06-Июл-23, 14:34 
> Ну здесь идея в том что alias может указывать на любой каталог

Ни на какой каталог он не должен указывать.
Урла это уникальный адрес ресурса.
ФС это системная база данных.
То что и там и там по случайности есть слэши в имени ресурсов и запросов к БД не означает что можно брать куски юрлы и на прямую херачить их в виде запросов к системной БД.

Так же как нельзя подобным образом из юрлы куски текста в sql запрос пихать.

Ответить | Правка | К родителю #45 | Наверх | Cообщить модератору

92. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +1 +/
Сообщение от Аноним (128), 06-Июл-23, 16:29 
> Ну здесь идея в том что alias может указывать на любой каталог,

Ну так и пусть указывает, но путь пускай получает уже после обработки УРЛ (т.е. без "..").

Ответить | Правка | К родителю #45 | Наверх | Cообщить модератору

49. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +1 +/
Сообщение от Sw00p aka Jerom (?), 06-Июл-23, 07:10 
>тогда ничего левого и не будет отдано

Ну раз всем разрешено читать файл /етц/пассвд, то в чем проблема , если его прочтет по запросу нгинкс? А нуда ибешники про юзер энум затрубят? Юзайте тогда нормальные пермишен костили вроде селинуксов, фаполисид, аппармоуры и т.д. колясок :)

Ответить | Правка | К родителю #39 | Наверх | Cообщить модератору

88. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  +/
Сообщение от Аноним (94), 06-Июл-23, 14:27 
Нормализация пути происходит на уровне location, и на его уровне неизвестно, будет внутри alias или что-то еще, это отдельный модуль. Две точки в пути без слеша - вполне валидный кейс. А со слешом там и не пройдёт.

А alias - это просто конкатенация. Отсутствие слеша в location и присутствие в другом - это выстрел в ногу. Делать же двойную проверку - это зря жечь электричество.

По хорошему, тут нужен валидатор конфигов, который бы на такую конструкцию выдавал предупреждение.

Ответить | Правка | К родителю #32 | Наверх | Cообщить модератору

44. "Уязвимость конфигураций Nginx с некорректными настройками бл..."  –2 +/
Сообщение от Аноньимъ (ok), 06-Июл-23, 01:45 
Вот я ровно о том же и говорю.

Типичный пример плохого инженерного подхода, когда гвозди забивают умеют, но никакого понимания цели и причины нет, важен так сказать процесс.

Другой пример стандарт С++.

Третий пример, недавно затонувшая субмарина Титан.

Ответить | Правка | К родителю #29 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру