5 ознак поганого веб додатку
19:50 05.01.2007Як писав деякий час тому Джеремія Гроссман в записі Top 5 signs you’ve selected a bad web application package (коментуючи повідомлення Роберта Аугера), існує список TOP5 ознак, що ви вибрали поганий веб додаток (в список експерти з безпеки додали найбільш поширені ознаки, які актуальні в наш час).
Ось п’ятірка ознак:
5. Суть процеса виправлення помилок в программі (тобто встановлення патчів) на думку виробника продукту полягає в тому, щоб відрегувати рядок X, замінівши його новим кодом.
4. Загальна кількість скачуваннь програми менша ніж її вік.
3. Власний веб додаток не використовується на сайті віробника.
2. В файлі readme вказано, що вам необхідно встановити права (chmod) 777 на деякий файл чи на директорію, щоб вони працювали.
1. Якщо в назві програми присутє слово ‘nuke’, то ви явно не в собі.
До речі, я й досі періодично ще практикую п.5 (з ручною заміною коду, зокрема в рекомендаціях про виправлення уразливостей), для веб програм це прийнятна річ.
П'ятниця, 23:15 05.01.2007
Цікаво, а що вони пропонують робити у випадку №5? Змінювати логіку сегменту чи що?
Субота, 00:48 06.01.2007
trovich, я сам звернув увагу на цей 5 пункт, про що я вже писав. Сам ним не задоволений, тому що використовую дану методику, і в якійсь мірі вона зручна (і виправдена).
Автори цього списку 5 ознак в даному випадку мали на увазі, що не серйозно таким чином випускати патчі, щоб їх ще люди потім вручну встановлювали (а може хтось не справиться з цією задачою, може комусь буде важко, або ж лінь
). Натякаючи, що треба випускати патчі, як це робить софтварна індустрія (у випадку традіційних програм). Мовляв патч у архіві (чи exe чи може perl модуль), який сам після запуску автоматично пропатчить веб додаток.
Це звісно варіант, але більш складний, ніж просто написати керівництво, що треба такий-то рядок змінити в такому-то файлі. Що проще і швидше зробити, але комусь буде патчити не так зручно. Але ж можна і по іншому зробити: випустити пакет з новими версіями файлів (виправлених) і розписати, що куди оновити (але не паритися розробкою патча ехе-шніка), подібний метод я сам використовую в моєму Security Pack. Або навіть просто випустити оновлену версію всього веб додатка (де вже виправлені помилки). Що зараз багато веб розробників і практикує.
Субота, 20:52 06.01.2007
Звісно, змушувати власноруч користувачів правити код - ідіотизм. Але, як мені здалося, вони наголошують не не тому. Щось типу “якщо вже тут є дірка, то будуть й інші, тому треба переробити весь сегмент/модуль”. Напевне я накручую
Щодо самого механізму оновлення, то не так вже й важко зробити майже_автоматичне оновлення, як у десктопового софту. Коли вже роблять інсталятори, то дійдуть і до цього - кілька скриптів, котрі б витягали із сервера розробника потрібні файли та замінювали б локально. Може таке вже й є, я не зустрічав принаймні.
Але тут є більша проблема - веб-додатки це ж аж ніяк софт для кінцевих користувачів, і коли ти взявся його встановлювати, то як мінімум маєш навчитися і оновлювати. Для власної ж безпеки. І порівнювати у цьому плані некоректно.
Неділя, 00:26 14.01.2007
Ти реально накручуєш - ти перебільшуєш, бо ради одної помилки чи уразливості, де потрібно замінити однин рядок (і за звичай так і роблять, просто додаючи нову перевірку в потрібному місці), ніхто не вимагає і ніхто не буде весь сегмент (функцію, клас) перероблювати.
Хоча хто його знає, що вони там мали на увазі
. Бо я лише переклав, так як я це зрозумів (в оригіналі) і як я розумію саму суть кожного пункту. Що там вони хотіли сказати, їм відніше. На сайтах двох секюріті експертів був опублікований цей список і жодних коментарів по пунктам вони не давали, мовляв Джеремія погодився з Робертом (вони один одного зрозуміли
).
І ця проблема з патчами потихеньку вирішуєтсья - як у випадку інсталяторів. Бо вже давно існує думка, що треба зробити номальні інсталятори для веб систем. Так от, вже декілька років як випускаються веб системи (тіж CMS) з нормальними інсталяторами, зокрема той же WordPress. І щодо патчів, то в тому ж WP поставляється скрипт для патчінгу БД (при переході між різними версіями, якщо відбулися зміні в стуктурі бази). Тому і в цьому напрямку вже йдуть роботи.