Skip to content · ⁨Lompat ke konten⁩

Securing Applications and Data · ⁨Melindungi Aplikasi dan Data⁩

AP Cybersecurity · ⁨AP Keamanan Siber⁩ · Topic 5 · ⁨Topik 5⁩

Video lesson for this topic · ⁨Pelajaran video untuk topik ini⁩ Open the video page · ⁨Buka halaman video⁩
9:47

Melindungi Aplikasi dan Data

Sebuah perusahaan menghabiskan uang banyak untuk firewall, pintu terkunci, dan kata sandi kuat. Kemudian seseorang mengetikkan beberapa karakter aneh ke dalam kotak login — dan basis data…

English narration · English + 中文 subtitles burned in · ⁨Narasi bahasa Inggris · Subtitle bahasa Inggris + 中文 disematkan langsung⁩

5.1

Application and Data Vulnerabilities and Attacks · ⁨Kerentanan dan Serangan Aplikasi dan Data⁩

Syllabus · ⁨Silabus⁩
English

Learning Objective 5.1.A: Explain how adversaries can exploit application and file vulnerabilities to cause loss, damage, disruption, or destruction.

  • 5.1.A.1 An adversary can read any unencrypted files if they have access to the device or drive storing the files.
  • 5.1.A.2 Computers have standard users and administrative users. Administrative users have access to control system settings and can typically access any files or applications on a system. If regular users are given administrative privileges on a computer, and an adversary can compromise a user’s account, then the adversary will have elevated privileges on the system.
  • 5.1.A.3 When access control settings are weakly configured, many users often have permission to view and sometimes even edit files on a system. Adversaries can take advantage of weak access control settings to steal or destroy files or disrupt an application.

Learning Objective 5.1.B: Explain how application attacks exploit vulnerabilities.

  • 5.1.B.1 Applications are programs that run instructions on computers; they are executable data. Some applications run locally on a user’s computer, while other applications, like web applications, run on a server and are accessed by users through a network.
  • 5.1.B.2 Many applications take user input through open-ended input fields where users can type characters (e.g., letters, numbers, punctuation). Developers should include user input checks in their application, such as numeric input when asked for a number of items, to ensure that the user input matches what is expected; the application should reject input outside of the expected parameters. This process of verifying that user input meets expected criteria before processing it is called data validation. Applications that fail to validate user input are vulnerable to injection-type attacks, where adversaries insert unexpected character strings in input fields to alter the behavior of a program.
  • 5.1.B.3 Structured query language (SQL) is a computer language used to request information from databases and make changes to databases or entries in databases. Applications that query a database using unvalidated or unsanitized input from users are vulnerable.
  • 5.1.B.4 An SQL-injection attack places SQL commands and control characters into a user-input field in an application, which can lead to a breach of confidentiality by causing the application to return more information than it should, or a breach of integrity by modifying or deleting data in the database.
  • 5.1.B.5 Websites are written using hypertext markup language (HTML), and many websites use Javascript to create dynamic content on websites or web applications. Because Javascript commands run in the browser of the user visiting the website, those commands can access sensitive data stored in the browser like usernames, passwords, and cryptographic keys.
  • 5.1.B.6 A cross site scripting (XSS) attack injects malicious code into a website that a user’s browser then executes. The malicious code can be embedded in a link the user clicks (a Type I or Reflected XSS attack) or it can be inserted onto a website through a comment field, forum post, or visitor log, which would affect any user visiting that website (a Type II or Stored XSS attack).
  • 5.1.B.7 When applications take user input, that input is written to a buffer. A buffer is a designated section of computer memory with a fixed size. If the amount of data the user enters exceeds the size of the buffer, it can overflow into adjacent memory locations and overwrite other parts of the computer’s memory.
  • 5.1.B.8 A buffer overflow attack feeds more data into memory than was allotted, which can cause a system to crash or to execute code outside the scope of a program’s security policy, effectively allowing the adversary to perform unauthorized actions on a computer, such as accessing, modifying, or deleting files.
  • 5.1.B.9 The files that run web applications are stored in directories on servers. When users access web applications, their browsers send GET requests using hypertext transfer protocol (HTTP). A GET request accesses a file somewhere in the filesystem of the server.
  • 5.1.B.10 In a directory traversal attack, adversaries modify URLs and GET requests to attempt to access sensitive data (e.g., usernames and passwords) on a server’s file system.
    • Illustrative examples for 5.1.B.10:
      • A web server stores images for a website it hosts in the /var/www/images/ directory. An adversary modifies a URL requesting an image to ../../../etc/passwd. The .. moves one directory up in the file system; so the three consecutive .. returns the path to the root, and from there the adversary is attempting to access the passwd file that would return a list of all the authorized usernames on the device.

Learning Objective 5.1.C: Assess and document risks from application and data vulnerabilities.

  • 5.1.C.1 Data security risks can involve a compromise of confidentiality when unauthorized persons can access sensitive data, integrity when data can be manipulated or altered from its intended state, and availability when data can be destroyed or encrypted to prevent others from accessing it.
  • 5.1.C.2 High risks from data vulnerabilities often involve highly sensitive data (e.g., data that is governed by laws or regulations) that could be compromised through a highly likely exploit.
    • Illustrative examples for 5.1.C.2:
      • The company developing the next jet engine that will be used by the Air Force in its planes is storing the technical specifications for the engine on an unencrypted drive.
  • 5.1.C.3 Moderate risks from data vulnerabilities often involve sensitive data not having strong enough encryption or strict enough access controls.
    • Illustrative examples for 5.1.C.3:
      • A company stores its customers’ PII in a spreadsheet, and the spreadsheet is encrypted using a small key.
  • 5.1.C.4 Low risks from data vulnerabilities often involve less sensitive information being encrypted with shorter keys or having access controls that are not strict enough.
    • Illustrative examples for 5.1.C.4:
      • An organization’s CEO stores his private memos to his executive staff on a company share drive that is unencrypted and has no access controls.
Bahasa Indonesia

Tujuan Pembelajaran 5.1.A: Jelaskan bagaimana penyerang dapat mengeksploitasi kerentanan aplikasi dan file untuk menyebabkan kerugian, kerusakan, gangguan, atau kehancuran.

  • 5.1.A.1 Penyerang dapat membaca semua file yang tidak dienkripsi jika mereka memiliki akses ke perangkat atau drive yang menyimpan file tersebut.
  • 5.1.A.2 Komputer memiliki pengguna standar dan pengguna administratif. Pengguna administratif memiliki akses untuk mengontrol pengaturan sistem dan biasanya dapat mengakses semua file atau aplikasi pada sistem. Jika pengguna biasa diberikan hak akses administratif pada komputer, dan penjahat siber berhasil meretas akun pengguna, maka penjahat tersebut akan memiliki hak akses yang ditingkatkan pada sistem.
  • 5.1.A.3 Ketika pengaturan kontrol akses dikonfigurasi dengan lemah, banyak pengguna sering kali memiliki izin untuk melihat dan terkadang bahkan mengedit file pada sistem. Penjahat siber dapat memanfaatkan pengaturan kontrol akses yang lemah untuk mencuri atau menghancurkan file, atau mengganggu sebuah aplikasi.

Tujuan Pembelajaran 5.1.B: Jelaskan bagaimana serangan aplikasi mengeksploitasi kerentanan.

  • 5.1.B.1 Aplikasi adalah program yang menjalankan instruksi pada komputer; mereka merupakan data yang dapat dieksekusi. Beberapa aplikasi berjalan secara lokal di komputer pengguna, sementara aplikasi lain, seperti aplikasi web, berjalan di server dan diakses oleh pengguna melalui jaringan.
  • 5.1.B.2 Banyak aplikasi menerima input pengguna melalui bidang input terbuka di mana pengguna dapat mengetik karakter (misalnya, huruf, angka, tanda baca). Pengembang harus menyertakan pemeriksaan input pengguna dalam aplikasi mereka, seperti memasukkan input numerik ketika diminta jumlah item, untuk memastikan bahwa input pengguna sesuai dengan yang diharapkan; aplikasi harus menolak input di luar parameter yang diharapkan. Proses memverifikasi apakah input pengguna memenuhi kriteria yang diharapkan sebelum memprosesnya disebut validasi data. Aplikasi yang gagal memvalidasi input pengguna rentan terhadap serangan jenis injeksi, di mana penjahat siber menyisipkan string karakter tak terduga di bidang input untuk mengubah perilaku program.
  • 5.1.B.3 Structured Query Language (SQL) adalah bahasa pemrograman yang digunakan untuk meminta informasi dari basis data dan melakukan perubahan pada basis data atau entri dalam basis data. Aplikasi yang querying basis data menggunakan input yang tidak divalidasi atau tidak dibersihkan dari pengguna rentan terhadap serangan ini.
  • 5.1.B.4 Serangan SQL-injection menempatkan perintah SQL dan karakter kontrol ke dalam bidang input pengguna pada aplikasi, yang dapat menyebabkan pelanggaran kerahasiaan dengan membuat aplikasi mengembalikan lebih banyak informasi daripada seharusnya, atau pelanggaran integritas dengan memodifikasi atau menghapus data dalam basis data.
  • 5.1.B.5 Website ditulis menggunakan hypertext markup language (HTML), dan banyak website menggunakan Javascript untuk membuat konten dinamis pada website atau aplikasi web. Karena perintah Javascript berjalan di browser pengguna yang mengunjungi website, perintah-perintah tersebut dapat mengakses data sensitif yang disimpan di browser seperti nama pengguna, kata sandi, dan kunci kriptografi.
  • 5.1.B.6 Serangan cross-site scripting (XSS) menyisipkan kode berbahaya ke dalam website yang kemudian dieksekusi oleh browser pengguna. Kode berbahaya dapat tertanam dalam tautan yang diklik pengguna (serangan XSS Tipe I atau Reflected XSS) atau dapat disisipkan ke dalam website melalui bidang komentar, postingan forum, atau log pengunjung, yang akan mempengaruhi setiap pengguna yang mengunjungi website tersebut (serangan XSS Tipe II atau Stored XSS).
  • 5.1.B.7 Ketika aplikasi menerima input pengguna, input tersebut ditulis ke dalam buffer. Buffer adalah bagian memori komputer yang ditunjuk dengan ukuran tetap. Jika jumlah data yang dimasukkan pengguna melebihi ukuran buffer, data tersebut dapat meluber ke lokasi memori tetangga dan menimpa bagian lain dari memori komputer.
  • 5.1.B.8 Serangan buffer overflow memasukkan lebih banyak data ke dalam memori daripada yang dialokasikan, yang dapat menyebabkan sistem crash atau menjalankan kode di luar jangkauan kebijakan keamanan program, sehingga secara efektif memungkinkan penjahat siber untuk melakukan tindakan tidak sah pada komputer, seperti mengakses, memodifikasi, atau menghapus file.
  • 5.1.B.9 File yang menjalankan aplikasi web disimpan dalam direktori pada server. Ketika pengguna mengakses aplikasi web, browser mereka mengirim permintaan GET menggunakan hypertext transfer protocol (HTTP). Permintaan GET mengakses file di suatu tempat di filesystem server.
  • 5.1.B.10 Dalam serangan directory traversal, penjahat siber memodifikasi URL dan permintaan GET untuk mencoba mengakses data sensitif (misalnya, nama pengguna dan kata sandi) pada filesystem server.
    • Contoh ilustratif untuk 5.1.B.10:
      • Server web menyimpan gambar untuk website yang dihosting-nya di direktori /var/www/images/. Penjahat siber memodifikasi URL yang meminta gambar menjadi ../../../etc/passwd. Tanda .. memindahkan satu direktori naik dalam filesystem; jadi tiga tanda .. berturut-turut mengembalikan path ke root, dan dari sana penjahat siber mencoba mengakses file passwd yang akan mengembalikan daftar semua nama pengguna berwenang pada perangkat.

Tujuan Pembelajaran 5.1.C: Menilai dan mendokumentasikan risiko dari kerentanan aplikasi dan data.

  • 5.1.C.1 Risiko keamanan data dapat melibatkan kompromi kerahasiaan ketika orang tak berwenang dapat mengakses data sensitif, integritas ketika data dapat dimanipulasi atau diubah dari keadaan aslinya, dan ketersediaan ketika data dapat dihancurkan atau dienkripsi untuk mencegah orang lain mengaksesnya.
  • 5.1.C.2 Risiko tinggi dari kerentanan data sering melibatkan data yang sangat sensitif (misalnya, data yang diatur oleh undang-undang atau peraturan) yang dapat dikompromikan melalui eksploitasi yang sangat mungkin terjadi.
    • Contoh ilustratif untuk 5.1.C.2:
      • Perusahaan yang mengembangkan mesin jet berikutnya yang akan digunakan oleh Angkatan Udara dalam pesawatnya menyimpan spesifikasi teknis mesin tersebut pada drive tanpa enkripsi.
  • 5.1.C.3 Risiko sedang dari kerentanan data sering melibatkan data sensitif yang tidak memiliki enkripsi yang cukup kuat atau kontrol akses yang ketat.
    • Contoh ilustratif untuk 5.1.C.3:
      • Sebuah perusahaan menyimpan PII pelanggannya dalam spreadsheet, dan spreadsheet tersebut dienkripsi menggunakan kunci kecil.
  • 5.1.C.4 Risiko rendah dari kerentanan data sering kali melibatkan informasi yang kurang sensitif yang dienkripsi dengan kunci yang lebih pendek atau memiliki kontrol akses yang tidak cukup ketat.
    • Contoh ilustratif untuk 5.1.C.4:
      • CEO sebuah organisasi menyimpan memo pribadinya kepada staf eksekutif pada drive berbagi perusahaan yang tidak terenkripsi dan tidak memiliki kontrol akses.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English
SQL injection

Applications 应用程序 are the programs that run on computers, and data is what they process - both are prime targets. If files are stored unencrypted, anyone with access to the drive can read them. If a normal user is given administrative 管理性 privileges, an adversary who steals that account gains sweeping power.

The biggest application danger is bad user input. When a program does not check what a user types, an adversary can slip in commands - an injection attack 注入攻击. Data validation 数据验证 (checking input meets expected rules) is the defense. Key attacks:

  • SQL injection SQL注入 - inserting SQL commands into an input field to read or change a database.
  • Cross-site scripting (XSS) 跨站脚本 - injecting malicious script into a website that runs in another user's browser.

What a SQL injection actually looks like

SQL is a language for querying a database, and its control words are always written in capital letters — SELECT, FROM, WHERE, IN, OR, AND. A login form usually builds a query by pasting what you typed into one:

An attacker types SQL into the field instead of a name. Two tricks do most of the damage:

  • A condition that is always true. Entering ' OR '1'='1 makes the WHERE clause true for every row, so the database returns every user.
  • A double dash, which begins a comment in SQL. Entering admin' -- ends the name string and comments out the whole rest of the line, including the password check, so the query becomes … WHERE name = 'admin' and the attacker is logged in as the administrator without a password.

The defence is not to filter for the word SELECT. It is to stop the input being treated as code at all: use parameterised queries 参数化查询 (also called prepared statements), where the database is given the query and the values separately and never mixes them, and add input validation to reject characters the field has no reason to contain.

  • Buffer overflow 缓冲区溢出 - sending more data than a memory buffer 缓冲区 can hold, so it overflows into nearby memory and may run the adversary's code.
  • Directory traversal 目录遍历 - using ../ sequences in a URL to reach files outside the intended folder, such as /etc/passwd.

We rate data risk by sensitivity: unencrypted military plans are high risk; customer data with a weak key is moderate; low-value data with short keys is low.

Bahasa Indonesia
Injeksi SQL

Aplikasi adalah program yang berjalan di komputer, dan data adalah apa yang diprosesnya - keduanya menjadi target utama. Jika file disimpan tidak terenkripsi, siapa pun yang memiliki akses ke drive dapat membacanya. Jika pengguna biasa diberikan hak administratif, penjahat yang mencuri akun tersebut mendapatkan kekuasaan menyeluruh.

Bahaya aplikasi terbesar adalah input pengguna yang buruk. Ketika program tidak memeriksa apa yang diketik pengguna, penjahat dapat menyisipkan perintah - sebuah serangan injeksi. Validasi data (memeriksa input memenuhi aturan yang diharapkan) adalah pertahanan. Serangan kunci:

  • Injeksi SQL SQL - menyisipkan perintah SQL ke dalam bidang input untuk membaca atau mengubah database.
  • Pengeksekutan skrip lintas situs (XSS) - menyuntikkan skrip berbahaya ke situs web yang berjalan di browser pengguna lain.

Bagaimana Injeksi SQL sebenarnya terlihat

SQL adalah bahasa untuk querying database, dan kata kontrolnya selalu ditulis dengan huruf kapital — SELECT, FROM, WHERE, IN, OR, AND. Formulir login biasanya membangun query dengan menempelkan apa yang Anda ketik ke dalamnya:

SELECT * FROM users WHERE name = 'alice' AND password = 'secret'

Penyerang mengetik SQL ke dalam bidang tersebut alih-alih nama. Dua trik melakukan sebagian besar kerusakan:

  • Kondisi yang selalu benar. Memasukkan ' OR '1'='1 membuat klausa WHERE benar untuk setiap baris, sehingga database mengembalikan semua pengguna.
  • Tanda hubung ganda, yang memulai komentar dalam SQL. Memasukkan admin' -- mengakhiri string nama dan mengomentari seluruh sisa baris, termasuk pemeriksaan password, sehingga query menjadi … WHERE name = 'admin' dan penyerang masuk sebagai administrator tanpa password.

Pertahanannya bukan memfilter kata SELECT. Itu adalah menghentikan input diperlakukan sebagai kode sama sekali: gunakan query terparameterisasi (juga disebut prepared statements), di mana database diberikan query dan nilai-nilainya secara terpisah dan tidak pernah mencampurkannya, dan tambahkan validasi input untuk menolak karakter yang tidak ada alasannya untuk ada di bidang tersebut.

  • Overflow buffer - mengirim lebih banyak data daripada yang dapat ditampung oleh buffer memori, sehingga meluber ke memori tetangga dan mungkin menjalankan kode penyerang.
  • Penelusuran direktori - menggunakan urutan ../ dalam URL untuk mencapai file di luar folder yang dimaksud, seperti /etc/passwd.

Kami menilai risiko data berdasarkan sensitivitas: rencana militer yang tidak terenkripsi adalah risiko tinggi; data pelanggan dengan kunci lemah adalah sedang; data bernilai rendah dengan kunci pendek adalah rendah.

Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
English Bahasa Indonesia
buffer/ˈbʌfə/ penyangga
Directory traversal/daɪˈrektəri træˈvɜːsl/ Traversel direktori
at rest/æt rest/ diam
in transit/ɪn ˈtrænsɪt/ sedang ditransmisikan
in use/ɪn juːs/ sedang digunakan
SQL injection/ˌes kjuː ˈel ɪnˈdʒekʃn/ Injeksi SQL
Watch lesson · ⁨Tonton pelajaran⁩
5.2

Protecting Applications and Data: Managerial Controls and Access Controls · ⁨Melindungi Aplikasi dan Data: Kontrol Manajerial dan Kontrol Akses⁩

Syllabus · ⁨Silabus⁩
English

Learning Objective 5.2.A: Explain how the state or classification of data impacts the type and degree of security applied to that data.

  • 5.2.A.1 Organizations implement specific security controls to comply with legal requirements based on the types of data they collect, store, process, and transmit.
  • 5.2.A.2 Data can be classified by their state.
    • Data at rest are stored on a drive. It is important to protect the physical drive storing the data from destruction or theft. Data at rest can also be encrypted so that if an adversary steals it, they can’t immediately read the data.
    • Data in transit are being sent from one device to another. If the data are being transferred over physical media (e.g., cables) it is important to protect the media. Data in transit can also be encrypted so that if an adversary intercepts it, they can’t immediately read the data.
    • Data in use are being processed by software or a person. Access controls can be used to limit who or what has the ability to use data in different ways (e.g., view or edit). Data must be unencrypted to be used.
  • 5.2.A.3 Organizations often categorize data according to their sensitivity and prioritize a higher degree of security for more sensitive information.
  • 5.2.A.4 Laws and regulations can require certain types of data to be stored, transmitted, and handled according to specific rules.
    • Personally identifiable information (PII) is any data that allows someone to be identified and includes (but is not limited to): name, signature, phone number, address, biometric data (e.g., fingerprints), social security number, date of birth, and email address. The protection of this data is covered by many laws but most notably The Privacy Act of 1974 and for children under the age of 13 the Children’s Online Privacy Protection Act of 1998.
    • Protected health information (PHI) is any data related to an individual’s health, treatment, payment for healthcare at any time and includes (but is not limited to): test results, treatment records, hospital records, doctor visit notes, and health provider payment records. The protection of PHI is included in the Health Insurance Portability and Accountability Act of 1996.
    • Payment card information (PCI) is the data collected by organizations to process payments via cards (e.g., credit cards) and includes the following: name, account number, expiration date, address, and CVV code. The protection of this data is regulated by the Payment Card Industry Data Security Standard (PCI-DSS).
  • 5.2.A.5 Organizations that collect regulated data will label them and have policies that comply with the legal or regulatory requirements for the safe storage, transmission, and handling of these data.

Learning Objective 5.2.B: Identify managerial controls related to application and data security.

  • 5.2.B.1 A cryptography policy will describe the acceptable encryption protocols and key parameters for an organization and may include:
    • A list of encryption algorithms approved for specific uses
    • Minimum or maximum key lengths
    • Cryptographic key-generation requirements and parameters
    • Cryptographic key-storage requirements
  • 5.2.B.2 A web application security policy will outline the requirements and parameters for testing and mitigating web application vulnerabilities in an organization, and it may include:
    • Parameters for when an application is subject to a security assessment
    • Timelines for remediating vulnerabilities based on level of risk
    • Parameters for how an application security assessment is to be carried out (e.g., using specific tools or according to specific frameworks)

