Русский
Русский
English
Статистика
Реклама

Ограничения

Гипертимезия и эволюция в IT

05.12.2020 14:09:17 | Автор: admin

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

Человеческие возможности велики, ноограничены. По некоторымприкидкамобщий объём памяти нашего мозга может достигать 5 петабайт это 5 тысяч терабайтов или 5 миллионов гигабайтов. Да, много. Но не бесконечно много. А ведь ещё нужно обрабатывать входящую/исходящую информацию (изображение, звук, запах, вкус, тактильные ощущения, речь, моторика), выполнять прошитые программы (инстинкты) и создавать новые (обучение) это уже не просто память, а устройство обработки информации (процессор). Которое располагается там же, где и память в мозге человека, и использует те же самые аппаратные ресурсы (нейроны и синапсы). То есть, вряд ли объём наше памяти дотягивает до этих самых 5-ти петабайт.

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

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

Нашим предкам было проще, для них мир не менялся с такой скоростью, с какой он меняется для нас. Особенно это касается информационных технологий.

Ведь что я наблюдаю в области web-приложений? Во-первых, война браузеров породила кучу альтернативных технологий (JavaScript, Java applets, ActiveX, Flash, Dart), во-вторых, стандарты webа (HTML, CSS, Browser API) представляют собой результат компромиссов между ведущими игроками, а разработчики вынуждены поддерживать различные имплементации функционала через те жеполифилы. Разнообразные варианты доставки JS-кода в браузер CommonJS, AMD, CMD, UMD, ES6. Славное прошлое ложится тяжким бременем на плечи современного web-разработчика. А ещё на них ложится и не менее славное настоящее Angular, React, Vue, Svelte, Ember, Микросервисы на различных языках программирования Go, Java, Ruby, Python, PHP, NodeJS, C#,

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

Мы не забываем пройденное, мы накапливаем знания. Как снежный ком HTML, CSS, JS, ES6, TypeScript, Web 2.0, SPA, PWA, SEO, SSR, headless, microservices, AWS, Docker, Kubernetes, Мы уже не можем просто так создать HTML страницу и выложить в Сеть, мы должны сначала продумать вот это вот всё и принять решение, что чистого HTMLа будет достаточно. Насколько проще было принимать такое решение, когда мы только и знали, что HTML.

Чтобы эволюционировать дальше, разработчики должны научиться забывать устаревшую информацию. Должны ограничивать круг своих профессиональных интересов, ограничивать стек используемых технологий, ограничивать области применения своих навыков. Один человек не может охватить всё, что сейчас есть в IT от создания микропроцессоров и до оркестрации микросервисов. Его возможностей хватит на ограниченный набор знаний либо микропроцессоры, либо микросервисы:

Да, человек может либо глубже изучить меньшее количество технологий, либо большее количество технологий, но поверхностно:

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

Эволюция в IT сейчас похожа на сёрфинг нужно поймать волну и держаться на ней, пока у той есть достаточно энергии:

Затем брать доску (интеллект) и искать новую волну (технологию).

А потом опять, опять и опять

Благо, что волн становится только больше.

Подробнее..

Обход ограничений терминала

11.01.2021 16:10:01 | Автор: admin

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

Как уменьшить количество команд?

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

  1. Софт, который позволяет задать стандартный захардкоженный набор ограничений;

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

К первой категории можно отнести следующие шеллы:

rbash

rzsh

rksh

Ко второй категории относятся:

lshell

rssh

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

Попробуем протестировать приложения для ограничения доступных команд. В качестве базовой системы возьмем Kali Linux на базе ОС Debian 5.9. Первым инструментом для исследования возьмем rbash, найти базовую информацию касательно его работы можно вот здесь. Запускается rbash достаточно просто:

  1. Создадим директорию для тестирования и перейдем в нее: mkdir test; cd test

  2. Запустим команду rbash в директории test. Для нее будут применены все стандартные ограничения, описанные в документации, в том числе и на выполнение команды cd. Проверим:

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

Попробуем использовать другое приложение rzsh. Его настройка такая же, как и у предыдущего подопытного. Любопытный факт запускать rzsh или устанавливать его дополнительно не нужно, если есть zsh: достаточно указать при запуске флаг -r. Список ограничений можно найти здесь.

Запустим ограничение на той же директории, которую создали в прошлом эксперименте и так же постараемся выйти в другую директорию:

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

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

Какие существуют методы обхода ограничений?

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

  1. Сбор информации (Enumiration)

  2. Создание сценариев атаки

  3. Реализация атаки

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

  1. Какой именно шелл используется для настройки ограничений?

  2. Какие команды поддерживает шелл?

  3. Какое наименование имеет операционная система?

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

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

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

В нашем случае сам терминал при попытке ввода команды рассказал, что для ограничений запущен rbash:

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

2. Сценарий атаки. Как следует поступить для выполнения команды перехода cd? Любая система или механизм сдается, если попытаться протестировать функции, объединяющие несколько подсистем или отдельных блоков ОС, поскольку не всегда возможно программно обеспечить корректное взаимодействие между ними. В нашем случае выполнение команды cd это запуск процесса в операционной системе. Попробуем это сделать за счет дополнительных утилит. Даже при наличии ограничений от rbash у юзера есть возможность пользоваться безобидными приложениями, например vim:

3. Реализация атаки. Для проведения атаки можно попытаться использовать функционал vim, который может передавать команды в ОС: !.

В открытом файле vim вводим последовательность команд: :!bash.

В итоге получаем доступ к терминалу без ограничений:

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

Вывод

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


Статья подготовлена экспертом OTUS - Александром Колесниковым в преддверии старта курса Administrator Linux. Professional.

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

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru