Курс Mit «Безопасность Компьютерных Систем». Лекция 6: «Возможности», Часть 2



Массачусетский Институт Технологий.

Курс лекций №6.858. «Безопасность компьютерных систем».

Николай Зельдович, Джеймс Микенс.

2014 год Безопасность компьютерных систем — это курс, посвященный проектированию и внедрению безопасных компьютерных систем.

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

Темы включают безопасность операционной системы (ОС), возможности, управление информационными потоками, языковую безопасность, сетевые протоколы, аппаратную безопасность и безопасность веб-приложений.

Лекция 1: «Введение: модели угроз» Часть 1 / Часть 2 / Часть 3 Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3 Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3 Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3 Лекция 5: «Откуда берутся ошибки системы безопасности» Часть 1 / Часть 2 Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3 Аудитория: Можем ли мы заключить, что для каждой возможности существует один процесс? Профессор: Я сомневаюсь.

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

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

Потому что здесь есть процесс форт1 , который может открывать множество файлов и передавать множество возможностей привилегированному компоненту.

форт .



Курс MIT «Безопасность компьютерных систем».
</p><p>
 Лекция 6: «Возможности», часть 2

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

Потому что форт1 есть внешняя привилегия.

И то, что мы делаем, по сути, превращаем эту внешнюю привилегию в возможность.

Возможность в этом процессе форт1 .

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

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

Возможность .

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

И это круто, но не очень практично для использования в реальной системе.

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

Если вы напишете это в нем, отлично, напишите это.

Но я не хочу передавать на него какие-либо права.

Я просто хочу сказать тебе: «О, эта штука, попробуй!» Так что это неудобство в мире возможностей, потому что оно действительно заставляет вас никогда не говорить об объектах без передачи права собственности на этот объект. Поэтому важно знать об этом и использовать эту функцию в некоторых частях системы, но не ждите, что на этом решение безопасности системы закончится.



Курс MIT «Безопасность компьютерных систем».
</p><p>
 Лекция 6: «Возможности», часть 2

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

Может ли процесс сравнить их, чтобы убедиться, что они касаются одного и того же объекта? Или он воспользуется большими возможностями? Профессор: Дело в том, что процесс не использует возможности неявно, так что это очень полезное свойство возможностей.

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

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

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

Затем кто-то другой предлагает вам другой вариант для других файлов, которые могут включать этот файл.

А новая функция позволяет читать и записывать файлы.

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

Так что это классная штука, когда вам не нужны дополнительные внешние привилегии.

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

Кажется, они их собирают. И пытаясь провести операцию, они ищут возможности и находят те, которые заставят ее работать.

Это возвращает вас к внешнему управлению.

окружающий авторитет которого вы пытались избежать.

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

Это редкость в решениях безопасности.

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

И этот код довольно легко написать.

Однако Возможность способен решать другие проблемы.

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

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

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

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

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

В этом смысле история очень похожа на ОКВС .

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

Это, конечно, имеет смысл ОКВС .

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

tcpdump и другие приложения, анализирующие сетевые данные.

Почему они так обеспокоены приложениями, анализирующими сетевые входы? Что происходит в tcpdump ? В чем причина их паранойи? Аудитория: злоумышленник может контролировать то, что отправляется и что вызывается для выполнения, например пакеты.

Профессор: да, они действительно обеспокоены такими типами атак и может ли злоумышленник на самом деле контролировать входные данные? Потому что это довольно проблематично, если вы пишете код на С , который должен обрабатывать структуры данных.

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

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

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



Курс MIT «Безопасность компьютерных систем».
</p><p>
 Лекция 6: «Возможности», часть 2

Еще один пример из реальной жизни, где необходимо разделение привилегий, — это ваш браузер.

Вероятно, вы захотите изолировать свой плагин Flash или расширение.

Джава , или что-то другое.

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

Так что это кажется разумным планом.

Например, если вы пишете программу, вы хотите протестировать поведение ее компонентов в «песочнице».

В более общем смысле это относится к чему-то, что вы скачали из Интернета и собираетесь запускать с меньшими привилегиями.

Предлагается ли этот стиль изоляции в стручковый перец ? Я мог скачать какую-нибудь случайную заставку или какую-нибудь игру из Интернета.

И я хочу запустить их на своем компьютере, но сначала убедитесь, что они не испортят все, что у меня есть.

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

Профессор: Верно.

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

Вы ожидаете, что это сработает? Я думаю, здесь есть проблема.

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

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

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

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

Если нам придется открывать файлы по-другому, мы откроем их по-другому.

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

Здесь возникает вопрос — стоит ли использовать виртуальные машины для песочницы? стручковый перец ? Аудитория: В этом случае возможно перерасход памяти.

Профессор: Да, это.

Но что, если нам плевать на память? Так что, возможно, виртуальные машины очень хороши, к тому же они не используют много памяти.

Так по какой еще причине нам не следует использовать В.

М.

В стручковый перец ? Аудитория: сложно отслеживать сетевую активность.

Профессор: Верно! Контролировать происходящее в сети сложно, поскольку либо вы не разрешаете виртуальной машине доступ к сети, либо подключаетесь к сети через НАТ или используйте Предварительный просмотр или VMWare .

Но тогда ваша песочница сможет получить доступ ко всему Интернету.

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

Это не очень хорошо.

Но что, если сеть вас не волнует? Допустим, у вас просто есть какое-то видео.

Что делать, если вы обрабатываете какое-то простое видео или анализируете tcpdump .

В этом случае вы просто запускаете виртуальную машину, она начинает анализировать ваши пакеты.

tcpdump и отбрасывает вас обратно после презентации, которая tcpdump хочет писать для пользователя, потому что здесь нет реального сетевого ввода-вывода.

Итак, есть ли другая причина?

Курс MIT «Безопасность компьютерных систем».
</p><p>
 Лекция 6: «Возможности», часть 2

Аудитория: потому что накладные расходы на инициализацию все еще высоки.

Профессор: да, возможно, первоначальные затраты на запуск виртуальной машины снижают производительность.

Так что это правда.

Аудитория: ну, вы также можете захотеть иметь права на базу данных и тому подобное.

Профессор: Да.

Но в более общем смысле это означает, что у вас есть реальные данные, с которыми вы работаете, и их очень сложно разделить.

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

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

Ну и замечательно.

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

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

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

Итак, давайте возьмем tcpdump и посмотрим, почему сложно изолировать с помощью механизма Юникс .

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

Итак, что нужно для песочницы? tcpdump на базе Юникс ? Ваши привилегии ограничены? Проблема с Юникс заключается в том, что единственный способ фактически изменить привилегии — это изменить входные данные функции принятия решения, которая решает, можете ли вы на самом деле получить доступ к какому-либо объекту или нет. И единственное, что вы действительно можете изменить, — это привилегии процесса.

Это будет означать, что процесс сможет отправлять UID кому-то другому.

Или вы можете изменить разрешения для различных объектов, находящихся в вашей системе.

Фактически, вы можете использовать оба этих решения.

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

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

tcpdump под тем же самым ИДЕНТИФИКАТОР пользователь.

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

Так что потенциально это плохое решение использовать жидкость в этом случае.

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

Это тоже плохо.

Другая проблема заключается в том, что независимо от того, что вы ИДЕНТИФИКАТОР , там могут быть файлы открытого доступа.

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

Ведь неважно, какой у тебя ИДЕНТИФИКАТОР , процесс все равно сможет прочитать этот пароль.

Так что это тоже не очень приятно.

Таким образом, чтобы организовать песочницу в Юникс , вам, вероятно, следует сделать и то, и другое - изменить UID и внимательно проверьте разрешения для всех объектов, чтобы убедиться в отсутствии неизолированных открытых файлов, которые могут быть перезаписаны или прочитаны хакером.

Я думаю, это дает вам еще один механизм, который вы можете использовать.

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

Теперь посмотрим, как он пытается решить эту проблему.

стручковый перец .

Здесь, как только мы войдем в режим песочницы, все будет доступно только через возможности.

Поэтому, если у вас нет возможности Возможность , вы просто не сможете получить доступ ни к каким объектам.

Ребята из статьи делают огромную ставку на глобальное пространство имен.

Так что же это за глобальное пространство имен и почему оно так беспокоит? Их файловая система сама по себе является своего рода ярким примером глобального пространства имен.

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

Например, перейдите в чей-то домашний каталог, например.

/дома/николаи/… Почему это плохо? Почему они против глобального пространства имен в стручковый перец ? Как вы думаете?

Курс MIT «Безопасность компьютерных систем».
</p><p>
 Лекция 6: «Возможности», часть 2

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

Профессор: Да.

Проблема в том, что это все еще Юникс .

Таким образом, к файлу по-прежнему имеются обычные разрешения.

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

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

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

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

И это единственное, чего может коснуться процесс.

Но если у вас есть доступ к глобальному пространству имен, это потенциально неосуществимо.

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

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

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

FreeBSD .

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

Давайте проверим, действительно ли нам нужны изменения ядра.

Что, если мы просто сделаем это в библиотеке? Ведь мы реализуем стручковый перец , в котором уже есть библиотека.

И все, что мы делаем, это меняем все эти функции, типа «открыть, прочитать, записать», чтобы использовать только возможности Возможность .

Тогда все операции будут перебирать какие-то возможности, искать их в таблице файлов и так далее.

Будет ли это работать?

Курс MIT «Безопасность компьютерных систем».
</p><p>
 Лекция 6: «Возможности», часть 2

Аудитория: ты всегда можешь сделать системный вызов системный вызов .

Профессор: Да.

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

Так что придется как-то усиливать ядро.

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

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

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

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

Что они на самом деле делают с точки зрения изменений в ядре? Первый — это системный вызов, который они вызывают cap_enter .

И что происходит, когда вы бежите cap_enter ? Что произойдет, если вы внедрите это в свой процесс? Насколько я могу судить, ядро перестанет принимать любые системные вызовы, относящиеся к глобальному пространству имен.

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

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

В Unix-подобных операционных системах появилось новое семейство системных вызовов, в которых вместо использования открыть для одного имени файла вы можете использовать открыть , который открывает сначала аргумент, который является файловым дескриптором каталога, а затем какое-то имя файла: openat(dirfd,"имя) .

И этот системный вызов открыть откроет это имя "имя" в каталоге, на который указывает файловый дескриптор.



Курс MIT «Безопасность компьютерных систем».
</p><p>
 Лекция 6: «Возможности», часть 2

Так что это гораздо больше зависит от возможностей.

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

Но для этого вам необходимо иметь доступ к каталогу как к открытому файловому дескриптору.

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

Так что же они делают с доступом к сети, что происходит с ним в режиме возможностей? Аудитория: Вероятно, у них есть варианты пакетов безопасности.

Профессор: Да.

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

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

Вам придется заранее создать все необходимые вам связи и заполнить их по мере возможностей.

Или вам придется получить их у кого-то, кто передаст вам дескриптор файла.

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

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

Это имеет смысл? Вот как выглядит доступ через сетевое пространство имен.

Что они делают для процессов? Я думаю, в Юникс другое глобальное пространство имен формируется самими идентификаторами процессов ПИД .

Например, рассмотрим системный вызов убить (25) для процесса с ПИД = 25 .

Я могу убить конкретный процесс, подставив туда его номер.

Как это исправить в стручковый перец ? Каков их план? Аудитория: файловые дескрипторы с процессами.

Профессор: Да.

На самом деле, это круто.

Кажется, что в Юникс есть и то, и другое.

Вместо того, чтобы иметь эти разные числа для ПИД когда вы разветвляете процесс, у вас появляется новый вариант функции вилка который называется pdfork или «разветвление дескриптора процесса».

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

И это ваш новый процесс.

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

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

.

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

Таким образом, они действительно пытаются все гомогенизировать, чтобы это выглядело как некий файловый дескриптор.

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

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



Курс MIT «Безопасность компьютерных систем».
</p><p>
 Лекция 6: «Возможности», часть 2

Вот вам интересная головоломка.

Я пытался понять из статьи, какое значение они сделали с пустой записью «точка-точка» в именах каталогов.

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

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

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

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

Профессор: Да, это правильно.

Аудитория: но поднявшись вверх, вы должны посмотреть, есть ли у вас какие-либо параметры для родительского каталога.

Профессор: и это правильно.

Аудитория: так что вам нужно будет их как-то найти.

Профессор: Верно, но это немного сложно и противоречит принципу расширения полномочий.

Что, если вы используете соединение «точка-точка» в рамках одного открытого вызова? Что делать, если вы позвоните открыть для определенного каталога или дескриптора файла и откройте До нашей эры/.

/.

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

Но вам, вероятно, нужно убедиться, что в выражении опенат (д, «б/ц/.

/.

) Имя "с" это не сложная ссылка, ведущая куда-то еще и так далее.



Курс MIT «Безопасность компьютерных систем».
</p><p>
 Лекция 6: «Возможности», часть 2

Это довольно сложно.

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

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

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

Итак, в режиме возможностей кажется, что все контролируется вашей таблицей файлов.

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

Профессор: нет, ты не можешь этого сделать.

Посмотрим, что будет, если «убить» UID ? Это должно выглядеть так: Авторизуемся cap_enter и просто убить UID текущий процесс.

Нас больше не волнует, что это такое.

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

Профессор: ты прав, это правда.

Потому что на самом деле «убить» UID вредный.

Допустим, я запустил на своей машине какой-то процесс песочницы, и внезапно он теряет свою работоспособность.

UID .

Оказывается, у меня на компьютере сотни запущенных процессов, и я понятия не имею, что это такое.

Поэтому разрушение UID не очень хороший план для целей управления.

54:14 мин.

Продолжение: Курс MIT «Безопасность компьютерных систем».

Лекция 6: «Возможности», часть 3 Доступна полная версия курса Здесь .

Спасибо, что остаетесь с нами.

Вам нравятся наши статьи? Хотите увидеть больше интересных материалов? Поддержите нас, разместив заказ или порекомендовав друзьям, Скидка 30% для пользователей Хабра на уникальный аналог серверов начального уровня, который мы придумали для вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от 20$ или как правильно расшарить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40 ГБ DDR4).

Dell R730xd в 2 раза дешевле? Только здесь 2 x Intel Dodeca-Core Xeon E5-2650v4 128 ГБ DDR4 6x480 ГБ SSD 1 Гбит/с 100 ТВ от 249 долларов США в Нидерландах и США! Прочтите об этом Как построить корпоративную инфраструктуру класса, используя серверы Dell R730xd E5-2650 v4 стоимостью 9000 евро за копейки?

Тэги: #информационная безопасность #программирование #ИТ-инфраструктура #Анализ и проектирование систем #Возможности приложения #Возможности приложения #Возможности приложения #Capsicum #Capsicum #Capsicum #проблема авторизации #проблема авторизации #проблема авторизации
Вместе с данным постом часто просматривают: