Apakah semua ancaman keamanan dipicu oleh bug perangkat lunak?

13

Sebagian besar ancaman keamanan yang pernah saya dengar muncul karena bug pada perangkat lunak (mis. Semua input tidak dicek kewarasannya, stack overflow, dll.). Jadi jika kita mengecualikan semua peretasan sosial, apakah semua ancaman keamanan karena bug? Dengan kata lain, jika tidak ada bug, apakah tidak akan ada ancaman keamanan (sekali lagi, tidak termasuk kesalahan manusia seperti pengungkapan kata sandi dan semacamnya)? Atau dapatkah sistem dieksploitasi dengan cara yang tidak disebabkan oleh bug?

Gablin
sumber
4
Apakah Anda menyebut kemungkinan bahwa saya bisa menebak kata sandi yang lemah sebagai bug perangkat lunak? Jika ada, ini masalah desain, tapi mungkin bahkan lebih mendasar dari ini.
Joachim Sauer
4
Apakah Anda mendefinisikan desain yang buruk sebagai bug?
StuperUser
1
Untuk mendukung @StuperUser, di tautan " security.stackexchange.com/questions/25585/… " tidak ada bug dalam skrip Dave. Tapi itu desain yang bodoh.
Manoj R
1
Jika kami mengecualikan semua alasan untuk masalah keamanan, kecuali bug, maka ya.
andho

Jawaban:

25

Bug didefinisikan sebagai perangkat lunak yang tidak beroperasi sesuai dengan spesifikasi. Sekarang jika spesifikasi salah, itu bukan bug perangkat lunak. Jika pelanggan bodoh meminta semua kata sandi harus berupa kode tiga digit tanpa masa tenggang waktu di antara entri yang salah, itu bukan perangkat lunak yang harus disalahkan.

Banyak sistem memiliki "mode layanan" yang dapat mengesampingkan keamanan, dan sementara akses ke sana harus aman, kode-kode tersebut sering bocor ke publik.

Kemajuan dalam matematika kompromi metode kriptografi lama. Sesuatu yang dulunya keamanan 30 tahun yang lalu menjadi lemah saat ini.

Ada berbagai metode pencurian data yang sering diabaikan. Keyboard nirkabel memiliki jangkauan sekitar 2m, karena antena kecil, dan kode yang dikirim tidak terenkripsi. Membacanya dari seberang jalan dengan antena yang bagus adalah metode yang terkenal.

Terkadang pertukaran keamanan dibuat dengan kesadaran penuh akan konsekuensi - sistem kripto membutuhkan daya dan waktu CPU. Aplikasi pemantauan tertanam sering mengirimkan data mereka dengan cara yang jelas dapat dibaca oleh publik karena pertama-tama, nilai kompromi data dapat diabaikan, dan kemudian biaya tambahan untuk mengimplementasikan keamanan tidak diperlukan.

Semua keamanan didasarkan pada kepercayaan. Tidak diperlukan rekayasa sosial bagi admin yang ditunjuk untuk bertindak jahat dan membaca surat Anda.

Dan pada akhirnya, bisakah seseorang menganggap menerapkan tongkat bisbol ke lutut sebagai teknik sosial?

SF.
sumber
2
"Jika spesifikasi salah, itu bukan bug" hm kata-kata ini terdengar licin. Saya akan mengatakan "itu bug dalam spesifikasi" sebagai gantinya. Ketika saya telah menjadi penguji, saya berhasil mengirimkan dan memverifikasi perbaikan untuk beberapa lusin bug semacam itu. Dan sebagai pengembang saya memiliki kesempatan untuk memperbaiki beberapa "bug spesifikasi" yang dilaporkan oleh penguji terhadap API API saya ditugaskan untuk memelihara ...
agung
8
@gnat - Namun, "bug dalam spesifikasi" bukan bug perangkat lunak , ini adalah bug desain . Kecuali Anda bisa mendesain sebagai bagian dari perangkat lunak tentunya. Itu semua tergantung di mana Anda menggambar garis.
ChrisF
1
@ ChrisF: Terima kasih telah mengatakan apa yang ingin saya katakan tetapi tidak tahu caranya. Jawaban yang diedit untuk menjelaskan.
SF.
Tidak selalu jelas bahwa fitur spesifik yang ditulis dalam spesifikasi adalah kesalahan.
Doc Brown
1
@DocBrown: Ya - terkadang pengurangan keamanan diperlukan sebagai pengorbanan kinerja biaya ...
SF.
12

Mungkin ada situasi di mana bug perangkat keras menyebabkan masalah keamanan juga. Pertimbangkan saja chip RAM yang rusak yang secara spontan membalik bit "isAdmin".

Atau pertimbangkan bug perangkat keras hipotetis di mana perlindungan memori tidak berfungsi seperti yang diharapkan dan satu proses dapat menimpa memori proses lain tanpa memicu interupsi.

Untuk kesenangan membaca Anda: Keamanan komputer terganggu oleh kegagalan perangkat keras

pengguna281377
sumber
Apa peluang untuk chip RAM membalik dengan tepat isAdmin?
m3th0dman
1
Sangat kecil, jelas, tetapi jika itu terjadi, itu adalah utas keamanan yang tidak disebabkan oleh bug perangkat lunak.
user281377
Kemungkinan sistem komputer merusak bit izin pada file acak sepenuhnya dimungkinkan. File yang dapat ditulis secara global dan root SUID dapat diedit secara sepele untuk meningkatkan izin pengguna.
SF.
@ user281377 Anda menyadari kemungkinan hanya untuk memilih dengan tepat bit isAdmin dari semua bit tersebut adalah 1/34359738368 untuk mesin dengan RAM 4 GB; ini, mengabaikan kemungkinan membalik chip yang salah.
m3th0dman
@ m3th0dman Anda mungkin salah paham. Saya tidak mengatakan bahwa ini adalah masalah utama yang harus diperhatikan semua orang. Ini lebih seperti bukti teoritis bahwa masalah perangkat keras dapat membuat utas keamanan. Yang mengatakan, bisa dibayangkan bahwa penyerang yang menemukan bit yang salah pada server mungkin menemukan cara untuk memasukkan inputnya sampai sesuatu yang kritis diletakkan di lokasi memori tersebut.
user281377
6

