Wednesday, October 31, 2012

Лични размисли около компютрния свят

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

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

Престъпленито съществува там където условията го толерират. Ако трябва да пренесем тази мисъл в контекста на компютърната сигурност, тя би звучала така: Пробивите на системи, съществуват там където те биват толерирани.

Някъде бях чел за една крайна мисъл, но като се замисля, започвам да вярвам че е вярна, и че всички трябва да се водим по тази мисъл.

Цитирам:

Ако не бъдат взети категорични мерки, да бъде предотвратено едно престъпление, значи то бива толерирано.

Край на цитата.

Ако трябва да пренесем тази мисъл в контекста на компютърната сигурност, тя би звучала така: Ако не бъдат взети категорични мерки за да се предотврати един пробив в компютър или мрежа, значи пробивът бива толериран.

Тази мисъл звучи доста крайно звучи, но с всеки ден се убеждавам, че колкото и да е крайна, тази мисъл е истина. Който следи новите, ще се убеди сам. Който не ги следи, ще си пати, и нека да му е, нека да си пати докато се убеди сам. Нови пробиви се откриват и се чистят постоянно. Много производители, се държат изключително малоумно, като се стигне до пробив в техните продукти, което на моменти ме кара да се чудя, тия как още не са фалирали. Пример за такива малоумници, са компанията Упек, която е собственост на компанията Аутентак, която от своя страна е собственост на Епъл, да същите които правят митичните нехакваеми макове, дето се оказва че с всяка нова бълха дето излиза в нета полазва мак. Как така? Ами заради „твърде много удобства и излишна функционалност“ сега след като Епъл станаха за посмешище, както адобе преди епъл и оракъл заедно с епъл, изведнъж на някои компании им светна че нещата не са както те си мислят.

Масовата умствена нагласа, на компаниите е когато бъде наберен проблем, проблът да бъде игнориран, демек хей виж ако никой не разбере няма как да стане проблем. Обаче когато експерт по сигурността или компания по сигурността, намерят проблем и го докладват на производителя, често биват пренебрегвни, и чак когато проблема стане публично достояние, и интернет обществото се надигне, тогава първо започва едно сочене с пръсти как не била наша вина за проблем в нашия софтуер, сърдете се на тези дето ги търсят и откриват. Чак след като пробива стане публично достояние, и сезапочне масово атакуване, и успешни атаки, и като завалят обаждания към поддръжката, чак тогава сядат да оправят проблема. С тази умствена нагласа от страна на създателите на софтуер, не само, че няма да се оттървем от проблемите със сигурността, а тези проблеми ще се задълбчат.
Как стои въпросът с пробивите? Ами първо да направим уговорката че каквото и колкото да се направи, няма непробиваем компютър. С достатъчно ресурси, и време всеки компютър пада пробит. Колкото и да е страшна тази истина, та е вярна, това е истината, такаа каквато е и каквато никой не харесва, но все пак дяволът не е толкова черен, колкото изглежда, защото в наши дни вече сти въпроса струва ли си да се „работи“ върху дадена система. Когато нивото на сигурност е над дадено ниво, то нямасмисъл са де работи по търсене и откриване на пробиви, и над създаването на надежднработещи експлойти, защото възвръщаемостта на инвестираните ресурси, не винаги, е достатъчна да покрие времето, усилиетои ресурсите, за създване на успешна и надеждно работеща атака. Втози случай масовото количество атаки се премества на друга платформа, или ако с работи над тази платформа обикновено е индустрионален ил и правителствен шпионаж или индстриален и правителствен саботаж, където винаги има какво да оправдае подобно наливане на време и ресурси. Обикновено в тези случаи става дума насочени атаки срещу жертвата (targeted attack, spear phishing) където се подбира жертва и тя бива прилъгана да отвори файл или да посети уеб страница с поставен експлойт на нея. До скоро това изискваше създаването на страница, намирането на хостинг, и на домейн и на други усложнения, сега става още по-лесно, използвайки Data:// можете да си съзадеде собственастраница, и да съберете целия HTML код на страницата, в адрес бара, започвайи с Data:// което значи че вече не е необходим хостинг и домейн. Това значително улеснява нещата. Просто получавате HTML базирано писмо, с лъскав текст, и линк, който е съкратен с някой съкращаващ service като bit.ly. При прилагането на насочени атаки срещу жертвата (targeted attack, spear phishing) Трябва да се знае че това не е атака, която пълзи наред из интернета и да покосява наред всичко което срещне по пътя си, това е атака, изпратена само срещу един конкретен предварително набелязан човек или конкретна група хора, които биват считани за слабо място в системата по някакъв повод. В този случай преди да сте получили такова писмо, е имало сериозно проучване обикновено между 6 и 9 месеца, жертвата и колегите и са били системно изучавани и анализирани, за да се види кои са слабите колеги, и обикновено писмото, идва нагласено да изглежда все едно е от името и пощата на един от слабите колеги, писано на жаргона на който говорите във фирмата с прикачен файл на тема, свързана с проект, по който работите, с единствената цел, да е максимално реалистично, максимално достоверно, За да ви накарат да си свалите гарда, и да кликнете на линка или да отворите файла.

