Затворен код и уязвимости, чиято вятърна мелница победи

Книги: "Създаване на сайтове" - "Войни на домейни". Информационна сигурност: техническо описание на TLS, тестов сървърTLS 1.3. Ресурси: LaTeX

Затворен код и уязвимости: чия вятърна мелница спечели?

чиято
Отново чуваме старата песен от разработчиците на CMS: „затваряме изходния код, защото там вероятно има уязвимости и е по-трудно да ги открием в затворен код.“ Говорим за комерсиална CMS, за PHP и „затворете кода“, разбира се, с помощта на Zend Optimizer.

Но е интересно да се разбере кой наистина има нужда кодът да бъде затворен по този начин. Разбираме. Например, тъй като има уязвимости (и те са), тогава със сигурност има много шаблонни решения сред тях. Разработчиците всъщност са нормални, както в други продукти, така че трябва да очаквате неразрушимо SQL инжектиране и по-надолу в списъка. Това означава, че затвореният код не пречи на откриването и използването на типични уязвимости. Не е изненадващо - тъй като фактът, че кодът е затворен, дупките не са изчезнали, те просто са по-малко видими.

Но това е едно. Сега да предположим, че някой опитен хакер реши да намери определена дупка в тази конкретна CMS. Тази CMS не е най-често срещаната, което означава, че специалистът се е интересувал не просто така, а от гледна точка на атака на конкретен сървър. Защото в името на спортния интерес специалистите не работят по дреболии, а по поръчка - напълно. (Поръчката може да бъде и „изображение“, между другото. За целта целевият сайт трябва да е много известен.) Специалистът или купува демо версия, или купува лиценз - и тъй като той е експерт, „открива“ изходния код и го изследва. Тоест няма специални пречки и „затвореният код“ наистина няма да навреди на специалист - в края на краищата се използват добре познати технологии. Така че отново концепцията за „скрит под Zend“дупки“ пропуски.

Но „децата на хакерите“ („пионерите“), които не разбират всички технологии – може би „затвореният код“ ще им попречи? Не, оказва се, че „пионерите“ или използват готови инструменти, които търсят уязвимости на шаблони (те не зависят от наличието на изходни кодове), или просто отиват да атакуват друг сървър. Да предположим, че този тип нападател ще прекара един ден в задълбочен одит на кода на една CMS, когато сайтовете наоколо са пълни с други изкушения, ще бъде, меко казано, странно - защото това вече не е начинаещ хакер, а същият специалист, който работи по поръчка. Тоест „затвореният код“ тук просто не играе ролята, която му се приписва.

И така, срещу кого работят скритите дупки? Оказва се, че само срещу уважавани уебмастъри и администратори, които биха искали да погледнат повърхностно какво има вътре в CMS, който планират да поставят на любимия си сървър. Поне с цел оценка на стила, за оценка на възможностите за „адаптиране“, а не изобщо за търсене на дупки. За тях се създават допълнителни трудности, доста осезаеми.

И, разбира се, разработчиците печелят: първо, дупките, недостатъците и небрежният код са скрити от очите на потребителя; второ, възможно е да се припишат грешки и проблеми на свързани технологии, тъй като потребителят не може да бръкне с пръст в изходния код; и трето, не можете да си издухате мустака, вярвайки, че системата е по-добре защитена, защото Zend скри всички дълбоки архитектурни дефекти.

Така. Изисквайте CMS с отворен код - ще бъде по-лесно да работите със софтуера.

Свързани бележки:

Следва - мнения и дискусии

Коментари на читатели на блога: 23

1. 25 януари 2009 г., 14:49 // ЧитателятВадим написа:

2. 25 януари 2009 г., 14:56 //АлександърВенедюхин отговори:

3. 25 януари 2009 г., 15:11 // Читателятarcman написа:

Отново избухна друга епидемия поради друга критична уязвимост в „безопасните“ прозорци със затворен код.

?Лаборатория Касперски? предупреждава за значително увеличение на броя на инфекциите от няколко версии на полиморфния мрежов червей Kido.

Net-Worm.Win32.Kido използва критична уязвимост в Microsoft Windows (MS08-067), за да се разпространява през локални мрежи и сменяеми носители.

Червеят деактивира функцията за възстановяване на системата, блокира достъпа до сайтове за информационна сигурност и изтегля допълнителен зловреден софтуер на заразените компютри.

4. 25 януари 2009 г., 20:12 // ЧитателятВадим написа:

>Net-Worm.Win32.Kido използва критична уязвимост в Microsoft Windows (MS08-067) за разпространение в локални мрежи

