Кіріспе
Компьютерлік артықшылықтарды қалыпты жағдайда берілмейтін деңгейде бақылауға алу
Артықшылықты арттыру – бұл операциялық жүйеде немесе бағдарламалық қосымшадағы қателіктерді, құрылымдық кемшіліктерді немесе конфигурациялық қателіктерді пайдаланып, әдетте қосымшадан немесе пайдаланушыдан қорғалған ресурстарға жоғары деңгейде қол жеткізу әрекеті. Соның салдарынан, бағдарлама жасаушы немесе жүйе әкімшісі көздегеннен артық құқықтарға ие болған қосымша рұқсатсыз әрекеттерді орындай алады.
Өмірбаян
Көптеген компьютерлік жүйелер бірнеше пайдаланушы тіркелгілерімен пайдалануға арналған, олардың әрқайсысының артықшылықтар деп аталатын мүмкіндіктері бар. Көбінесе қолданылатын артықшылықтарға файлдарды қарау және өңдеу, сондай-ақ жүйелік файлдарды өзгерту кіреді. Артықшылықтарды арттыру – пайдаланушыларға оларға тиесілі емес артықшылықтар берілуі. Бұл артықшылықтар файлдарды жоюға, жеке ақпаратты көруге немесе вирустар сияқты қажетсіз бағдарламаларды орнатуға қолданылуы мүмкін. Мұндай жағдай әдетте жүйеде қауіпсіздікті айналып өтуге мүмкіндік беретін қателіктер болғанда немесе жүйенің қалай қолданылатыны туралы дұрыс емес жобалау болжамдары болғанда туындайды. Артықшылықтарды арттыру екі түрде болады:
Тік артықшылықтарды арттыру, сонымен қатар артықшылықты көтеру деп те аталады, онда төменгі артықшылыққа ие пайдаланушы немесе бағдарлама жоғары артықшылыққа ие пайдаланушыларға немесе бағдарламаларға арналған функцияларға немесе мазмұнға қол жеткізе алады (мысалы, интернет-банкинг пайдаланушысы сайттың әкімшілік функцияларын пайдалана алады немесе смартфонның құпия сөзін айналып өтуге болады). Көлденең артықшылықтарды арттыру, онда қалыпты пайдаланушы басқа қалыпты пайдаланушыларға арналған функцияларға немесе мазмұнға қол жеткізеді (мысалы, интернет-банкинг пайдаланушысы А, пайдаланушы В-ның интернет-банк шотына қол жеткізеді).
Тік
Бұл артықшылықтарды көтеру түрі пайдаланушы немесе процесс әкімшінің немесе жүйе әзірлеушісінің ниетінен жоғары деңгейдегі қол жеткізілімге ие болатын жағдайда пайда болады, мысалы, ядро деңгейіндегі операцияларды орындау арқылы.
Мысалдар
Кейбір жағдайларда, жоғары артықшылықты қолданба тек интерфейс талаптарына сәйкес келетін деректермен ғана қамтамасыз етіледі деп есептейді, сондықтан бұл деректерді тексермейді. Содан кейін шабуылшы осы есептеуді пайдаланып, қолданбаның артықшылықтарымен рұқсатсыз кодты іске қосуы мүмкін: Кейбір Windows қызметтері жергілікті жүйе пайдаланушысының есебімен жұмыс істеу үшін конфигурацияланған. Буферлік асығу сияқты осалдықтар жергілікті жүйе артықшылықтарымен кез келген кодты іске қосу үшін пайдаланылуы мүмкін. Әйтпесе, кішірек пайдаланушы ретінде әрекет ететін жүйелік қызмет, егер пайдаланушы ретінде әрекет ету кезінде қателер дұрыс өңделмесе (мысалы, егер пайдаланушы зиянды қателерді өңдеуді енгізсе), сол пайдаланушының артықшылықтарын арттыруы мүмкін. Microsoft Windows операциялық жүйесінің кейбір ескі нұсқаларындағы «Барлық пайдаланушылар» скринсейвері жергілікті жүйе есебімен іске қосылады. Linux ядросының кейбір нұсқаларында өзінің ағымдағы каталогын /etc/cron.d деп орнатып, құлау жағдайында ядроның дампталуын сұрап, содан кейін басқа процесспен тоқтатылатын бағдарламаны жазуға болады. Ядроның дампталу файлы бағдарламаның ағымдағы каталогында, яғни /etc/cron.d каталогында сақталады, ал cron оны бағдарламаларды жоспарлы түрде іске қосуды нұсқау беретін мәтіндік файл ретінде қарастырады. Файлдың мазмұны шабуылшының бақылауында болғандықтан, шабуылшы root құқықтарымен кез келген бағдарламаны іске қоса алады. Cross-Zone Scripting – бұл веб-сайттар веб-браузерлердің қауіпсіздік моделін бұзатын және клиенттік компьютерлерде зиянды кодты іске қосуға мүмкіндік беретін артықшылықтарды арттыру шабуылдарының бір түрі. Сондай-ақ, қолданба басқа жоғары артықшылықты қызметтерді пайдаланатын және клиенттің осы қызметтерді пайдалануын қалай манипуляциялай алатыны туралы дұрыс емес есептеулерге ие болатын жағдайлар бар. Командалық жол немесе қабықша командаларын іске қоса алатын қолданба, егер іске қосылған команданың бөлігі ретінде тексерілмеген деректерді пайдаланса, Shell Injection осалдығына тап болуы мүмкін. Осылайша, шабуылшы қолданбаның артықшылықтарын пайдаланып жүйелік командаларды іске қоса алады. Texas Instruments калькуляторлары (әсіресе TI 85 және TI 82) бастапқыда TI BASIC диалектілерінде жазылған интерпретацияланған бағдарламаларды ғана пайдалануға арналған; алайда, пайдаланушылар калькулятор аппараттарында жергілікті Z 80 кодын іске қосуға мүмкіндік беретін қателерді тапқаннан кейін, TI үшінші тараптық дамуды қолдау үшін бағдарламалау деректерін жариялады. (Бұл ARM негізіндегі TI Nspire үшін орын алмады, ол үшін Ndless арқылы джейлбрейктер табылды, бірақ Texas Instruments оған қарсы белсенді түрде күресуде.) Кейбір iPhone нұсқалары рұқсатсыз пайдаланушыға телефон құлыпталғанда оған кіруге мүмкіндік береді.
Some Windows services are configured to run under the Local System user account. A vulnerability such as a buffer overflow may be used to execute arbitrary code with privilege elevated to Local System. Alternatively, a system service that is impersonating a lesser user can elevate that user's privileges if errors are not handled correctly while the user is being impersonated (e. g. if the user has introduced a malicious error handler)
Under some legacy versions of the Microsoft Windows operating system, the All Users screensaver runs under the Local System account – any account that can replace the current screensaver binary in the file system or Registry can therefore elevate privileges. In certain versions of the Linux kernel it was possible to write a program that would set its current directory to /etc/cron. d, request that a core dump be performed in case it crashes and then have itself killed by another process. The core dump file would have been placed at the program's current directory, that is, /etc/cron. d, and cron would have treated it as a text file instructing it to run programs on schedule. Because the contents of the file would be under attacker's control, the attacker would be able to execute any program with root privileges. Cross Zone Scripting is a type of privilege escalation attack in which a website subverts the security model of web browsers, thus allowing it to run malicious code on client computers. There are also situations where an application can use other high privilege services and has incorrect assumptions about how a client could manipulate its use of these services. An application that can execute Command line or shell commands could have a Shell Injection vulnerability if it uses unvalidated input as part of an executed command. An attacker would then be able to run system commands using the application's privileges. Texas Instruments calculators (particularly the TI 85 and TI 82) were originally designed to use only interpreted programs written in dialects of TI BASIC; however, after users discovered bugs that could be exploited to allow native Z 80 code to run on the calculator hardware, TI released programming data to support third party development. (This did not carry on to the ARM based TI Nspire, for which jailbreaks using Ndless have been found but are still actively fought against by Texas Instruments.) Some versions of the iPhone allow an unauthorised user to access the phone while it is locked.
Android құрылғысы
Android телефондарын өндірушілер бақылайтын процедура арқылы, root-қа қол жеткізу үшін қателіктерді пайдалану арқылы немесе арнайы құралдарды орнату арқылы ресми түрде root-қа келтіруге болады. Өндірушілер өздері бақылайтын процестер арқылы root-қа рұқсат береді, ал кейбіреулері телефонды қосылған кезде белгілі бір пернелер тізбегін басу арқылы немесе өзге де қолмен жасалатын әдістермен root-қа келтіруге мүмкіндік береді. Өндіруші ұсынған әдіс көбінесе құрылғыны заводтық күйіне қайтарады, бұл деректерді қарауға ниеттенгендер үшін root-тауды бессәулет етеді, сонымен қатар құрылғы root-тан айырылып, қайта орнатылса да, кепілдік толығымен жойылады. Бағдарламалық қателерді пайдалану көбінесе пайдаланушыға қолжетімді root деңгейіндегі процеске немесе телефон ядросына тән қателіктерге немесе жаңа нұсқаларда түзетілген Android қателіктеріне бағытталған болады; телефонды жаңартпау арқылы немесе нұсқаны уәжді түрде төмендету арқылы.
Көлденең
Горизонталь артықшылықтарды көтеру, егер бағдарлама шабуылшыға әдетте қолданба немесе пайдаланушыдан қорғалатын ресурстарға қол жеткізуге мүмкіндік берсе, пайда болады. Нәтижесінде, қолданба бір пайдаланушы құқықтарымен, бірақ қолданбаны әзірлеуші немесе жүйе әкімшісі көздегеннен өзге қауіпсіздік контекстінде әрекеттерді орындайды; бұл, әсерлі түрде, артықшылықтарды көтерудің шектеулі түрі болып табылады (нақтырақ айтқанда, басқа пайдаланушылардың рөлін рұқсатсыз қабылдау мүмкіндігі). Тік артықшылықтарды көтерумен салыстырғанда, горизонталь артықшылықтарды көтеруге есептік жазбалардың құқықтарын жаңарту қажет емес. Ол көбінесе жүйедегі қателерге байланысты болады.