Тъй като тези всичките похвати, изискват голямо вложение на време и ресурси, за да се постигне упешно и надеждно проникване през слабост на такъв тип система, не винаги е рентабилно създаването на атаки срещу такава система. За това, не винаги такива компютри биват нападани. Това е причината черният дявол да не е толкова черен. Обикновено в масовия случай просто когато работата по дадена платформа вече не е рентабилна, се пренася върху друга, по-слабо защитена платформа, по която работата е все още рентабилна, и с малко време и ресурси, могат да се получат големи резултати.

Ако системата ви е под тази граница на защита, тогава тя е ниско разположен плод, който бива закачан и тормозен от всеки.

Всичко това доказва и утвърждава правилото, че колкото повече вдигате летвата, толкова по-малко хора ще се опитват да я прескочат, което въпреки доказаното правило че няма непробиваем компютър, оправдава, и дава основание, да се работи над подсигуряването на системата.

Създаването на експлойти зададена платформа, обикновено се влияе от няколко неща – самата платформа като основа, колко добре е направена, какъв е пазарнияи дял, и къде и в какво участва.

В началото, атаките баха срещу windows като операционна система, атаките бяха отвън навътре, тоест, атака чиито произход е извън компютъра на жертвата, бива насочена към жертвата, и се разчита че като учели мишената си ще проникне от първия път. На този тип атаки, общо всето са уязвими всички версии на уиндоус преди Уиндоус ХР сервиз пак 2. Там е мястото и времето където живеят всички червеи, Nukes, Port scans и други слабости на операционната система. Това винаги е било най-голямото, най-многобройното и най-разнообразното семейство атаки срещу ОС уиндоус, с най-много и най-различни най-разнообразни и най-причудливи атаки. В този случай проблемът се решаваше с добавяне на защитна стена – Firewall или рутер. В началото защитните стени бяха настроени много идиотски. Бяха почти безполезни. Те позволяваха всичко, и блокираха само това, което създава проблеми. Много бързо тази формула се оказа грешна и се премина на обратния вариант, който се доказа като много по-добър – блокираш всичко по подразбиране и пускаш само това което ти е необходимо за работата. Така в един момент, защитните стени от почти безполезни, станаха много надеждно средство за защита.

Какво се променя с Windows XP Service pack 2?

В тази версия на уиндоус, вече има работеща защитна стена по подразбиране на много добро ниво, в режим, блокираме всичко по подразбиране, освен това, което ни трябва за работа. Освен тази промяна, са премахнати и Raw Sockets. В момента в който от Microsoft направиха тези 2 неща, те елиминираха напълно, цялото семейство от атаки отвън навътре в цялото му многообразие и разнообразие.

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

След като се засили защитата на ОС, спряха преките опити да се „работи“ по ОС директно, и се затърсиха, заобиколни пътища. То не бяха атаки срещу интернет експлорер, макровируси в Microsoft Word, електронна поща с прикачен изпълним файл, електронна поща с HTML писмо с вграден вреден код в html кода на писмото....

