UA55438C2 - Спосіб контролю приписаного виконання програм - Google Patents
Спосіб контролю приписаного виконання програм Download PDFInfo
- Publication number
- UA55438C2 UA55438C2 UA99074040A UA99074040A UA55438C2 UA 55438 C2 UA55438 C2 UA 55438C2 UA 99074040 A UA99074040 A UA 99074040A UA 99074040 A UA99074040 A UA 99074040A UA 55438 C2 UA55438 C2 UA 55438C2
- Authority
- UA
- Ukraine
- Prior art keywords
- protection
- data
- program
- return
- write
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2143—Clearing memory, e.g. to prevent the data from being stolen
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
- Executing Machine-Instructions (AREA)
- Stored Programmes (AREA)
Abstract
За способом контролю приписаного виконання програм запобігається перезапис адрес повернення, записаних для наступного використання, та/або використання як адрес повернення помилково записаних адрес повернення або адрес повернення, щодо яких було здійснено перезапис. Таким чином, можна надійно виключити можливість, зокрема, цілеспрямованих маніпуляцій процесом виконання програм.
Description
Цей винахід стосується способу згідно з обмежувальною частиною п. 1 формули винаходу, тобто способу контролю приписаного виконання програм математичного забезпечення.
Приписане виконання програм математичного забезпечення стає дедалі все більш реальним завданням завдяки вживанню різноманітних заходів.
Якщо раніше причиною порушення належного виконання програм математичного забезпечення були насамперед ненадійне апаратурне забезпечення і помилки у програмуванні, сьогодні більш важливу роль відіграє цілеспрямоване маніпулювання процесом виконання програм.
Шляхом цілеспрямованого маніпулювання процесом виконання програм можна, наприклад, пропускати певні частини програм, завдяки чому створюється можливість виключення етапів перевірки для визначення повноважень щодо доступу.
Це може створити значні проблеми, наприклад, у галузі застосування чіп-карток, але, якщо розглядати проблему ширше, то не тільки для них, оскільки, з одного боку, вони набувають поширеного застосування, насамперед у галузях, пов'язаних з питаннями захисту (наприклад, для контролю доступу, фінансових операцій тощо), а з іншого боку, оскільки їх, природно, не можна постійно контролювати чи перевіряти, вони можуть легко стати предметом спроб маніпулювання.
У зв'язку з великою кількістю вже передбачених заходів безпеки ймовірність того, що спроба маніпуляції, метою якої є зловживання, виявиться вдалою, дуже мала. Проте, взагалі ймовірність цього виключити не можна.
Тому в основу цього винаходу було покладено завдання розробити спосіб контролю приписаного виконання програм математичного забезпечення, за допомогою якого можна, зокрема, надійно виключити можливість цілеспрямованого маніпулювання процесом виконання програми.
Це завдання згідно з винаходом вирішується за допомогою заходів, зазначених у відрізняльній частині п.1 формули винаходу.
Відповідно до цього, попереджується можливість перезапису на місце адрес повернення, записаних у запам'ятовувальний пристрій для наступного використання, та/або використання як адрес повернення помилково записаних або перезаписаних адрес повернення.
На практиці реалізувати ці етапи завдання можна, вживаючи найрізноманітніших заходів. У найпростішому випадку у разі виклику функції, що потребує запису адреси повернення у пам'ять, або в аналогічних випадках записуються не лише адреси повернення, але й додаткова інформація захисту, що дозволяє зробити висновок про те, чи будуть ще потрібні записані адреси повернення і тому на їхнє місце не можна здійснювати перезапис, та/або чи є записана адреса повернення такою, що була записана у пам'ять спочатку, чи такою, яку треба записати.
У першому випадку, тобто у разі реалізації захисту від запису інформації на місце адрес повернення, інформація захисту може складатись, наприклад, з коду захисту від запису, наприклад, біта захисту від запису або аналогічного, що додається під час запису адреси повернення і після використання записаної адреси повернення як адреси повернення стирається.
У другому випадку, тобто у разі реалізації захисту від використання адрес повернення, інформація захисту може складатись, наприклад, лише з адреси повернення або з даних, які іншим чином репрезентують або характеризують адресу повернення.
Згадана інформація захисту записується в область пам'яті, до якої переважно неможливий доступ ззовні; "нормальний" запис адрес повернення можна, як і раніше, здійснювати у так званий стек (стекову пам'ять) (5іаск).
Якщо перед кожною спробою запису до стеку здійснюється перевірка щодо того, чи позначена за допомогою біту захисту від запису область, в яку треба здійснити запис, як така, що має захист від запису, у цьому разі можна попередити запис поверх даних, які потім мають бути використані як адреса повернення.
Якщо альтернативно або додатково перевіряється, чи відповідають дані, що мають бути використані як адреси повернення, адресі повернення, записаній раніше або такій, що має бути записана, можна запобігти тому, щоб дані, які були змінені (тобто якими маніпулювали) після запису адреси повернення, були використані як адреса повернення.
В обох випадках для того, щоб попередити наступні спроби маніпулювання, можна припинити процес виконання актуальної програми та/або повернути до вихідного стану систему, що виконує програму, та/або ініціювати тривогу, та/або вжити інших заходів захисту.
Таким чином, можна забезпечити, щоб цілеспрямоване маніпулювання адресами повернення не могло б призвести до зміни приписаного виконання програми.
Отже, було розроблено спосіб для того, щоб, зокрема, можна було б надійно виключити можливість цілеспрямованого маніпулювання процесом виконання програми.
Інші ознаки винаходу наведені у залежних пунктах формули винаходу.
Суть винаходу пояснюється далі на прикладах реалізації за допомогою креслень. На них показано:
Фіг.1 Фрагмент схеми системи для реалізації захисту від використання адреси повернення, та
Фіг2 Схема для пояснення способу захисту від запису поверх адрес повернення та модифікованого захисту від використання адрес повернення.
Систему, фрагмент якої наведений на фіг.1, було розроблено для виконання програм математичного забезпечення, яка повністю або частково може бути інтегрована у мікропроцесор, мікроконтролер, сигнальний процесор тощо.
Показаний фрагмент є частиною системи для оперування адресами повернення.
Адреси повернення слід записувати у пам'ять, наприклад, у тому разі, якщо програма, що підлягає виконанню, включає у себе виклик функції. У разі наявності виклику функції, наприклад, команди ІСАЇ. для мікроконтролера Іпієї 8051, - у пам'яті програм виконується (адресний) перехід у місце, на якому записана програма для функції, яка підлягає виконанню на цей момент, - виконується відповідна функціональна програма, та - здійснюється повернення у місце у програмний пристрій пам'яті, з якого було здійснено перехід до функціональної програми.
Остання згадана адреса, тобто адреса, за якою слід продовжувати виконання програми після виконання функціональної програми, є згаданою вище адресою повернення.
Для того, щоб пристрій, який виконує програму математичного забезпечення, знав, у яке місце йому треба перейти після виконання функції, він потребує проміжного запису адреси повернення у пам'ять.
Саме тепер слід зауважити, що виклики функцій не є єдиними подіями, коли потрібний запис адрес повернення у пам'ять. Лише для того, щоб навести кілька прикладів, можна згадати, що запис адрес повернення потрібен також у разі переривання процесу виконання програми (Іпіегтиріє) або у разі зміни завдань в експлуатаційних системах, призначених для виконання кількох завдань (системах Миїйі-Тазкіпо).
Запис у пам'ять адрес повернення здійснюється зазвичай у так звані стеки або стекову пам'ять. Такий стек позначений на фіг.17 цифрою 1. Керування стеком 1 здійснюється від логічної схеми стеку 2. Логіка стеку 2, зокрема, генерує так званий укажчик стеку (біаск-Роіпієї), що вказує на ту окрему найближчу область стеку 1, в яку треба здійснити запис або з якої треба здійснити зчитування. Оскільки стеки та пов'язані з ними операції широко відомі, можна відмовитись від подальших пояснень.
У стек 1 можна записувати не лише адреси повернення, але також будь-які інші дані (вміст регістрів, локальні змінні тощо). Проте, наведені пояснення стосуються, в основному, виключно операцій з адресами повернення.
Якщо, наприклад, для команди І САЇ ЇЇ, у стек 1 треба записати адресу повернення, цей процес ініціюється за допомогою логіки стеку 2.
У системі, що розглядається, на відміну від звичайних систем, адреси повернення, що записані або мають бути записані у стек 1, додатково записуються до іншого запам'ятовувального пристрою як інформація захисту.
Цей запам'ятовувальний пристрій, далі - запам'ятовувальний пристрій захисту, позначений на фіг.1 цифрою 3.
Запам'ятовувальному пристрою захисту З підпорядкована логічна схема 4 запам'ятовувального пристрою захисту, за допомогою якої здійснюється керування цим запам'ятовувальним пристроєм захисту, аналогічно тому, як керування стеком 1 здійснюється за допомогою логіки стеку 2.
Запам'ятовувальний пристрій захисту 3, на відміну від стеку 1, не можна примусити спрацьовувати ззовні, з-за меж системи, що виконує програму математичного забезпечення. Тобто, записаними у ньому даними не можна маніпулювати, або у будь-якому випадку не можна маніпулювати з припустимими витратами.
Логіка 4 запам'ятовувального пристрою захисту у наведеному прикладі, на відміну від логіки стеку 2, спрацьовує лише у тому разі, якщо треба записати або зчитати адресу повернення. Проте, альтернативно є природним, що можна передбачити можливість спрацьовування логіки 4 запам'ятовувального пристрою захисту також у разі інших подій (крім процесів запису та зчитування із запуском ззовні).
Якщо процес виконання програми дійшов до моменту, коли слід здійснити перехід до записаної раніше адреси повернення, тобто, наприклад, у разі надходження команди ВЕТ, потрібну адресу повернення можна забезпечити шляхом відповідного зчитування стеку 1. Проте, перед застосуванням одержаних при цьому даних як адреси повернення здійснюється перевірка того, чи є ідентичними отримані дані і адреса повернення, записана у запам'ятовувальний пристрій захисту З як інформація захисту.
Для цього передбачений компаратор 5, що приймає дані стеку 1 та запам'ятовувального пристрою захисту 3, які необхідно зіставити, і виконує цей процес порівняння.
Якщо у результаті проведеного у компараторі 5 процесу порівняння виявиться, що зіставлені дані є ідентичними, це означає, що дані, одержані зі стеку 1, відповідають адресі повернення, яку треба записати спочатку, тобто, ними не маніпулювали, вони не стали неправильними внаслідок помилки в апаратурному та/або математичному забезпеченні, та не були записані у невірне місце чи зчитані з невірного місця. Тому дані, записані у стек 1, можна вважати автентичними адресами повернення та використовувати їх як такі. Цей висновок можна зробити тому, що, як вже було згадано вище, цілеспрямований вплив на вміст запам'ятовувального пристрою захисту З практично неможливий.
Якщо у процесі порівняння, проведеному у компараторі 5, виявиться, що зіставлені дані не є ідентичними, це означає, що дані, одержані зі стеку 1, з великою ймовірністю зазнали маніпулювання або стали неправильними внаслідок помилки в апаратурному чи програмному забезпеченні, або були записані у невірне місце чи зчитані з невірного місця. Незалежно від причини відсутності ідентичності, записані у стек 1 дані не можна використовувати як адресу повернення, оскільки наслідком цього було б відхилення від приписаного виконання програми.
Компаратор 5 у цьому разі генерує сигнал ММІ, який подається на логіку ММІ 6. Логічна схема ММІ 6 ініціює негайне припинення процесу виконання програми та/або повернення у вихідний стан системи, що обробляє програму математичного забезпечення, та/або ініціює тривогу та/або стирання даних, що стосуються безпеки.
Компаратор 5 у наведеному прикладі активізується командами, що, наприклад, як команда НЕТ, мають своїм наслідком зчитування із стеку 1 даних, які слід інтерпретувати як адреси повернення. Решту часу компаратор 5 є пасивним.
За допомогою цих заходів можна досягти того, щоб програму математичного забезпечення, яка підлягає виконанню, можна було б виконувати лише у тому разі, якщо і поки не виявляються будь-які помилки в адресі повернення.
Приклад, що пояснюється за допомогою фіг.1, можна розглядати як варіант практичної реалізації способу захисту від використання адрес повернення, який спрацьовує у разі необхідності.
Хоча це не пояснюється більш докладно на прикладах, при цьому не є безумовно необхідним, щоб інформація захисту, підпорядкована відповідним адресам повернення, сама була адресою повернення. Як альтернативне рішення, можна передбачити, щоб тільки певні частини адреси повернення або дані, що будь- яким іншим чином репрезентують або характеризують адреси повернення, застосовувались як інформація захисту. У цьому разі компаратор 5 у разі необхідності слід було б, природно, замінити пристроєм для порівняння, зміненим у відповідності до конкретних обставин.
Альтернативним варіантом потрібного способу контролю процесу виконання програми є спосіб захисту від запису даних поверх адрес повернення, який пояснюється далі за допомогою фіг.2.
На фіг.2 показаний, зокрема, запам'ятовувальний пристрій 11, що складається з першої області пам'яті у вигляді стеку 11а, та другої області пам'яті у вигляді запам'ятовувального пристрою захисту 116.
Стек 11а відповідає показаному на фіг.1 стеку 1. Запам'ятовувальний пристрій захисту 116 приблизно відповідає показаному на фіг.1 запам'ятовувальному пристрою захисту 3; проте, запам'ятовувальний пристрій захисту 116 описується іншою інформацією захисту на відміну від тієї що використовується |у запам'ятовувальному пристрої захисту 3.
Як і запам'ятовувальний пристрій захисту 3, запам'ятовувальний пристрій захисту 116 не може ззовні примусити спрацьовувати пристрій, що виконує програму математичного забезпечення, яку слід контролювати.
Тобто, у цьому варіанті контролю процесу виконання програми інформацією, яка записана у запам'ятовувальному пристрої захисту, не можна маніпулювати таким чином, щоб витрати на це були припустимими.
Інформація, записана у запам'ятовувальний пристрій захисту 110, складається з біту захисту від запису, якому приписане значення "1", якщо запис поверх даних у підпорядкованій області стеку не дозволений, або "0", якщо запис поверх даних у підпорядкованій області стеку дозволений.
Якщо, наприклад, як у разі надходження команди ІСАЇ, треба записати адресу повернення у стек 11а, це ініціюється звичайним способом.
Одночасно в області запам'ятовувального пристрою захисту 1160, підпорядкованій області стеку, у якій була записана адреса повернення, записується "1", на ознаку того, що не можна здійснювати запис поверх даних у відповідній області стеку.
Хай у наведеному прикладі стек 11а розділений на області, кожна з яких охоплює 8 біт відповідно, причому кожній з областей місткістю 8 біт підпорядкований біт захисту від запису, записаний у запам'ятовувальному пристрої захисту 110. Якщо виходити з того, що робота ведеться з адресами довжиною 16 біт, для запису адреси повернення потрібні дві області стеку.
Як показано на фіг.2, адреса повернення записується у стек 11а. Адреса повернення складається з частини, що охоплює вісім старших біт (РОН), та частини, що охоплює 8 молодших біт (РСІ). Областям стеку, як таким, що містять РОН, так і таким, що містять РСІ, підпорядкована "1" як інформація захисту чи біт захисту від запису.
Відповідній інформації захисту чи біту захисту від запису знову приписується значення "0", якщо дані, записані у підпорядкованій області стеку, були використані як адреси повернення.
Перед кожною спробою запису даних до стеку (запису поверх записаних у ньому даних) інформація захисту (підпорядкований біт захисту від запису), підпорядковані області стеку, у яку треба здійснити запис, оцінюються з метою визначення, чи дозволений запис у стек на цьому місці.
Якщо підпорядкованій інформації захисту або підпорядкованому біту захисту від запису приписується значення "1", запис на це місце у стек не дозволений; спроба запису розпізнається як спроба маніпулювання або помилка у апаратурному чи математичному забезпеченні. Навпаки, якщо підпорядкованій інформації захисту чи підпорядкованому біту захисту від запису приписується значення "0", запис у стек на цьому місці дозволений.
Рішення щодо припустимості запису у певну область стеку перевіряється за допомогою схеми перевірки наявності захисту від запису, яка у наведеному прикладі реалізована у вигляді ланки "ТА" 12. На ланку "ТА" 12 як вхідні сигнали подаються біт захисту від запису, підпорядкований області стеку, у яку треба здійснити запис, та сигнал УУпіе аск (запис до стеку), який сигналізує про бажання здійснити запис, причому сигнал МУпіе 5гаск може набувати значення "1", якщо бажано здійснити запис, або "0", якщо запис не потрібний. Вихідний сигнал
Маїїй УуУпе ланки "ТА" 12 тоді свідчить про те, чи дозволений навмисний запис у відповідну область стеку (мМаїїй УМ/йще - "0"), чи не дозволений (Маїїй МуУпе - "1"). Вихідний сигнал Май М/пе ланки "ТА" 12, як і вихідний сигнал ММІ ММТ компаратора 5 на фіг.1, можна використовувати для того, щоб негайно припинити процес виконання програми та/або перевести у вихідний стан систему, яка виконує програму, та/або ініціювати тривогу, та/або стерти дані, що стосуються безпеки.
Додатково до цього захисту від запису поверх адрес повернення у систему згідно з фіг.2 можна інтегрувати захист від застосування адрес повернення, модифікований у порівнянні з варіантом виконання згідно з фіг.1. Цей додатковий механізм захисту полягає у тому, що дані, зчитані зі стеку 11а, перед їхнім використанням як адрес повернення перевіряються щодо того, чи вони взагалі репрезентують адресу повернення. Цей висновок можна зробити на підставі інформації захисту чи біту захисту від запису, підпорядкованих відповідним областям стеку.
Лише у тому разі, якщо інформація захисту чи біт захисту від запису, підпорядковані області стеку, з якої слід здійснити зчитування, мають значення "1", дані, записані у відповідній області стеку, дійсно репрезентують адресу повернення. Тому умовою для цього є, природно, те, що даним, які репрезентують інформацію захисту чи біт захисту від запису виключно для адрес повернення, тобто, наприклад, додатково до команди САЇЇ або аналогічним, записаним у стек 11а, приписується значення "1".
Цей додатковий механізм захисту згідно з фіг.2 реалізується за допомогою ланки "ТА" 13. У ланці "ТА" 13 як вхідні сигнали використовуються біт захисту від запису, підпорядкований області стеку, з якої слід здійснити зчитування, та сигнал Неай 5іасК, що сигналізує про мету використання даних, що зчитуються, причому сигнал
Аєай біаск може мати значення "1", якщо, наприклад, як у разі надходження команди НЕТ, на меті є використання її як адреси повернення, або "0", якщо передбачається інший варіант її використання. Вихідний сигнал Май НфМеай ланки "ТА" 13 у цьому разі свідчить про те, чи дозволяється використовувати дані, що запитуються, як адреси повернення (Маїїйй Неай - "1"), або таке використання заборонено (Маїй Неай - "0".
Якщо під час запиту щодо адрес повернення використання опитуваних зі стеку 11а даних як адрес повернення слід вважати неприпустимим, тому що Маїїй Неаа - "0", це можна інтерпретувати як спробу маніпулювання або помилку в апаратурному чи програмному забезпеченні, і використати як привід для введення у дію належних заходів для захисту. Ці заходи можуть полягати, зокрема, у негайному припиненні процесу виконання програми та/"або переходу до вихідного стану системи, що опрацьовує програму, та/або ініціювання тривоги, та/або стирання даних, що стосуються безпеки.
З наведеного вище опису випливає, що інформація, яка має захист від доступу ззовні, складається з біту захисту від запису. Зрозуміло, що замість нього можна використовувати код, що складається з певної кількості біт з будь-якими значеннями, завдяки чому можна піддавати спеціальній обробці не тільки адреси повернення, але й будь-які інші дані, які треба захистити від маніпуляцій чи помилок.
Запам'ятовувальний пристрій захисту, у якому записується різна інформація захисту, як вже неодноразово було сказано вище, представляє собою запам'ятовувальний пристрій, який ззовні не можна примусити спрацьовувати. Він розміщується переважно у пристрої, що виконує програму математичного забезпечення, яку слід захистити, тобто зазвичай мікропроцесор, мікроконтролер або сигнальний процесор; у цьому разі він особливо надійно захищений від доступу ззовні. Реалізація запам'ятовувального пристрою, який не можна примусити спрацьовувати ззовні, у мікропроцесорі, мікроконтролері або сигнальному процесорі (наприклад, у формі Ніддеп або бпадом/ бїаск), є досить простою. Для цього необхідно лише відповідно модифікувати математичне забезпечення Ке/пеї!.
Застосування одного з наведених вище способів не потребує жодних додаткових змін в апаратурному чи математичному забезпеченні. Зокрема, стек можна використовувати далі, як і раніше.
Таким чином, було розроблено спосіб для контролю приписаного виконання програм математичного забезпечення, завдяки чому просто і без змін математичного забезпечення, зокрема, дуже надійно можна запобігти цілеспрямованому маніпулюванню процесом виконання програм, а також частково виключити помилки в апаратурному та математичному забезпеченні.
Ше ШЕ в
Фіг1 "а пь
РОН (старший біт) М
РОЇ. (молодший біт
Що " 13 ши Май Кеаа
Кеадй аск ур й Щ я) ; достовірне зчи анн (Зчитування зі стеку) Р тув 12 (Запис до стеку) : -
Улійе віаск Май УМпіе пе с (Достовірний запис)
Фіг.2
Claims (10)
1. Спосіб контролю приписаного виконання програм, при якому запобігається перезапис адрес повернення, записаних для наступного використання, та/або використання як адрес повернення помилково записаних адрес повернення, або адрес повернення, щодо яких було здійснено перезапис, який відрізняється тим, що здійснюють захист від перезапису адрес повернення та захист від використання адрес повернення з оцінкою інформації захисту, яка генерується під час запису адрес повернення і записується у запам'ятовувальний пристрій захисту, і тим, що як запам'ятовувальний пристрій захисту використовують запам'ятовувальний пристрій, який не можна цілеспрямовано примусити спрацьовувати ззовні, 3-за меж системи, яка виконує програму, що підлягає контролю.
2. Спосіб за п. 1, який відрізняється тим, що як запам'ятовувальний пристрій захисту використовують запам'ятовувальний пристрій, передбачений у мікропроцесорі, мікроконтролері або сигнальному процесорі, що виконує програму.
3. Спосіб за п. 1 або 2, який відрізняється тим, що як інформацію захисту використовують адресу повернення або дані, що відображають або характеризують цю адресу.
4. Спосіб за п. 3, який відрізняється тим, що записані дані перед їхнім використанням як адрес повернення зіставляють з підпорядкованою інформацією захисту, причому використання даних як адрес повернення дозволяється лише у тому разі, якщо встановлено, що інформація захисту репрезентує або характеризує записані дані.
5. Спосіб за п. З або 4, який відрізняється тим, що тоді, коли у разі запиту даних, що репрезентують адресу повернення, встановлюється, що інформація захисту не репрезентує або не характеризує дані, зазначені у відповіді на запит, ініціюють негайне припинення процесу виконання програми та/або повернення у вихідний стан системи, яка виконує програму, та/або тривогу, та/або стирання даних, що стосуються безпеки.
6. Спосіб за п. 1 або 2, який відрізняється тим, що як інформацію захисту записують коди захисту від запису, що сигналізують про наявність захисту від запису.
7. Спосіб за п. 6, який відрізняється тим, що попереджується перезапис даних в області запам'ятовувального пристрою, про наявність захисту від запису до яких сигналізують коди захисту від запису.
8. Спосіб за п. б або 7, який відрізняється тим, що тоді, коли у разі спроби перезапису даних в область запам'ятовувального пристрою встановлюється, що підпорядкована інформація захисту сигналізує про наявність захисту від запису, ініціюють негайне припинення процесу виконання програми та/або повернення системи, що виконує програму, до вихідного стану, та/або тривогу, та/або стирання даних, що стосуються безпеки.
9. Спосіб за будь-яким з пп. 6 - 8, який відрізняється тим, що перед використанням записаних даних як адреси повернення опитують підпорядковану інформацію захисту, причому використання даних як адрес повернення дозволяється лише у тому разі, якщо встановлюється, що інформація захисту сигналізує про наявність захисту від запису.
10. Спосіб за п. 9, який відрізняється тим, що тоді, коли при запиті даних, які репрезентують адреси повернення, встановлюється, що підпорядкована інформація захисту не сигналізує про наявність захисту від запису, ініціюють негайне припинення процесу виконання програми та/або переведення до вихідного стану системи, що виконує програму, та/або тривогу, та/або стирання даних, що стосуються безпеки.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE19701166A DE19701166A1 (de) | 1997-01-15 | 1997-01-15 | Verfahren zur Überwachung der bestimmungsgemäßen Ausführung von Softwareprogrammen |
| PCT/DE1998/000133 WO1998032072A1 (de) | 1997-01-15 | 1998-01-15 | Verfahren zur überwachung der bestimmungsgemässen ausführung von softwareprogrammen |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| UA55438C2 true UA55438C2 (uk) | 2003-04-15 |
Family
ID=7817440
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| UA99074040A UA55438C2 (uk) | 1997-01-15 | 1998-01-15 | Спосіб контролю приписаного виконання програм |
Country Status (12)
| Country | Link |
|---|---|
| US (1) | US6202176B1 (uk) |
| EP (1) | EP0951673B1 (uk) |
| JP (1) | JP2001511271A (uk) |
| KR (1) | KR20000070127A (uk) |
| CN (1) | CN1248110C (uk) |
| AT (1) | ATE200358T1 (uk) |
| BR (1) | BR9806770A (uk) |
| DE (2) | DE19701166A1 (uk) |
| ES (1) | ES2156029T3 (uk) |
| RU (1) | RU2220443C2 (uk) |
| UA (1) | UA55438C2 (uk) |
| WO (1) | WO1998032072A1 (uk) |
Families Citing this family (34)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE19944991B4 (de) * | 1999-09-20 | 2004-04-29 | Giesecke & Devrient Gmbh | Verfahren zur Sicherung eines Programmablaufs |
| DE10122505A1 (de) * | 2001-05-10 | 2002-11-14 | Giesecke & Devrient Gmbh | Verfahren zum Schützen eines Rechners gegen Manipulation von Registerinhalten und Rechner zum Durchführen des Verfahrens |
| US7853803B2 (en) * | 2001-09-28 | 2010-12-14 | Verizon Corporate Services Group Inc. | System and method for thwarting buffer overflow attacks using encrypted process pointers |
| JP2004126854A (ja) * | 2002-10-01 | 2004-04-22 | Mitsubishi Electric Corp | 攻撃対策装置 |
| WO2005020069A1 (ja) * | 2003-08-25 | 2005-03-03 | Denki Hompo Ltd. | コンピュータシステムのcpu(中央処理装置) |
| JP4518564B2 (ja) * | 2003-09-04 | 2010-08-04 | サイエンスパーク株式会社 | 不正コード実行の防止方法、不正コード実行の防止用プログラム、及び不正コード実行の防止用プログラムの記録媒体 |
| US20050138263A1 (en) * | 2003-12-23 | 2005-06-23 | Mckeen Francis X. | Method and apparatus to retain system control when a buffer overflow attack occurs |
| US7971255B1 (en) * | 2004-07-15 | 2011-06-28 | The Trustees Of Columbia University In The City Of New York | Detecting and preventing malcode execution |
| US7594269B2 (en) * | 2004-10-29 | 2009-09-22 | Intel Corporation | Platform-based identification of host software circumvention |
| US20090119492A1 (en) * | 2005-10-26 | 2009-05-07 | David James Seal | Data Processing Apparatus and Method for Handling Procedure Call Instructions |
| US7774761B2 (en) * | 2005-12-27 | 2010-08-10 | International Business Machines Corporation | Use of memory watch points and a debugger to improve analysis of runtime memory access errors |
| US20070174571A1 (en) * | 2006-01-25 | 2007-07-26 | Safenet, Inc. | Binding a protected application program to shell code |
| US8352713B2 (en) | 2006-08-09 | 2013-01-08 | Qualcomm Incorporated | Debug circuit comparing processor instruction set operating mode |
| US20080127118A1 (en) * | 2006-10-02 | 2008-05-29 | Bulent Kasman | Method and system for dynamic patching of software |
| US20090187748A1 (en) * | 2008-01-22 | 2009-07-23 | Scott Krig | Method and system for detecting stack alteration |
| DE102009005764A1 (de) | 2009-01-23 | 2010-07-29 | Giesecke & Devrient Gmbh | Verfahren zur Überwachung der bestimmungsgemäßen Ausführung eines Unterprogramms |
| US8484625B2 (en) * | 2009-04-01 | 2013-07-09 | Motorola Mobility Llc | Method and apparatus to vet an executable program using a model |
| RU2434272C1 (ru) * | 2010-06-04 | 2011-11-20 | Федеральное государственное учреждение "Государственный научно-исследовательский испытательный институт проблем технической защиты информации Федеральной службы по техническому и экспортному контролю" | Система контроля отсутствия недекларированных возможностей в программном обеспечении |
| RU2434265C1 (ru) * | 2010-07-13 | 2011-11-20 | Федеральное государственное учреждение "Государственный научно-исследовательский испытательный институт проблем технической защиты информации Федеральной службы по техническому и экспортному контролю" | Система контроля отсутствия недекларированных возможностей в программном обеспечении |
| CN102053839A (zh) * | 2010-12-31 | 2011-05-11 | 山东中创软件商用中间件股份有限公司 | 监控探针生成方法和装置 |
| FR2977694A1 (fr) | 2011-07-08 | 2013-01-11 | St Microelectronics Rousset | Microprocesseur protege contre un debordement de pile |
| US9213828B2 (en) * | 2012-02-08 | 2015-12-15 | Arm Limited | Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains |
| US9015835B2 (en) * | 2013-06-23 | 2015-04-21 | Intel Corporation | Systems and methods for procedure return address verification |
| JP2015011436A (ja) * | 2013-06-27 | 2015-01-19 | 株式会社デンソー | プロセッサ |
| RU2591020C1 (ru) * | 2015-06-01 | 2016-07-10 | Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" (Госкорпорация "Росатом") | Способ контроля хода выполнения программы пользователя, исполняющейся на вычислительных узлах вычислительной системы |
| US20160381050A1 (en) | 2015-06-26 | 2016-12-29 | Intel Corporation | Processors, methods, systems, and instructions to protect shadow stacks |
| US10394556B2 (en) | 2015-12-20 | 2019-08-27 | Intel Corporation | Hardware apparatuses and methods to switch shadow stack pointers |
| US10430580B2 (en) | 2016-02-04 | 2019-10-01 | Intel Corporation | Processor extensions to protect stacks during ring transitions |
| CN108701193B (zh) * | 2016-02-12 | 2022-08-30 | 汉阳大学校产学协力团 | 安全半导体芯片及其工作方法 |
| WO2017138797A1 (ko) * | 2016-02-12 | 2017-08-17 | 한양대학교 산학협력단 | 시큐어 시스템 온 칩 |
| JP6489050B2 (ja) * | 2016-03-24 | 2019-03-27 | 株式会社オートネットワーク技術研究所 | 情報処理装置及び情報処理システム |
| US9904485B2 (en) * | 2016-03-31 | 2018-02-27 | Intel Corporation | Secure memory controller |
| US10613864B2 (en) | 2018-03-16 | 2020-04-07 | Texas Instruments Incorporated | Processor with hardware supported memory buffer overflow detection |
| RU2697948C1 (ru) * | 2018-04-19 | 2019-08-21 | Акционерное общество "Лаборатория Касперского" | Система и способ выявления уязвимостей с использованием перехвата вызовов функций |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4241396A (en) * | 1978-10-23 | 1980-12-23 | International Business Machines Corporation | Tagged pointer handling apparatus |
| JPS5568000A (en) * | 1978-11-13 | 1980-05-22 | Ibm | Maintenance and protection of control storage capable of writing |
| US4296404A (en) * | 1979-10-18 | 1981-10-20 | Engineered Systems, Inc. | Remote verification lockout system |
| US5408642A (en) * | 1991-05-24 | 1995-04-18 | Symantec Corporation | Method for recovery of a computer program infected by a computer virus |
| US5274817A (en) * | 1991-12-23 | 1993-12-28 | Caterpillar Inc. | Method for executing subroutine calls |
| RU2055588C1 (ru) * | 1993-03-03 | 1996-03-10 | Арнольд Аркадиевич Ласков | Способ стимуляции работоспособности лошадей |
| DE4315732C1 (de) * | 1993-05-11 | 1994-06-01 | Siemens Nixdorf Inf Syst | Verfahren zum authentischen Booten und Testen der Integrität von Software auf PC-Architekturen |
| FR2728363A1 (fr) * | 1994-12-20 | 1996-06-21 | Sgs Thomson Microelectronics | Dispositif de protection de l'acces a des mots memoires |
| DE19614904A1 (de) * | 1996-04-16 | 1997-10-23 | Philips Patentverwaltung | Verfahren und System zum Freigeben der Ausführung zugelassener Programme |
| JP3421526B2 (ja) * | 1997-02-14 | 2003-06-30 | モトローラ株式会社 | デ−タ処理装置 |
-
1997
- 1997-01-15 DE DE19701166A patent/DE19701166A1/de not_active Ceased
-
1998
- 1998-01-15 CN CNB98801856XA patent/CN1248110C/zh not_active Expired - Fee Related
- 1998-01-15 EP EP98906810A patent/EP0951673B1/de not_active Expired - Lifetime
- 1998-01-15 JP JP53352198A patent/JP2001511271A/ja not_active Ceased
- 1998-01-15 KR KR1019997006351A patent/KR20000070127A/ko not_active Abandoned
- 1998-01-15 WO PCT/DE1998/000133 patent/WO1998032072A1/de not_active Ceased
- 1998-01-15 RU RU99118013/09A patent/RU2220443C2/ru not_active IP Right Cessation
- 1998-01-15 BR BR9806770-2A patent/BR9806770A/pt not_active IP Right Cessation
- 1998-01-15 UA UA99074040A patent/UA55438C2/uk unknown
- 1998-01-15 ES ES98906810T patent/ES2156029T3/es not_active Expired - Lifetime
- 1998-01-15 AT AT98906810T patent/ATE200358T1/de not_active IP Right Cessation
- 1998-01-15 DE DE59800589T patent/DE59800589D1/de not_active Expired - Fee Related
-
1999
- 1999-07-15 US US09/354,132 patent/US6202176B1/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US6202176B1 (en) | 2001-03-13 |
| WO1998032072A1 (de) | 1998-07-23 |
| CN1248110C (zh) | 2006-03-29 |
| DE19701166A1 (de) | 1998-07-23 |
| RU2220443C2 (ru) | 2003-12-27 |
| ATE200358T1 (de) | 2001-04-15 |
| KR20000070127A (ko) | 2000-11-25 |
| ES2156029T3 (es) | 2001-06-01 |
| JP2001511271A (ja) | 2001-08-07 |
| EP0951673B1 (de) | 2001-04-04 |
| EP0951673A1 (de) | 1999-10-27 |
| BR9806770A (pt) | 2000-05-16 |
| CN1243580A (zh) | 2000-02-02 |
| DE59800589D1 (de) | 2001-05-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| UA55438C2 (uk) | Спосіб контролю приписаного виконання програм | |
| US7039779B2 (en) | Access monitor and access monitoring method for monitoring access between programs | |
| US7890726B1 (en) | Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller | |
| US5963980A (en) | Microprocessor-based memory card that limits memory accesses by application programs and method of operation | |
| US6751716B2 (en) | Semiconductor storage device, control device, and electronic apparatus | |
| JP4172745B2 (ja) | プロセッサによる命令シーケンスの実行を監視する方法および監視装置 | |
| US8156280B2 (en) | Data protection for non-volatile semiconductor memory using block protection | |
| US5894550A (en) | Method of implementing a secure program in a microprocessor card, and a microprocessor card including a secure program | |
| JPH06266624A (ja) | メモリの保護装置及びアドレスの発生方法 | |
| EP0735488A1 (en) | Multi-program execution controlling apparatus and method | |
| US7228569B2 (en) | Programmable unit | |
| JP2005316599A (ja) | 割込制御装置 | |
| US20100132053A1 (en) | Information processing device, information processing method and program | |
| US5678027A (en) | Method for preventing unauthorized modification of data in a device with a nonvolatile memory | |
| EP0470163A1 (en) | Improved security for machine-writeable data storage systems | |
| WO2001097010A2 (en) | Data processing method and device for protected execution of instructions | |
| US6776346B1 (en) | Secured access device with chip card application | |
| KR19990028574A (ko) | 고정프로그램을변경시키는방법및장치 | |
| JP4104990B2 (ja) | メモリカード | |
| JPH02157988A (ja) | Icカードにおけるコマンド処理方法 | |
| JP4734582B2 (ja) | 不揮発性メモリのデータ更新方法、制御装置、及びデータ更新プログラム | |
| JP2003203012A (ja) | マイクロコンピュータ装置 | |
| JP7247638B2 (ja) | 電子情報記憶媒体、icカード、改竄チェック方法、及びプログラム | |
| MXPA99006559A (en) | Method for monitoring the execution of software programmes as prescribed | |
| JPS62266602A (ja) | システムパラメ−タの設定ガ−ド装置 |