Pertemuan 3a
Pertemuan 3a
(UMN)
Vulnerability
• Vulnerability web/ application
• Vulnerability OS/ software
Attack • Incomplete Authentication
• Impersonation
• Failed Authentication
Countermeasure
• Strong Authentication.
• Ransomware
• Anti Virus
• Virus
• Anti Spyware
OUTLINE
• Ada saatnya programmer terlalu optimis dengan Sebagai contoh, programmer diberi beri
aplikasi yang dihasilkanya. tugas untuk menghitung rata-rata 2 nilai
• Mereka cenderung bersumsi bahwa: masukan.
• Data yang diinput selalu seusai yang
diharapkan. Pemrogram mungkin berasumsi bahwa:
• Update atau koreksi sudah dilakukan • Kedua nilai tersebut adalah angka.
dengan sangat benar.
• Cukup berpedoman kepada hasil • Jumlahnya tidak akan melebihi ukuran
testing, namun tidak secara kontinyu memori computer.
mengevaluasi dan memperbaiki • Mereka direpresentasikan dalam format
program.
yang tepat (integer atau floating point).
• Dengan asumsi bahwa semua masalah sudah
terselesaikan, programmer tidak melakukan • Modul akan menerima tepat 2 masukan,
verifikasi ulang dan menyediakan alternatif tidak kurang atau tidak lebih.
apabila terjadi masalah.
INCOMPLETE MEDIATION
http://www.somesite.com/subpage/userinput.asp?parm1=(808)555-1212&parm2=2009Jan17
• Data sensitif (nilai parameter) berada dalam kondisi terbuka dan tidak terkendali.
• Nilai data tidak sepenuhnya dimediasi.
INCOMPLETE MEDIATION
http://www.things.com/order.asp?
custID=101&part=555A&qy=20&price=10&ship=boat&shipcost=5&total=205
• This procedure leaves the parameter statement open for malicious tampering
http://www.things.com/order.asp?custID=101&part=555A&qy=20&price=1&ship=boat&shipcost=5&total=25
From a security perspective, the most serious concern about this flaw was the length of time that it
could have run undetected
RACE CONDITION
Time
TIME TO CHECK TO TIME OF USE (TOCTTOU)
Bayangkan seseorang membeli patung seharga • It exploits the delay between the
$100. Pembeli mengeluarkan lima lembar two actions:
uang $20 dari dompet, menghitungnya check and use
dengan cermat di depan penjual, dan
meletakkannya di atas meja. Kemudian
penjual berbalik untuk menulis kwitansi. Saat
penjual membelakangi, pembeli mengambil
• Between the time the access was
kembali satu lembar uang $20. Ketika penjual checked and the time the result of
berbalik, pembeli menyerahkan tumpukan the check was used, a change
uang, mengambil kwitansi, dan pergi dengan occurred, invalidating the result of
membawa patung itu. the check
UNDOCUMENTED ACCESS POINT
Sebagai manusia, kita tidak memiliki teknik untuk menghilangkan atau mengatasi
semua kelemahan keamanan program, selalu akan ada celah sesuai kodrat manusia.
Pada dasarnya tidak ada jalan singkat untuk mencapai suatu target keamanan computer.
Tidak ada Solusi cepat untuk masalah keamanan computer, semua harus dilakukan secara bertahap
dan terkolaborasi.
Ada 6 kategori kesalahan (cacat) yang tidak disengaja:
• Genetic Diversity
• Untuk alasan kenyamanan dan biaya, kita sering
merancang sistem dengan perangkat lunak atau Ada 2 cara membangun desain perangkat
perangkat keras (atau keduanya) dari satu vendor. lunak:
• Beresiko jika banyak komponen sistem berasal dari
satu sumber atau bergantung pada satu 1. Salah satu caranya adalah dengan
komponen. membuatnya sesederhana mungkin
• Simplicity
sehingga jelas tidak ada
kekurangannya.
• Lebih mudah dipahami, memberikan lebih sedikit
ruang untuk kesalahan (menhindari terjadinya 2. Cara lainnya adalah dengan
kesalahan) , dan lebih mudah untuk meninjau membuatnya sedemikian rumit
kesalahannya. sehingga tidak ada kekurangan yang
• Seluruh anggota tim desain dan implementasi terlihat jelas.
dapat memahami peran dan ruang lingkup setiap
elemen desain.
• Memfasilitasi pemeliharaan yang benar.
DESIGN PRINCIPLES FOR SECURITY
Least Privilege
Permission Based (Fail-Safe Defaults)
Subjek harus diberikan hanya hak-hak
Subjek tersebut harus ditolak aksesnya ke objek, apabila
istimewa yang diperlukannya untuk
memang subjek memang diberi akses untuk ke obyek
menyelesaikan tugasnya.
tersebut.
Economy of Mechanism
Separation of Privilege
Mekanisme keamanan sebaiknya
Suatu sistem tidak boleh memberikan izin berdasarkan
disediakan sesederhana mungkin,
satu kondisi saja.
namun tetap aman.
Least Common Mechanism
Open Design
Mekanisme yang digunakan untuk mengakses sumber
Keamanan suatu mekanisme tidak boleh
daya tidak boleh digunakan Bersama.
bergantung pada kerahasiaan desain
Ease of use (Psychological Acceptability)
atau implementasinya.
Sebaiknya keamanan yang diterapkan tidak menjadikan
Complete Mediation
system menjadi sulit diakses.
Semua akses ke objek harus diperiksa
untuk memastikan bahwa akses
tersebut diizinkan.
• Validasi masukan.
• Perhatikan peringatan compiler.
• Arsitek dan desain untuk kebijakan keamanan.
• Tetap sederhana.
• Defaultnya adalah menolak.
• Patuhi prinsip hak istimewa paling rendah.
• Sanitasi data yang dikirim ke sistem lain.
• Latih pertahanan secara mendalam.
• Gunakan teknik jaminan kualitas yang efektif.
• Mengadopsi standar pengkodean yang aman.
SECURE SOFTWARE DEVELOPMENT PROCESS
• Pantau dengan cermat apa yang ditemukan oleh reviewer dan seberapa cepat dia
menemukannya.
• Apakah reviewer tertentu memerlukan pelatihan?
• Apakah jenis kesalahan tertentu lebih sulit ditemukan dibandingkan kesalahan lainnya?
• Buatlah daftar periksa item yang akan dicari dalam ulasan mendatang.
• Seorang programmer yang cerdik dapat menyembunyikan beberapa kekurangan ini.
• Peluang penemuan meningkat ketika pemrogram yang kompeten.
• Meninjau desain dan kodenya, terutama ketika komponennya kecil dan dienkapsulasi.
SECURE SOFTWARE DEVELOPMENT PROCESS
Good Design
Good Design
Kebijakan yang konsisten untuk penanganan kesalahan.
Retry Correct Report
• Restore the system to its • Restore the system to its Restore the system to its
previous state previous state previous state
• Perform the service again, • Correct some system Report the problem to an
using a different strategy characteristic
error-handling component
• Perform the service again, Do not provide the service
using the same strategy
again
SECURE SOFTWARE DEVELOPMENT PROCESS
Configuration Control
When we develop software, it is important to know who is making which changes
to what and when
Reasons to change software
• Corrective changes • Perfective changes
• Correct faults identified • Perfect existing acceptable
• Adaptive changes functions
• Applied to the system after • Preventive changes
its initial fielding, to reflect • Address ways to avoid
changing user needs possible problems in the
future
SECURE SOFTWARE DEVELOPMENT PROCESS
Configuration Control
• Coordinating separate, related versions
• Separate files
• Different files for each release or version
• Delta
• The difference file which contains editing commands to describe the ways
to transform the main version (particular version) into the variation
• Conditional compilation
• A single code component addresses all versions, relying on the compiler to
determine which statements to apply to which versions
SECURE SOFTWARE DEVELOPMENT PROCESS
Security Audits
Check each project’s
Standards of
compliance with standards and
Program Development guidelines
SECURE SOFTWARE DEVELOPMENT PROCESS
Process Standards
You have 2 friends
Sonya Dorrie
Sonya is extremely well organized. She Dorrie is a mess. She can never find her
keeps lists of things to do, she always algebra book, her desk has so many piles of
knows where to find a tool or who has a papers you cannot see the top, and she
particular book, and everything is seems to deal with everything as a crisis
completed before its deadline. because she tends to ignore things until the
last minute.
Whom would you choose to organize and run a major project, a new product launch, or a multiple-
author paper?
Key Ingredients
Product expertise
Coverage
Risk analysis
Domain expertise
Common vocabulary
Variation
Boundaries
EFECTIVENESS OF TESTING
Ethical Hacking
Trying to crack
Penetration Testing
the system being tested
Verification
Verification checks the quality of the
Demonstrate formally the
implementation.
“correctness” of certain
specific programs
Validation
Assuring that the system Validation makes sure that the developer is
developers building the right product according to the
have implemented all specification.
requirements
CYBER SECURITY