В интернет експлорер брузера се започна масирано чистене на кода, в офис също, много неща се промениха и в Outlook и в Microsoft word. Microsoft Word, започна да изключва по подразбиране всякакви макроси, и да пуска само цифрово подписани, с което елиминира макровирусите, Outlook излезна с нова формула, първо направиха така че всички прикачени изпълними файлове биват тихо, и без много шум и обяснения премахвани от писмото. След това, Outlook започна да превръща писмата от HTML в прост текст, с което окончателно реши проблемте с писмата, и излезна от списъка с потенциални мишени. Интернет Експлорер, се чисти и се усъвършенства доста, считано от весия 7 която е първата, която е правена да се подобри защитата, след това в 8 и в 9, нещата се подобряват значително, с всяка версия. Очакваме версия 10, която ще е още по-защитена (на теория, а на практика ще видим дали е така, или не).

След като се разбра, че Интернет експлорер като браузер върви напред, а и Firefox навлезна със страшна сила, заедно с Google chrome и изместиха фокуса от интернет експлорер, така изведнъж основната вълна се измести от интернет есплорер. Следващата вълна беше Adobe Flash, Adobe Reader, Adobe Acrpbat и PDF. Те бяха слабите места. Започасе едно масово атауване на тази платформа, света пропищя от Flash и  PDF, и мина наистина доста време докато гиганта Adobe преодолее своята корпоративно-бюрократична инерция и да влезне в час, което стана час с версия 11,4 на flash, и най-новите acrobat и acrobat reader. Под натиска и напрежението на интернет компании, други корпорации, компании за сигурност, Adobe бяха заставени да си оправят продуктите, и тъкмо ги постегнаха да мязат на нещо, и се появи новата мишена – Оракъл и Java. Ужким сигурно, ужим защитено, ужким по презунция в Sandbox, а всяка седмица, нов пробив в Java. Когато видях какво става с Адобе, си смених софтуера за работа с PDF файлове, и вълната мина покрай мен. Малко след това, завърших един проект, който изискваше Oracle Java и премахнах Oracle Java от системата ми, пдо предлог, това е го ползвам не ми трябва, дай да го махна да освободя тоя ресурс, за нещо друго. Мисълтаза сигурност и пробиви изобщо не ми се завъртя в главата, и дълго време си карам без Java, не ми трябва, не ми липсва, не усещам липсата и, не страдам от загуба на функционалност и съвместимост, - Съжалявам Оракъл, просто нямам нищо което да оправдава съществуването на отрочето ви, в компютъра ми, и понеже това е моят компютър - това е стар малък боен вик на Steve Gibson от Gibson Research Corporation – It is my computer, и аз добавям малко шопски мотив към него – я пишем, я бришем, па ти ако ще да ти аресва, реших че няма да слагам Java без повод.

Минава време, и сега когато актуалната мишена е Java се радвам че преди време махнах Java, и ако преди нямах никакво намерение да слагам Java, сега вече КАТЕГОРИЧНО няма да сложа Java, като гледам каквое болнаво отроче, и как всяка седмица има нов пробив, и като си спомня как в последната актуализация баха изчистени 109 пробиви в сигурността, с предишния още 30 пробиви в сигурността, и от послената актуализация до ден днешен, всяка седмица нов пробив. Бррррррр тръпки ме побиват. Предпочитам да ми вадят мъдреците със заплетените корени без упойка от колкото да ползвам Java   отново. За тези които нямат Java на компюъра си, като мен, това е типичен пример за пробиви, които не ви засягат, и няма как да стигнат до вас и да ви навредят. За пореден път виждам как съм излезнал извън фокуса на събитията, и вълната която се надига, преминава покрай мен, без да ме засегне. Тези от вас които нямат Java на компютъра си, можете спокойно да дишате, сегашната вълна от атаки и пробиви, няма да ви засегне, и ще си останете в безопасност.

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

Друг интересенен аспект, на ойто никой не обръща, внимание, а би трябвало да е един от най-важните – това е интеграцията между програмите. При windows 7 например, имаме дълбоко ниво на интеграция между Windows, Internet explorer, Windows Media Player, Windows Media Center, Microsoft Office, DirectX

