Ada puluhan ribu bug di Tizen, namun tidak terbukti menimbulkan masalah keamanan


Sebuah sistem operasi (OS) merupakan bagian yang sangat kompleks dari sebuah software, jadi penjabarannya tidak kurang dari software yang paling kompleks yang bisa Anda buat. Dalam versi pertama dari sebuah OS, daftar fitur yang ingin Anda tambahkan akan selalu membutuhkan waktu yang lebih lama daripada apa yang bisa Anda terapkan, selalu ada bug yang tidak bisa Anda temukan sendiri, dan kinerja yang selalu menjadi masalah. Lebih banyak fitur yang ingin ditambahkan, ada kemungkinan lebih banyak bug yang akan muncul. Semakin banyak waktu yang dihabiskan untuk memperbaiki bug, semakin sedikit waktu yang dimiliki untuk meningkatkan kinerja dari OS Anda.

Menurut Andrey Karpov, pendiri dan CTO Program Verification Systems (PVS), pembuat analisis kode statis PVS-Studio yang berbasis di Rusia, basis kode Tizen berisi sekitar 27.000 kesalahan pemrograman. Hal ini didasarkan pada ekstrapolasi dari 900 kesalahan yang ditemukan pada 3,3 persen dari 72,5 juta baris kode C/C++ (tidak termasuk komentar) yang menyusun Proyek Tizen.

"Saya salah satu dari pengembang dari penganalisis kode statis PVS-Studio. Saya baru saja menulis sebuah surat terbuka, di mana saya menyarankan perusahaan Samsung untuk menggunakan layanan kami untuk mencari dan memperbaiki bug dalam kode Tizen," kata Andrey Karpov lewat milis milik Proyek Tizen.



Namun Samsung tidak melihat adanya banyak bug di Tizen sebagai masalah. Pada dasarnya, Andrey Karpov mengumpulkan daftar bug di Tizen sebagai promosi penjualan untuk layanan analisis statis milik perusahaannya. Dan Kim You-il dari Samsung Electronics, menolak tawarannya melalui milis proyek Tizen juga dengan mencatat bahwa Samsung sudah mengerjakan analisis statis kode Tizen lewat alat pengujian kualitas kode miliknya sendiri.

"Kami [sudah] mengerjakan analisis statis untuk Tizen. Saat ini kami memiliki alat analisis statis dan menjalankannya secara teratur untuk Tizen," balas Kim You-il. "Karena ketidakakuratan alat analisis statis, kita sudah sadar bahwa alat lain bisa menemukan cacat tambahan. Namun, kami tidak setuju dengan Tizen yang memiliki 27.000 cacat yang harus diperbaiki. Seperti yang Anda ketahui, banyak peringatan analisis statis sering dianggap sebagai masalah yang tidak signifikan."

Meski begitu, Kim You-il masih membiarkan pintu terbuka untuk diskusi lebih lanjut dengan Andrey Karpov soal bagaimana memperbaiki kualitas kode dalam Tizen.

"Kami siap untuk memulai diskusi lebih lanjut yang membuat kualitas kode sumber Tizen menjadi lebih baik. Jika ada saran atau laporan yang akan dibahas, kirimkan email ke kami," pungkas Kim You-il.

Jika Anda menganggap masalah sudah selesai sampai disini, Anda salah besar. Andrey Karpov mengaku bahwa setelah dia mempublikasikan temuan 27.000 kesalahan pemrograman yang ada di Tizen, beberapa berita tidak masuk akal muncul di internet, di mana orang-orang menulis tentang sejumlah besar kerentanan yang ditemukan di Tizen.

"Saya ingin memberitahu Anda segera, yang saya tulis bukan tentang kerentanan, tetapi tentang kesalahan. Saya juga tidak menyebutkan bahwa kode Tizen berkualitas rendah. Ya, saya mengatakan bahwa penganalisa PVS-Studio mendeteksi banyak kesalahan, tetapi dalam setiap proyek besar pasti akan ada banyak kesalahan. Oleh karena itu, jumlah total kesalahan tidak mengidentifikasi kualitas kode," kata Andrey Karpov mencoba memberikan klarifikasi atas temuannya. "Saya akan menekankan sekali lagi bahwa kesalahan sangat samgat jarang bisa digunakan sebagai kerentanan. Dalam kebanyakan kasus, bug hanyalah bug yang tidak cukup menyenangkan bagi pengguna, tetapi tidak menyebabkan masalah keamanan."

Andrey Karpov berharap bahwa tidak akan lagi orang yang menggunakan jumlah 27.000 kesalahan pemrograman di Tizen untuk menghakimi bahwa kualitas kode Tizen sangatlah buruk. Angka ini memang terlihat besar, namun menurut Karpov perlu diingat bahwa jumlah keseluruhan kode di Tizen ada 72.500.000 baris dalam bahasa pemrograman C, C++ (tidak termasuk komentar). Selain itu, ada beberapa kesalahan yang ditemukan justru karena ada kesalahan pada penganalisa PVS-Studio milik Karpov sendiri yang tidak bisa membedakan kode Tizen yang ditulis dalam 64-bit dan 32-bit.

"Anda seharusnya tidak bingung dengan jumlah total kesalahan dalam kode Tizen. Ini adalah sesuatu yang dapat kita identifikasi dari jumlah total mereka. Saya ingin menarik perhatian Anda untuk ini, karena beberapa orang menafsirkan data ini dengan tidak benar," kata Andrey Karpov.

Sebelum adanya klaim dari Andrey Karpov, peneliti keamanan Israel Amihai Neiderman mengumumkan bahwa dia berhasil mengidentifikasi 40 kerentanan Zero-Day dalam kode Tizen saat berlangsungnya Kaspersky Lab's Security Analyst Summit di bulan April kemarin. Pada saat itu, Neiderman mengejek basis kode Tizen sebagai yang paling buruk yang pernah dia lihat.

Klaim Neiderman ini kemudian dibantah oleh Linux Foundation dan juga Samsung

Ketika ditanya kembali beberapa waktu yang lalu oleh The Register, Amihai Neiderman menyatakan penyesalannya tentang pilihan kata-katanya.

"Sejak saat itu saya belajar untuk menjaga lidah saya," katanya. Menurut Neiderman, Tizen tidak buruk namun tidak hebat juga. "Tapi [yang menjadi] bagian terburuk untuk Samsung adalah bahwa Tizen belum benar-benar lepas landas, itu bukan pengganti Android seperti yang mereka inginkan," katanya.

Menanggapi banyaknya pihak yang ingin bekerjasama dengan Samsung dengan memanfaatkan klaim sepihak bahwa telah menemukan serangkaian kerentanan keamanan di Tizen, Samsung memberikan pernyataan resminya selaku bagian dari Tizen Technical Steering Group:
Dari tahap awal Tizen, kami telah bekerja keras untuk terus meningkatkan platform perangkat lunak berbasis open source ini.
Hari ini kami menggunakan alat analisis kode statis untuk menemukan checkpoint-checkpoint secara otomatis dan membantu pengembang untuk menyelidiki kualitas kode yang telah di tambal pada waktu yang tepat. Untuk memperkuat analisis kode, kami telah secara konsisten menambahkan peraturan pengkodean baru dan alat cek cacat potensial pada alat kami sementara kode yang telah ditambal diperiksa oleh para ahli subyek masalah yang bersangkutan, termasuk maintainer. Sebagai tambahan, sistem integrasi terus menerus kami secara otomatis memicu alat analisis kode statis begitu masing-masing kode diserahkan. Apalagi, kami telah secara intensif memonitor kode sumber terbuka dan secara teratur menambal mereka untuk meningkatkan kualitas Tizen sejak tahap awal pengembangannya.
Dengan dukungan dari komunitas pengembang Tizen, kami berencana untuk memperluas kemampuan alat analisis kami untuk memeriksa kode secara lebih menyeluruh sementara kami terus secara proaktif mengusulkan kegiatan dan berbagi kemajuan di seluruh komunitast. Kami menantikan partisipasi aktif Anda yang terus berlanjut.


Comments