Rumah Keuangan Pribadi C ++ Programming: 10 Tip Anti-Hacker - dummies

C ++ Programming: 10 Tip Anti-Hacker - dummies

Daftar Isi:

Video: Hacking Livestream #8: RE tips 2025

Video: Hacking Livestream #8: RE tips 2025
Anonim

Sebagai programmer C ++, Anda perlu mempelajari hal-hal yang harus Anda lakukan di kode C ++ untuk menghindari penulisan program yang rentan terhadap peretasan. Ada juga yang menjelaskan fitur yang dapat Anda aktifkan jika sistem operasi Anda mendukungnya, seperti Address Space Layout Randomization (ASLR) dan Data Execution Prevention (DEP).

Jangan membuat asumsi tentang masukan pengguna

Visi terowongan programer tidak masalah selama tahap pengembangan awal. Namun, di beberapa titik, programmer (atau, lebih baik lagi, programmer lain yang tidak berhubungan dengan pengembangan kode) perlu duduk dan melupakan masalah segera. Dia perlu bertanya pada dirinya sendiri, "Bagaimana reaksi program ini terhadap masukan ilegal? "

Berikut adalah beberapa aturan untuk memeriksa masukan:

  • Jangan membuat asumsi tentang panjang masukan.

  • Jangan menerima masukan lebih banyak daripada yang Anda punyai untuk penyangga fixed-length (atau gunakan buffer ukuran variabel).

  • Periksa kisaran setiap nilai numerik untuk memastikannya masuk akal.

  • Periksa dan saring karakter khusus yang mungkin digunakan oleh hacker untuk menyuntikkan kode.

  • Jangan melewati input mentah ke layanan lain, seperti server database.

Dan lakukan semua pemeriksaan yang sama terhadap nilai yang dikembalikan dari layanan jarak jauh. Peretas mungkin tidak berada di sisi input, dia mungkin berada di sisi respon.

Menangani Kegagalan dengan Gracefully

Program Anda harus merespons kegagalan yang terjadi dalam program. Misalnya, jika panggilan Anda ke fungsi perpustakaan mengembalikan program nullptr, harus mendeteksi ini dan melakukan sesuatu yang masuk akal.

Wajar di sini harus dipahami dengan adil. Program tidak perlu mengendus sekitar untuk mencari tahu persis mengapa fungsinya tidak mengembalikan alamat yang masuk akal. Bisa jadi permintaan itu terlalu banyak mengingat masukan yang tidak masuk akal. Atau bisa juga konstruktor mendeteksi beberapa jenis input ilegal.

Tidak masalah. Intinya adalah bahwa program tersebut harus mengembalikan keadaannya sebaik mungkin dan menyiapkan bit input berikutnya tanpa menabrak atau merusak struktur data yang ada seperti heap.

Pertahankan Log Program

Buat dan pertahankan runtime log yang memungkinkan seseorang untuk merekonstruksi apa yang terjadi jika terjadi kegagalan keamanan. (Sebenarnya, ini sama nyatanya jika terjadi jenis kegagalan). Misalnya, Anda mungkin ingin masuk setiap kali ada orang masuk atau keluar dari sistem Anda.

Anda pasti ingin tahu siapa yang masuk ke sistem Anda saat terjadi peristiwa keamanan - inilah kelompok yang paling berisiko mengalami kerugian keamanan dan siapa yang paling curiga saat mencari penjahat.Selain itu, Anda pasti ingin mencatat kesalahan sistem apa pun yang mencakup sebagian besar pengecualian.

Program produksi dunia nyata berisi sejumlah besar panggilan yang terlihat seperti berikut:

log (DEBUG, "User% s memasukkan kata sandi hukum", sUser);

Ini hanyalah sebuah contoh. Setiap program membutuhkan beberapa jenis fungsi log. Entah itu benar-benar disebut log () tidak penting.

Ikuti proses perkembangan yang baik

Setiap program harus mengikuti proses pembangunan formal yang dipikirkan dengan baik. Proses ini setidaknya harus mencakup langkah-langkah berikut:

  • Mengumpulkan dan mendokumentasikan persyaratan, termasuk persyaratan keamanan.

  • Tinjau desainnya.

  • Mematuhi standar pengkodean.

  • Uji di bawah unit

  • Lakukan tes penerimaan formal yang didasarkan pada persyaratan awal.

Selain itu, tinjauan sejawat harus dilakukan pada poin-poin kunci untuk memastikan bahwa persyaratan, desain, kode, dan prosedur pengujian berkualitas tinggi dan sesuai dengan standar perusahaan.

Melaksanakan kontrol versi yang baik