Като например Windows Media Center, като мултимедиина платформа, използва Windows media player за видео и аудио възпроизвеждане, Интернет експлорер, за уеб и интернет функциоалност, съответно и някои части на DirectX като DirectMusic за *.mid и *.rmi файлове, DirectSound за wav, mp3, mp4, mpa, m4a, flac, alac, aac, ape, ogg….   И другите от вида, DirectDraw за да показва картинки, Direct3D за разните ефектни визуализации и ефекти, DXVA DirectX VideoAccelerartion за плаво възпроизвеждане на филми....

Microsoft Office например използва Internet explorer за своите интернет и уеб функционалности, Windows Media Player за мултимедиините си възможности, а Windows Media player използва DirectX, а в частта си за Outlook, Microsoft Office използва интернет експлорер, за налагане на политика за сигурност, на грофик, и електронна поща, използваната част,  на интернет експлорер са четирите основни групи за съставяна на правила за защита –

група интернет, в която се отнася уеб достъпа по подразбиране

група интранет, която създава правила за достъп до уеб базирано съдържание в рамките на вътрешната мрежа

групата Trusted Sites която дава права и привилегии на сайтове, указани като доверени
група restricted sites където се слагат опасните сайтове и тези на които нямате доверие по някакъв повод.

Internet Explorer пък използва Windows Media Player за мултимедиините си възможности,

Windows Media Player използва Internet Explorer за своите интернет функции, както и за определяне на политика на сигурност, на източника спрямо основните 4 групи на сигурност, в интернет експлорер. Тук е мястото да отбележа, че Windows Media Center използвайки Windows Media Player, също се подчиняма на Security политиката на Windows Media Player която е част от Интернет експлорер – групите Internet, Intranet, Trusted Sites, Restricted Sites.

В Windows 7 например Windows Firewall и Microsoft Security Essentials се доълват и си помагат взаимно, но Microsoft Office 2010 в частта си за Outlook пък често се допитва до тях, дали нещо е наред или не. Същото ще важи и за Internet explorer 10. Което от своя страна значи че всичко което ще търси интернет експлорер 10 за нещо, ще трябда да се съобрази че Internet Explorer ще се допита до Windows Firewall и Microsoft Security Essentials.

Както виждате сами, нивото на интеграция е невероятно. Защо споменавам това? Защото тук има един друг момент който също бива пропускан от хората – shared Files. Защо отва е толкова важно? Ами защото в Windows с това ниво на интеграция повечето DLL файлове, са shared files и се ползват от всички. Примерно ако един Shared DLL файл е собственост на интернет експлорер, и в него има уязвимост, то дефакто единствената програма с уязвимостта е Интернет експлорер, нo поради причината, че всички програми ползват този shared dll файл, този пропуск се прехвърля на всички програми които ползват пропуска, и всичките са уязвими от тоя пропуск. С актуализирането на интернет експлорер, и в частност на този файл, с нов който няма пропуска, дефакто интернет експлорер, бива поправен, и заради това чее общ файл, всички програми които го ползват спират да страдат, от този пропуск. А ако този Shared DLL File се запише за да използва, някоя защитна технология като DEP, ASLR или SEHOP, то всички програми които използват този файл, ще имат и защита на съответната фукция от DEP, ASLR или SEHOP, защото пак на принципа на общия файл, тази защита се пренася върху всички които ползват файла.

Допълнително подобрение, на сиурността, е наличието на хардуерни технологии като:

Hardware DEP

Hardware Virtualization

Virtualization Technology for Directed Input/Output

Trusted Execution Technology

TPM – Trusted Platform Module

WatchDog

Както в процесора, така и в чипсета, създават условия, самият компютър като хардуер, да бъде превърнат в защитена машина, в която нещата се контролират още на ниво прочесор, чипсет и памет, от логиката на процесора и чипсета, следейки, за нередни и некоректни операции на ниско ниво – хардуер. Ако върху такъв компютър бъде сложена ОС като Windows 7 SP1 например, с Internet Explorer 9, то всичките технологии за защита в Windows и Internet explorer 9, получават хардуерно подсилване от процесора и чипсета, увеличавайки значително тяхната сила, и затруднявайки тяхното успешно саботиране в не малка степен.