Learning Objective 5.2.C: Determine an appropriate access control model to protect applications and data.

  • 5.2.C.1 Access control enforces which users or applications (called subjects) can access, modify, add, or remove (called operations) which files or applications (called objects). Access control models describe how to determine which subjects have what type of access to which objects.
  • 5.2.C.2 Role-based access control (RBAC) assigns every subject to a role and defines which roles have which types of access to which objects.
    • Illustrative examples for 5.2.C.2:
      • An example of a role at a company might be “accountant,” and one type of object could be the payroll software. Role-based access could be used to ensure that only subjects who are assigned to the role of “accountant” have access to the payroll software object.
  • 5.2.C.3 Rule-based access control (RuBAC) checks a set of rules to determine what type of access a subject should have for a specific object and then allows or denies types of access based on the rules. This access control model is typically layered on top of another access control model.
    • Illustrative examples for 5.2.C.3:
      • There is a rule that prohibits subjects (even those who would normally have access) from accessing a certain database (the object) outside of local working hours. When a subject attempts to access the database, even if they are authorized to access it, they will be denied access if it is outside the time designated by the rule.
  • 5.2.C.4 Discretionary access control (DAC) gives individual subjects the ability to set the type of access that other subjects have on objects they own. In DAC models some subjects are designated as administrators or super users, and they have the ability to override the access controls established by other subjects.
    • Illustrative examples for 5.2.C.4:
      • Bob creates a file (an object) and decides to give Alice permission to edit the file, to give Frank permission to view the file only, and to deny everyone else access to the file altogether.
  • 5.2.C.5 Mandatory access control (MAC) follows strict rules for which types of access each subject level has for objects that are above their level, at their level, or below their level. Subject and object levels are assigned by an external administrator.
  • 5.2.C.6 The Bell-LaPadula model is a MAC model that is often used by governments and military organizations to control the security of information. This model has the following two important properties:
    • i. The Simple Security Property states that subjects may not read objects that are above their level.
    • ii. The * (Star) Security Property states that subjects may not write to objects below their level.
    • These rules taken together are often summarized as “write up, read down” (WURD).
  • 5.2.C.7 The principle of least privilege is the idea that entities should be given exactly as much access as they need to perform their function and no more.

Learning Objective 5.2.D: Configure access control settings on a Linux-based system.

  • 5.2.D.1 Authorization is when an entity is granted permission to have a certain type of access to a resource. Access controls are put in place to control which users have what types of access to which data.
  • 5.2.D.2 There are three types of access to a file in Linux that can be set, and they always come in the following order:
    • i. Read access allows a user to view the contents of a file.
    • ii. Write access allows a user to make changes to a file.
    • iii. Execute access allows a user to run a binary file such as a program.
    • These are abbreviated rwx, respectively. If a user only has read and execute permissions (not write), then it would display as r-x. The - symbol indicates the absence of that permission.
  • 5.2.D.3 There are three default entities for which permissions are set and always in this order: (1) the file owner, (2) the file group, and (3) all other users. The three sets are displayed with no spaces (e.g., rwxrwxrwx).
  • 5.2.D.4 To view the current permission settings for a file, use the command ls -l, which will show the current settings for the default entities. If there is a + symbol at the end of the permissions, this means that other permissions have been set for that file and it can be viewed with the getfacl command.
  • 5.2.D.5 To modify the permission settings for a file, use the chmod command. This command can be used with the numeric method or the symbolic method.
  • 5.2.D.6 To use chmod in the numeric method the syntax is chmod ### filename. Each of the three ### represents one of the three entities mentioned above (the owner, the group, other nongroup users).
    • The first # = the owner
    • The second # = the group
    • The third # = other nongroup users
    • The permission for each entity is determined by adding up the values for the types of access to be granted:
    • 0 = no permissions
    • 1 = execute
    • 2 = write
    • 4 = read
    • Therefore 3 sets permission to write and execute, 5 sets permission to read and execute, 6 sets permission to read and write, and 7 sets permission to read, write, and execute.
    • Illustrative examples for 5.2.D.6:
      • The command chmod 750 test would set the permissions for the owner to read, write, and execute, for the group to read and execute, and for everyone else to no access at all.
      • The command chmod 543 test would set the permissions for the owner to read and execute, for the group to read only, and for everyone else to write and execute.
      • The command chmod 777 test would set the permissions for all three entities to read, write, and execute for the file test.
  • 5.2.D.7 To use chmod in the symbolic method the syntax is chmod entity +(or –) permission filename. The entities are the user owner, the group, and other nongroup users. Each entity is represented with a single letter.
    • u = user owner
    • g = group
    • o = others
    • a = all
    • Permission can be either added or removed to any combination of entities.
      • = add the permission
    • – = remove the permission
    • The permissions that can be set are read, write, and execute.
    • r = read
    • w = write
    • x = execute
    • Entities and permissions can be combined in a single command. To add the read and execute permissions for the group and user owner for a file called testfile, the command would be chmod ug+rx testfile.
Bahasa Indonesia

Tujuan Pembelajaran 5.2.A: Jelaskan bagaimana状态 atau klasifikasi data memengaruhi jenis dan tingkat keamanan yang diterapkan pada data tersebut.

  • 5.2.A.1 Organisasi menerapkan kontrol keamanan spesifik untuk mematuhi persyaratan hukum berdasarkan jenis data yang mereka kumpulkan, simpan, proses, dan transmisi.
  • 5.2.A.2 Data dapat diklasifikasikan berdasarkan statusnya.
    • Data saat diam (at rest) disimpan pada penguat. Penting untuk melindungi penguat fisik yang menyimpan data dari kerusakan atau pencurian. Data saat diam juga dapat dienkripsi sehingga jika seorang penjahat merampasnya, mereka tidak dapat segera membaca datanya.
    • Data saat transit dikirimkan dari satu perangkat ke perangkat lain. Jika data ditransfer melalui media fisik (misalnya kabel), penting untuk melindungi media tersebut. Data saat transit juga dapat dienkripsi sehingga jika seorang penjahat mengintercept-nya, mereka tidak dapat segera membaca datanya.
    • Data saat digunakan diproses oleh perangkat lunak atau seseorang. Kontrol akses dapat digunakan untuk membatasi siapa atau apa yang memiliki kemampuan untuk menggunakan data dengan cara yang berbeda (misalnya, melihat atau mengedit). Data harus tidak terenkripsi agar dapat digunakan.
  • 5.2.A.3 Organisasi sering mengategorikan data sesuai dengan tingkat sensitivitasnya dan memprioritaskan tingkat keamanan yang lebih tinggi untuk informasi yang lebih sensitif.
  • 5.2.A.4 Undang-undang dan peraturan dapat mewajibkan jenis data tertentu disimpan, ditransmisi, dan ditangani sesuai dengan aturan spesifik.
    • Informasi identifikasi pribadi (PII) adalah data apa pun yang memungkinkan seseorang diidentifikasi dan mencakup (tetapi tidak terbatas pada): nama, tanda tangan, nomor telepon, alamat, data biometrik (misalnya sidik jari), nomor jaminan sosial, tanggal lahir, dan alamat email. Perlindungan data ini diatur oleh banyak undang-undang tetapi yang paling menonjol adalah The Privacy Act of 1974 dan untuk anak-anak di bawah usia 13 tahun adalah Children’s Online Privacy Protection Act of 1998.
    • Informasi kesehatan terlindungi (PHI) adalah data apa pun yang terkait dengan kesehatan individu, perawatan, pembayaran untuk perawatan kesehatan kapan saja dan mencakup (tetapi tidak terbatas pada): hasil tes, catatan perawatan, rekam rumah sakit, catatan kunjungan dokter, dan catatan pembayaran penyedia kesehatan. Perlindungan PHI termasuk dalam Health Insurance Portability and Accountability Act of 1996.
    • Informasi kartu pembayaran (PCI) adalah data yang dikumpulkan oleh organisasi untuk memproses pembayaran melalui kartu (misalnya kartu kredit) dan mencakup hal-hal berikut: nama, nomor akun, tanggal kedaluwarsa, alamat, dan kode CVV. Perlindungan data ini diatur oleh Payment Card Industry Data Security Standard (PCI-DSS).
  • 5.2.A.5 Organisasi yang mengumpulkan data terregulasi akan melabelinya dan memiliki kebijakan yang mematuhi persyaratan hukum atau regulasi untuk penyimpanan, transmisi, dan penanganan data ini secara aman.

Tujuan Pembelajaran 5.2.B: Identifikasi kontrol manajerial yang berkaitan dengan keamanan aplikasi dan data.

  • 5.2.B.1 Kebijakan kriptografi akan menjelaskan protokol enkripsi dan parameter kunci yang dapat diterima untuk sebuah organisasi dan mungkin mencakup:
    • Daftar algoritma enkripsi yang disetujui untuk penggunaan tertentu
    • Panjang kunci minimum atau maksimum
    • Persyaratan dan parameter pembangkitan kunci kriptografi
    • Persyaratan penyimpanan kunci kriptografi
  • 5.2.B.2 Kebijakan keamanan aplikasi web akan outlining persyaratan dan parameter untuk pengujian dan mitigasi kerentanan aplikasi web dalam sebuah organisasi, dan mungkin mencakup:
    • Parameter kapan sebuah aplikasi tunduk pada penilaian keamanan
    • Timeline untuk perbaikan kerentanan berdasarkan tingkat risiko
    • Parameter tentang bagaimana penilaian keamanan aplikasi harus dilakukan (misalnya, menggunakan alat tertentu atau sesuai dengan framework tertentu)

