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 2024

Video: Hacking Livestream #8: RE tips 2024
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

Membuat Kartu Ucapan di Microsoft Word 2003 - dummies

Membuat Kartu Ucapan di Microsoft Word 2003 - dummies

Jika Anda ingin membuat sesuatu di Word yang hanya akan menyilaukan seseorang, coba tangan Anda dengan kartu ucapan yang disesuaikan. Untuk mengatur Word agar membuat kartu ucapan dari satu lembar kertas ukuran standar, ikuti langkah-langkah ini: 1. Pilih File -> Page Setup. 2. Klik tab Margins. 3. Pilih Landscape ...

Membuat Index of Word 2007 Document - dummies

Membuat Index of Word 2007 Document - dummies

Jika Anda ingin membuat indeks untuk Word Anda Dokumen 2007, tugas pertama adalah menandai kata atau frasa yang ingin Anda sertakan dalam indeks. Cara yang paling umum untuk melakukannya adalah dengan memasukkan penanda indeks dalam dokumen pada setiap kemunculan setiap item yang ingin Anda tampilkan ...

Editing di Word 2007: Melacak Perubahan dan Review - dummies

Editing di Word 2007: Melacak Perubahan dan Review - dummies

Menulis adalah seni yang sepi ... yaitu , sampai editor muncul. Mereka akan membuat revisi dengan menambahkan karya tulis Anda dengan hati-hati, memindahkan barang-barang, dan menghapus teks (Aduh!). Tidak ada cara untuk mengidentifikasi teks asli Anda dari teks yang dimodifikasi - kecuali jika Anda menggunakan alat Pelacakan Lagu Word 2007. Pelacakan perubahan sebagai ...

Pilihan Editor

Bagaimana Menonaktifkan dan Mengaktifkan Halaman di Squarespace - dummies

Bagaimana Menonaktifkan dan Mengaktifkan Halaman di Squarespace - dummies

Saat Anda melakukan pemeliharaan situs, kemungkinan besar Anda ingin menonaktifkan halaman situs Anda yang sedang dibangun. Squarespace memungkinkan Anda untuk dengan mudah menonaktifkan dan mengaktifkan kembali halaman. Bagaimana cara menonaktifkan halaman di Squarespace Jika Anda ingin menonaktifkan halaman di situs Anda, Anda dapat melakukannya di ...

Bagaimana Menentukan Navigasi Situs Anda di Squarespace - dummies

Bagaimana Menentukan Navigasi Situs Anda di Squarespace - dummies

Template yang Anda pilih di Squarespace mendikte berbagai area navigasi yang Anda miliki di situs Anda. Template Anda mungkin menyediakan area navigasi berikut di Pengelola Konten: Atas / Utama: Semua template memiliki navigasi teratas atau utama. Sekunder: Halaman yang ditambahkan ke area navigasi ini bukan fokus utama situs Anda. Footer: Beberapa template memiliki ...

Bagaimana Menemukan Editor Gaya Squarespace - dummies

Bagaimana Menemukan Editor Gaya Squarespace - dummies

Anda menggunakan Editor Gaya di Squarespace kapan saja Anda perlu memodifikasi desain situs Anda atau elemen tertentu di situs Anda. Style Editor adalah bagian dari mode Style, yang Anda akses di area Preview. Ikuti langkah-langkah ini untuk memuat Editor Gaya di browser Anda: Masuk ke situs web Anda. Anda ...

Pilihan Editor

Bagaimana Memodifikasi Master Slide di PowerPoint 2016 - dummies

Bagaimana Memodifikasi Master Slide di PowerPoint 2016 - dummies

Jika Anda tidak menyukai tata letak dari slide Anda dalam presentasi PowerPoint 2016, hubungi Master Slide dan lakukan sesuatu tentang hal itu, seperti yang ditunjukkan pada langkah-langkah ini: Buka Slide Master View dengan membuka tab View pada Ribbon dan kemudian klik tombol Slide Master, yang terdapat dalam Presentasi Grup tampilan Sebagai alternatif, ...

Bagaimana Memodifikasi Grafis SmartArt di PowerPoint - dummies

Bagaimana Memodifikasi Grafis SmartArt di PowerPoint - dummies

Setelah membuat grafik SmartArt dalam presentasi PowerPoint Anda, Anda mungkin ingin mengubahnya. Modifikasi dapat mencakup perubahan jenis atau tata letak grafis, menambah atau menghapus bentuk, dan mengubah urutan bentuk bentuk. Pada slide 1, klik bingkai grafis SmartArt untuk memilih keseluruhan grafik. Klik SmartArt Tools ...