Забравих да уточня, че говорим за Windows 2003 и по-млади. Започвайки с Vista, MS08-067 не се използва дистанционно поради ASLR.

5. 26 януари 2009 г., 12:39 ч. // Читателятarcman написа:

всичко зависи от изпълнението, което е скрито.

и това, че машината виси и не се заразява, няма да улесни потребителя =)

6. 26 януари 2009 г., 20:27 // ЧитателятВадим написа:

>всичко зависи от внедряването, което е скрито. Неправилно, всичко зависи от ASLR, който е документиран.

>и фактът, че машината виси и не се заразява, няма да улесни потребителя =) Грешно. Първо, машината няма да виси, и второ, обикновено е по-лесно за потребителя да рестартира машината, отколкото да загуби паролата за webmoney или знака в wow.

7. 26 януари 2009 г., 22:38 // Читателятarcman написа:

Особено интересно, къде са грешките в моите 2 изречения, г-н умник.

8. 26 януари 2009 г., 23:23 // ЧитателятВадим написа:

>Страхотен си =) >Особено интересно е къде са грешките в моите 2 изречения, г-н умник. Когато споровете по същество приключат и ЧСВ не допусне изтичането на информация, се преминава към личности. Типично.

9. 27 януари 2009 г., 15:13 // Читателятarcman написа:

Тези. Не мога да отговоря за думите си, затова ще го запишем.

Обърнете внимание, че първият ми отговор беше „по темата“ – „Затворен код и уязвимости“. И така, кой наводнява тук?

> Грешка, всичко зависи от ASLR, който е документиран. Доколкото разбирам, нямате документация за ASLR, нали? Т.е. това беше показност, причинена от превишаване на CSF.

По-нататък в документацията - трябва ли да обяснявате, че критичните уязвимости (както и грешките при внедряването) не са отразени в документацията?

> погрешно Първо, колата няма да виси. Невярно =) Налични са само 3 опции: – изключението ще бъде обработено вътре в процеса и потребителят няма да забележи нищо – процесът ще „отпадне“ – паника на ядрото & BSOD

Вероятна диагноза: Проекция на подутата му церебрална течност върху други. (Вижте „психика“ „проекция“)

10. 27 януари 2009 г., 15:20 // Читателятarcman написа:

Между другото, ASLR се предлага и за XP, но под формата на продукт на трета страна, базиран на Unix PaX - BufferShield.

11. 27 януари 2009 г., 19:19 // ЧитателятВадим написа:

2 arcman: Не са взели дебъгера :-) Не говоря за това да вземеш MS08-67, да го настроиш на вист и да видиш с очите си коя от трите опции ще работи.

12. 27 януари 2009 г., 20:55 // Readermemo написа:

// Но дебъгерът никога не е бил вдигнат :-) Не говоря за вдигане на MS08-67

Съветвам ви да вземете малко ... :)

13. 27 януари 2009 г., 22:36 //Александър Венедюхин отговори:

Вероятна диагноза: Проекция на подутата му церебрална течност върху други.

О, психиатрия задочно! Аркман, това е смешно.

14. 28 януари 2009 г., 11:22 // Читателятarcman написа:

Тук, между другото, възникна въпросът - имаме червея "Conficker.AA" (според класификацията на NOD32) успешно заразил дистанционно машина с Vista. И продължава да учудва, въпреки инсталираните актуализации и пачове. NOD го открива и при опит за запис върху диска „бие ръце“. След рестартиране всичко се повтаря.

15. 28 януари 2009 г., 12:36 // Читателятarcman написа:

UPD: Отговорът беше намерен и освен това - изобщо без дебъгер =)

16. 28 януари 2009 г., 14:35 // ЧитателятGiardo написа:

Странно е да се намери такъв детски поглед в този блог. По твоята логика сигурността на Пентагона е гадна, защото ако му пуснеш бомба, нищо няма да му помогне, //и тъй като е експерт, ?разкрива? // изходния код и го прегледайте. и script-kiddies (пионери по вашата терминология) няма да се катерят там, по-скоро ще ограбят някоя баба на уличка. //Предположението, че този тип нападател прекарва //24 часа внимателно в одит на кода на една CMS, когато //сайтовете са пълни с други изкушения, би било, меко казано, странно

Има такова нещо като „трудност при хакване“. Естествено, отвореността на системата намалява точно тази сложност. Колко зависи от качеството му. Но в случай на CMS, в никакъв случай не е необходимо да се говори за високо качество.

Пишете по-добре за авиацията. Моля те:)

17. 28 януари 2009 г., 16:30 //Александър Венедюхин отговори:

Според вашата логика сигурността на Пентагона е гадна

Това е по твоята логика, някаква специална.

Има такова нещо като „трудност при хакване“.

Каква е тази концепция, моля обяснете? Разбирам обаче, че по същество няма какво да кажете.

Ще измисля за какво да пиша без подсказване.

18. 31 януари 2009 г., 02:28 // ЧитателятGiardo написа:

//Това е според вашата логика, някаква специална. Това е твоята логика, която ме порази :) Но това няма значение. //Каква е тази концепция, обяснете? Ще започна отначало. В система IDEAL няма значение дали изходният код е отворен или не. Нападателят може да знае методите за удостоверяване, метода на комуникация с базата данни, сървъра на базата данни и всяка друга информация. И нищо няма да му помогне, ако не знае вход / парола и т.н. В действителност някой, някъде, е длъжен да забрави нещо. Където е тънко - там се къса. Отворен достъп до мрежата за SQL сървъра, възможност за стартиране на експлойт, който просто ще покаже низа за връзка към базата данни - най-вероятно всички тези дупки са във вашата CMS. Първото нещо, което атакуващият ще направи (разбира се, след като е изследвал всички дупки със скенер за уязвимости) е да събере информация за него. И ако източниците са отворени, тогава няма да има проблеми с намирането на дупки. За забавление вижте колко експлойта са написани под freebsd. и ще пише. защото кодовете са отворени. Моля, само без unux срещу windows, става ли? :) Ако няма източници, тогава всичко става по-сложно. Не е критично, но може да е по-лесно да вържете охранител и да занесете сървъра вкъщи с кола :) Сложността на хакването на системата = сложността на хакването на най-слабото звено в тази система, разбирате ли?

//Ще измисля за какво да пиша без подкана. Каквото и да е.Ако обичате да си водите бележки на дилетант...

19. 31 януари 2009 г., 11:32 //Александър Венедюхин отговори:

//Какво е това понятие, обяснете? Ще започна отначало. В ИДЕАЛНАТА СИСТЕМА

Не мисля, че разбирате какво е сложност. И разправяш някакви тъпотии от рода на "къде се чупи тънко там".

Трудността да се разбие система = трудността да се разбие най-слабото звено в тази система, разбирате ли?

Първо, това не е сложност и дори тогава някаква „съпротива“ - или каквото наистина имате предвид.

Второ, „за слабото звено“ е глупост, която обаче се повтаря от време на време от аматьори. Системата трябва да бъде изградена по такъв начин, че „слабото звено“ да не нарушава цялата система. Като цяло това са основите на софтуерния дизайн.

Ако обичате да си водите бележки на дилетант?

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

И, разбира се, „безопасността на веригата“ е вторият основен признак на аматьор по въпросите на сигурността. Постоянно чуваме за тази „слаба връзка“ от наивни студенти (които все пак са работили с UNIX и, да речем, с RAID - но все още не са направили никакви заключения за реалността за себе си).

20. 31 януари 2009 г., 14:20 // Читателятarcman написа:

> Читателят Giardo написа: > За забавление вижте колко експлойта са написани под freebsd. и ще пише. защото кодовете са отворени.

Колко пишат за MS Windows? И колко от тях действително могат да бъдат използванина практика?

> Моля, само без unux срещу windows, става ли? :) Разписахте ли се предварително за беззащитността си? =)

21. 31 януари 2009 г., 14:40 //Александър Венедюхин отговори:

> Моля, само без unux срещу windows, става ли? :) Разписахте ли се предварително за беззащитността си? =)

Да, очевидно. Между другото, дори твърдението, че „експлойтите са написани за FreeBSD, защото кодовете са отворени“, вече разкрива нивото на възможна „защита“ и вида на подхода към проблема.

22. 2 февруари 2009 г., 14:18 // ЧитателятGiardo написа:

> Моля, само без unux срещу windows, става ли? :) Разписахте ли се предварително за беззащитността си? =) Просто не исках да вдигам холивар. :)

Като цяло спорът с упорити аматьори е скучен и ненужен. Остани с мнението си. Ако сте същият „специалист“ по други теми, тогава може би ще се отпиша. :)

23. 2 февруари 2009 г., 23:45 //Александър Венедюхин отговори:

Ами точно! След като удиви публиката с думи като „експлойтите под FreeBSD се пишат, защото кодът е отворен“, „гуруто“ трябва да си тръгне, като важно вири носа си.

Онлайн списание, управлявано от Александър Венедюхин