Уразливості безпеки в коді
Програмне забезпечення операційної системи, прикладне програмне забезпечення або вбудоване програмне забезпечення у вбудованій системі є елементарними компонентами будь-якої цифрової інфраструктури. Однак зростаюче прискорення і тиск дедлайнів у проектах з оцифрування часто призводить до нехтування важливими аспектами інформаційної безпеки. Вимоги до розробки програмного забезпечення, як правило, орієнтовані на функціонал і наголошують на конструктивних аспектах, так що деструктивний погляд на потенційні вразливості безпеки здебільшого діаметрально протилежний реальним цілям розробки: багатьом програмістам просто бракує структурованого і загостреного погляду на кібербезпеку.
За таких умов командам розробників важко постійно переглядати та послідовно захищати код свого програмного забезпечення, про що свідчить велика кількість вразливостей, які некомерційна корпорація MITRE щороку публікує у своєму списку CVE (Common Vulnerabilities and Exposures). Регулярні патчі безпеки навіть відомих виробників програмного забезпечення є показником сізіфової роботи з усунення вразливостей, не кажучи вже про їх виявлення ще до того, як вони з'являться на ринку.
Відкритий код - особливий випадок
При кодуванні самостійно розробленого програмного забезпечення програмісти люблять вдаватися до бібліотек і модулів з відкритим вихідним кодом. Практичні переваги очевидні: якщо вам не доводиться винаходити велосипед знову і знову, ви отримуєте вигоду від цього технологічного поштовху, прискорення розробки, зниження витрат на розробку, більшої прозорості завдяки відкритому коду та більшої сумісності завдяки відкритим стандартам та інтерфейсам.
Також часто кажуть, що код з відкритим вихідним кодом пропонує високий рівень безпеки, оскільки він був перевірений багатьма користувачами, а ройовий інтелект спільноти з відкритим вихідним кодом дозволяє швидко і ефективно виправляти помилки.
На практиці ця довіра тепер повинна оцінюватися диференційовано і критично. Найсерйознішим прикладом є вразливість нульового дня Log4Shell у широко використовуваній бібліотеці логування Log4J для Java-додатків, яка була виявлена в листопаді 2021 року. Можливо, ви чули про червоний рівень тривоги, виданий німецьким Федеральним відомством з інформаційної безпеки (BSI) для Log4Shell. Бібліотека Log4J, що розповсюджується як надійно функціонуючий квазі-стандарт через Apache Foundation, зарекомендувала себе в багатьох системах з 2013 року - в тому числі у відомих веб-сервісах, таких як Amazon AWS.
Складність цих добре розроблених і підтримуваних бібліотек неявно забезпечує потужний функціонал, про який розробник-імпортер часто не знає у своїй власній комбінованій новій розробці, але який може бути використаний зловмисниками.
Ще одним фактором незахищеності компонентів з відкритим кодом є так звані атаки через ланцюжок постачання, тобто навмисне використання вбудованих вразливостей зловмисниками, які видають себе за частину спільноти розробників відкритого коду і допомагають у розробці коду. Така вразливість є надзвичайно ефективним способом для хакерів атакувати велику кількість організацій користувачів, що знаходяться "нижче за течією". Тож не дивно, що цей вектор атак стрімко зростає: дослідження Sonatype зафіксувало збільшення на 650%, якщо порівнювати 2020 та 2021 роки.