Например Software DEP в Windows активиран на ниво Always on, заедно с hardware DEP в процесора на ниво Enabled, напълно изкореняват и напълно елиминират, второто най-голямо семейство атаки срещу Windows Buffer overrun/Buffer overflow.

Hardware Virtualization и Virtualization Technology for Directed Input/Output в процесора и в чипсета, например, помагат и подсилват контрола, на програмите в паметта. В NT ядрото на Windows има функция, коят поставя програмите, техния стак и техния heap в отделни области от паметта, за да може компютъра да е стабилен, програмит да не си пречат, а и ако стане нещо с едната програма, другите да останат незасегнати. В този контекст, Hardware Virtualization и Virtualization Technology for Directed Input/Output създават хардуерен Sandbox за всяка програма, в които програмите работят, ограничени, и драстично увеличавайки нивото на защита. По тозци начин процесора и чипсета създавайки хардуерен Sandbox, се гарантира че ако нещо се опита да излезне от своята област в паметта, за да манипулира нещо друго, то ще бъде видяно, от процесора и чипсета още с първата инструкция, и тя няма да бъде изпълнена, и приложението което прави проблем ще бъде спряно принудително от процесора, подавайки system exception към операционната система, с максимален приоритет за овладяване на ситуацията и взъстановяване на контрол. Друга хардуерна технология – куче пазач – WatchDog която я няма във всички компютри, представлява подобрена технология която следи процесора, чипсета и паметта, за опити за некоректни действия, и алармира съответно чипсета или процесора, зависи кой има приоритет да реагира в ситуацията, че на този адрес в паметта става нещо, да му бъде обърнато по-специално внимание. Ако съоттветно процесора или чипсета не намерят проблем казват на WatchDog проверих сигналати, тук всичко е наред, иначе, ако действителто става нещо некоректно, въпросната програма бива спряна, и къ моперационната систеа бива пратен system exception че нещо не е наред с тази порграмана този адрес и с таи функция. От там на сетне ОС поема случая чрез SEH - System Exception Handler, и решава проблема без да се създават нестабилности и проблеми и никоя от другите програми, си няма и понятие, че някъде нещо става, че ОС и хардуера решават проблеми с проблемни програми, нито тяхната функциноланост е нарушена нито стабилността на ОС, нито стабилността на програмите е нарушена, и си вършат работата необезпокавани, и благодарение на Hardware Virtualization и Virtualization Technology for Directed Input/Output всички останали програми докато си вършат работата си имат нормалния входящ и изходящ поток от данни, каквото си искат, каквото им се подава, каквото те връщат като отговор... затова например ако забие браузера, мр3 музиката, си свири нормално, Word си работи нормално, въпреки че браузера е всигнал системата под тревога, и това е намесило антивирусната програма, и браузера е спрян принудително. На компютър на който няма Hardware Virtualization и Virtualization Technology for Directed Input/Output, всички разбират че нещо е станало, и биват сложени на изчакване, докато проблема се реши, после всички биват пускани да продължат от там където са били принудително спрени и сложени на изчакване. Тук уловката е че от една страна технологиите Hardware Virtualization и Virtualization Technology for Directed Input/Output трябва да ги има и двете едновременно, и двете едновременно трябва да са активирани и да работят, и едновременно с това, от друга страна, операционната система трябва да ги поддържа, за да има пълен ефект, иначе няма да стане нищо, няма да има ефект. Това значи че ако вирус или червей порази една програма, той ще има проблеми с това да се разпространи из системата, което е и нашата цел.

Общо взето, всичко това създава условия за наистина високи нива на защита и стабилност, в един модерен компютър. Колко модерен? Поне първата четвърт на 2008? В кой ценови диапазон? Високия ценови диапазон компютри, в кой пазарен дял? В бизнес клас, и ентрерпрайз клас машини, иначе за по-ниските класове? Изобщо не се надявайте да има такива екстри.
Дали нашите асемблатори, дали предлагат това? Не вярвам да го предлагат. По правило, едва ли работят с този клас части, с които да асемблират компютри, тези части са много скъпи, и ценатана един компютър, ще стане много висока, и в масовия случай ще е непродаваем заради цената си. Възможно е някои асемблатори по предварителна договорка, и с капаро да направят нещо подобно, но това е по-скоро изключение от правилото.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.