Tujuan Pembelajaran 5.2.C: Tentukan model kontrol akses yang tepat untuk melindungi aplikasi dan data.

  • 5.2.C.1 Kontrol akses menegakkan pengguna atau aplikasi mana (disebut subjek) dapat mengakses, memodifikasi, menambahkan, atau menghapus (disebut operasi) file atau aplikasi mana (disebut objek). Model kontrol akses menggambarkan cara menentukan subjek mana memiliki jenis akses apa ke objek mana.
  • 5.2.C.2 Kontrol akses berbasis peran (RBAC) menetapkan setiap subjek ke dalam peran dan mendefinisikan peran mana memiliki jenis akses apa ke objek mana.
    • Contoh ilustratif untuk 5.2.C.2:
      • Contoh peran di sebuah perusahaan bisa jadi "akuntan", dan salah satu jenis objek bisa jadi perangkat lunak penggajian. Akses berbasis peran dapat digunakan untuk memastikan bahwa hanya subjek yang ditugaskan ke peran "akuntan" yang memiliki akses ke objek perangkat lunak penggajian.
  • 5.2.C.3 Kontrol akses berbasis aturan (RuBAC) memeriksa serangkaian aturan untuk menentukan jenis akses apa yang seharusnya dimiliki subjek untuk objek tertentu dan kemudian mengizinkan atau menolak jenis akses berdasarkan aturan tersebut. Model kontrol akses ini biasanya berlapis di atas model kontrol akses lainnya.
    • Contoh ilustratif untuk 5.2.C.3:
      • Ada aturan yang melarang subjek (bahkan mereka yang biasanya memiliki akses) untuk mengakses database tertentu (objek) di luar jam kerja lokal. Ketika subjek mencoba mengakses database, meskipun mereka berwenang untuk mengaksesnya, mereka akan ditolak aksesnya jika berada di luar waktu yang ditentukan oleh aturan tersebut.
  • 5.2.C.4 Kontrol akses diskresioner (DAC) memberikan subyek individu kemampuan untuk menetapkan jenis akses yang dimiliki subyek lain terhadap objek yang mereka miliki. Dalam model DAC, beberapa subyek ditunjuk sebagai administrator atau super pengguna, dan mereka memiliki kemampuan untuk mengabaikan kontrol akses yang ditetapkan oleh subyek lainnya.
    • Contoh ilustratif untuk 5.2.C.4:
      • Bob membuat sebuah file (sebuah objek) dan memutuskan untuk memberikan Alice izin untuk mengedit file tersebut, memberikan Frank izin hanya untuk melihat file, dan menolak akses bagi semua orang lainnya ke file tersebut sepenuhnya.
  • 5.2.C.5 Kontrol akses wajib (MAC) mengikuti aturan ketat mengenai jenis akses apa yang dimiliki setiap tingkat subyek terhadap objek di atas, pada, atau di bawah level mereka. Tingkat subyek dan objek ditentukan oleh administrator eksternal.
  • 5.2.C.6 Model Bell-LaPadula adalah model MAC yang sering digunakan oleh pemerintah dan organisasi militer untuk mengontrol keamanan informasi. Model ini memiliki dua sifat penting berikut:
    • i. Sifat Keamanan Sederhana menyatakan bahwa subyek tidak boleh membaca objek yang berada di atas level mereka.
    • ii. Sifat Keamanan * (Star) menyatakan bahwa subyek tidak boleh menulis ke objek di bawah level mereka.
    • Aturan-aturan ini jika digabungkan sering diringkas sebagai "menulis naik, membaca turun" (WURD).
  • 5.2.C.7 Prinsip hak minimum adalah gagasan bahwa entitas harus diberikan tepat sebanyak akses yang diperlukan untuk menjalankan fungsinya dan tidak lebih dari itu.

Tujuan Pembelajaran 5.2.D: Konfigurasi pengaturan kontrol akses pada sistem berbasis Linux.

  • 5.2.D.1 Otorisasi adalah ketika sebuah entitas diberikan izin untuk memiliki jenis akses tertentu terhadap suatu sumber daya. Kontrol akses diterapkan untuk mengatur pengguna mana yang memiliki jenis akses apa terhadap data mana.
  • 5.2.D.2 Terdapat tiga jenis akses ke sebuah file dalam Linux yang dapat diatur, dan selalu datang dalam urutan berikut:
    • i. Akses baca memungkinkan pengguna untuk melihat isi file.
    • ii. Akses tulis memungkinkan pengguna untuk mengubah file.
    • iii. Akses eksekusi memungkinkan pengguna untuk menjalankan file biner seperti program.
    • Ini disingkat rwx, berturut-turut. Jika seorang pengguna hanya memiliki izin baca dan eksekusi (bukan tulis), maka akan ditampilkan sebagai r-x. Simbol - menunjukkan ketiadaan izin tersebut.
  • 5.2.D.3 Terdapat tiga entitas default untuk izin yang ditetapkan dan selalu dalam urutan ini: (1) pemilik file, (2) grup file, dan (3) semua pengguna lainnya. Ketiga set ditampilkan tanpa spasi (mis., rwxrwxrwx).
  • 5.2.D.4 Untuk melihat pengaturan izin saat ini untuk sebuah file, gunakan perintah ls -l, yang akan menampilkan pengaturan saat ini untuk entitas default. Jika ada simbol + di akhir izin, ini berarti izin lain telah ditetapkan untuk file tersebut dan dapat dilihat dengan perintah getfacl.
  • 5.2.D.5 Untuk memodifikasi pengaturan izin untuk sebuah file, gunakan perintah chmod. Perintah ini dapat digunakan dengan metode numerik atau metode simbolik.
  • 5.2.D.6 Untuk menggunakan chmod dalam metode numerik, sintaksnya adalah chmod ### filename. Setiap ### mewakili salah satu dari tiga entitas yang disebutkan di atas (pemilik, grup, pengguna non-grup lainnya).
    • pertama = pemilik

    • kedua = grup

    • ketiga = pengguna non-grup lainnya

    • Izin untuk setiap entitas ditentukan dengan menjumlahkan nilai-nilai untuk jenis akses yang akan diberikan:
    • 0 = tidak ada izin
    • 1 = eksekusi
    • 2 = tulis
    • 4 = baca
    • Oleh karena itu, 3 menetapkan izin untuk menulis dan mengeksekusi, 5 menetapkan izin untuk membaca dan mengeksekusi, 6 menetapkan izin untuk membaca dan menulis, dan 7 menetapkan izin untuk membaca, menulis, dan mengeksekusi.
    • Contoh ilustratif untuk 5.2.D.6:
      • Perintah chmod 750 test akan menetapkan izin untuk pemilik menjadi baca, tulis, dan eksekusi, untuk grup menjadi baca dan eksekusi, dan untuk semua orang lain tidak ada akses sama sekali.
      • Perintah chmod 543 test akan menetapkan izin untuk pemilik menjadi baca dan eksekusi, untuk grup hanya baca, dan untuk semua orang lain menjadi tulis dan eksekusi.
      • Perintah chmod 777 test akan menetapkan izin untuk ketiga entitas menjadi baca, tulis, dan eksekusi untuk file test.
  • 5.2.D.7 Untuk menggunakan chmod dalam metode simbolik, sintaksnya adalah chmod entity +(atau –) permission filename. Entitasnya adalah pemilik pengguna, grup, dan pengguna non-grup lainnya. Setiap entitas diwakili dengan satu huruf.
    • u = pemilik pengguna
    • g = grup
    • o = lainnya
    • a = semua
    • Izin dapat ditambahkan atau dihapus pada kombinasi entitas apa pun.
      • = tambahkan izin
    • – = hapus izin
    • Izin yang dapat ditetapkan adalah baca, tulis, dan eksekusi.
    • r = baca
    • w = tulis
    • x = eksekusi
    • Entitas dan izin dapat dikombinasikan dalam satu perintah. Untuk menambahkan izin baca dan eksekusi untuk grup dan pemilik pengguna untuk sebuah file bernama testfile, perintahnya adalah chmod ug+rx testfile.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

Data is classified by its state - at rest 静态数据 (stored on a drive), in transit 传输中数据 (moving between devices), and in use 使用中数据 (being processed). Data at rest and in transit can be encrypted so a thief cannot read it; data in use must be decrypted, so access controls guard it instead.

Some data types are regulated 受监管 - the law dictates how they must be stored, transmitted and handled - so an organisation must achieve compliance 合规 by matching its controls to the rules. The exam expects you to pair each data type with its governing law:

Regulated data What it is Governing law
personally identifiable information (PII) 个人身份信息 anything identifying a person: name, address, SSN, biometrics, date of birth The Privacy Act (1974); COPPA for under-13s
protected health information (PHI) 受保护健康信息 health, treatment and healthcare-payment records HIPAA (1996)
payment card information (PCI) 支付卡信息 card number, expiry, CVV, cardholder name PCI-DSS

An organisation that collects regulated data must label it and hold policies that keep its storage, transmission and handling compliant - the higher the sensitivity, the higher the required degree of security.

Access control decides which subjects (users) may perform which operations on which objects (files). Four models:

  • Role-based (RBAC) 基于角色的访问控制 - access follows your role (all "accountants" reach the payroll software).
  • Rule-based (RuBAC) 基于规则的访问控制 - access follows conditions (only during business hours), layered on another model.
  • Discretionary (DAC) 自主访问控制 - the owner of a file decides who else may use it.
  • Mandatory (MAC) 强制访问控制 - a central administrator sets strict levels; the Bell-LaPadula model summarises it as "write up, read down".

A guiding idea across all models is the principle of least privilege 最小权限原则 - give each entity exactly the access it needs and no more.

On a Linux system, each file has three permissions - read (r), write (w), execute (x) - for three groups: the owner, the group, and others. The chmod command sets them with numbers, adding 4 (read) + 2 (write) + 1 (execute). So chmod 640 means owner read+write (6), group read (4), others nothing (0).

Worked example. A principal wants only herself to read and edit a file, her staff group to read it, and no one else to touch it. Read+write = 4+2 = 6 for the owner, read = 4 for the group, nothing = 0 for others, giving chmod 640 file. The listing then shows -rw-r-----. To also let the owner run the file as a program you would add execute (7 = 4+2+1), giving chmod 740.

Bahasa Indonesia

Data diklasifikasikan berdasarkan keadaannya - saat diam (tersimpan di drive), saat transit (berpindah antar perangkat), dan saat digunakan (sedang diproses). Data saat diam dan saat transit dapat terenkripsi agar pencuri tidak bisa membacanya; data saat digunakan harus didekripsi, jadi kontrol akses melindunginya.

Beberapa jenis data teratur - undang-undang menentukan bagaimana mereka harus disimpan, dikirim, dan ditangani - sehingga organisasi harus mencapai kepatuhan dengan menyesuaikan kontrol mereka dengan aturan. Ujian mengharapkan Anda untuk memasangkan setiap jenis data dengan undangannya:

Data teratur Apa itu Undang-undang pengatur
Informasi yang Dapat Mengidentifikasi Pribadi (PII) segala sesuatu yang mengidentifikasi seseorang: nama, alamat, SSN, biometrik, tanggal lahir Undang-Undang Privasi (1974); COPPA untuk usia di bawah 13 tahun
Informasi Kesehatan Terlindungi (PHI) rekam medis, perawatan, dan pembayaran layanan kesehatan HIPAA (1996)
Informasi Kartu Pembayaran (PCI) nomor kartu, masa berlaku, CVV, nama pemegang kartu PCI-DSS

Organisasi yang mengumpulkan data terregulated harus memberi label padanya dan memiliki kebijakan yang memastikan penyimpanan, transmisi, dan penanganannya tetap mematuhi aturan - semakin tinggi tingkat sensitivitasnya, semakin tinggi pula tingkat keamanan yang diperlukan.

Kontrol akses menentukan siapa saja subjek (pengguna) yang dapat melakukan operasi apa pada objek (file) tertentu. Ada empat model:

  • Berbasis Peran (RBAC) - akses mengikuti peran Anda (semua "akuntan" dapat mengakses perangkat lunak gaji).
  • Berbasis Aturan (RuBAC) - akses mengikuti kondisi (hanya selama jam kerja), yang ditumpuk di atas model lain.
  • Discretionary (DAC) - pemilik file yang memutuskan siapa lagi yang boleh menggunakannya.
  • Mandatory (MAC) - administrator pusat menetapkan tingkat yang ketat; model Bell-LaPadula merangkumnya sebagai "tulis naik, baca turun".
Empat model kontrol akses menentukan siapa mencapai objek mana, dan bagaimana cara mencapainya
Empat model kontrol akses menentukan siapa mencapai objek mana, dan bagaimana cara mencapainya

Prinsip panduan di seluruh model adalah prinsip hak minimum - berikan setiap entitas tepat akses yang mereka butuhkan dan tidak lebih.

Pada sistem Linux, setiap file memiliki tiga izin - baca (r), tulis (w), jalankan (x) - untuk tiga kelompok: pemilik, kelompok, dan lainnya. Perintah chmod mengatur izin tersebut dengan angka, menambahkan 4 (baca) + 2 (tulis) + 1 (jalankan). Jadi chmod 640 berarti pemilik baca+tulis (6), kelompok baca (4), lainnya tidak ada (0).

Izin file Linux: baca/tulis/jalankan untuk pemilik, kelompok, dan lainnya
Izin file Linux: baca/tulis/jalankan untuk pemilik, kelompok, dan lainnya

Contoh dikerjakan. Seorang kepala sekolah hanya ingin dirinya sendiri membaca dan mengedit sebuah file, kelompok stafnya membacanya, dan tidak ada orang lain yang menyentuhnya. Baca+tulis = 4+2 = 6 untuk pemilik, baca = 4 untuk kelompok, tidak ada = 0 untuk lainnya, menghasilkan chmod 640 file. Daftar kemudian menampilkan -rw-r-----. Untuk juga memungkinkan pemilik menjalankan file sebagai program, Anda harus menambahkan jalankan (7 = 4+2+1), menghasilkan chmod 740.

Explore · ⁨Jelajahi⁩

Which access-control model fits the rule? · ⁨Model kontrol akses mana yang sesuai dengan aturan?⁩

Each access-control model has a different decider: RBAC by your role, RuBAC by a condition, DAC by the file's owner, and MAC by a central administrator's levels. · ⁨Setiap model kontrol akses memiliki pembuat keputusan yang berbeda: RBAC berdasarkan peran Anda, RuBAC berdasarkan kondisi, DAC berdasarkan pemilik file, dan MAC berdasarkan tingkat administrator pusat.⁩

Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
English Bahasa Indonesia
regulated/ˈreɡjʊleɪtɪd/ teratur
compliance/kəmˈplaɪəns/ kepatuhan
personally identifiable information (PII)/ˈpɜːsənəli aɪˈdentɪfaɪəbl ˌɪnfəˈmeɪʃn/ informasi yang dapat diidentifikasi secara pribadi (PII)
protected health information (PHI)/prəˈtektɪd helθ ˌɪnfəˈmeɪʃn/ informasi kesehatan terlindungi (PHI)
payment card information (PCI)/ˈpeɪmənt kɑːd ˌɪnfəˈmeɪʃn/ informasi kartu pembayaran (PCI)
Role-based (RBAC)/rəʊl beɪst/ Berbasis peran (RBAC)
Rule-based (RuBAC)/ruːl beɪst/ Berbasis aturan (RuBAC)
Discretionary (DAC)/dɪˈskreʃənəri/ Discretionary (DAC)
Mandatory (MAC)/ˈmændətəri/ Mandatory (MAC)
principle of least privilege/ˈprɪnsɪpl ɒv liːst ˈprɪvɪlɪdʒ/ prinsip hak minimum
Cryptography/krɪpˈtɒɡrəfi/ Kriptografi
plaintext/ˈpleɪntekst/ teks biasa
key/kiː/ key
ciphertext/ˈsaɪfətekst/ teks terenkripsi
keyspace/ˈkiːspeɪs/ ruang kunci
Symmetric encryption/sɪˈmetrɪk enˈkrɪpʃn/ Enkripsi simetris
5.3

Protecting Stored Data with Cryptography · ⁨Melindungi Data Tersimpan dengan Kriptografi⁩

Syllabus · ⁨Silabus⁩
English

Learning Objective 5.3.A: Explain how encryption can be used to protect files.

  • 5.3.A.1 The purpose of cryptography is to hide information. A cryptographic algorithm defines a process for encrypting and decrypting information. Encryption is the process of hiding the information, and decryption is the process of reversing the encryption to retrieve the original information.
  • 5.3.A.2 An encryption algorithm defines a process for combining the information to be encrypted with a predefined key. The information to be encrypted is called the plaintext. The output of the encryption algorithm is called the ciphertext.
  • 5.3.A.3 The number of possible keys that can be used in an encryption algorithm is called the keyspace. The larger the keyspace, the longer it will take an adversary to discover the correct key by random chance.
  • 5.3.A.4 Cryptographic algorithms are classified by whether they use one key or two keys.
    • Symmetric encryption algorithms use the same key to encrypt and decrypt information.
    • Asymmetric encryption algorithms use two different keys—one to encrypt information and the other to decrypt information.
  • 5.3.A.5 Cryptographic algorithms are also classified by whether they process information one bit at a time or in fixed-size chunks of bits.
    • Block encryption handles information in fixed-size chunks called blocks, producing an output block for each input block.
    • Stream encryption handles input information continuously, producing output one element at a time.

Learning Objective 5.3.B: Apply symmetric encryption algorithms to encrypt and decrypt data.

  • 5.3.B.1 Computer-based encryption algorithms operate on binary data. The most common symmetric encryption algorithm is the Advanced Encryption Standard (AES). AES encryption is used to secure Wi-Fi transmissions, internet browsing, file encryption on disks, and hardware-level encryption on processors.
  • 5.3.B.2 AES is a symmetric key block cipher that encrypts data in 128-bit blocks (16 bytes). AES can operate with keys of varying lengths. Longer keys produce more secure encryption but require more time to encrypt and decrypt.
  • 5.3.B.3 Symmetric encryption and decryption can be performed using the command line, specialized software, or web-based tools.
    • On a command line interface, users can encrypt or decrypt with OpenSSL.
    • Specialized software like AES Crypt is an open source tool that can encrypt and decrypt files.
    • There are many web-based tools for encrypting and decrypting files.
  • 5.3.B.4 Using OpenSSL in a CLI, a user can encrypt and decrypt a file using the following commands (note that the encryption key is derived from the password provided):
    • To encrypt a file named test with AES using a 128-bit key, use the command: openssl enc -aes-128-cbc -e -in test -k password -out test.enc
    • To decrypt the encrypted file using the same key, use the command: openssl enc -aes-128-cbc -d -in test.enc -k password -out text
Bahasa Indonesia

Tujuan Pembelajaran 5.3.A: Jelaskan bagaimana enkripsi dapat digunakan untuk melindungi file.

  • 5.3.A.1 Tujuan kriptografi adalah menyembunyikan informasi. Algoritma kriptografi mendefinisikan proses untuk mengenkripsi dan mendekripsi informasi. Enkripsi adalah proses menyembunyikan informasi, dan dekripsi adalah proses membalikkan enkripsi untuk mengembalikan informasi asli.
  • 5.3.A.2 Algoritma enkripsi mendefinisikan proses untuk menggabungkan informasi yang akan dienkripsi dengan kunci yang telah ditentukan sebelumnya. Informasi yang akan dienkripsi disebut plaintext. Output dari algoritma enkripsi disebut ciphertext.
  • 5.3.A.3 Jumlah kemungkinan kunci yang dapat digunakan dalam sebuah algoritma enkripsi disebut keyspace. Semakin besar keyspace, semakin lama waktu yang dibutuhkan seorang penyerang untuk menemukan kunci yang benar secara kebetulan acak.
  • 5.3.A.4 Algoritma kriptografi diklasifikasikan berdasarkan apakah mereka menggunakan satu kunci atau dua kunci.
    • Algoritma enkripsi simetris menggunakan kunci yang sama untuk mengenkripsi dan mendekripsi informasi.
    • Algoritma enkripsi asimetris menggunakan dua kunci yang berbeda—satu untuk mengenkripsi informasi dan yang lain untuk mendekripsinya.
  • 5.3.A.5 Algoritma kriptografi juga diklasifikasikan berdasarkan apakah mereka memproses informasi satu bit pada satu waktu atau dalam blok ukuran tetap.
    • Enkripsi blok menangani informasi dalam blok ukuran tetap yang disebut blok, menghasilkan blok output untuk setiap blok input.
    • Enkripsi stream menangani informasi input secara terus-menerus, menghasilkan output satu elemen pada satu waktu.

Tujuan Pembelajaran 5.3.B: Terapkan algoritma enkripsi simetris untuk mengenkripsi dan mendekripsi data.

  • 5.3.B.1 Algoritma enkripsi berbasis komputer beroperasi pada data biner. Algoritma enkripsi simetris yang paling umum adalah Advanced Encryption Standard (AES). Enkripsi AES digunakan untuk mengamankan transmisi Wi-Fi, penjelajahan internet, pengenkripsian file di disk, dan enkripsi tingkat perangkat keras pada prosesor.
  • 5.3.B.2 AES adalah cipher blok kunci simetris yang mengenkripsi data dalam blok 128-bit (16 byte). AES dapat operate dengan kunci yang memiliki panjang bervariasi. Kunci yang lebih panjang menghasilkan enkripsi yang lebih aman tetapi memerlukan lebih banyak waktu untuk mengenkripsi dan mendekripsi.
  • 5.3.B.3 Enkripsi dan dekripsi simetris dapat dilakukan menggunakan baris perintah (command line), perangkat lunak khusus, atau alat berbasis web.
    • Pada antarmuka baris perintah, pengguna dapat mengenkripsi atau mendekripsi dengan OpenSSL.
    • Perangkat lunak khusus seperti AES Crypt adalah alat open source yang dapat mengenkripsi dan mendekripsi file.
    • Terdapat banyak alat berbasis web untuk mengenkripsi dan mendekripsi file.
  • 5.3.B.4 Menggunakan OpenSSL dalam CLI, pengguna dapat mengenkripsi dan mendekripsi file menggunakan perintah berikut (catatan bahwa kunci enkripsi diturunkan dari kata sandi yang diberikan):
    • Untuk mengenkripsi file bernama test dengan AES menggunakan kunci 128-bit, gunakan perintah: openssl enc -aes-128-cbc -e -in test -k password -out test.enc
    • Untuk mendekripsi file terenkripsi menggunakan kunci yang sama, gunakan perintah: openssl enc -aes-128-cbc -d -in test.enc -k password -out text

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English
Symmetric vs asymmetric encryption
Hashing and the avalanche effect

Cryptography 密码学 hides information. An encryption algorithm combines the plaintext 明文 with a key 密钥 to produce ciphertext 密文; decryption reverses it. The keyspace 密钥空间 is the number of possible keys - the bigger it is, the longer an adversary needs to guess. An n-bit key has a keyspace of $2^n$.

Symmetric encryption 对称加密 uses the same key to encrypt and decrypt. The standard is AES 高级加密标准, a block cipher 分组密码 that works on 128-bit blocks and secures Wi-Fi, browsing, and stored files. Because both sides need the same secret key, sharing that key safely is the challenge.

Bahasa Indonesia
Mesin Enigma: kriptografi melindungi data tersimpan dan yang ditransmisikan dari pendengar diam-diam
Mesin Enigma: kriptografi melindungi data tersimpan dan yang ditransmisikan dari pendengar diam-diam
Enkripsi simetris vs asimetris
Hashing dan efek salju

Kriptografi menyembunyikan informasi. Algoritma enkripsi menggabungkan teks biasa dengan kunci untuk menghasilkan teks terenkripsi; dekripsi membalikkan prosesnya. Ruang kunci adalah jumlah kemungkinan kunci—semakin besar, semakin lama waktu yang dibutuhkan penyerang untuk menebak. Kunci n-bit memiliki ruang kunci $2^n$.

Enkripsi simetris menggunakan kunci yang sama untuk mengenkripsi dan mendekripsi. Standarnya adalah AES, sebuah cipher blok yang bekerja pada blok 128-bit dan mengamankan Wi-Fi, penjelajahan web, dan file tersimpan. Karena kedua sisi membutuhkan kunci rahasia yang sama, berbagi kunci tersebut secara aman menjadi tantangannya.

Mesin cipher Enigma Perang Dunia II dengan kunci dan rotor
Mesin Enigma mengacak pesan dengan rotor — contoh awal enkripsi yang dapat ditembuskan
Explore · ⁨Jelajahi⁩

Encrypt a message by shifting letters · ⁨Mengkripsi pesan dengan menggeser huruf⁩

Encryption combines plaintext with a key to make ciphertext. In this simple cipher the key is the shift amount; only someone who knows the shift can decrypt the message back. · ⁨Enkripsi menggabungkan teks biasa dengan kunci untuk membuat ciphertext. Dalam cipher sederhana ini, kuncinya adalah jumlah pergeseran; hanya seseorang yang mengetahui pergeseran tersebut yang dapat mendekripsi pesan kembali.⁩

Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
English Bahasa Indonesia
AES/ˌeɪ iː ˈes/ AES
block cipher/blɒk ˈsaɪfə/ kiper blok
Asymmetric encryption/ˌeɪsɪˈmetrɪk enˈkrɪpʃn/ Enkripsi asimetris
key pair/kiː peə/ pasangan kunci
public key/ˈpʌblɪk kiː/ kunci publik
private key/ˈpraɪvət kiː/ kunci pribadi
elliptic curve cryptography (ECC)/ɪˈlɪptɪk kɜːv krɪpˈtɒɡrəfi/ kriptografi kurva elips (ECC)
Secure by design/sɪˈkjʊə baɪ dɪˈzaɪn/ Aman sejak perancangan
Secure by default/sɪˈkjʊə baɪ dɪˈfɒlt/ Aman secara default
input sanitization/ˈɪnpʊt ˌsænɪtaɪˈzeɪʃn/ pembersihan input
special characters/ˈspeʃl ˈkærɪktəz/ karakter khusus
accounting/əˈkaʊntɪŋ/ akuntansi
Watch lesson · ⁨Tonton pelajaran⁩
5.4

Asymmetric Cryptography · ⁨Kriptografi Asimetris⁩

Syllabus · ⁨Silabus⁩
Learning ObjectiveEssential Knowledge

5.4.A
Determine the appropriate asymmetric key to use when sending or receiving encrypted data.

  • 5.4.A.1 Asymmetric encryption allows users to communicate securely without prearranging a shared secret key.
  • 5.4.A.2 When using asymmetric encryption, each entity that will be receiving data must first generate a key pair. Key pairs are binary strings of equal length that are generated at the same time through a mathematical process. One key is designated as the public key and the other as the private key. The keys are mathematical inverses of each other— each key reverses its partner. Either key can be used to encrypt information, but only the other key in the key pair will then be able to decrypt it.
  • 5.4.A.3 Once the receiver generates the key pair, the private key must be stored securely. If the private key is exposed, shared, stolen, corrupted, or compromised the key pair must be deleted and a new key pair must be generated, because the security of the encryption algorithm rests on the security of the private key. The public key is published for anyone to view and use.
  • 5.4.A.4 To send information securely to someone, the sender will use the receiver’s public key to encrypt the data and send it. Only the receiver who has the private key will be able to decrypt and read the information.

5.4.B
Explain why the length of a key impacts the security of encrypted data.

  • 5.4.B.1 Longer keys result in larger keyspaces. For binary keys, an n-bit length key has a keyspace of $2^n$.
  • 5.4.B.2 Using an application to randomly guess an n-bit length encryption key means that on average an adversary will be able to guess the correct key in $2^n \div 2$ (or $2^{n-1}$) guesses.
  • 5.4.B.3 Although longer keys are more secure, they also require more time to encrypt and decrypt messages.
  • 5.4.B.4 Computational processing power and efficiency continue to improve, allowing software to guess keys faster. Key-length recommendations for both symmetric and asymmetric encryption algorithms are periodically increased to account for increased processing power.
  • 5.4.B.5 Key-length comparison is only valid when comparing keys for the same cryptographic algorithm.
    • Illustrative examples for 5.4.B.5:
      • An AES 256-bit key is more secure than an AES 128-bit key.
      • An RSA 4096-bit key is more secure than an RSA 2048-bit key.
      • RSA and AES keys cannot be directly compared to one another in determining the level of security.

5.4.C
Apply asymmetric encryption algorithms to encrypt and decrypt data.

  • 5.4.C.1 Common asymmetric encryption algorithms include RSA and elliptic curve cryptography (ECC). Asymmetric algorithms are used in many applications, including digital signatures and digital certificates.
  • 5.4.C.2 As with symmetric encryption, asymmetric encryption and decryption can be performed using the command line, specialized software, or web-based tools.
    • On a command line interface, users can encrypt or decrypt with OpenSSL.
    • Specialized software like RSA Encryption Tool is an open source tool that can encrypt and decrypt files.
    • There are many web-based tools for encrypting and decrypting files.
  • 5.4.C.3 In a CLI, a user can generate an asymmetric key pair and encrypt or decrypt files as necessary.
    • To generate a 2048-bit RSA key pair and save the key to a file named rsa.pem use the command: openssl genrsa -out rsa.pem 2048
    • To extract the public key from rsa.pem into a file named public.pem, use the command: openssl rsa -pubout -in rsa.pem -outform PEM -out public.pem
    • To encrypt the file test using RSA encryption and the key file public.pem, use the command: openssl pkeyutl -encrypt -pubin -inkey public.pem -in test -out test.enc
    • To decrypt the test.enc file using the rsa.pem file, run the command: openssl pkeyutl -decrypt -inkey rsa.pem -in test.enc -out test

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

Asymmetric encryption 非对称加密 solves the key-sharing problem with a key pair 密钥对 - a public key 公钥 anyone may see and a private key 私钥 kept secret. The keys are mathematical inverses: whatever one locks, only the other unlocks. To send you a secret, I encrypt with your public key, and only your private key can decrypt it - so we never had to share a secret in advance.

Longer keys mean larger keyspaces and more security, but slower encryption. Common asymmetric algorithms are RSA and elliptic curve cryptography (ECC) 椭圆曲线密码学, used in digital signatures and certificates. Remember: you can only compare key lengths within the same algorithm - an RSA 4096-bit key is not directly comparable to an AES 256-bit key.

Bahasa Indonesia

Enkripsi asimetris memecahkan masalah berbagi kunci dengan pasangan kunci - kunci publik yang boleh dilihat siapa pun dan kunci privat yang dirahasiakan. Kunci-kunci ini adalah invers matematis: apa yang dikunci oleh satu, hanya yang lain yang bisa membukanya. Untuk mengirimkan rahasia kepada Anda, saya mengenkripsi dengan kunci publik Anda, dan hanya kunci privat Anda yang dapat mendekripsinya - sehingga kita tidak perlu pernah berbagi rahasia sebelumnya.

Enkripsi asimetris: enkripsi dengan kunci publik, dekripsi dengan kunci pribadi
Enkripsi asimetris: enkripsi dengan kunci publik, dekripsi dengan kunci privat

Kunci yang lebih panjang berarti ruang kunci yang lebih besar dan keamanan yang lebih tinggi, tetapi enkripsi yang lebih lambat. Algoritma asimetris yang umum adalah RSA dan kriptografi kurva eliptik (ECC), digunakan dalam tanda tangan digital dan sertifikat. Ingat: Anda hanya dapat membandingkan panjang kunci dalam algoritma yang sama - kunci RSA 4096-bit tidak dapat dibandingkan secara langsung dengan kunci AES 256-bit.

Gembok: kriptografi mengunci data sehingga hanya seseorang dengan kunci yang sesuai yang bisa membukanya
Gembok: kriptografi mengunci data agar hanya seseorang dengan kunci yang cocok yang bisa membukanya
Watch lesson · ⁨Tonton pelajaran⁩
5.5

Protecting Applications · ⁨Melindungi Aplikasi⁩

Syllabus · ⁨Silabus⁩
English

Learning Objective 5.5.A: Identify the application security principles of secure by design and security by default.

  • 5.5.A.1 Secure by design is an initiative that encourages companies to include security in all phases of product development including design. When organizations implement secure by design, security is a design principle not just a technical feature.
  • 5.5.A.2 Secure by design includes three design principles:
    • i. Companies should take ownership of customer security outcomes. Companies should build products that meet the security needs of their customers.
    • ii. Companies should embrace radical transparency and accountability. Sharing relevant security-related product news and updates quickly increases security for everyone.
    • iii. Companies should build organizational structure and leadership to implement secure by design. Companies need leaders who are focused on security and have a security-first posture.
  • 5.5.A.3 Secure by design includes the concept of secure by default, which is the idea that security features for software and devices should be enabled by default. Devices and software should be secure to use out of the box, with security features already enabled.

Learning Objective 5.5.B: Explain how user input sanitization protects applications.

  • 5.5.B.1 When users enter input into an application, the application typically encases that input in special characters to process it. The characters that encase the user input are called control characters and include the single quote, the double quote, and the semicolon.
  • 5.5.B.2 When creating a program that takes user input, programmers should use a function to verify that user input meets their expected criteria and does not include any control characters that could be used to manipulate the system. This verification function can sanitize user input by removing potentially malicious characters, or it can give the user an error and force the user to provide different input. This can protect against many application attacks, including:
    • SQL injection attacks
    • XSS attacks
    • Directory traversal attacks
Bahasa Indonesia

Tujuan Pembelajaran 5.5.A: Identifikasi prinsip keamanan aplikasi yaitu secure by design dan security by default.

  • 5.5.A.1 Secure by design adalah inisiatif yang mendorong perusahaan untuk memasukkan keamanan dalam semua fase pengembangan produk termasuk desain. Ketika organisasi menerapkan secure by design, keamanan merupakan prinsip desain bukan sekadar fitur teknis.
  • 5.5.A.2 Secure by design mencakup tiga prinsip desain:
    • i. Perusahaan harus mengambil alih tanggung jawab atas hasil keamanan pelanggan. Perusahaan harus membangun produk yang memenuhi kebutuhan keamanan pelanggannya.
    • ii. Perusahaan harus mengadopsi transparansi radikal dan akuntabilitas. Berbagi berita dan pembaruan produk terkait keamanan dengan cepat meningkatkan keamanan bagi semua pihak.
    • iii. Perusahaan harus membangun struktur organisasi dan kepemimpinan untuk menerapkan secure by design. Perusahaan membutuhkan pemimpin yang berfokus pada keamanan dan memiliki sikap security-first.
  • 5.5.A.3 Secure by design mencakup konsep secure by default, yaitu gagasan bahwa fitur keamanan untuk perangkat lunak dan perangkat harus diaktifkan secara default. Perangkat dan perangkat lunak harus aman digunakan sejak awal (out of the box), dengan fitur keamanan sudah aktif.

