Честно говоря, мне трудно понять, почему люди не понимают, почему возникают ошибки и некачественное программное обеспечение. Вся разработка программного обеспечения - это экономическая функция. Каждое добавление, изменение влечет за собой последствия и, следовательно, затраты.
Когда мы говорим о безопасности, мы должны думать обо всех изменениях, которые вносятся в программный продукт. При этом мы должны спросить:
- Почему не предполагается качество?
- Почему не обеспечивается безопасность?
- Почему эти концепции считаются дополнениями к приложениям и службам? Почему их нужно указывать, когда их следует воспринимать как должное?
- Проверка ввода
- Граничные условия
- При необходимости зашифруйте данные
- Принцип наименьших привилегий
- Белые списки лучше черных
Это простая экономическая теория. Речь идет об уровне средней школы. Если вы
задумаетесь об этом на мгновение, вы поймете.
Во-первых, подумайте о нескольких вещах в жизни за пределами ИТ. Я задам несколько
вопросов и посмотрю, сможете ли вы на них ответить:
- Все автомобили одинакового качества? Почему вы платите больше за Lexus, чем за Hyundai?
- Обязательно ли оформлять страховку в поездке?
Теперь немного ближе к дому:
- Все ли дверные замки одного качества?
- Все ли дома оборудованы засовами и системами сигнализации?
- На всех ли машинах установлен LoJack?
- Все ли окна во всех домах имеют качественные замки?
- Все ли окна сделаны из Lucite (защищенного от детей)?
Ответ прост: качество зависит от стоимости. Если вы хотите большего,
вы платите больше. Честно говоря, это простое упражнение. Качественное программное обеспечение
действительно существует. Если хотите, вы можете перейти к старым стандартам Redbook США и
пройти проверку программного обеспечения класса «А». За исключением того, что эта копия
Windows 10 теперь будет стоить более 10 000 долларов.
Раньше игровые компании нанимали меня для выполнения проверки кода и тестирования программного обеспечения на безопасность. Я бы проверил результаты программного обеспечения статического анализа, используемого для тестирования кода, и проверил бы код вручную, чтобы получить более высокий уровень уверенности. Но даже в этом случае это не идеально, поскольку моделирование сложных взаимодействий
требует больше времени и подвержено ошибкам.
Я бы делал от 190 до 220 строк кода в час в хороший день для такого
языка, как C. Less for Assembly. Мои ставки взимались почасово. На этом уровне
анализ Windows потребует более 50 000 человеко-часов. Это
исключает исправления. Это исключает надстройки.
Сколько миллионов строк кода в биткойне, сколько добавлено и изменено?
Когда мы думаем обо всех запланированных изменениях, обновлениях, дополнениях. Вещи, которые Core добавили, чтобы BTC больше не Биткойн (например, SegWit), мы начинаем видеть все больше и больше возможностей для ошибок, поскольку разработчики «экспериментируют» пытаются превратить Биткойн в то, чем он не является и не может быть .
Каждое изменение, каждый эксперимент по изменению Биткойна - это ждущая катастрофа катастрофа. То, что нужно, просто; чтобы заблокировать протокол и позволить бизнесу начать использовать биткойн для любых целей, за которые они готовы платить майнерам.
Биткойн - это не система социального равенства, это наличные деньги.
Вы получаете то, за что платите.