воскресенье, 9 декабря 2018 г.

Новини

Створений мікропроцесор, працює на принципах головного мозку

18 Грудня 2016 15:33
Людський мозок являє собою дивовижний біологічний комп'ютер, здатний функціонувати без використання жодного програмного забезпечення. Група європейських вчених довгий час займалася дослідженнями роботи головного мозку, результатом цих досліджень з'явився працюючий прототип людського мозку втілений у вигляді мікропроцесорного чіпа. Мейєр Карлхайнц (Karlheinz Meier), нейрофизик з Університету Гейдельберга в Німеччині (Heidelberg University), зазначив: «Нам відомо, що мозок володіє дивовижними обчислювальними можливостями. Мікропроцесорні системи, які ми розробляємо, скоро забезпечать переворот в інформаційних технологіях».

Цей революційний проект здійснюється в рамках Європейської програми FACETS (Fast Analog Computing with Emergent Transient States) і об'єднує вчених з п'ятнадцяти наукових інститутів семи різних країн.Вчені займаються дослідженнями в галузях нейрофизики, нейробилогии, і на підставі отриманих даних розробляють нейрокомп'ютер, який буде функціонувати подібно мозку, який і так дуже часто уподібнюють своєрідного комп'ютера, але він відрізняється від звичайних комп'ютерних систем трьома важливими властивостями: він споживаємо дуже малу потужність, продовжує працювати при виході з ладу деяких компонентів і функціонує без жодного програмного забезпечення.

В рамках досліджень вчені проводять знімання інформації з нервових тканин, що з'єднує між собою нейрони і синапси, ця інформація записується в базу даних і підлягає подальшій обробці. В результаті цього розробляються спрощені математичні моделі, які точно описують всі тонкощі складного поведінки. Звичайно, можна реалізувати систему, яка буде симулювати поведінку кожного нейрона окремо, але в нинішній час, така система буде досить складною і її реалізація поки неможлива з-за обмежень, що накладаються апаратними та програмними засобами.

Згадані вище математичні моделі використовуються для розрахунків і побудови нейрокомп'ютера, подражающего людського мозку. Перший працюючий прототип містить у собі мережу з 300 нейронів і півмільйона синапсів в одному мікрочип. Цей мікрочіп є гібридним чіпом, він містить і аналогову електроніку, що реалізує власне нейрони і цифрову електроніку, яка являє собою зв'язки між нейронами, тобто синапси. «Електронні» нейрони настільки малі, що можуть працювати набагато швидше своїх біологічних аналогів. Продуктивність системи в 100 000 разів швидше продуктивності біологічної системи і в 10 мільйонів разів вище, ніж моделювання програмними засобами на самому потужному комп'ютері. Мейєр Карлхайнц заявив з цього приводу: «Моделювання дня життя на новій системі займає менше однієї секунди».

Надалі, на другій стадії проекту FACETS, вчені збираються побудувати мікропроцесор, який буде містити в собі мережу з 200 000 нейронів і 50 мільйонів синапсів. У цьому новому мікропроцесорі вже будуть враховані всі тонкощі побудови подібних систем і він буде включати в себе всі останні досягнення і відкриття в областях неврології, нейрофизики і нейробіології. Вчені вважають, що практичне застосування подібної технології може початися вже в недалекому майбутньому, через п'ять років, цілком ймовірно, почнеться масове виробництво мікропроцесорів, що використовують подібні технології, які в змозі влаштувати революцію в технології обробки інформації.

Новини

Intel збирається боротися з експлойта на рівні мікропроцесора

Компанія Intel опубликовала попередню специфікацію нової концепції захисту від експлойтів із залученням мікропроцесора. У своєму посте, який присвячений новій технології під назвою Control-flow Enforcement Technology (CET), пояснюється модель захисту від експлойтів, які так чи інакше використовують для своїх цілей методи ROP. Як правило, ROP використовується для обходу DEP в системі. Ця захисна міра (DEP) також реалізується із залученням мікропроцесора і позначає RW-сторінки даних віртуальної пам'яті не підлягають виконанню (NX).



CET вводить поняття тіньового стека викликів (shadow stack), який ведеться самим мікропроцесором і в якому зберігається інформація про адреси повернення для подальшого використання інструкцією ret. При поверненні потоку з тієї чи іншої функції, мікропроцесор буде перевіряти адресу повернення, який збережений на стеку потоку з тим, який збережений на тіньовому стеку і в разі їх невідповідності буде генерувати виключення, оброблюване ОС. CET визначає інтерфейси для ОС, які дозволять автоматизувати цей процес і ефективно боротися з експлойта, використовують ROP.

Під тіньової стек буде виділено окремий регіон віртуальної пам'яті, який буде позначений таким на рівні елементів PTE таблиць сторінок. Таким чином, мікропроцесор буде блокувати будь-які спроби того чи іншого коду отримати доступ до цього стека (наприклад, через інструкцію mov). Покажчик на тіньовий стек мікропроцесор буде зберігати у відомій структурі сегменту стану задачі (Task state segment) для відстеження цього поля при перемиканні контексту потоку та його процесу. Поля цієї структури також частково використовуються для Windows механізму обслуговування процесів і перемикання контексту.

CET defines a second stack (shadow stack) exclusively used for transfer control operations, in addition to the traditional stack used for transfer control and data. When CET is enabled, CALL instruction pushes the return address into a shadow stack in addition to its normal behavior of pushing return address into the normal stack (no changes to traditional stack operation). The return instructions (e.g. RET) pops return address from both shadow and traditional stacks, and only transfers to control з'явилися address if return addresses from both stacks match.
За активацію CET на рівні мікропроцесора буде відповідати спеціальний прапор регістру cr4 під назвою CR4.CET. Для нього ж буде виділений цілий набір спеціальних регістрів MSR, які будуть контролювати поведінку CET: IA32_U_CET, IA32_S_CET, IA32_PL3_SSP, IA32_PL2_SSP, IA32_PL1_SSP, IA32_PL0_SSP, IA32_INTERRUPT_SSP_TABLE_ADDR. Поточний адресу тіньового стека потоку буде фіксуватися новим регістром мікропроцесора під назвою SSP (Shadow Stack Pointer).


Рис. Формат коду помилки відомого виключення page fault, яке генерується мікропроцесором при спробі доступу потоку, не призначеної для нього сторінці. Встановлений внаслідок виключення шостий біт говорить про спроби доступу потоку до сторінки віртуальної пам'яті з тіньовим стеком.

Тіньовим стеком можна буде керувати з використанням інструкцій мікропроцесора, правила користування якими регламентується ОС. Деякі з них наведено нижче.

  • INCSSP — збільшити покажчик тіньового стека SSP на один крок, тобто на 4 байта в 32-бітної системи і на 8 байт до 64-бітної.
  • RDSSP — прочитати значення покажчика SSP у вказаний регістр.
  • SAVESSP — зберегти поточний контекст маркера тіньового стека» на тіньовому стеку і вирівняти покажчик SSP на 8 байт.
  • RSTORSSP — команда аналогічна попередній, тобто записує в SSP значення збереженого маркера стека.
  • WRSS — записати за вказівником SSP у віртуальній пам'яті значення переданого аргументу.
У разі своєї активності, CET буде реагувати на такі інструкції мікропроцесора, які змінюють потік виконання коду: CALL, INT n/INTO/INT3, JMP, RET, SYSCALL, SYSENTER, SYSEXIT, SYSRET, IRET/IRETD. Як видно, ці інструкції відносяться до механізмів виклику функцій і виходу з них, а також до викликів системних сервісів і виходу з них, виклику переривань і виходу з них.


Рис. Частина псевдокода інструкції виклику функції call. Видно, що у випадку активності CET, адреса повернення зберігається на тіньовому стеку.


Рис. Частина псевдокода інструкції виходу з функції ret. Видно, що у випадку неспівпадання адрес стеку потоку і тіньовому стеку, генерується виняток.


Рис. Елементи таблиць сторінок Extended Page Table (EPT), в яких сторінка тіньового стека позначена 59-му бітом SSS. Використовується для ідентифікації сторінок тіньового стека на рівні таблиць сторінок.

Нагадаємо, що специфічні функції боротьби з ROP-експлойта міститися в безкоштовному інструменті EMET. Для цього використовуються такі параметри як Caller Check, SimExecFlow, MemProt, і StackPivot. Перші дві дозволяють EMET контролювати потік виконання виклику функцій API Windows, а також перевірити легітимність коду викликає сторони. Функція MemProt забороняє потоку модифікувати атрибути захисту сторінки стека, а StackPivot розпізнає ситуації модифікації регістр esp методом stack pivoting.

Цікава інформація про ЦП

Натисніть на картинку, щоб перейти за посиланням.