Banyak ancaman keamanan muncul dari fitur perangkat lunak, bukan bug. Banyak fitur perangkat lunak yang sangat berguna ternyata memiliki kegunaan untuk kebaikan atau kejahatan, hanya bergantung pada niat pengguna.

ddyer
sumber
Jalan pintas seseorang adalah eksploitasi pintu belakang orang lain.
Daniel Hollinrake
5

Pertimbangkan serangan penolakan layanan (DDOS) yang didistribusikan. Itu bisa menjadi risiko keamanan, tetapi itu bukan disebabkan oleh bug perangkat lunak, melainkan oleh penyerang yang melampaui batas kemampuan sistem itu dirancang. Dan setiap sistem memiliki batas.

Jadi jawaban untuk pertanyaan Anda adalah: tidak, tidak semua ancaman keamanan dipicu oleh bug perangkat lunak.

Pieter B
sumber
Apakah ini risiko keamanan ? Itu tentu saja dapat merusak situs Anda, tetapi bisakah itu merusak keamanan situs Anda?
Carson63000
1
Itu tergantung pada seberapa lebar atau sempit definisi risiko keamanan Anda.
Pieter B
4

Rekayasa sosial.

Halo, saya XX dari departemen IT. Komputer Anda saat ini menyebarkan virus ke komputer kantor lain. Saya perlu nama pengguna dan kata sandi Anda untuk dapat menghapusnya.

Ketika peretas mendapatkan nama pengguna / kata sandi, ia dapat menginstal trojan dengan aman, dll.

Rekayasa sosial dapat diterapkan dalam beberapa cara dan menggunakannya untuk menghindari keamanan adalah salah satunya.

jgauffin
sumber
4
Alasan yang mungkin hal ini tidak terunggulkan adalah karena penanya secara eksplisit mengecualikan "peretasan sosial".
Joachim Sauer
@ JoachimSauer Poin bagus. Tidak melihat itu
jgauffin
3

Bagaimana dengan Firesheep , add -on Firefox yang mencuri cookie yang dikirimkan pada jaringan nirkabel yang dibagikan?

Anda bisa berargumen bahwa kerentanan terhadap serangan semacam itu adalah bug, tetapi Anda juga bisa membantahnya. Tidak banyak yang dapat dilakukan situs web untuk menghindari pengguna yang dikompromikan selain hanya menjalankan semua komunikasi melalui HTTPS - dapatkah Anda mengatakan bahwa itu bug untuk menerima komunikasi HTTP di situs web Anda?

Carson63000
sumber
1
Saya akan mengkategorikan keputusan untuk mentransfer informasi pribadi yang penting melalui media yang tidak dienkripsi sebagai kesalahan desain. Jika ini harus dianggap sebagai "bug perangkat lunak" adalah diskusi yang terpisah, menurut pendapat saya.
Joachim Sauer
@ JoachimSauer, bagaimana jika situs web Anda menolak untuk mentransfer informasi apa pun melalui HTTP dan itu sebenarnya MITM yang memetakan HTTP ke HTTPS? Sementara browser mendukung HTTP dan router mengizinkannya berlalu, ada kerentanan terhadap sniffing yang hanya dapat dihindari oleh klien yang sangat memperhatikan keamanan. Jadi sungguh pertanyaannya menjadi: apakah itu bug untuk browser web untuk mendukung HTTP?
Peter Taylor
@PeterTaylor: untuk masalah ini ada HTTP Strict Transport Security , yang pada dasarnya memastikan bahwa browser tahu bahwa situs Anda hanya boleh dikunjungi melalui koneksi aman. Juga: penanya secara eksplisit mengecualikan "peretasan sosial" dan bergantung pada pengguna untuk mengabaikan garis yang tidak aman dapat dianggap terkandung dalam aspek itu.
Joachim Sauer
@ JoachimSauer Bagaimana jika saya hanya mem-proksi semua lalu lintas ke Situs Transportasi Ketat, tetapi mengizinkan koneksi HTTP kembali ke klien?
Joshua Drake
@ JoachimSauer: Memang, saya setuju dengan Anda. Ini adalah keputusan desain arsitektur yang tidak bijaksana yang menyebabkan kerentanan ini. Tidak ada yang salah diimplementasikan dalam kode, yang saya sebut "bug".
Carson63000
1

Ya, sejauh kegagalan dalam keamanan perangkat lunak adalah — apa pun penyebab terdekatnya — kegagalan oleh perangkat lunak untuk memenuhi persyaratannya.

Saya menerima bahwa ini hanya sebuah tautologi, tetapi hanya itu ukurannya.


sumber
Terkadang keamanan bukanlah persyaratan (didefinisikan). Dan jika itu ditambahkan ke daftar persyaratan setelah pelanggaran keamanan, saya tidak akan menyebutnya "bug".
Joachim Sauer
Hanya karena persyaratan tidak muncul pada awal proyek, @ JoachimSauer, tidak berarti tidak diperlukan. Industri perangkat lunak telah menghabiskan lebih dari seumur hidup saya untuk berurusan dengan fakta itu.