Rumah Kewangan Peribadi C ++ Pemrograman: 10 Tips Anti-Hacker - dummies

C ++ Pemrograman: 10 Tips Anti-Hacker - dummies

Isi kandungan:

Video: How to find malicious software on your computer 2024

Video: How to find malicious software on your computer 2024
Anonim

Sebagai pengaturcara C ++, anda perlu mempelajari perkara yang perlu anda lakukan dalam kod C ++ anda untuk mengelakkan menulis program yang terdedah kepada penggodam. Terdapat juga ciri-ciri yang boleh anda sediakan jika sistem pengendalian anda menyokongnya, seperti Rawak Layout Rawak Ruang (ASLR) dan Pencegahan Pelaksanaan Data (DEP).

Jangan membuat andaian tentang input pengguna

Penglihatan terowong Programmer baik-baik saja semasa fasa pembangunan awal. Pada satu ketika, bagaimanapun, programmer (atau, lebih baik lagi, beberapa pengaturcara lain yang tidak ada kaitan dengan perkembangan kod) perlu duduk dan melupakan masalah segera. Dia perlu bertanya kepada diri sendiri, "Bagaimana program ini akan bertindak balas terhadap input haram? "

Berikut adalah beberapa kaedah untuk memeriksa input:

  • Jangan membuat andaian mengenai panjang input.

  • Jangan terima lebih banyak input daripada anda mempunyai ruang dalam penampan panjang tetap (atau buffer pembolehubah bersaiz yang digunakan).

  • Semak julat setiap nilai berangka untuk memastikan ia masuk akal.

  • Semak dan penapis aksara khas yang boleh digunakan oleh penggodam untuk menyuntik kod.

  • Jangan lulus input mentah ke perkhidmatan lain, seperti pelayan pangkalan data.

Dan lakukan semua pemeriksaan yang sama pada nilai yang dikembalikan dari perkhidmatan terpencil. Penggodam tidak boleh berada di sisi input, dia mungkin berada di sisi tindak balas.

Kegagalan Menangani Anggun

Program anda harus bertindak balas dengan munasabah terhadap kegagalan yang berlaku dalam program ini. Sebagai contoh, jika panggilan anda ke fungsi perpustakaan mengembalikan nullptr, program itu harus mengesan ini dan melakukan sesuatu yang munasabah.

Masuk akal di sini difahami secara adil. Program ini tidak perlu mengendus untuk mengetahui dengan tepat mengapa fungsi tersebut tidak memulangkan alamat yang munasabah. Ia mungkin permintaan itu terlalu banyak kerana memori tidak masuk akal. Atau mungkin pembina mengesan beberapa jenis input haram.

Tidak penting. Intinya ialah program itu harus memulihkan keadaannya dengan sebaik-baiknya dan menetapkan untuk input yang akan datang tanpa merosakkan atau merosakkan struktur data sedia ada seperti timbunan.

Mengekalkan Log Program

Buat dan jaga log runtime yang membolehkan seseorang membina semula apa yang berlaku sekiranya berlaku kegagalan keselamatan. (Sebenarnya, ini sama seperti berlaku sekiranya berlaku sebarang kegagalan.) Contohnya, anda mungkin mahu log setiap kali seseorang masuk ke dalam atau keluar dari sistem anda.

Anda pasti akan tahu siapa yang telah log masuk ke sistem anda apabila peristiwa keselamatan berlaku - ini adalah kumpulan yang paling berisiko kehilangan keselamatan dan yang paling mencurigakan ketika mencari penyebabnya.Di samping itu, anda perlu log masuk sebarang kesalahan sistem yang termasuk kebanyakan pengecualian.

Program pengeluaran dunia nyata mengandungi sebilangan besar panggilan yang kelihatan seperti berikut:

log (DEBUG, "Pengguna% s memasukkan kata laluan sah", sUser);

Ini hanyalah satu contoh. Setiap program memerlukan beberapa jenis fungsi log. Sama ada atau tidak ia sebenarnya dipanggil log () tidak penting.

Mengikuti proses pembangunan yang baik

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

  • Mengumpulkan dan keperluan dokumen, termasuk keperluan keamanan. Reka bentuk ulasan.

  • Mematuhi piawaian pengekodan.

  • Uji ujian bawah.

  • Menjalankan ujian penerimaan rasmi yang berdasarkan kepada keperluan asal.

  • Selain itu, ulasan rakan seperjuangan harus dijalankan di tempat utama untuk mengesahkan bahawa keperluan, reka bentuk, kod dan prosedur ujian adalah berkualiti tinggi dan memenuhi piawaian syarikat.

Melaksanakan kawalan versi yang baik

Kawalan versi adalah sesuatu yang pelik. Ia adalah semulajadi untuk tidak bimbang tentang versi 1. 1 apabila anda berada di bawah pistol untuk mendapatkan versi 1. 0 keluar pintu dan ke tangan yang terulur 'dibayangi. Walau bagaimanapun, kawalan versi adalah topik penting yang mesti ditangani lebih awal kerana ia mesti dibina dalam reka bentuk awal program dan tidak digantung kemudian.

Satu aspek yang hampir remeh daripada kawalan versi ialah mengetahui versi program yang pengguna gunakan. Apabila pengguna memanggil dan berkata, "Ia melakukan ini apabila saya mengklik pada itu," meja bantuan itu benar-benar perlu mengetahui versi program yang pengguna gunakan. Dia boleh menggambarkan masalah dalam versi yang telah ditetapkan dalam versi semasa.

Otentikasi pengguna dengan selamat

Pengesahan pengguna haruslah mudah: Pengguna menyediakan nama akaun dan kata laluan, dan program anda melihat nama akaun di atas meja dan membandingkan kata laluan. Sekiranya kata laluan sepadan, pengguna disahkan. Tetapi ketika datang ke antihacking, tidak ada yang mudah.

Pertama, jangan simpan kata laluan itu sendiri dalam pangkalan data. Ini dipanggil menyimpan mereka

dalam jelas dan dianggap bentuk yang sangat buruk. Ia terlalu mudah untuk penggodam untuk mendapatkan tangannya pada fail kata laluan. Sebaliknya, selamatkan kata laluan yang selamat. Menguruskan sesi jauh

Anda boleh membuat andaian tertentu apabila semua aplikasi anda berjalan pada satu komputer. Untuk satu perkara, sebaik sahaja pengguna telah mengesahkan dirinya sendiri, anda tidak perlu bimbang tentang dirinya yang berubah menjadi orang yang berbeza. Aplikasi yang berkomunikasi dengan pelayan jauh tidak boleh membuat andaian ini - penggodam yang sedang mendengar di baris boleh menunggu sehingga pengguna mengesahkan dirinya dan kemudian merampas sesi tersebut.

Apa yang boleh dilakukan pemrogram keselamatan untuk mengelakkan situasi ini? Anda tidak mahu berulang kali meminta pengguna untuk kata laluannya untuk memastikan sambungan tidak dirampas. Penyelesaian alternatif adalah untuk menubuhkan dan mengurus sesi

. Anda melakukan ini dengan mempunyai pelayan menghantar aplikasi jarak jauh cookie sesi apabila pengguna telah berjaya mengesahkan dirinya sendiri. Obfuscate your code

Code obfuscation

adalah perbuatan membuat executable sebagai sukar bagi seorang peretas untuk memahami yang mungkin. Logiknya mudah. Semakin mudah bagi penggodam memahami bagaimana kod anda berfungsi, semakin mudah bagi penggodam untuk mengetahui kerentanan.

Langkah paling mudah yang boleh anda lakukan ialah memastikan anda hanya mengedarkan versi Rilis program anda yang tidak termasuk maklumat simbol debug. Apabila anda mula-mula membuat fail projek, pastikan untuk memilih kedua-dua versi Debug dan Rilis harus dibuat.

Jangan sekali-kali, mengedarkan versi aplikasi anda dengan maklumat simbol yang disertakan.

Tandatangani kod anda dengan sijil digital

Kerja menandatangani kod dengan menjana hash selamat kod boleh laku dan menggabungkannya dengan sijil yang dikeluarkan oleh pihak berkuasa sijil yang sah. Proses ini berfungsi seperti berikut: Syarikat yang membuat program ini mesti mendaftar dengan salah satu pihak berkuasa sijil terlebih dahulu.

Setelah pihak berkuasa sijil yakin bahawa Syarikat saya adalah entiti perisian yang sah, ia mengeluarkan sijil. Ini adalah nombor panjang yang boleh digunakan sesiapa sahaja untuk mengesahkan bahawa pemegang sijil ini adalah Syarikat Saya yang terkenal di San Antonio.

Gunakan penyulitan selamat di mana perlu

Seperti apa-apa amaran yang baik, peringatan ini mempunyai beberapa bahagian. Pertama, "Gunakan penyulitan sekiranya perlu. "Ini cenderung untuk memikirkan fikiran tentang menyampaikan maklumat akaun bank melalui Internet, tetapi anda harus berfikir lebih umum daripada itu.

Data yang dikomunikasikan, sama ada melalui Internet atau lebih banyak rangkaian yang lebih kecil, dikenali secara umum sebagai

Data dalam Motion. Data dalam Motion harus disulitkan melainkan ia tidak berguna kepada penggodam. Data yang disimpan pada cakera dikenali sebagai

Data pada Rest. Data ini juga perlu disulitkan jika terdapat peluang cakera yang hilang, dicuri, atau disalin. Perniagaan secara rutin menyulitkan cakera keras pada komputer riba syarikat mereka sekiranya komputer riba dicuri di pengimbas keselamatan di lapangan terbang atau ditinggalkan teksi di suatu tempat. Alat penyimpanan mudah alih kecil seperti pemacu ibu jari amat mudah hilang - data pada peranti ini perlu disulitkan.

