ам і прийоми, які найбільш часто використовуються для атак програм і даних. Ці прийоми позначаються єдиним терміном - «програмні пастки». До них відносяться «програмні люки», «троянські коні», «логічні бомби», атаки «салямі», приховані канали, відмови в обслуговуванні і комп'ютерні віруси.
Люки в програмах. Використання люків для проникнення в програму - один з простих і часто використовуваних способів порушення безпеки автоматизованих інформаційних систем.
Люком називається не описана в документації на програмний продукт можливість роботи з цим програмним продуктом. Сутність використання люків полягає в тому, що при виконанні користувачем деякого не описаних в документації дій він отримує доступ до можливостей і даними, які в звичайних умовах для нього закриті (зокрема, вихід в привілейований режим).
Люки найчастіше є результатом забудькуватості розробників. В якості люка може бути використаний тимчасовий механізм прямого доступу до частин продукту, створений для полегшення процесу налагодження і не віддалений по її закінченні. Люки можуть утворюватися також в результаті часто практикується технології розробки програмних продуктів «зверху вниз»: в їх ролі виступатимуть залишені з якихось причин в готовому продукті «заглушки» - групи команд, що імітують або просто позначають місце під'єднання майбутніх підпрограм.
Нарешті, ще одним поширеним джерелом люків є так званий «невизначений введення» - введення «безглуздою» інформації, абракадабри у відповідь на запити системи. Реакція недостатньо добре написаної програми на невизначений введення може бути, у кращому випадку, непередбачуваною (коли при повторному введенні тієї ж невірної команди програма реагує кожен раз по-різному); набагато гірше, якщо програма в результаті однакового «невизначеного» введення виконує деякі повторювані дії, - це дає можливість потенційному загарбникові планувати свої дії з порушення безпеки.
Невизначений введення - приватна реалізація переривання. Тобто в загальному випадку загарбник може навмисне піти на створення в системі деякої нестандартної ситуації, яка б дозволила йому виконати необхідні дії. Наприклад, він може штучно викликати аварійне завершення програми, що працює в привілейованому режимі, з тим, щоб перехопити управління, залишившись в цьому привілейованому режимі.
Боротьба з можливістю переривання, в кінцевому рахунку, виливається в необхідність передбачити при розробці програм комплексу механізмів, які утворюють так звану «захист від дурня». Сенс цього захисту полягає в тому, щоб гарантовано відсікати всяку ймовірність обробки невизначеного введення і різного роду нестандартних ситуацій (зокрема, помилок) і тим самим не допускати порушення безпеки комп'ютерної системи навіть у випадку некоректної роботи з програмою.
Таким чином, люк (або люки) може бути присутнім в програмі з огляду на те, що програміст:
* забув видалити його;
* навмисне залишив його в програмі для забезпечення тестування або виконання частини, що залишилася налагодження;
* навмисне залишив його в програмі в інтересах полегшення остаточного складання кінцевого програмного продукту;
* навмисне залишив його в програмі з тим, щоб мати приховане засіб дос...