Sunday, December 4, 2022

Modul 10 : Pertemuan 12 (Socket Programming - Gui dengan Python)

 GUI dengan Python


1.1 Tujuan

1.2 Dasar Teori

Python menyediakan berbagai cara untuk membuat aplikasi dengan Graphical User Interface (GUI). Salah satu library yang paling sering digunakan adalah tkinter. Jalankan perintah berikut untuk instalasi library Tcl/Tk:

    sudo apt-get install python3-tk

Verifikasi hasil instalasi melalui terminal dengan perintah berikut.


Dokumentasi tkinter: https://tkdocs.com/tutorial/index.html 
Semua object GUI yang terlihat di layar aplikasi disebut widget. Widget disusun dalam bentuk hirarki pohon. Berikut contoh hirarki widget untuk percobaan koversi.py

Hirarki diatas menghasil aplikasi gui sebagai berikut:

1.3 Percobaan

Percobaan 1

hello.py


Hasil Program
Analisa:

Percobaan 2
konversi.py

Hasil Program 
Analisa:

Percobaan 3
country.py
Analisa:

Hasil Program








Thursday, December 1, 2022

Pertemuan 11 - Lathan Software Security Design

 Latihan


Buat rangkuman materi yang sudah disampaikan


Definisi Software Security
Software security merupakan hal penting yang diperlukan untuk membangun sistem software yang dapat dipercaya. Ini menjadi teknik yang diterapkan untuk melindungi software dari serangan berbahaya dan risiko peretas lainnya. Sehingga, software terus berfungsi dengan benar di bawah potensi risiko tersebut.

Mengembangkan software yang aman, berfokus pada tahap awal software development life cycle (SDLC) dan kode yang mendasari aplikasi tertentu. Dengan tujuan untuk mengidentifikasi kekurangan dan cacat sedini mungkin. Selain itu, keamanan ini diperlukan untuk menyediakan integrity, authentication, dan availability. Hal ini dikarenakan sistem software yang dengan mudah diserang untuk mencuri informasi, memantau konten, melihat kerentanan, dan sejenisnya.

Contoh Kesalahan Desain

Banyak aplikasi tidak melakukan verifikasi email (sebagai identitas) untuk pembuatan akun, reset password, dll. Akibat kesalahan yang dapat berakibat fatal

  1. Orang lain dapat membuat akun kita dengan alamat email orang tersebut, kita tidak dapat membuat akun dilayanan tersebut
  2. Reset password ke akun orang tersebut

 Yang seharusnya dilakukan adalah:

  1. Pengguna mengisikan alamat email sebagai akun
  2. Email dikirimkan dengan tautan (link) yang unik
  3. Tunggu pengguna melakukan klik terhadap tautan (untuk verifikasi)
  4. Akun baru dibuat Setelah sistem mendapatkan verifikasi tersebut

Pendekatan tradisional Software Security dan Kelemahannya
Cara penanganan keamanan dalam perangkat lunak seperti ini biasa terjadi, tetapi juga bermasalah karena beberapa alasan, beberapa di antaranya:
  1. Pengembang perlu secara eksplisit memikirkan kerentanan keamanan, sementara pada saat yang sama berfokus pada penyelesaian fungsionalitas bisnis.
  2. Mengharuskan setiap pengembang untuk menjadi ahli keamanan.
  3. Diasumsikan bahwa orang yang menulis kode dapat memikirkan setiap potensi kerentanan yang mungkin terjadi sekarang atau di masa mendatang
Software Architecture and Software Design
  1. Arsitektur perangkat lunak (Software Architecture) dari suatu sistem menggambarkan organisasi atau struktur sistem, dan memberikan penjelasan tentang bagaimana perilakunya.
  2. Desain perangkat lunak (Software Design) adalah proses konseptualisasi requirement perangkat lunak ke dalam implementasi perangkat lunak.
6 Aktivitas Risk Analysis Methodology
  1. Software characterization
  2. Threat analysis
  3. Architectural vulnerability assessment
  4. Risk likelihood determination
  5. Risk impact determination
  6. Risk mitigation planning
Risk Likelihood Determination


Desain

Desain adalah panduan prinsip bagaimana sebuah sistem dibangun dan dapat diterapkan di semua tingkatan, mulai dari kode hingga arsitektur. Desain mencakup aktivitas apa pun yang melibatkan pengambilan keputusan aktif

Security Design (Desain Keamanan)
- Abuse | misuse | pelanggaran kebijakan
- Desain keamanan berupa kendali (control) yang diterapkan terhadap hal di atas

Contoh 
Requirement
Pengguna tidak boleh login dari dua (2) tempat yang berbeda (parallel/concurrent login) Ada skenario pengujian login dari 2 IP yang berbeda pada saat yang bersamaan

Desain kendali
  •  Cookies + nomor IP + jenis browser + identitas komputer lainnya
  • Pemberitahuan (dan pencatatan) kejadian
Design Consideration
Menggunakan kriptografi ,Pemilihan panjang kunci (key size), Simetrik vs asimetrik,Digital certificate

Integrity Design

  1. Penggunaan hash function
  2. MD5, SHA
  3. Referential integrity pada database

Buat contoh architecture risk analysis


Architectural risk assessment adalah proses manajemen risiko yang mengidentifikasi kelemahan dalam arsitektur perangkat lunak dan menentukan risiko terhadap aset informasi bisnis yang dihasilkan dari kelemahan tersebut. Melalui proses penilaian risiko arsitektur, kelemahan ditemukan yang memaparkan aset informasi terhadap risiko, risiko diprioritaskan berdasarkan dampaknya terhadap bisnis, mitigasi untuk risiko tersebut dikembangkan dan diterapkan, dan perangkat lunak dinilai ulang untuk menentukan kemanjuran mitigasi. .