x86 процессорларының жүйелік басқару режимі (SMM) – операциялық жүйе тоқтатылатын, арнайы бағдарламалық қамтамасыз етудің жоғары құқықтармен жұмыс істейтін режимі. Intel & AMD процессорларында қолданылады.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
x86 орталық процессорларының жұмыс режимі
Operating mode of x86 central processor units
Жүйелік басқару режимі (SMM, кейде қорғаныш сақиналарына сілтеме жасап −2 деп аталады) – x86 орталық процессорларының (CPU) барлық қалыпты жұмысы, оның ішінде операциялық жүйе тоқтатылатын жұмыс режимі. Компьютердің микробағдарламасында орналасқан баламалы бағдарламалық жүйе немесе аппараттық қолдаумен жұмыс істейтін жөндеу құралы, жоғары құқықтармен орындалады. Алғаш рет Intel 386SL процессорымен бірге пайда болды. Бастапқыда SMM үшін арнайы SL нұсқалары қажет болса, Intel 1993 жылы SMM-ді өзінің негізгі 486 және Pentium процессорларына енгізді. AMD 1991 жылы Am386 процессорлары арқылы Intel SMM-ін қолдануға бастады. Бұл мүмкіндік x86 архитектурасының барлық келесі микропроцессорларында қолжетімді. ARM архитектурасында 3-ші деңгейдегі ерекшелік (EL3) режимі де Қауіпсіз монитор режимі немесе Жүйелік басқару режимі деп аталады.
System Management Mode (SMM, sometimes called ring −2 in reference to protection rings) is an operating mode of x86 central processor units (CPUs) in which all normal execution, including the operating system, is suspended. An alternate software system which usually resides in the computer's firmware, or a hardware assisted debugger, is then executed with high privileges. It was first released with the Intel 386SL. While initially special SL versions were required for SMM, Intel incorporated SMM in its mainline 486 and Pentium processors in 1993. AMD implemented Intel's SMM with the Am386 processors in 1991. It is available in all later microprocessors in the x86 architecture. In ARM architecture the Exception Level 3 (EL3) mode is also referred as Secure Monitor Mode or System Management Mode.
Операция
SMM – жүйелік функцияларды, мысалы қуатты басқару, жүйелік аппараттық құралды басқару немесе OEM өндірушіге арналған кодты басқару үшін арналған ерекше жұмыс режимі. Ол тек жүйелік микробағдарламамен (BIOS немесе UEFI) ғана пайдаланылуы тиіс, қолданбалық бағдарламалық жасақтамамен немесе жалпы мақсаттағы жүйелік бағдарламалық жасақтамамен емес. SMM-нің негізгі артықшылығы – ол операциялық жүйеге, ядроға және бағдарламалық қосымшаларға көрінбейтін, жеке және оңай оқшауланған процессорлық ортаны ұсынады. Мұндай көрінбейтін болу үшін SMM белгілі бір ережелерді сақтауды талап етеді. SMM-ге тек SMI (System Management Interrupt) арқылы кіруге болады. Процессор SMM кодын жеке адрес кеңістігінде (SMRAM) орындайды, оған CPU-дың басқа жұмыс режимдерінен микробағдарлама арқылы қол жеткізуге болмайды. Жүйелік басқару режимі үлкен нақты режим ретінде 4 ГБ дейін жадты пайдалана алады. x86 64 процессорларында SMM нақты адрес режимі ретінде 4 ГБ-тан астам жадты пайдалана алады.
SMM is a special purpose operating mode provided for handling system wide functions like power management, system hardware control, or proprietary OEM designed code. It is intended for use only by system firmware (BIOS or UEFI), not by applications software or general purpose systems software. The main benefit of SMM is that it offers a distinct and easily isolated processor environment that operates transparently to the operating system or executive and software applications. In order to achieve transparency, SMM imposes certain rules. The SMM can only be entered through SMI (System Management Interrupt). The processor executes the SMM code in a separate address space (SMRAM) that has to be made inaccessible to other operating modes of the CPU by the firmware. System Management Mode can address up to 4 GB memory as huge real mode. In x86 64 processors, SMM can address >4 GB memory as real address mode.
Қиындықтар
Операциялық жүйе SMI-ді күшпен тоқтата немесе өшіре алмайды. Осы себепті, ол зиянды rootkit-тердің орналасуына қолайлы орта, соның ішінде NSA-ның "имплантаттары", олардың әртүрлі аппараттық құралдар үшін жеке кодтық аттары бар, мысалы, Juniper Networks өрт қабырғалары үшін SOUFFLETROUGH, осы компанияның J сериялы маршрутизаторлары үшін SCHOOLMONTANA, DELL үшін DEITYBOUNCE немесе HP Proliant серверлері үшін IRONCHEF. Дұрыс жобаланбаған және толық сынақтан өтпеген SMM BIOS коды PAE немесе 64 биттік кеңейтілген режим сияқты басқа x86 жұмыс режимдерін үзу кезінде қате пікірлерге келтіріп, қалыпты жұмыс істемеуі мүмкін. Linux ядросының құжаттамасына сәйкес, 2004 жылға дейін USB мұрагерлік қолдауының мұндай қателігі Intel E7505 чипсетіне негізделген аналық платаларда жиі апаттарға себеп болды. SMM-ге кіру және одан шығу кезінде қосымша шығындар туындайды, себебі CPU күйі жадқа (SMRAM) сақталуы керек және барлық жазу кэштері тазартылуы тиіс. Бұл нақты уақыт мінез-құлқын бұзуы және уақыт белгілерінің жоғалуына әкелуі мүмкін. Windows және Linux ядролары "SMI Timeout" параметрін анықтайды, ол SMM басқарушыларының басқаруды операциялық жүйеге белгілі бір уақыт ішінде қайтаруын талап етеді, әйтпесе жүйе "тоқтап" немесе "құлап" қалуы мүмкін. SMM уақыт талаптары шектеулі нақты уақыт қолданбаларының жұмысын бұзуы мүмкін. CPU SMM-ге кіргенін анықтау үшін (CPU SMIACT# пинінің күйін тексеру) логикалық анализатор қажет болуы мүмкін. SMI басқарушы кодын қателер, осалдықтар және құпияларды талдау үшін логикалық анализатор немесе жүйелік микропрограмманы декомпиляциялау қажет.
By design, the operating system cannot override or disable the SMI. Due to this fact, it is a target for malicious rootkits to reside in, including NSA's "implants", which have individual code names for specific hardware, like SOUFFLETROUGH for Juniper Networks firewalls, SCHOOLMONTANA for J series routers of the same company, DEITYBOUNCE for DELL, or IRONCHEF for HP Proliant servers. Improperly designed and insufficiently tested SMM BIOS code can make the wrong assumptions and not work properly when interrupting some other x86 operating modes like PAE or 64 bit long mode. According to the documentation of the Linux kernel, around 2004, such buggy implementations of the USB legacy support feature were a common cause of crashes, for example, on motherboards based on the Intel E7505 chipset. There is also some overhead involved with switching in and out of SMM, since the CPU state must be stored to memory (SMRAM) and any write back caches must be flushed. This can destroy real time behavior and cause clock ticks to get lost. The Windows and Linux kernels define an "SMI Timeout" setting a period within which SMM handlers must return control to the operating system, or it will "hang" or "crash". The SMM may disrupt the behavior of real time applications with constrained timing requirements. A logic analyzer may be required to determine whether the CPU has entered SMM (checking state of SMIACT# pin of CPU). Recovering the SMI handler code to analyze it for bugs, vulnerabilities and secrets requires a logic analyzer or disassembly of the system firmware.