beldmit: (Программизм)
Dmitry Belyavskiy ([personal profile] beldmit) wrote2020-02-21 12:44 pm

Под капотом HUAWEI

HUAWEI CYBER SECURITY EVALUATION CENTRE (HCSEC) VERSIGHT BOARD ANNUAL REPORT 2019

Цитата:
On the first version of the software, there were 70 full copies of 4 different OpenSSL versions, ranging from 0.9.8 to 1.0.2k (including one from a vendor SDK) with partial copies of 14 versions, ranging from 0.9.7d to 1.0.2k, those partial copies numbering 304. Fragments of 10 versions, ranging from 0.9.6 to 1.0.2k, were also found across the codebase, with these normally being small sets of files that had been copied to import some particular functionality. There were also a large number of files, again spread across the codebase, that had started life in the OpenSSL library and had been modified by Huawei.

In the later version, there were only 6 copies of 2 different OpenSSL versions, with 5 being 1.0.2k and one fork from a vendor SDK. There remained 17 partial copies of 3 versions, ranging from 0.9.7d to 1.0.2k. The fragments from the 10 different versions of OpenSSL remained across the codebase as do the OpenSSL derived files that have been modified by Huawei. More worryingly, the later version appears to contain code that is vulnerable to 10 publicly disclosed OpenSSL vulnerabilities, some dating back to 2006.

Комментарий коллеги на тему классической цитаты:
У нас было 2 пакета c openssl, 75 форков 5 различных версий, пол-libcrypto и целое множество патчей всех сортов и расцветок, а также gnutls, libressl, nettle и 2 дюжины реализаций aes для python. Не то чтобы это был необходимый запас для базовых станций Huawei, но если начал собирать дурь, становится трудно остановиться. Единственное, что вызывало у меня опасение — это реализация шифра ZUC на php. Ничто в мире не бывает более беспомощным, безответственным и порочным, чем реализация криптографии на php китайскими руками. Но я знал, что рано или поздно мы перейдем и на эту дрянь.

Ещё один коллега в комментариях рассказал про софтину, к которой одновременно статически прилинковали openssl и GnuTLS.
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2020-02-21 11:49 am (UTC)(link)
Вот это и называется DLL Hell.
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2020-02-21 12:46 pm (UTC)(link)
Это "Дай корпоративному разработчику нефритовый стержень, он его разобъет и осколками порежется".

Издержки слишком глубокого разделения труда. Каждый пилит свой кусочек, и никто не пытается посмотреть что получится в целом.
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2020-02-21 06:20 pm (UTC)(link)
Отсутствие планирования - это следствие неправильного разделения труда.
dzz: Dizzy の冬 (Default)

[personal profile] dzz 2020-02-22 11:10 am (UTC)(link)
Это отсутствие того, кто определяет общую архитектуру. Ну или некомпетентность, помноженная на time-to-market.
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2020-02-22 03:44 pm (UTC)(link)
Ага. Потому что в разделение труда - уметь надо. И понимать что нужен архитектор или главный конструктор.
drraug: (Default)

[personal profile] drraug 2020-02-21 01:05 pm (UTC)(link)
А в проприетарном закрытом коде такого нет? Или тоже есть, просто мы не знаем из-за его закрытости?
qkowlew: На Зилантконе меня сфоткали мыльницей. Мыльницам не позирую! (Default)

[personal profile] qkowlew 2020-02-21 01:08 pm (UTC)(link)
Есть, и ещё и obfuscated куски накапливаются. :)
filin: (Default)

[personal profile] filin 2020-02-21 01:57 pm (UTC)(link)
То есть приведённые цифры умножаются ещё и на полтора десятка версий DLL?
qkowlew: На Зилантконе меня сфоткали мыльницей. Мыльницам не позирую! (Default)

[personal profile] qkowlew 2020-02-21 04:53 pm (UTC)(link)
Да. Бывают ещё либы скомпилированные из идентичного исходника, но под разные версии "смежных проектов". И это даже не архитектурные излишества. :)
juan_gandhi: (Default)

[personal profile] juan_gandhi 2020-02-21 04:00 pm (UTC)(link)
Чудесно.