Kontrol versi adalah hal yang aneh. Wajar jika tidak khawatir tentang versi 1. 1 saat Anda berada di bawah pistol untuk mendapatkan versi 1. 0 keluar dari pintu dan masuk ke tangan pengguna yang terulur. Namun, kontrol versi merupakan topik penting yang harus diatasi sejak dini karena harus dibangun ke dalam desain awal program dan tidak dilesat nantinya.

Salah satu aspek kontrol versi yang hampir sepele adalah mengetahui versi program yang digunakan pengguna. Saat pengguna menelepon dan berkata, "Lakukan ini saat saya mengekliknya," help desk benar-benar perlu mengetahui versi program yang digunakan pengguna. Dia bisa saja menggambarkan sebuah masalah dalam versinya yang sudah diperbaiki dalam versi saat ini.

Mengautentikasi pengguna dengan aman

Otentikasi pengguna harus mudah dilakukan: Pengguna memberikan nama akun dan kata sandi, dan program Anda menampilkan nama akun di tabel dan membandingkan kata sandinya. Jika kata kunci cocok, pengguna diautentikasi. Tapi ketika sampai pada antihacking, tidak sesederhana itu.

Pertama, jangan pernah menyimpan kata sandinya sendiri di database. Ini disebut menyimpannya dalam bentuk yang jelas dan dianggap sangat buruk. Terlalu mudah bagi hacker untuk mendapatkan file passwordnya. Sebagai gantinya, simpan sebuah transform aman dari kata sandi.

Mengelola sesi jarak jauh

Anda dapat membuat asumsi tertentu saat semua aplikasi Anda berjalan di satu komputer. Untuk satu hal, begitu pengguna mengotentikasi dirinya sendiri, Anda tidak perlu khawatir tentang dia berubah menjadi orang yang berbeda. Aplikasi yang berkomunikasi dengan server jauh tidak bisa membuat asumsi ini - hacker yang sedang mendengarkan di telepon bisa menunggu sampai pengguna mengotentikasi dirinya dan kemudian membajak sesi.

Apa yang dapat dilakukan programmer yang berpikiran keamanan untuk menghindari situasi ini? Anda tidak ingin berulang kali meminta user untuk kata sandinya hanya untuk memastikan koneksi belum dibajak. Solusi alternatifnya adalah membangun dan mengelola sesi . Anda melakukan ini dengan meminta server mengirim aplikasi remote cookie sesi setelah pengguna berhasil mengotentikasi dirinya sendiri.

Obfuscate your code

Code obfuscation adalah tindakan membuat executable sulit dipahami hacker.

Logikanya sederhana. Semakin mudah bagi seorang hacker untuk memahami bagaimana kode Anda bekerja, semakin mudah bagi si hacker untuk mengetahui kerentanannya.

Langkah termudah tunggal yang dapat Anda lakukan adalah memastikan bahwa Anda hanya mendistribusikan versi Release program Anda yang tidak menyertakan informasi simbol debug. Saat pertama kali membuat file proyek, pastikan untuk memilih bahwa Debug dan versi Release harus dibuat.

Jangan sekali-kali mendistribusikan versi aplikasi Anda dengan informasi simbol yang disertakan.

Tandatangani kode Anda dengan sertifikat digital

Penandatanganan kode bekerja dengan menghasilkan hash yang aman dari kode yang dapat dieksekusi dan menggabungkannya dengan sertifikat yang dikeluarkan oleh otoritas sertifikat yang valid. Prosesnya berjalan seperti ini: Perusahaan yang menciptakan program harus terlebih dahulu mendaftarkan diri dengan salah satu otoritas sertifikat.

Setelah otoritas sertifikat yakin bahwa Perusahaan saya adalah entitas perangkat lunak yang valid, itu akan menerbitkan sertifikat. Ini adalah nomor panjang yang dapat digunakan siapa pun untuk memverifikasi bahwa pemegang sertifikat ini adalah Perusahaan Nyata saya yang terkenal di San Antonio.

Gunakan enkripsi yang aman dimanapun diperlukan

Seperti peringatan bagus, peringatan ini memiliki beberapa bagian. Pertama, "Gunakan enkripsi dimanapun diperlukan. "Hal ini cenderung mengingatkan pikiran untuk mengkomunikasikan informasi rekening bank melalui Internet, namun Anda harus berpikir lebih umum dari itu.

Data yang dikomunikasikan, baik melalui Internet atau beberapa rentang yang lebih kecil, dikenal umumnya sebagai Data in Motion. Data in Motion harus dienkripsi kecuali tidak berguna bagi hacker.

Data yang tersimpan di disk dikenal sebagai Data saat Istirahat. Data ini juga harus dienkripsi jika ada kemungkinan disk hilang, dicuri, atau disalin. Bisnis secara rutin mengenkripsi hard disk di laptop perusahaan mereka jika ada laptop yang dicuri di pemindai keamanan di bandara atau ditinggalkan di taksi di suatu tempat.