Tujuan Pembelajaran 5.5.B: Jelaskan bagaimana sanitasi input pengguna melindungi aplikasi.

  • 5.5.B.1 Ketika pengguna memasukkan input ke dalam aplikasi, aplikasi biasanya membungkus input tersebut dengan karakter khusus untuk memprosesnya. Karakter yang membungkus input pengguna disebut kontrol karakter dan meliputi tanda kutip tunggal, tanda kutip ganda, dan titik koma.
  • 5.5.B.2 Saat membuat program yang menerima input pengguna, programmer harus menggunakan fungsi untuk memverifikasi bahwa input pengguna memenuhi kriteria yang diharapkan dan tidak menyertakan karakter kontrol apa pun yang dapat digunakan untuk memanipulasi sistem. Fungsi verifikasi ini dapat mensanitasi input pengguna dengan menghapus karakter yang berpotensi berbahaya, atau dapat memberikan pesan kesalahan kepada pengguna dan memaksa pengguna untuk menyediakan input lain. Hal ini dapat melindungi terhadap banyak serangan aplikasi, termasuk:
    • Serangan SQL injection
    • Serangan XSS
    • Serangan directory traversal

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

Two design principles keep applications safe from the start. Secure by design 安全设计 builds security into every phase of development, not as an afterthought. Secure by default 默认安全 means the product ships with its security features already enabled - safe straight out of the box.

Secure by design rests on three principles a company must adopt: (1) take ownership of its customers' security outcomes rather than shifting blame onto users, (2) embrace radical transparency and accountability – sharing security-relevant news and updates quickly so everyone becomes safer, and (3) build the organisational structure and leadership that makes security a first-class goal.

The key defense against injection attacks is input sanitization 输入清理. Certain special characters 特殊字符 - the single quote, double quote, and semicolon - can be used to manipulate a system, so a good program removes or rejects them before processing. Sanitization protects against SQL injection, XSS, and directory-traversal attacks alike.

Bahasa Indonesia

Dua prinsip desain menjaga aplikasi tetap aman sejak awal. Aman oleh desain membangun keamanan di setiap fase pengembangan, bukan sebagai setelah pikiran. Aman secara default berarti produk dikirim dengan fitur keamanannya sudah diaktifkan - aman segera setelah keluar dari kotak.

Aman oleh desain bertumpu pada tiga prinsip yang harus diadopsi perusahaan: (1) mengambil alih hasil keamanan pelanggan mereka daripada menyalahkan pengguna, (2) mengadopsi transparansi radikal dan akuntabilitas - membagikan berita dan pembaruan terkait keamanan dengan cepat agar semua orang menjadi lebih aman, dan (3) membangun struktur organisasi dan kepemimpinan yang menjadikan keamanan sebagai tujuan utama.

Pertahanan utama terhadap serangan injeksi adalah pembersihan input. Karakter spesial tertentu - tanda petik tunggal, tanda petik ganda, dan titik koma - dapat digunakan untuk memanipulasi sistem, sehingga program yang baik akan menghapus atau menolaknya sebelum diproses. Pembersihan melindungi terhadap SQL injection, XSS, dan serangan navigasi direktori.

5.6

Detecting Attacks on Data and Applications · ⁨Mendeteksi Serangan pada Data dan Aplikasi⁩

Syllabus · ⁨Silabus⁩
English

Learning Objective 5.6.A: Explain how to detect attacks on data.

  • 5.6.A.1 Devices track and log when data are accessed and by whom. The process of recording and monitoring user activities is called accounting. Analysis of these logs can reveal malicious activity when an adversary attempts to access, copy, move, or delete data. Suspicious activity can include:
    • Accessing files that aren’t typically accessed
    • Accessing files or applications outside of a user’s normal patterns (including time of day, location, and device type)
    • Attempts to delete or copy sensitive files
  • 5.6.A.2 A honeypot is a file that appears as if it contains valuable data (e.g., credit card information, PII, passwords), but the data in the file are fake. A system can alert defenders if someone attempts to access the honeypot. Since the honeypot is a fake file, there is no legitimate reason to be accessing it, and any attempted access would be an indicator of malicious activity.
  • 5.6.A.3 Cryptographic hash functions can generate a digest for data and can reveal if data have been altered. If a file has changed unexpectedly, this can be a sign of malicious activity.

Learning Objective 5.6.B: Determine controls for detecting attacks against applications or data.

  • 5.6.B.1 Cost is a criterion in determining detective controls. Detective controls like honeypots and using hash values to check data integrity are inexpensive. Some organizations invest in third-party data loss prevention (DLP) services, which monitor data access, usage, and transmission by users throughout the organization to detect suspicious activity; DLP services provide strong detection capabilities at a higher cost.
  • 5.6.B.2 Sensitivity or criticality of data or applications is a criterion in determining detective controls. More sensitive or critical data or applications are more likely targets of an adversary and should be monitored more closely.
  • 5.6.B.3 Classification of data is a criterion in determining detective controls. Data that have been classified as private, educational, healthcare, or financial often have legal or regulatory detection and monitoring requirements.

Learning Objective 5.6.C: Evaluate the impact of a method for detecting attacks against an application or data.

  • 5.6.C.1 To operate at an effective speed, log analysis needs to be augmented with some automation. Honeypots offer near instantaneous detection capabilities.
  • 5.6.C.2 Some DLP tools, honeypots, and realtime automated log analysis provide alerts as an attack is happening. These tools allow for a prompt response that can stop an attack before it does more harm. Retrospective log analysis and the use of cryptographic hashes to verify data integrity identify attacks after they have occurred.
  • 5.6.C.3 False negatives can occur in applications and data attack detection. Cryptographic hash functions only detect if data have been altered. An adversary could view and steal data without altering it, and a cryptographic hash function would not detect this. Honeypots cannot detect adversaries that do not attempt to access them.

Learning Objective 5.6.D: Identify whether a file has been altered by verifying its hash.

  • 5.6.D.1 Cryptographic hash functions can help identify changes in a file because they are repeatable: the same input always produces the same output for a given hash function.
  • 5.6.D.2 Hashes can be calculated using the command line on a computer, a website, or specialized software.
    • In Windows Powershell, if a user wanted to generate the SHA256 hash for a file named testfile, they would use the command: Get-FileHash testfile -Algorithm SHA256
    • In BASH the same could be accomplished with the command: sha256sum testfile
    • In zsh, the common command line terminal on Apple computers, this could be accomplished with the command: shasum -a 256 testfile
  • 5.6.D.3 A file can be hashed and its hash output recorded. Then it can be hashed again later, and the second hash output can be compared to the previous hash output for the same file. If a file’s hash changes, then the file was altered between when the first and second hashes were generated.

Learning Objective 5.6.E: Apply detection techniques to identify and report indicators of application attacks by analyzing log files.

  • 5.6.E.1 SQL injection attacks can be detected by reviewing application and server logs of user input for SQL control words and symbols such as:
    • A single (') or double (") quote character
    • Boolean conditions like OR 1=1
    • A double dash (which indicates a comment in SQL): --
    • SQL control words (always in capital letters) like WHERE, IN, FROM
  • 5.6.E.2 XSS attacks can be detected by reviewing user input for suspicious tags, particularly the tag.
  • 5.6.E.3 For web applications, buffer overflows can be detected by checking the amount of data the user is sending to the web application in their request. The fields commonly checked are the URL length, cookie length, query string length, and total request length. Long strings in any of these fields can be an indicator of an attempted buffer overflow attack.
  • 5.6.E.4 Directory traversal attacks can be detected by reviewing application and server logs. HTTP GET requests that include paths with sequences of ../ are indicators of an adversary attempting a directory traversal.
Bahasa Indonesia

Tujuan Pembelajaran 5.6.A: Jelaskan cara mendeteksi serangan pada data.

  • 5.6.A.1 Perangkat melacak dan mencatat kapan data diakses dan oleh siapa. Proses pencatatan dan pemantauan aktivitas pengguna disebut akuntansi. Analisis log-log ini dapat mengungkap aktivitas jahat ketika penyerang mencoba mengakses, menyalin, memindahkan, atau menghapus data. Aktivitas mencurigakan dapat meliputi:
    • Mengakses file yang tidak biasa diakses
    • Mengakses file atau aplikasi di luar pola normal pengguna (termasuk waktu hari, lokasi, dan tipe perangkat)
    • Upaya untuk menghapus atau menyalin file sensitif
  • 5.6.A.2 Honeypot adalah file yang tampak seolah-olah berisi data berharga (misalnya, informasi kartu kredit, PII, kata sandi), tetapi data di dalam file tersebut palsu. Sistem dapat memberi peringatan kepada penjaga jika seseorang mencoba mengakses honeypot. Karena honeypot adalah file palsu, tidak ada alasan sah untuk mengaksesnya, dan setiap upaya akses akan menjadi indikasi aktivitas jahat.
  • 5.6.A.3 Fungsi hash kriptografi dapat menghasilkan digest untuk data dan dapat mengungkapkan apakah data telah diubah. Jika sebuah file berubah secara tidak terduga, hal ini bisa menjadi tanda aktivitas jahat.

Tujuan Pembelajaran 5.6.B: Tentukan kontrol untuk mendeteksi serangan terhadap aplikasi atau data.

  • 5.6.B.1 Biaya adalah kriteria dalam menentukan kontrol detektif. Kontrol detektif seperti honeypot dan penggunaan nilai hash untuk memeriksa integritas data relatif murah. Beberapa organisasi berinvestasi dalam layanan pencegahan kehilangan data pihak ketiga (DLP), yang memantau akses, penggunaan, dan transmisi data oleh pengguna di seluruh organisasi untuk mendeteksi aktivitas mencurigakan; layanan DLP menyediakan kemampuan deteksi yang kuat dengan biaya lebih tinggi.
  • 5.6.B.2 Sensitivitas atau tingkat kritisitas data atau aplikasi adalah kriteria dalam menentukan kontrol detektif. Data atau aplikasi yang lebih sensitif atau kritis lebih mungkin menjadi target penyerang dan harus dipantau lebih ketat.
  • 5.6.B.3 Klasifikasi data adalah kriteria dalam menentukan kontrol detektif. Data yang diklasifikasikan sebagai pribadi, pendidikan, kesehatan, atau keuangan sering kali memiliki persyaratan deteksi dan pemantauan berdasarkan hukum atau regulasi.

Tujuan Pembelajaran 5.6.C: Evaluasi dampak metode untuk mendeteksi serangan terhadap aplikasi atau data.

  • 5.6.C.1 Agar beroperasi dengan kecepatan efektif, analisis log perlu diperkaya dengan otomatisasi tertentu. Honeypot menawarkan kemampuan deteksi hampir instan.
  • 5.6.C.2 Beberapa alat DLP, honeypots, dan analisis log otomatis real-time memberikan peringatan saat serangan sedang berlangsung. Alat-alat ini memungkinkan respons cepat yang dapat menghentikan serangan sebelum menyebabkan kerusakan lebih lanjut. Analisis log retrospektif dan penggunaan hash kriptografi untuk memverifikasi integritas data mengidentifikasi serangan setelah terjadi.
  • 5.6.C.3 Negatif palsu dapat terjadi dalam deteksi aplikasi dan serangan data. Fungsi hash kriptografi hanya mendeteksi apakah data telah diubah. Penyerang dapat melihat dan mencuri data tanpa mengubahnya, dan fungsi hash kriptografi tidak akan mendeteksi hal ini. Honeypot tidak dapat mendeteksi penyerang yang tidak mencoba mengaksesnya.

Tujuan Pembelajaran 5.6.D: Identifikasi apakah sebuah file telah diubah dengan memverifikasi hash-nya.

  • 5.6.D.1 Fungsi hash kriptografi dapat membantu mengidentifikasi perubahan dalam sebuah file karena sifatnya yang dapat diulang: input yang sama selalu menghasilkan output yang sama untuk fungsi hash tertentu.
  • 5.6.D.2 Hash dapat dihitung menggunakan baris perintah di komputer, situs web, atau perangkat lunak khusus.
    • Di Windows Powershell, jika seorang pengguna ingin membuat hash SHA256 untuk file bernama testfile, mereka akan menggunakan perintah: Get-FileHash testfile -Algorithm SHA256
    • Di BASH, hal yang sama dapat dilakukan dengan perintah: sha256sum testfile
    • Di zsh, terminal baris perintah umum pada komputer Apple, hal ini dapat dilakukan dengan perintah: shasum -a 256 testfile
  • 5.6.D.3 Sebuah file dapat di-hash dan hasil hash-nya dicatat. Kemudian dapat di-hash lagi nanti, dan hasil hash kedua dapat dibandingkan dengan hasil hash sebelumnya untuk file yang sama. Jika hash file berubah, maka file tersebut telah diubah antara saat hash pertama dan kedua dibuat.

Tujuan Pembelajaran 5.6.E: Terapkan teknik deteksi untuk mengidentifikasi dan melaporkan indikator serangan aplikasi dengan menganalisis file log.

  • 5.6.E.1 Serangan SQL injection dapat dideteksi dengan meninjau log aplikasi dan server dari input pengguna untuk kata-kata kontrol SQL dan simbol seperti:
    • Karakter kutip tunggal (') atau ganda (")
    • Kondisi boolean seperti OR 1=1
    • Tanda hubung ganda (yang menunjukkan komentar dalam SQL): --
    • Kata-kata kontrol SQL (selalu huruf kapital) seperti WHERE, IN, FROM
  • 5.6.E.2 Serangan XSS dapat dideteksi dengan meninjau input pengguna untuk tag mencurigakan, terutama tag .
  • 5.6.E.3 Untuk aplikasi web, buffer overflow dapat dideteksi dengan memeriksa jumlah data yang dikirimkan pengguna ke aplikasi web dalam permintaan mereka. Bidang yang umumnya diperiksa adalah panjang URL, panjang cookie, panjang string query, dan total panjang permintaan. String panjang di bidang mana pun dapat menjadi indikator upaya serangan buffer overflow.
  • 5.6.E.4 Serangan traversal direktori dapat dideteksi dengan meninjau log aplikasi dan server. Permintaan HTTP GET yang mencakup path dengan urutan ../ merupakan indikator penyerang yang mencoba melakukan traversal direktori.

Source: College Board AP Course and Exam Description · ⁨Sumber: Deskripsi Kursus dan Ujian College Board AP⁩

English

To detect data attacks, systems perform accounting 审计记录 - logging who accessed what and when. But logs are huge, so log analysis must be automated to run at a useful speed; a human reading raw logs is far too slow. A clever complement is a honeypot 蜜罐 - a fake file that looks valuable; since no one has a real reason to open it, any access is a clear, near-instantaneous sign of an attack. Watch especially for attempts to delete or copy sensitive files. Cryptographic hashes also help: re-hash a file and compare - if the digest changed, the file was altered.

Choosing detective controls means weighing cost (honeypots are cheap; a data loss prevention (DLP) 数据泄露防护 service is powerful but pricey) against the sensitivity of the data. To read a specific attack from logs, look for its signature: SQL injection shows OR 1=1 and --; XSS shows <script> tags; directory traversal shows ../ sequences; a buffer overflow shows unusually long input strings.

Checking that a file has not been altered

A cryptographic hash turns a file of any size into a short fixed-length value. Change one byte of the file and the hash changes completely, so comparing a downloaded file's hash with the one the publisher lists proves the file arrived intact. You do this at the command line:

Shell Command
BASH (Linux, and most servers) sha256sum testfile
zsh, the usual terminal on Apple computers shasum -a 256 testfile

Both print the SHA-256 hash of testfile. If it differs from the published value by even one character, the file has been altered — by corruption in transit, or by an attacker who replaced it.

⚠️ A hash proves integrity, not authenticity. An attacker who can replace the file on a web page can usually replace the published hash beside it too; that is why a signed hash, or one fetched over a separate trusted channel, is stronger evidence.

Bahasa Indonesia

Untuk mendeteksi serangan data, sistem melakukan akuntansi - mencatat siapa mengakses apa dan kapan. Namun log sangat besar, sehingga analisis log harus otomatis agar berjalan dengan kecepatan yang berguna; membaca log mentah secara manual terlalu lambat. Pelengkap yang cerdas adalah honeypot - file palsu yang terlihat berharga; karena tidak ada alasan nyata untuk membukanya, setiap akses adalah tanda serangan yang jelas dan hampir seketika. Perhatikan terutama upaya untuk menghapus atau menyalin file sensitif. Hash kriptografi juga membantu: re-hash file dan bandingkan - jika digest berubah, file telah diubah.

Memilih kontrol detektif berarti menimbang biaya (honeypot murah; layanan pencegahan kehilangan data (DLP) kuat tetapi mahal) terhadap sensitivitas data. Untuk membaca pola serangan tertentu dari log, carilah tandanya: SQL injection menunjukkan OR 1=1 dan --; XSS menunjukkan tag <script>; traversal direktori menunjukkan urutan ../; buffer overflow menunjukkan string input yang tidak wajar panjangnya.

Memastikan file tidak telah diubah

Hash kriptografi mengubah file berukuran berapa pun menjadi nilai pendek berpanjang tetap. Ubah satu byte saja dari file tersebut dan hash akan berubah sepenuhnya, sehingga membandingkan hash file yang diunduh dengan yang tercantum penerbit membuktikan file tiba dalam kondisi utuh. Anda melakukannya di baris perintah:

Shell Perintah
BASH (Linux, dan sebagian besar server) sha256sum testfile
zsh, terminal standar di komputer Apple shasum -a 256 testfile

Keduanya mencetak hash SHA-256 dari testfile. Jika berbeda dari nilai yang dipublikasikan bahkan hanya satu karakter, file telah diubah — akibat kerusakan saat transmisi, atau oleh penyerang yang menggantinya.

⚠️ Hash membuktikan integritas, bukan otentisitas. Penyerang yang dapat mengganti file di halaman web biasanya juga dapat mengganti hash yang dipublikasikan di sebelahnya; itulah mengapa hash yang ditandatangani, atau yang diambil melalui saluran terpercaya terpisah, merupakan bukti yang lebih kuat.

Vocabulary · ⁨Kosa kata⁩ Train · ⁨Latih⁩
English Bahasa Indonesia
Applications/ˌæplɪˈkeɪʃnz/ Aplikasi
administrative/ədˈmɪnɪstrətɪv/ administratif
injection attack/ɪnˈdʒekʃn əˈtæk/ serangan injeksi
Data validation/ˈdeɪtə ˌvælɪˈdeɪʃn/ Validasi data
Cross-site scripting (XSS)/krɒs saɪt ˈskrɪptɪŋ/ Cross-site scripting (XSS)
parameterised queries/ˌpærəˈmetəraɪzd ˈkwɪərɪz/ query terparameterisasi
Buffer overflow/ˈbʌfə ˌəʊvəˈfləʊ/ Overflow buffer
honeypot/ˈhʌnɪpɒt/ honeypot
data loss prevention (DLP)/ˈdeɪtə lɒs prɪˈvenʃn/ pencegahan kehilangan data (DLP)
5.6

Exam tips · ⁨Tips ujian⁩

English
  • Match each application attack to its evidence in a log: OR 1=1 / -- = SQL injection; <script> = XSS; ../ = directory traversal; very long input = buffer overflow.
  • Learn the four access-control models by their decider: RBAC = your role, RuBAC = a condition, DAC = the file's owner, MAC = a central admin. Least privilege underlies them all.
  • Read Linux permissions by adding 4+2+1 per group - chmod 750 = owner rwx (7), group r-x (5), others none (0). Practice converting both ways.
  • Symmetric = one shared key (fast, AES); asymmetric = a public/private key pair (solves key sharing, RSA/ECC). Encrypt with the recipient's public key.
  • Input sanitization is the single best answer for preventing injection attacks; a honeypot is the classic cheap detective control.
Bahasa Indonesia
  • Cocokkan setiap serangan aplikasi dengan bukti di dalam log: OR 1=1 / -- = SQL injection; <script> = XSS; ../ = traversal direktori; input sangat panjang = buffer overflow.
  • Pelajari empat model kontrol akses berdasarkan pengambil keputusan: RBAC = peran Anda, RuBAC = kondisi, DAC = pemilik file, MAC = admin pusat. Hak akses minimum mendasari semuanya.
  • Baca izin Linux dengan menjumlahkan 4+2+1 per kelompok - chmod 750 = owner rwx (7), group r-x (5), lainnya tidak ada (0). Latih konversi bolak-balik.
  • Simetris = satu kunci bersama (cepat, AES); asimetris = pasangan kunci publik/privat (memecahkan masalah berbagi kunci, RSA/ECC). Enkripsi dengan kunci publik penerima.
  • Sanitasi input adalah jawaban terbaik tunggal untuk mencegah serangan injeksi; honeypot adalah kontrol detektif klasik yang murah.

Interactive lessons on this topic · ⁨Pelajaran interaktif untuk topik ini⁩

Work through it step by step, with instant-check exercises. · ⁨Kerjakan langkah demi langkah, dengan latihan pengecekan instan.⁩

Past Papers · ⁨Soal-Soil Masa Lalu⁩

More topics in AP Cybersecurity · ⁨AP Keamanan Siber⁩ · ⁨Topik lain dalam AP Cybersecurity · ⁨AP Keamanan Siber⁩⁩

Log in or create account · ⁨Masuk atau buat akun⁩

IGCSE, A-Level & AP