Кіріспе

x86 орталық процессорларының жұмыс режимі

Жүйелік басқару режимі (SMM, кейде қорғаныш сақиналарына сілтеме жасап −2 деп аталады) – x86 орталық процессорларының (CPU) барлық қалыпты жұмысы, оның ішінде операциялық жүйе тоқтатылатын жұмыс режимі. Компьютердің микробағдарламасында орналасқан баламалы бағдарламалық жүйе немесе аппараттық қолдаумен жұмыс істейтін жөндеу құралы, жоғары құқықтармен орындалады. Алғаш рет Intel 386SL процессорымен бірге пайда болды. Бастапқыда SMM үшін арнайы SL нұсқалары қажет болса, Intel 1993 жылы SMM-ді өзінің негізгі 486 және Pentium процессорларына енгізді. AMD 1991 жылы Am386 процессорлары арқылы Intel SMM-ін қолдануға бастады. Бұл мүмкіндік x86 архитектурасының барлық келесі микропроцессорларында қолжетімді. ARM архитектурасында 3-ші деңгейдегі ерекшелік (EL3) режимі де Қауіпсіз монитор режимі немесе Жүйелік басқару режимі деп аталады.

Операция

SMM – жүйелік функцияларды, мысалы қуатты басқару, жүйелік аппараттық құралды басқару немесе OEM өндірушіге арналған кодты басқару үшін арналған ерекше жұмыс режимі. Ол тек жүйелік микробағдарламамен (BIOS немесе UEFI) ғана пайдаланылуы тиіс, қолданбалық бағдарламалық жасақтамамен немесе жалпы мақсаттағы жүйелік бағдарламалық жасақтамамен емес. SMM-нің негізгі артықшылығы – ол операциялық жүйеге, ядроға және бағдарламалық қосымшаларға көрінбейтін, жеке және оңай оқшауланған процессорлық ортаны ұсынады. Мұндай көрінбейтін болу үшін SMM белгілі бір ережелерді сақтауды талап етеді. SMM-ге тек SMI (System Management Interrupt) арқылы кіруге болады. Процессор SMM кодын жеке адрес кеңістігінде (SMRAM) орындайды, оған CPU-дың басқа жұмыс режимдерінен микробағдарлама арқылы қол жеткізуге болмайды. Жүйелік басқару режимі үлкен нақты режим ретінде 4 ГБ дейін жадты пайдалана алады. x86 64 процессорларында SMM нақты адрес режимі ретінде 4 ГБ-тан астам жадты пайдалана алады.

Қиындықтар

Операциялық жүйе 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 басқарушы кодын қателер, осалдықтар және құпияларды талдау үшін логикалық анализатор немесе жүйелік микропрограмманы декомпиляциялау қажет.