Рубрика «Анализ и проектирование систем» - 73

Cisco IOS function weak
В пятницу 6 апреля 2018 началась мощная атака на оборудование Cisco.

Много пишут о том, что главная причина, по которой эта атака успешна, это открытые во внешние сети сервисные порты Cisco Smart Install.

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

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

Про выбор по умолчанию

Есть исследование 2003 года «Спасает ли жизни выбор по умолчанию?», в котором есть диаграмма
image.
На русском подробнее.
В ней видно, что число тех, кто готов участвовать в программе донорства органов сильно зависит от того, какой выбор по умолчанию уже сделан в медицинской анкете.

Я хочу обратить внимание на корень самой уязвимости. В отчёте есть такая часть: Читать полностью »

У нас было 2 виртуальные машины, 75 сайтов, тысячи метрик, две базы данных и одна очередь ActiveMQ, Python и целое множество библиотек всех сортов и расцветок, pandas, а также numpy, dash, flask, SQL Alchemy. Не то чтобы это был необходимый запас для системы, но если начал собирать компоненты, становится трудно остановиться. Единственное, что вызывало у меня опасение — это JavaScript. Ничто в мире не бывает более беспомощным, безответственным и порочным, чем JS зомби. Я знал, что рано или поздно мы перейдем и на эту дрянь.

image
Читать полностью »

Это продолжение статьи: Что делать, если нужно создать инновационный продукт в традиционной компании?

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

История №1. «Built it and they will come»

Фермер из Айовы Рей Кинселла в недоумении, так начинается фильм «Поле чудес». Последнее время он постоянно слышит голос, который советует ему построить бейсбольное поле на месте его кукурузных угодий. Кому-то, возможно, такое предложение и показалось бы начисто лишенным смысла. Но не Рею. Ведь его покойный отец когда-то был просто помешан на этой игре. Любящий сын решает последовать совету. И вот поле построено, и на нем появляется призрачная команда легендарных игроков. Рей не столько напуган, сколько озадачен. Чтобы понять смысл удивительных событий, он начинает собственное расследование…То, что слышит герой, это фраза «Built it and they will come».
Читать полностью »

Книга «Безопасность в PHP» (часть 2). Атаки с внедрением кода - 1

Книга «Безопасность в PHP» (часть 1)

В списке десяти наиболее распространённых видов атак по версии OWASP первые два места занимают атаки с внедрением кода и XSS (межсайтовый скриптинг). Они идут рука об руку, потому что XSS, как и ряд других видов нападений, зависит от успешности атак с внедрением. Под этим названием скрывается целый класс атак, в ходе которых в веб-приложение внедряются данные, чтобы заставить его выполнить или интерпретировать вредоносный код так, как это нужно злоумышленнику. К таким атакам относятся, например, XSS, внедрение SQL, внедрение заголовка, внедрение кода и полное раскрытие путей (Full Path Disclosure). И это лишь малая часть.

Читать полностью »

Продолжение перевода статьи «Big ball of Mud».

ОДНОРАЗОВЫЙ КОД

он же
QUICK HACK (быстрый хак)
KLEENEX CODE (код на салфетке)
DISPOSABLE CODE (утилизируемый код)
SCRIPTING (скрипт)
KILLER DEMO (демо-убийца)
PERMANENT PROTOTYPE (постоянный прототип)
BOOMTOWN (быстро выросший город)

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

То же самое происходит и с прототипированием системы — вы не сильно переживаете о том, насколько красив и эффективен ваш код. Вы знаете, что код нужен вам только для того, чтобы показать работающий прототип. Как только он готов, код будет выброшен и прописан заново уже более тщательно. Когда подходит время демонстрации, возникает непреодолимое желание нагрузить его крутыми, но, по сути, бесполезными функциями. Иногда такая стратегия бывает “принести успешной”. Клиент, вместо того чтобы спонсировать разработку следующего этапа проекта, остается доволен прототипом.
Читать полностью »

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

В обзорном посте рассматривается раздел «Знание, истина и ложь».

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

Использование библиотеки Python Control Systems Library для проектирования систем автоматического управления - 1

