Безопасность программного обеспечения - это создание защищенного программного обеспечения с присущей ему защитой, чтобы оно продолжало функционировать под злонамеренными атаками, к удовлетворению пользователей и владельцев программного обеспечения. Эта статья объясняет угрозы и решения, с общей точки зрения. Стандартный словарь в информационной безопасности также объясняется. Вы должны быть хорошо знакомы с компьютером и Интернетом, чтобы понять эту статью; Вы должны были также изучить компьютерный язык, например, Perl, C, C ++, PHP и т. д.

Защищены информационные и программные пакеты (приложения и документы). Информация - это любое сообщение, которое кому-нибудь пригодится. «Информация» - это расплывчатое слово. Контекст, в котором он используется, дает смысл. Это может означать новости, лекцию, учебник (или урок) или решение. Программный пакет обычно является решением некоторых проблем или связанных с ними проблем. В прошлом вся не сказанная информация была написана на бумаге. Сегодня программное обеспечение можно рассматривать как подмножество информации.

Программное обеспечение может находиться на компьютере или передаваться с одного компьютера на другой. Файлы, данные, электронные письма, записанные голоса, записанные видео, программы и приложения находятся на компьютере. Находясь в компьютере, он может быть поврежден. Находясь в пути, он может быть поврежден.

Любое устройство с процессором и памятью - это компьютер. Итак, в этой статье калькулятор, смартфон или планшет (например, iPad) - это компьютер. Каждое из этих устройств и их сетевые среды передачи имеют программное обеспечение или программное обеспечение в пути, которое должно быть защищено.

Привилегии

Пользователю может быть предоставлена привилегия для запуска файла на компьютере. Пользователю может быть предоставлена привилегия для чтения кода файла на компьютере. Пользователю может быть предоставлена привилегия для изменения (записи) кода файла на компьютере. Пользователю могут быть предоставлены одна, две или все три из этих привилегий. Есть другие привилегии для операционной системы или базы данных. Пользователи имеют разные суммы или уровни привилегий в системе.

Угрозы

Основы программных угроз

Чтобы защитить программное обеспечение, вы должны знать его угрозы. Программное обеспечение должно быть защищено от несанкционированного доступа к его данным. Он должен быть защищен от незаконного использования (например, причинить вред). Программное обеспечение должно быть защищено от раскрытия конкурентам. Программное обеспечение не должно быть повреждено. Программное обеспечение не должно быть удалено случайно. Программное обеспечение не должно быть нарушено. Программное обеспечение не должно иметь каких-либо изменений, для которых не требуется. Данные (программное обеспечение) не должны проверяться без уважительной причины, особенно посторонними лицами. Программное обеспечение не должно быть скопировано (пиратское).

Одна или несколько из этих баз, приводящих к определенному типу классической угрозы.

Классы программной угрозы

Спуфинговая атака

Это ситуация, когда человек (или программа) успешно представляет другого человека (или программу) в некоторой программной деятельности. Это делается с использованием ложных данных, чтобы получить преимущество, которое является незаконным.

Отречение

Это ситуация, в которой кто-то делает что-то не так и отказывается от того, что он/она не тот, кто это сделал. Человек может использовать подпись другого человека, чтобы поступить неправильно.

Данные нарушения

Нарушение данных происходит, когда безопасная или личная информация преднамеренно или непреднамеренно передается в недоверенную среду.

Атака отказа в обслуживании

Программная компьютерная сеть имеет программное обеспечение, работающее на компьютерах сети. Каждый пользователь обычно использует свой компьютер перед собой и обычно запрашивает услуги у других компьютеров в сети. Злоумышленник может решить залить сервер лишними запросами. Сервер имеет ограниченное количество запросов, которые он может обработать за время. В этой схеме затопления законные пользователи не могут использовать сервер так часто, как следовало бы, поскольку сервер занят, отвечая на запросы преступника. Это перегружает сервер, временно или на неопределенный срок нарушая работу служб сервера. В ходе этого узел (сервер) замедляется в работе для законных пользователей, в то время как злоумышленник выполняет свое зло, которое остается незамеченным, потому что законные пользователи, ожидающие службы, не могут знать, что происходит в сервер. Добрым пользователям отказывают в обслуживании, пока идет атака.

Повышение привилегий

Разные пользователи операционной системы или приложения имеют разные привилегии. Таким образом, некоторые пользователи получают больше пользы от системы, чем другие. Использование уязвимости в программном обеспечении или упущение конфигурации для получения повышенного доступа к ресурсам или неавторизованной информации - повышение привилегий.

Приведенные выше схемы классификации могут быть использованы для выявления компьютерных вирусов и червей.

Одна или несколько из приведенных выше схем классификации могут использоваться для программных атак, которые включают в себя: кражу интеллектуальной собственности, повреждение базы данных, кражу личных данных, саботаж и вымогательство информации. Если человек использует одну или несколько схем для деструктивного изменения сайта, так что клиенты сайта теряют доверие, это саботаж. Вымогательство информации - это кража компьютера компании или ложное получение секретной информации о компании. У похищенного компьютера может быть секретная информация. Это может привести к вымогательству, когда вор потребует оплату в обмен на украденную собственность или информацию.

Конфиденциальность

Когда что-то является чувствительным или присущим вам по своей сути, тогда это для вас личное. Это также относится к группе людей. Человек должен выразить себя избирательно. Чтобы достичь такой избирательности, человек должен планировать себя или планировать информацию о себе; это конфиденциальность. Группа людей должна выражать свое мнение избирательно. Чтобы достичь такой избирательности, группа должна планировать себя или планировать информацию о себе; это конфиденциальность. Человек должен защищать себя избирательно. Чтобы получить такую избирательную защиту, человек должен защищать себя или защищать информацию о себе избирательно; то есть конфиденциальность. Группа людей должна защищать себя избирательно. Чтобы достичь такой избирательной защиты, группа должна защищать себя или защищать информацию о себе избирательным образом; то есть конфиденциальность.

Идентификация и Аутентификация

Когда вы путешествуете в другую страну, вы доберетесь до порта этой страны. В порту сотрудник полиции попросит вас идентифицировать себя. Вы предъявите свой паспорт. Из паспорта сотрудник полиции узнает ваш возраст (с даты рождения), ваш пол и вашу профессию, и он посмотрит на вас (ваше лицо); это идентификация. Полицейский сравнит ваше настоящее лицо и фотографию в паспорте. Он также оценит ваш возраст по тому, что указано в паспорте, чтобы узнать, это ли вы.

Смотреть на вас и связывать свой возраст, пол и профессию с вами - это идентификация. Проверка подлинности вашего лица и вашей фотографии и оценка соответствия вашей презентации вашему возрасту - это аутентификация. Идентификация ассоциирует человека или что-то с определенными атрибутами. Указание личности также является идентификацией. Аутентификация - это подтверждение того, что личность (идентификация) является истинной. Другими словами, аутентификация - это акт подтверждения утверждения.

В вычислительной технике наиболее распространенным способом аутентификации является использование пароля. Например, на сервере много пользователей. При входе в систему вы указываете свою личность (идентифицируете себя) с вашим именем пользователя. Вы подтверждаете свою личность с помощью пароля. Ваш пароль должен быть известен только вам. Аутентификация может идти дальше; задавая вам вопрос типа «В каком городе или городе вы родились?»

Цели безопасности

Цели безопасности в информации: конфиденциальность, целостность и доступность. Эти три функции известны как триада CIA: C для конфиденциальности, I для целостности и A для доступности.

Конфиденциальность

Информация не должна раскрываться неуполномоченным лицам, неавторизованным лицам или неавторизованным процессам; это конфиденциальность информации в области информационной безопасности (а также безопасности программного обеспечения). Кража паролей или отправка конфиденциальных писем неправильному лицу нарушает конфиденциальность. Конфиденциальность является компонентом конфиденциальности, который защищает информацию от неуполномоченных лиц, неавторизованных лиц или несанкционированных процессов.

Целостность

Информация или данные имеют жизненный цикл. Другими словами, информация или данные имеют время начала и время окончания. В некоторых случаях после окончания жизненного цикла информация (или данные) должны быть стерты (юридически). Целостность состоит из двух функций: 1) поддержание и обеспечение точности информации (или данных) в течение всего жизненного цикла и 2) полнота информации (или данных) в течение всего жизненного цикла. Таким образом, информация (или данные) не должны быть сокращены или изменены несанкционированным или необнаруженным способом.

Доступность

Чтобы любая компьютерная система могла выполнять свои задачи, информация (или данные) должны быть доступны при необходимости. Это означает, что компьютерная система и среда ее передачи должны работать правильно. Доступность может быть скомпрометирована обновлениями системы, сбоями оборудования и перебоями в питании. Доступность также может быть скомпрометирована атаками типа «отказ в обслуживании».

Неотрекаемость

Когда кто-то использует вашу личность и вашу подпись для подписания контракта, который он никогда не выполнял, безотказность - это когда вы не можете успешно отрицать в суде, что вы не создали договор.

В конце контракта сторона, предлагающая услугу, должна была предложить услугу; сторона, платящая, должна была произвести платеж.

Чтобы понять, как безотказность применима к цифровой связи, вы должны сначала узнать значение ключа и значение цифровой подписи. Ключ - это кусок кода. Цифровая подпись - это алгоритм, использующий ключ для создания некоторого другого кода, который сравнивается с письменной подписью отправителя.

В области цифровой безопасности неотказуемость обеспечивается (не обязательно гарантируется) цифровой подписью. В области безопасности программного обеспечения (или информационной безопасности) отсутствие отрицания относится к целостности данных. Шифрование данных (которое вы, возможно, слышали) в сочетании с цифровой подписью также способствует конфиденциальности.

Цели безопасности в информации: конфиденциальность, целостность и доступность. Тем не менее, отказ от авторства является еще одной функцией, которую вы должны учитывать при работе с информационной безопасностью (или безопасностью программного обеспечения).

Ответы на угрозы

На угрозы можно реагировать одним или несколькими из следующих трех способов:

  • Сокращение/смягчение: это реализация мер защиты и контрмер для устранения уязвимостей или блокирования угроз.

  • Назначение/Передача: Это возлагает бремя угрозы на другую организацию, такую ​​как страховая компания или аутсорсинговая компания.

  • Принятие: оценивается, перевешивает ли стоимость контрмер возможную стоимость потери из-за угрозы.

Контроль доступа

В информационной безопасности, частью которой является безопасность программного обеспечения, управление доступом является механизмом, который гарантирует, что только правомочные пользователи могут получить доступ к защищенным ресурсам в данной системе с их различными заслуженными привилегиями.

Текущее решение для информационной безопасности

В настоящее время и популярным способом обеспечения информационной безопасности является обеспечение контроля доступа. Это включает в себя такие меры, как проверка входных данных для приложения, установка антивируса, использование брандмауэра в локальной сети и использование безопасности транспортного уровня.

Когда вы ожидаете дату в качестве ввода для приложения, но пользователь вводит число, такой ввод должен быть отклонен. Это проверка ввода.

Установленный на вашем компьютере антивирус предотвращает повреждение файлов на вашем компьютере вирусами. Это помогает в доступности программного обеспечения.

Правила могут быть сделаны для мониторинга и контроля входящего и исходящего трафика локальной сети, чтобы защитить сеть. Когда такие правила реализованы в виде программного обеспечения в локальной сети, это брандмауэр.

Безопасность транспортного уровня (TLS) - это протокол безопасности, разработанный для обеспечения конфиденциальности и безопасности данных при передаче через Интернет. Это включает в себя шифрование связи между отправляющим хостом и принимающим хостом.

Обеспечение информационной безопасности путем обеспечения контроля доступа называется программным обеспечением безопасности, которое отличается от программного обеспечения безопасности, как описано ниже. Оба подхода имеют одну и ту же цель, но они разные.

Собственная безопасность программного обеспечения

Приложения, как они написаны сегодня, имеют много программных уязвимостей, которые программисты все больше и больше осознавали за последние 20 лет. Большинство атак совершаются с использованием этих уязвимостей, а не путем преодоления или обхода контроля доступа.

Буфер похож на массив, но без навязанной длины. Когда программист записывает в буфер, можно бессознательно перезаписать его слишком долго. Эта уязвимость является переполнением буфера.

Программное обеспечение сегодня устранилось с последствиями безопасности, включая ошибки реализации, такие как переполнение буфера, и недостатки проектирования, такие как непоследовательная обработка ошибок. Это уязвимости.

Возможно, вы слышали о читах на компьютерном языке, таких как читы PHP, читы Perl и читы C ++. Это уязвимости.

Безопасность программного обеспечения, в отличие от программного обеспечения безопасности, преодолевает эти уязвимости путем написания защитного кода, в котором эти уязвимости можно было бы предотвратить. В то время как приложение используется, так как обнаруживается больше уязвимостей, разработчики (программисты) должны искать способы, чтобы защитно перекодировать уязвимости.

Угроза, атака типа «отказ в обслуживании», не может быть остановлена ​​контролем доступа, потому что для того, чтобы исполнитель мог это сделать, он уже должен иметь доступ к хосту (серверу). Его можно остановить, включив некоторое внутреннее программное обеспечение, которое отслеживает действия пользователей на хосте.

Безопасность программного обеспечения - это надежная конструкция изнутри, которая затрудняет программные атаки. Программное обеспечение должно быть самозащитным и, как минимум, не иметь уязвимости. Таким образом, запуск безопасной сети становится проще и экономичнее.

Программное обеспечение безопасности разрабатывает защитный код изнутри приложения, в то время как программное обеспечение безопасности обеспечивает (разрабатывает) контроль доступа. Иногда эти две проблемы пересекаются, но часто это не так.

Безопасность программного обеспечения уже достаточно развита, хотя она все еще разрабатывается, она не так развита, как программное обеспечение безопасности. Плохие хакеры достигают своих целей больше, используя уязвимости в программном обеспечении, чем преодолевая или обходя защитное программное обеспечение. Есть надежда, что в будущем информационная безопасность будет больше защищать программное обеспечение, чем программное обеспечение безопасности. На данный момент должно быть запущено как программное обеспечение безопасности, так и программное обеспечение безопасности.

Безопасность программного обеспечения не будет эффективной, если в конце разработки программного обеспечения не будет проведено тщательное тестирование.

Программисты должны быть обучены выполнению программирования защитного кода. Пользователи также должны быть обучены тому, как использовать приложения для защиты.

В области безопасности программного обеспечения разработчик должен убедиться, что пользователь не получает больше привилегий, чем он заслуживает.

Вывод

Безопасность программного обеспечения - это разработка приложения с защитным кодированием от уязвимостей, затрудняющих программные атаки. Программное обеспечение безопасности, с другой стороны, является производством программного обеспечения, которое обеспечивает контроль доступа. Безопасность программного обеспечения все еще разрабатывается, но она более перспективна для обеспечения информационной безопасности, чем программное обеспечение безопасности. Он уже используется, и его популярность растет. В будущем понадобится и то и другое, но с программным обеспечением безопасности нужно больше.