Китайский CERT отчёт ставит платформу NEM впереди многих блокчейн проектов
Опубликованный отчёт китайским CERT показывает, что NEM является один из самых безопасных блокчейн.
Из 8btc.com, было опубликовано 12 января 2017 года
[..В декабре 2016 года, китайский CERT опубликовал на 17 страницах отчет о проверки безопасности ПО блокчейн. Согласно отчету, аудит проводился в октябре 2016 и выпущен более позднее как “открытый” документ. В отчет было исследовано 25 открытых исходных кодов блокчейн проектов. В общей сложности обнаружено 746 высокоуровневых векторов атаки. Ripple — оценен как один из наиболее небезопасных с более чем 223-х высоко рисковых ошибок.]
Высококачественный код раскрывает преимущества NEM
Этот тест охватывает различные часто встречающиеся уязвимости, которые разделены на 9 категорий по следующим критериям: причины формирования уязвимостей безопасности, возможность быть эксплуатируемым, степень вреда и трудность решения.
9 Категорий уязвимости
1. Проверка входных данных и представление
Проблемы проверки входных данных и представление обычно вызваны специальными символами, кодировками и числовыми представлениями. Такие проблемы происходят в результате доверия входным данным. Эти проблемы включают в себя: переполнение буфера, Cross-Site Scripting — межсайтовый скриптинг, SQL injection — внедрение SQL-кода, инъекции команд и т.д.
2. Злоупотребление API
API является соглашением между вызывающей стороной и вызываемым. Большинство API злоупотреблений вызваны вызывающей стороной, не понимающей цель соглашения. Проблемы безопасности могут также возникать, когда API не используется должным образом.
3. Механизмы безопасности
Эта категория содержит уязвимости при проверке подлинности, контроле доступа, конфиденциальности, использовании пароля и управлении полномочиями.
4. Управление памятью
Управление памятью является распространенным типом уязвимости, связанной с операциями с памятью, включая утечку памяти, использование после освобождения, двойное освобождение и так далее. Этот тип уязвимости обычно приводит к снижению производительности системы, аварийное завершение работы программы и общего типа дефектов в C / C + + язык.
5. Время и состояние
Распределенные вычисления времени и зависимость от состояния. Взаимодействие между потоками и процессами, а также порядок в котором выполняются задачи которые часто определяются общим состоянием таким как семафоры, переменные, файловые системы и так далее. Более подробное описание уязвимости, связанные с распределенными вычислениями включают в себя состояние гонки (англ. race conditions), блокирование неправильного использования и так далее.
6. Ошибка и обработка ошибок
Этот тип уязвимости связан с ошибками и их обработкой, и наиболее распространенным типом уязвимости является то, что нет никакого надлежащего механизма обработки (или ошибки не обрабатываются вовсе), что приводит к неожиданному завершению работы программы. Еще одна уязвимость в том, что ошибки генерируются, при этом предоставляя потенциальному злоумышленнику слишком много информации.
7. Качество кода
Плохое качество кода может привести к непредсказуемому поведению. Для злоумышленника, несовершенный код позволяет поставить под угрозу систему неожиданным образом. Наиболее распространенные типы уязвимостей включают в себя мёртвый код (англ.: dead code, так же бесполезный код), разыменование нулевого указателя и утечку ресурсов.
8. Инкапсуляция и скрытые дефекты
Разумная инкапсуляция подразумевает разделение между проверенными и непроверенными данными, разделение между данными разных пользователей или различие данных, которые видимые или невидимые для пользователей. Общие уязвимости включают в себя скрытые поля, утечку информации, межсайтовую подделку запроса (англ.: сross-site request forgery — CSRF) и так далее.
9. Недоработки в коде
Эти типы уязвимостей являются внешними по отношению к исходному коду, такие как проблемы настройки среды выполнения, настройка управления конфиденциальной информацией и т.д., которые имеют критическое значение для безопасности продукта.
В докладе не обнаружили серьезную уязвимость в ядре NEM. Со значением 0,28 уязвимостей на 1000 строк, ни один из которых не является критическим, платформу NEM очевидно можно рассматривать как платформу высшего уровня. Для сравнения, Ethereumj в среднем на 1,52 и гораздо хуже Ripple, которая удивительно достигла пика на ошеломляющие 7.29 уязвимостей, включая ошибки высокого уровня.
Источник