Міністерство освіти та наукиУкраїниКіровоградськийДержавний Технічний університет
Кафедра програмногозабезпечення
Курсова робота
з дисципліни “Програмуванняна мові ASM-86” на тему:
Захист віднесанкціонованого доступу
Зміст
Вступ
Призначення та область застосування програми.
Огляд існуючих методів для захисту від несанкціонованого доступу.
Постанова задачі та методи її реалізації.
Реалізація задачі.
Список скорочень.
Список літератури.
Додатки.
Вступ
Методи захисту даних на персональних комп'ютерахнадзвичайно різноманітні як по кінцевій меті, так і по технічному втіленню; їхможна розділити на механічні, апаратні і програмні.
До механічних засобів захисту ставляться різноманітнікришки і чохли з замками (що замикають, наприклад, дисковод гнучких дисків абомережний вимикач), клейкі пластини для приклеювання термінала до комп'ютера, акомп'ютера до столу, помешкання що замикаються із сигналізацією і багато інших.
Апаратні засоби реалізуються у вигляді спеціальнихелектронних модулів, що підключаються до системного каналу комп'ютера абопортів вводу-виводу, і здійснюють обмін кодовими послідовностями програмами, щозахищається.
Найбільш різноманітні програмні засоби. Сюдивідносяться програми шифрації даних по заданому користувачем ключу, адміністраторидисків, що дозволяють обмежити доступ користувачів до окремих логічних дисків,методи встановлення програмного продукту з дистрибутивних дискет, що дозволяютьвиконати установку не більше вказаного числа запуску програм, що захищаються задопомогою некопійованих ключових дискет, спеціальні захисні програмні оболонки,куди поміщаються програми що захищуються.
Призначення таобласть застосування програми.Захист комп'ютеріввід несанкціонованого доступу
Особливості захисту персональних комп'ютерів (ПК)обумовлені специфікою їх використання. Як правило, ПК користується обмеженечисло користувачів. ПК можуть працювати як в автономному режимі, так і в складілокальних мереж (сполученими з іншими ПК) і можуть бути залучені до віддаленогоПК або локальної мережі за допомогою модему по телефонній лінії.
Стандартність архітектурних принципів побудови,устаткування і програмного забезпечення персональних комп'ютерів, високамобільність програмного забезпечення і ряд інших ознак визначають порівнянолегкий доступ професіонала до інформації, що знаходиться в ПК. Якщоперсональним комп'ютером користується група користувачів, то може виникнутинеобхідність в обмеженні доступу до інформації різноманітних користувачів.
Несанкціонованим доступом (НСД) до інформації ПКбудемо називати незаплановане ознайомлення, опрацювання, копіювання,застосування різноманітних вірусів, у тому числі руйнуючі програмні продукти, атакож модифікацію або знищення інформації та порушення встановлених правилрозмежування доступу. У захисті інформації ПК від НСД можна виділити триосновні напрямки:
· перший орієнтується нанедопущення порушника до обчислювального середовища і ґрунтується наспеціальних технічних засобах упізнання користувача
· другий пов'язано ззахистом обчислювального середовища і ґрунтується на створенні спеціальногопрограмного забезпечення по захисту інформації.
· третій напрямок пов'язанийіз використанням спеціальних засобів захисту інформації ПК віднесанкціонованого доступу.
Спеціальнепрограмне забезпечення по захисту інформації ПК
Для захиступерсональних комп'ютерів використовуються різноманітні програмні методи, щозначно розширюють можливості по забезпеченню безпеки інформації, щозберігається. Серед стандартних захисних засобів персонального комп'ютеранайбільше поширення одержали:
1. засоби захистуобчислювальних ресурсів, що використовують парольну ідентифікацію й обмежуютьдоступ несанкціонованого користувача.
2. застосування різноманітнихметодів шифрування, що не залежать від контексту інформації.
3. засоби захисту відкопіювання комерційних програмних продуктів.
4. захист від комп'ютернихвірусів і створення архівів.
Огляд існуючихметодів для захисту від несанкціонованого доступу.Захистнакопичувача на жорсткому магнітному диску
Захист вмонтованого накопичувача на жорсткомумагнітному диску складає одну з головних задач захисту ПК від сторонньоговторгнення.Існує декілька типів програмних засобів, спроможних вирішитипроблему захисту:
· захист від будь-якого доступу дожорсткого диска;
· захист диска від запису/читання;
· контроль за зверненням до диска;
· засоби видалення залишківсекретної інформації.
Захист умонтованого жорсткого диска звичайноздійснюється шляхом застосування спеціальних паролів для ідентифікаціїкористувача (так звана парольна ідентифікація). У даному випадку доступ дожорсткого диска можна одержати при правильному введенні пароля при завантаженніопераційної системи. У противному випадку завантаження системи не відбудеться,а при спробі завантаження з гнучкого диска, жорсткий диск стає«невидимим» для користувача. Ефект захисту жорсткого диска в системідосягається зміною завантажувального сектора диска, із якого видалитьсяінформація про структуру диска. Такий захист дуже ефективний, і вона надійно захищаєжорсткий диск від рядового користувача.
Використання криптографії
Можливість використання персональних комп'ютерів улокальних мережах (при сполученні їх з іншими ПК) або застосування«модемів» для обміну інформацією з телефонним проводам пред'являєбільш жорсткі вимоги до програмного забезпечення по захисті інформації ПК.
Коритувачі ПК у різноманітних організаціях для обмінуінформацією усе ширше використовують електронну пошту, що без додатковихзасобів захисту може стати надбанням сторонніх осіб. Самим надійним захистомвід несанкціонованого доступу до переданої інформації і програмних продуктів ПКє застосування різноманітних методів шифрування (криптографічних методівзахисту інформації).
Криптографічні методи захисту інформації — цеспеціальні методи шифрування, кодування або іншого перетворення інформації, урезультаті якого її утримання стає недоступним без пред'явлення ключакриптограми й оберненого перетворення. Криптографічний метод захисту,безумовно, самий надійний метод захисту, тому що охороняється безпосередньосама інформація, а не доступ до неї (наприклад, зашифрований файл не можнапрочитати навіть у випадку крадіжки носія). Даний метод захисту реалізується увиді програм або пакетів програм, що розширюють можливості стандартноїопераційної системи. Захист на рівні операційної системи, частіше усього,повинен доповнюватися засобами захисту на рівні систем керування базами даних,що дозволяють реалізовувати складні процедури керування доступом.
В даний час не існує узвичаєної классифікації криптографічнихметодів захисту інформації. Проте, коли піддається перетворенню (шифровці)кожний символ переданого повідомлення («симетричний» метод закриттяінформації), можна умовно виділити чотири основні групи:
1. підстановка — символи тексту щошифрується заміняються символами того ж або іншого алфавіту відповідно дозаздалегідь визначеного правила;
2. перестановка — символи тексту щошифрується переставляються по деякому правилу в межах заданого блока переданоготексту
3. аналітичне перетворення — текст щошифрується перетвориться по деякому аналітичному правилу;
4. комбіноване перетворення — вихідний текст шифрується двома або великим числом засобів шифрування.
Існує велике число програмних продуктів шифруванняінформації, що відрізняються по ступеню надійності.
Захист ПК за допомогою апаратнихзасобів
Призначення даного пристрою — видалення інформації приспробі вилучення накопичувача, при викраденні комп'ютера, при проникненні взону обслуговування комп'ютера (серверу) або при натисканні визначеної кнопки.
Принцип дії даного пристрою — форматуваннянакопичувача. Відомо, що на початку кожного накопичувача розташовані таблицірозділів, таблиці розміщення файлів, каталоги — тому знищення інформаціїпочинається саме з них і навіть після декількох секунд роботи даного пристроюна накопичувачі залишену інформацію, дуже важко відновити. Якщо ж пристрійвідпрацює декілька хвилин, то вся інформація буде знищена. Після першого циклузнищення починається другий і так далі (до розряду автономного джерела живлення),тому інформацію не можна відновити навіть по залишковій намагніченості.Подібний метод стирання є в утилітах WipeFile і WipeDisk, проте для їхньогозапуску комп'ютер повинний бути включений, та й багато операційних систем немають безпосередній доступ до диска і відповідно ці утиліти можуть неспрацювати.
Подібний метод знищення інформації може здаватися«варварським», проте якщо правильно організувати роботу (резервнекопіювання щодня, ведення повного протоколу роботи за день і т.п.), то стертуінформацію можна відновити із мінімальними втратами (диск не страждає).
Для ідентифікації адміністратора, що має доступ докомп'ютера, застосовуються електронні ключі з довжиною коду 48 бітів.Невеличкий час, відведений для пред'явлення даного ключа — 10 секунд, цілкомвиключає можливість його підбору. Датчики, при спрацьовуванні яких відбуваєтьсязнищення інформації, користувачі вибирають самі. Найбільше частовикористовуються вимикачі (вимикання комп'ютера, відкриття кімнати, тривожнакнопка), дзвоник телефону (пейджера), датчики що спрацьовують при зміні обсягу.
Пристрій являє собою блок, що монтується у відсік3,5" дисковода і має автономне живлення. Пристрій включається в IDE шлейфаі не потребує установки ніяких драйверів. Даний пристрій можна встановити в будь-якийкомп'ютер, що має накопичувачі типу IDE
Прив'язка до місцярозташування на диску
Якщо потрібно виключити копіювання програми зжорсткого диска на інший жорсткий диск, її можна прив'язати до номера кластераабо сектора, із якого починається файл програми на диску. Прив'язказдійснюється в такий спосіб. Спеціально підготовлена установча програмавідкриває файл із робочою програмою і по таблиці відкритих файлів знаходитьпочатковий номер кластера. Це число, що є своєрідним ключем, записується установчоюпрограмою у визначене місце файла робочої програми ( у поле даних). Робоча жпрограма після запуску насамперед виконує ту ж операцію — визначає своюпочаткову адресу, а потім порівнює його з ключем. Якщо числа збігаються,програма приступає до виконання своєї змістовної частини; якщо не збігаються — аварийно завершується. При копіюванні програми на інший диск (або навіть на тойже самий) вона виявиться розташованої в іншому місці і номер кластера,записаний нустановчою програмою вже не буде відповідати реальній адресі файла.У той же час за допомогою установчої дискети програму неважко встановити набудь-якому диску.
Ключова дискета знестандартним форматом
Достатньо надійний засіб захисту програм від переносуна інші комп'ютери полягає у використанні ключової дискети. У цьому випадкуробоча програма, що знаходиться на жорсткому диску, перед початком роботиперевіряє наявність на дисководі дискети з ключовою інформацією. Для того, щобключову дискету не можна було розмножити за допомогою команди DISKCOPY, щоздійснює копіювання на фізичному рівні, ключова інформація записується надоріжці з нестандартним форматом, розташованої до того ж за межами робочогопростору диска. Така ключова дискета підготовляється спеціальною установчоюпрограмою, що за допомогою функції 05h переривання BIOS 13h, форматує,наприклад, доріжку номер 40 (або 80) із розміром сектора 256 байтів замість 512і записує на її заданий ключ. Робоча програма перед початком роботи виконуєчитання нестандартної доріжки і при відсутності самої доріжки або ключа на нійаварийно завершується. Такий засіб зручний тим, що користувач, придбавшипрограмний продукт із ключовою дискетою, може вільно переносити його зкомп'ютера на комп'ютер і навіть запускати його на декількох комп'ютераходночасно, але не має можливості передати програмний пакет третій особі (непозбавивши себе ключової дискети).
Очевидно, що для жорсткості захисту розглянуті методиможуть використовуватися спільно в різноманітних комбінаціях.
Постанова задачіта методи її реалізації.Захист від НСД шляхом запису ключа за логічними межами файла
Як відомо, DOS виділяє місце під файли цілимикластерами, у результаті чого за логічним кінцем файла практично завжди євільний простір (до кінця кластера). При копіюванні файла на інший диск реальнопереносяться тільки байти, що відповідають самому файлу, тому що число байтівщо копіюються визначається логічною довжиною файла. Байти останнього кластерафайла, що знаходяться за логічними межами файла, не копіюються. Якщо в нихзаписати ключ, то при копіюванні ключ зникне. Після запису робочої програми нажорсткий диск вона встановлюється за допомогою спеціальної установчої програми(яка зберігається на дискеті). Установча програма відкриває файл із робочоюпрограмою, переміщюає вказівник файла на його кінець і записує ключ (одне абодекілька слів) за старими межами файла. Потім за допомогою засобів DOS файлукорочується до старої довжини. У результаті ключ надається фізично прилягаючимдо файла, але логічно за його межами.
При використанні цього методу установча програмаповинна перед записом ключа проаналізувати довжину файла. Якщо файл займає цілечисло кластерів, його попередньо варто подовжити так, щоб він зайняв частинутакого кластера, інакше нікуди буде записати ключ. Те ж утвориться, якщо,скажемо, при довжині ключа 2 байта файл займає ціле число кластеров мінус 1байт. У цьому випадку файл також потребує подовження. Робоча програма післязапуску виконує ті ж операції, що і установча (за винятком подовження файла) іперевіряє, чи записаний відомий їй ключ за кінцем файла.
Процес підготуванняпрограми на мові ассемблера
Процес підготування і налагодження програми включаєтакі етапи:
1. підготування вихідного текступрограми за допомогою будь-якого текстового редактора. Файл із вихідним текстомповинний мати розширення. ASM;
2. трансляція програми за допомогоюассемблера MASM. EXE із метою одержання об'єктного файла;
3. компонування об'єктного модуля задопомогою компоновника LINK. ЕХЕ з метою одержання завантажувального файла
При виборі редактора для підготування вихідного текступрограми варто мати на увазі, що багато текстових процесорів (наприклад,Microsoft Word) додають у вихідний файл службову інформацію. Тому вартоскористатися редактором, що виводить у вихідний файл «чистий текст»,без яких-небудь керуючих символів. До таких редакторів відносяться, наприклад,широко поширені в нас Лексикон, Norton Editor і ін. Якщо файл із вихіднимтекстом програми названий P.ASM, то рядок виклику ассемблера може мати такийвид:
MASM IZ /ZI /N Р.Р.Р;
Ключ /Z дозволяє вивод на екран рядків вихідноготексту програми, у яких ассемблер виявив помилки (без цього ключа пошук помилокприйшлося б проводити по листингу трансляції).
Ключ /ZI управляє включенням в об'єктний файл номеріврядків вихідної програми й іншої інформації, не необхідної при виконанніпрограми, але використовуваної відлагоджувальником CodeView.
Ключ /N не включає висновок у листинг перелікусимволічних позначень у програмі, від чого декілька зменшується інформативністьлистинга, але істотно скорочується його розмір.
Параметри, що знаходяться далі, визначають іменамодулів: вихідного (P. ASM), об'єктного (P. OBJ) і листинга (P. LST). Точка зкомою не включає формування файла P. CRF.
Рядок виклику компоновника може мати такий вигляд:
LINK /CO Р, Р;
Ключ /З передає в завантажувальний файл символьнуінформацію, що дозволяє відлагоджувальнику CV виводити на екран повний текствихідної програми, включаючи мітки, коментарі та ін. Параметри, що знаходятьсядалі, позначають імена модулів: об'єктного (P. OBJ) і завантажувального(Р.ЕХЕ). Точка з комою не включає формування файла з листингом компонування(Р.МАР) і використання бібліотечного файла з об'єктними модулями підпрограм.
Компоновник створює завантажувальний модуль у форматі. ЕХЕ. Якщо вихідна програма написана у форматі. СОМ, то після трансляції ікомпонування її треба перетворити у файл типу. СОМ. Для цього використовуєтьсявключена до складу DOS зовнішня команда EXE2BIN:
EXE2BIN P P. COM
Перший параметр позначає вихідний для команди EXE2BINзавантажувальний файл Р.ЕХЕ, другий — очікуваний результат перетворення. Вказівкарозширення.СОМ у другому параметрі обов'язкова, тому що по замовчанню командаEXE2BIN створює файл із розширенням. BIN.
Використанняінтерактивного відлагоджувальника CodeView Microsoft
Інтерактивний відлагоджувальник CodeView дозволяє виконувати програму по кроках або з точками останова, виводити на екран вміст регістрів і областей пам'яті, модифікувати (у відомих межах) завантажену в пам'ять програму, примусово змінювати вміст регістрів і виконувати інші дії, що дозволяють у наочній і зручній формі відлагоджувати програми, написані на мові ассемблера. відлагоджувальник запускається командою
CV Р.ЕХЕ
де Р.ЕХЕ — ім'я файла з відлагодженою програмою. Упроцесі роботи відлагоджувальник використовує також файл із вихідним модулем P.ASM.
Реалізація задачі
Задача по забезпеченню захисту програм від копіюванняшляхом запису ключа в порожнє місце кластера за межами файлу з програмоюпотребує написання робочої програми WORK3.EXE, яка виводить на екран текст, щовідповідає конкретному випадку завершення програми.
На початку програма читає перше слово за логічнимкінцем файла WORK3.EXE, читає його ключ і порівнює його з ключем записаним впрограмі. Якщо ключі не співпадають, програма аварійно завершується та видаєвідповідне повідомлення. В противному випадку програма видає повідомлення пронормальну роботу файла. Робоча програма потребує встановлення на жорсткомудиску.
Також задача потребує написання установчої програмиINSTALL3.EXE, яка призначена для установки на жорсткому диску робочої програмиWORK3.EXE.
Установча програма записує за логічним кінцем файларобочої програми WORK3.EXE заданий ключ, попередньо проаналізувавши довжинуфайла WORK3.EXE і подовживши його на два байта (тобто фактично на цілийкластер), якщо за межами файла, але до кінця останнього зайнятого файломкластера, не має місця для запису ключа.
Список скорочень
ПК – персональний комп’ютер.
НСД – несанкціонований доступ.
Список літератури
1. Финогенов К.Г.“Самоучитель по системным функциям MS-DOC”.
2. Скэнлон Л. “ПерсональныеЭВМ IBM PC и XT”
3. Фигурнов: «Работапользователя с IBM PC».
4. Громов В.И. Васильев Г.А.«Энциклопедия компьютерной безопасности.»
Текст програми
Програма WORK3. EXE
; Робоча програмаWORK3.EXE, що потребує установки на жорсткому диску
; Основні фрагменти програми
; Відкриваємо файл із робочою програмою
jnc gol
jmp notopen
gol:
mov handle,AX; Запам’ятаємо дескриптор
; Зупинимо вказівник на 2 байта за; кінцем файла
mov АН,42h; Функція установки пвказівника
mov AL,2; Режим — від кінця файла
mov BX,handle
mov CX,0
mov DX,2
Int 21h
; Виконаємофіктивний запис 0 байтів, щоб збільшити файл на два байти
mov AH,40h
mov BX,handle
mov CX,0
mov DX,offset key_rd; Фіктивний параметр
int 21h
; Зсунемо вказівник на старий кінець файла, тобто наключ
mov АН,42h
mov AL,2
mov BX,handle
mov CX,-1
mov DX,-2
int 21h
; Прочитаємо ключ
mov AH,3Fh
mov BX,handle
mov CX,2
mov DX,of set key_rd
int 21h
; Порівняємо прочитаний ключ із записаним у програмі
mov AX,key
сmрAX,key_rd
je ok ; Ключі збігаються
; Ключі не збігаються, виведемо повідомлення mes1 проте,
; що програма не встановлена
jmp ahead ; Продовжимо програму
ok:
; Виведемо повідомлення imsпро нормальну роботу
; Зрушимо вказівник на старий кінець файла
ahead:
mov AH,42h
mov AL,2
mov BX,handle
mov CX,-l
mov DX,-Z
Int 21h
; Виконаємо фіктивний запис 0 байтів,щоб зафіксувати поточну довжину файла
mov AH,0h
mov BX,handle
mov CX,0
mov DX,offset key_rd; Фіктивний параметр
Int 21h
; Виведемо повідомлення mes2 про відмову відкрити Файл
notopen:
jmp outprog
myproc endp
; Поля даних
fname db 'work3.exe',0 ;Ім'я файла
handle dw 0 ; Комірка для дескриптора
key dw 1234h ; Ключ, що записується у файл
key_rd dw 0 ; Ключ, що читається з файла
mes db 'Программа встановлена і буде працюватинормально',10,13
mes1 db 'Программа не встановлена і не може бутизапущена',10,13
mes2 db 'Файл WORK3. EXE не відкрився'. 10.13
mes3 db 'Файл WORK3. EXE не знайдений у таблиці файлів'
Програма INSTALL3. EXE
; Установча програма, призначена для установки
; на жорсткому диску робочої програми WORK3.EXE; Основні фрагменти програми
; Відчинимо файл із робочою програмою, щоб він потрапиву таблицю файлів
jnc go1
jmp notopen
go1:
mov handle,AX ;
; Одержимо індекс SFT із JFT, що знаходиться в PSP
mov DI,l8h ;ES:DI->JFT
add DI,AX; ЕS:DI->наш елемент у JFT
mov CL,ES:[DI] ;CL=індекс SFT
xor CH.CH ;CH=індекс SFT
; Одержимо доступ до системної таблиці файлів
mov AH,52h
Int 21h
les DI,ES:[BX+4] ;ES:DI->перша SFT сmр CX,ES:[OI+4];Індекс у цій SFT?
jb here ;І
sub CX,ES:[DI+4] ; Немає, віднімемо число блоків уцій ;SFT
les DI,ES:[OI] ;ES:DI->другаSFT
here:
; Знайшли ту SFT, у котрій наш індекс
mov AX,59; Розмір блока опису файла
mul CL
add DI,6; ЕS:DI->перший блок опису файла
add DI,AX; ЕS:DI->блок опису файла
mov AX,ES:[DI+llh]; АХ=молодше слово довжини
mov DX,ES:[DI+13h] ;DХ=старше слово довжини
les DI,ES:[DI+7]; ЕS:DI=вказівник на DPB
mov BL,ES:[DI+4]; ВL=номер старшого сектора кластера
inc BL ;BL=число секторів у кластері
xor BH,BH ; ВХ-число секторів у кластері
mov CL,9 ; Зсув на 9 бітій = множення на 512
shl BX,CL ; вх=числобайтів у кластері
mov SI,BX; Збережемо розмір кластера в SI
d1v BX ;DX:AX/BX.
push DX; Збережемо у стекі залишок
; Встановимо вказівник на кінець файла
mov AH,42h
mov AL,2; Режим установки від кінця файла
mov BX,handle
mov CX,O ;0 байтів
mov DX,O; від кінця файла
1nt 21h
; чи потрібна корекція довжини файла? Файл требаподовжити,
; якщо залишок дорівнює 0 або дорівнює довжинікластера-1.
pop DX; Витягнемо зі стека залишок
dec SI ;SI-число байтів у кластері-1
cmp DX,0; Залишок дорівнює 0?
je incr; Так, на корекцію
cmp DX.SI; Залишок дорівнює довжині кластера-1?
je incr; Так, на корекцію
jmp good; корекція не потрібна
; Збільшемо файл на два байти, щоб він зайняв ще одинкластер
incr:
mov AH,40h
mov BX,handle
mov CX.2
mov OX, offset null
Int 21h
jmp good ;Ha запис ключа за межами нової довжини файла
good:
; Запишемо за межами файла ключ
mov АН,40h
mov ВХ,handle
mov СХ,2
mov OX,offset key
Int 21h; Зрушимо покажчик на старий кінець файла, щоб відділити ключ від файла
mov AH,42h
mov AL,2; Режимустановкивідкінцяфайла
mov ВХ,handle
mov СХ,-1; СХ:DХ=машиннеуявлення
mov DX,-2; числа -2
int 21h
; Виконаємо фіктивний запис 0 байтів, щоб укоротитьфайл
; до старої довжини
mov AH,40h
mov ВХ,handle
mov СХ.0
mov DX,offset key; Фіктивний параметр
Int 21h; Виведемо повідомлення mes про нормальнуроботу
; Завершимо програму
notopen:
; Виведемо повідомлення mes2 про неможливістьвідкрити файл
jmp outprog; Поля даних
fname db 'work3.exe',0 ;Ім'я файла handle dw 0; Осередок для дескриптора
key dw 1234h; Ключ, що записується у файл
null dw 0
mes db 'Программа WORK3.EXE установлена на жорсткомудискі',10,13
mes2 db 'Файл WORK3.EXE не відкрився',10,13
Блок-схема алгоритму
1. Блок-схема робочоїпрограми WORK3.EXE.
/>
2. Блок-схема установочноїпрограми INSTALL3.EXE./> /> /> /> /> /> /> /> />