C ++ Pemrograman: 10 Tips Anti-Hacker - dummies

Pilihan Editor

Meningkatkan Rancangan Navigasi Blog - dummies

Meningkatkan Rancangan Navigasi Blog - dummies

Reka bentuk navigasi hebat untuk blog anda meningkatkan pengalaman pembaca. Reka bentuk navigasi buruk di blog mengecewakan pengunjung yang ingin mencari catatan blog tertentu dengan cepat, atau membaca siaran berkaitan atau yang serupa. Mengharapkan keperluan pelawat anda dengan memikirkan blog anda seperti kedai, dan jawatan blog anda seperti produk: Catatan popular dan terkini: ...

Meningkatkan Pengalaman Pengguna Blog dengan Plugin - dummies

Meningkatkan Pengalaman Pengguna Blog dengan Plugin - dummies

Beberapa teknologi yang berbeza dapat meningkatkan blog anda . Plug-in, widget, dan alat semua membuat ciri-ciri baru, integrasi, dan penambahan mudah untuk dibungkus dan diedarkan. Teknologi-teknologi ini berkembang sepanjang masa, tetapi untuk mendapatkan blog anda dan berjalan, berikut adalah beberapa pilihan terbaik semasa untuk pelbagai tujuan. Widget / Name Plugin ...

Meningkatkan Tajuk Blog Anda dan Reka Bentuk Tagline untuk SEO - patung

Meningkatkan Tajuk Blog Anda dan Reka Bentuk Tagline untuk SEO - patung

Tag tajuk blog anda dan tagline memberi enjin carian penerangan kandungan blog anda. Reka bentuk blog SEO yang berkesan bermakna memastikan jawatan blog enjin carian yang layak dan halaman mempunyai tag tajuk mereka sendiri dan bahawa slogan setiap halaman penuh dengan kata kunci yang berkaitan.

Pilihan Editor

Office 2013 Save As Dialog Box - dummies

Office 2013 Save As Dialog Box - dummies

Office 2013 menggunakan SkyDrive pengguna Windows semasa sebagai penyimpanan default lokasi. SkyDrive adalah kawasan penyimpanan dalam talian berasaskan awan yang dihoskan oleh Microsoft. Sesiapa yang mendaftarkan perkhidmatan, atau yang log masuk ke Windows 8 dengan Microsoft ID, diberikan sejumlah ruang penyimpanan percuma, dan boleh membeli lebih banyak. Cloud adalah ...

Unclutter Peti Masuk Outlook anda dengan Clutter - dummies

Unclutter Peti Masuk Outlook anda dengan Clutter - dummies

Mahu aplikasi e-mel yang juga pembaca minda? Keinginan anda diberikan. Anda boleh mengucapkan terima kasih kepada Graph Office dan Clutter, ciri baru dalam Outlook. Clutter menggunakan teknologi di sebalik Grafik Pejabat untuk menganalisis isyarat yang anda hantar apabila anda mengambil tindakan terhadap e-mel anda. Sebagai contoh, jika anda cenderung untuk mengabaikan e-mel daripada ...

Pilihan Editor

Elakkan Berat Berat Ketika Menguatkuasakan Garis Panduan Komuniti Dalam Talian - dummies

Elakkan Berat Berat Ketika Menguatkuasakan Garis Panduan Komuniti Dalam Talian - dummies

Hanya kerana anda mempunyai kuasa untuk berbuat demikian tidak bermakna bahawa semua masalah komuniti dalam talian memerlukan amaran dan banner. Ya, anda ingin menonjolkan keadaan negatif di dalam tunas, tetapi tidak, anda tidak mahu mendapat sedikit tentangnya sama ada. Kadang-kadang membiarkan slaid isu baik-baik saja. Sebagai pengurus komuniti, tugas anda untuk mengetahui ...

Elakkan Peluang Yang Berisiko Reputasi Blog Anda - dummies

Elakkan Peluang Yang Berisiko Reputasi Blog Anda - dummies

Apabila anda mengaitkan blog ibu anda dan jenama peribadi anda produk atau jenama syarikat, tidak dapat dielakkan bahawa anda akan menggosok satu sama lain. Suka atau tidak, anda boleh dan boleh dikaitkan dengan jenama itu. Tidak semua syarikat yang ingin memberi anda produk percuma adalah yang anda mahu ...

Peruntukkan Peranan ke Font di Laman Blog Anda - dummies

Peruntukkan Peranan ke Font di Laman Blog Anda - dummies

Apabila anda menetapkan peranan ke fon anda, membantu memastikan reka bentuk blog anda kelihatan profesional. Menjaga tujuan fon anda jelas menjadikan reka bentuk navigasi blog anda lebih berkesan dan reka bentuk keseluruhan anda lebih mudah di mata. Selepas anda memilih dua atau tiga fon pelengkap yang juga mempunyai perbezaan yang cukup untuk menonjol dari satu sama lain (lihat ...