Здравствуйте!

С появлением библиотеки Python Control Systems Library [1], решение основных задач проектирования систем автоматического управления (САУ) средствами Python значительно упростилось и теперь практически идентично решению таких задач в математическом пакете Matlab.

Однако, проектирование систем управления с применение указанной библиотеки имеют ряд существенных особенностей, которых нет в документации [1], поэтому особенностям использования Python Control Systems Librar и посвящена данная публикация.

Начнём с инсталляции библиотеки. В документации говориться о загрузке двух модулей slycot и control, на самом деле для нормальной работы нужна ещё библиотека numpy+mkl, остальные устанавливаются автоматически при загрузке control.

Указанные модули можно скачать с сайта [2]. В документации так же сказано, что для интерфейса по умолчанию нужно просто импортировать контрольный пакет следующим образом: import control.

Однако, при таком импортировании библиотека не работает ни одном из примеров. Для импортирования библиотеки необходимо применить from control import* как и для импортировании окружения matlab: from control. matlab import *[1].

Рассматривать специализированную библиотеку Python Control Systems Library можно только применительно к задачам проектирования систем автоматического управления, поэтому мы так и поступим.
Читать полностью »

Что делать, если нужно создать инновационный продукт в традиционной компании? - 1

Какой «золотой молоток» пытаются применить к разработке инновационных продуктов в российских крупных компаниях? В последние 5 лет на рынке существует тренд на внутреннее корпоративное предпринимательство (Inner Corporate Venture, далее ICV), и большинство крупных компаний бесстрашно начинают внедрять новые подходы к ведению бизнеса и создают специально для этого инновационные лаборатории, команды и подразделения. В обиход входят такие понятия как MVP (Minimum Viable Product — минимально жизнеспособный продукт), Lean Startup (бережливый стартап) и др.
Читать полностью »

В этой статье пойдет речь о том, как мы автоматизируем процессы разработки и тестирования технологической платформы «1С:Предприятие 8». Платформа «1С:Предприятие 8» — набор инструментов для создания бизнес-приложений и среда их выполнения. Это большой (более десятка миллионов строк кода) проект на С++, Java и JavaScript. Над ним трудятся десятки программистов, одновременно разрабатывающие и поддерживающие до 10 различных версий продукта.

Платформа работает на различных версиях ОС и БД:

  • ОС: Windows, Linux, macOS
  • СУБД: MS SQL, PostgreSQL, IBM DB2, Oracle, файловая СУБД собственной разработки
  • Мобильные ОС: Android, iOS, Windows

Поддерживает несколько видов клиентов:

Учитывая, что надо поддерживать целый ряд версий вышеперечисленных ОС, СУБД и браузеров, тестирование платформы становится нетривиальной задачей.

image
Читать полностью »

Не все позиции, представленные на витрине Crossover однозначно понятны потенциальным партнёрам. И если вакансии C++ Software Engineer или Java Software Engineer вопросов не вызывают, то с Chief Software Architect всё не так и просто. Вообще, кто такие архитекторы ПО чёткого определения нет и от компании к компании их функции и описания разнятся. Сферический Software Architect (SA) в вакууме определяет архитектурный шаблон/парадигму, отвечает за разбиение на технические подсистемы/слои/компоненты/модули, выбирает средства исполнения и занимается разработкой технических сценариев. От места к месту функции могут добавляться или исчезать, но в целом работа Software Architect заключается именно в этом.

Из точки А в точку Chief - 1

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

Если вам вдруг показалось, что к этому меню не хватает разве что щепотки менеджмента, то Chief Software Architect (или если сокращенно, то просто CA) — это для вас. Туда входят уже такие ингредиенты, как создание масштабируемых решений, контроль процесса разработки, контроль работы команды и персональная ответственность за результат в целом. Многим хотелось бы знать, откуда такие люди берутся. В случае Crossover: из вагонов метро и магазинов меховых изделий. По крайней мере, если судить по трудовым биографиям двух действующих Chief Software Architect компании Optiva Руслана Пещука и Евгения Конурбаева.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js