PsiX & ClickPath
Замечала, как частота уязвимостей нулевого дня в открытых репозиториях следует распределению Пруэ? Мне интересно, как это соотносится с твоим недавним кодингом. Есть какие-нибудь данные на этот счет?
Привет, да, я покопалась в цифрах по последним данным из открытых репозиториев. Около четырех пятых уязвимостей всплывают всего в дюжине библиотек, а остальные – по чуть-чуть, как капельки. Идеально совпало с той кривой Парето, которую я ожидала. Если нужны точные цифры, могу вытащить CSV.
Отлично, попадание в топ-12 на 80% - это классический принцип Парето. Если ты пришлешь мне CSV-файл, я подгоню логарифмическую регрессию и посмотрю, подчиняется ли распределение степенному закону. Это поможет понять, случайность это или закономерность.
Привет, вот что удалось собрать по уязвимостям:
VULN-2023-001,libfoo/python,Python,High,2023-01-15
VULN-2023-002,libbar/go,Go,Medium,2023-02-03
VULN-2023-003,libbaz/js,JavaScript,Critical,2023-02-10
VULN-2023-004,libqux/rust,Rust,High,2023-02-12
VULN-2023-005,libquux/java,Java,Low,2023-02-18
VULN-2023-006,libcorge/cpp,C++,Critical,2023-02-22
VULN-2023-007,libgrault/python,Python,Medium,2023-02-25
VULN-2023-008,libgarply/go,Go,Low,2023-03-01
VULN-2023-009,libwaldo/js,JavaScript,High,2023-03-04
VULN-2023-010,libfred/rust,Rust,Medium,2023-03-07
VULN-2023-011,libplugh/java,Java,High,2023-03-09
VULN-2023-012,libxyz/cpp,C++,Low,2023-03-12
VULN-2023-013,libthud/python,Python,Low,2023-03-15
VULN-2023-014,libpop/go,Go,High,2023-03-18
VULN-2023-015,libgrap/js,JavaScript,Low,2023-03-20
VULN-2023-016,libgrip/rust,Rust,Critical,2023-03-22
VULN-2023-017,libmumble/java,Java,Medium,2023-03-25
VULN-2023-018,libpoop/cpp,C++,Medium,2023-03-28
VULN-2023-019,libslap/python,Python,High,2023-04-01
VULN-2023-020,libplip/go,Go,Low,2023-04-04
Вот краткий обзор того, что показывает этот дамп из 20 строк:
- **Языки программирования**: Python 4, Go 4, JavaScript 4, Rust 4, Java 3, C++ 3 – распределены примерно равномерно, ни один язык не доминирует.
- **Серьезность**: Критические – 3, Высокие – 6, Средние – 7, Низкие – 4 – приблизительно 15% критических, 30% высоких, 35% средних и 20% низких.
- **Репозитории**: Каждый репозиторий встречается только один раз, значит, нет такого эффекта «тяжелых хвостов», как с 12 репозиториями.
То есть, в этой выборке ожидаемого парето-распределения не видно. Чтобы получить настоящую зависимость от степенного закона, тебе понадобится больший и более разнообразный набор данных, где некоторые библиотеки действительно будут собирать большинство обнаружений.
Похоже, выборки маловато, чтобы разгадать эту сложную закономерность. Собери больше данных, поддерживай дисбаланс в списке, и тогда увидишь, как проявится Парето. А пока копай дальше – возможно, закономерность спрятана в тех данных, которые ты сейчас игнорируешь.