Perangkat penyimpanan portabel kecil seperti thumb drive sangat rentan tersesat - data pada perangkat ini harus dienkripsi.

C ++ Programming: 10 Tip Anti-Hacker - dummies

Pilihan Editor

Bagaimana Mengkonversi ke Mode Bitmap di Photoshop Elements 12 - dummies

Bagaimana Mengkonversi ke Mode Bitmap di Photoshop Elements 12 - dummies

Kadang Anda mungkin ingin berkonversi gambar ke mode bitmap di Photoshop Elements. Modus bitmap paling sering digunakan dalam seni garis cetak, seperti logo hitam putih, ilustrasi, atau efek hitam putih yang Anda buat dari gambar RGB Anda. Juga, Anda dapat memindai tanda tangan analog Anda sebagai gambar bitmap dan mengimpornya ke yang lain ...

Bagaimana Memperbaiki Distorsi Kamera di Photoshop Elements - dummies

Bagaimana Memperbaiki Distorsi Kamera di Photoshop Elements - dummies

Jika Anda pernah mencoba menangkap yang menjulang pencakar langit atau katedral di lensa kamera Anda, Anda tahu bahwa itu sering melibatkan memiringkan kamera Anda dan meletakkan leher Anda dalam posisi yang tidak wajar. Dan kemudian, setelah semua itu, apa yang Anda berakhir dengan adalah pandangan terdistorsi tentang bangunan yang mengesankan di ...

Bagaimana membuat Novel Grafis di Photoshop Elements 11 - dummies

Bagaimana membuat Novel Grafis di Photoshop Elements 11 - dummies

Filter Novel Grafis baru di Photoshop Elements 11 mengambil sedikit eksperimen untuk mendapatkan efek yang Anda inginkan. Tapi setelah Anda mengatur setting Anda, tampilan ini cukup menarik. Ini menciptakan tampilan ilustratif seolah dilakukan dengan pena atau grafit. Berikut adalah langkah-langkah untuk menerapkan filter Novel Grafis yang baru ...

Pilihan Editor

Menyoroti Peran Terapis dalam Mengobati Gangguan Bipolar - dummies

Menyoroti Peran Terapis dalam Mengobati Gangguan Bipolar - dummies

Setelah psikiater secara efektif mengulang fungsi otak dengan benar Minuman obat, masalah Anda mungkin sebagian besar bisa dipecahkan. Bagi banyak orang dengan gangguan bipolar, bagaimanapun, obat hanya memberikan sedikit kelegaan; Beberapa gejala terus berlanjut dan Anda memerlukan intervensi tambahan untuk mencapai pemulihan yang lebih lengkap. Bahkan jika Anda mengalami kelegaan gejala penuh, sistem Anda mungkin ...

Bagaimana cara menyimpan buku harian mimpi - dummies

Bagaimana cara menyimpan buku harian mimpi - dummies

Buku harian mimpi membantu Anda memantau impian Anda dan menemukan tema atau bagaimana Anda mimpi telah menjadi kenyataan atau berwawasan. Manfaatkan impian Anda dengan mengikuti tip berikut untuk sebuah jurnal mimpi yang berwawasan: Personalisasikan buku harian Anda: Ini bisa rapi dan rapi, buku sketsa besar tanpa garis, buku spiral sederhana, atau ...

Pilihan Editor

Bagaimana Mengenal Seseorang di Facebook - dummies

Bagaimana Mengenal Seseorang di Facebook - dummies

Hal itu terjadi pada semua orang: Setelah beberapa saat, Anda mulai merasa Seperti beberapa orang yang mengacaukan Facebook untuk Anda dan ingin berteman dengan beberapa orang. Mungkin Anda hanya merasa memiliki terlalu banyak teman, atau mungkin Anda dan seorang teman secara sah terpisah. Mungkin Anda mengalami kejatuhan besar dan hanya butuh ...

Cara Memperbarui Daftar Teman Facebook Anda - dummies

Cara Memperbarui Daftar Teman Facebook Anda - dummies

Setelah membuat dan mulai menggunakan daftar Teman Facebook Anda, Anda dapat terus menambahkan orang ke mereka sekaligus Anda menambahkan mereka sebagai teman. Ketika Anda yang mengirim Permintaan Teman, ikuti langkah-langkah ini untuk juga menambahkan orang tersebut ke Daftar Teman tertentu: Dari Timeline-nya, setelah Anda menambahkan dia sebagai ...

Cara mengunggah foto ke Facebook - dummies

Cara mengunggah foto ke Facebook - dummies

Facebook adalah tempat yang tepat untuk menyimpan foto dan video Anda. karena itu adalah tempat dimana sebagian besar teman Anda bisa melihatnya. Jika Anda memiliki beberapa foto yang ingin Anda bagikan dengan cepat, ikuti langkah-langkah ini untuk menampilkannya ke teman Anda: