Skip to content · ⁨Перейти к содержанию⁩

Securing Applications and Data · ⁨Securing Applications and Data (Защита приложений и данных)⁩

AP Cybersecurity · ⁨AP Комп'ютерна безпека⁩ · Topic 5 · ⁨Тема 5⁩

Video lesson for this topic · ⁨Видеоурок по этой теме⁩ Open the video page · ⁨Открыть страницу видео⁩
9:47

Securing Applications and Data (Защита приложений и данных)

Компания потратила огромные деньги на файрволы, замки и сложные пароли. Затем кто-то ввел несколько странных символов в поле входа — и база данных…

English narration · English + 中文 subtitles burned in · ⁨Английское озвучивание · Английский + китайские субтитры (встроенные)⁩

5.1

Application and Data Vulnerabilities and Attacks · ⁨Уязвимости приложений и данных и атаки⁩

Syllabus · ⁨Программа⁩
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.
Русский

Цель обучения 5.1.A: Объяснить, как злоумышленники могут использовать уязвимости приложений и файлов для причинения ущерба, потери, нарушения работы или уничтожения данных.

  • 5.1.A.1 Злоумышленник может прочитать любые незашифрованные файлы, если у него есть доступ к устройству или диску, на котором хранятся файлы.
  • 5.1.A.2 У компьютеров есть обычные пользователи и администраторы. Администраторы имеют доступ к управлению настройками системы и обычно могут получать доступ к любым файлам или приложениям на системе. Если обычным пользователям предоставляются привилегии администратора на компьютере, и злоумышленник может скомпрометировать учетную запись пользователя, то злоумышленник получит повышенные привилегии в системе.
  • 5.1.A.3 Когда настройки контроля доступа настроены слабо, у многих пользователей часто есть разрешение на просмотр, а иногда и редактирование файлов в системе. Злоумышленники могут воспользоваться слабыми настройками контроля доступа для кражи или уничтожения файлов, а также для нарушения работы приложений.

Цель обучения 5.1.B: Объяснить, как атаки на приложения используют уязвимости.

  • 5.1.B.1 Приложения — это программы, выполняющие инструкции на компьютерах; они являются исполняемыми данными. Некоторые приложения запускаются локально на компьютере пользователя, тогда как другие приложения, такие как веб-приложения, работают на сервере и accessed by users through a network (доступны пользователям через сеть).
  • 5.1.B.2 Многие приложения принимают ввод данных от пользователей через открытые поля ввода, где пользователи могут печатать символы (например, буквы, цифры, знаки препинания). Разработчики должны включать проверки ввода данных в свои приложения, например, проверку числового ввода при запросе количества предметов, чтобы убедиться, что ввод пользователя соответствует ожидаемым параметрам; приложение должно отвергать ввод вне ожидаемых параметров. Этот процесс проверки соответствия ввода пользователя ожидаемым критериям перед его обработкой называется проверкой данных (валидацией). Приложения, не проверяющие ввод данных, уязвимы для атак типа внедрения (injection), когда злоумышленники вставляют неожиданные строки символов в поля ввода для изменения поведения программы.
  • 5.1.B.3 Структурированный язык запросов (SQL) — это язык программирования, используемый для запроса информации из баз данных и внесения изменений в базы данных или записи в них. Приложения, выполняющие запросы к базе данных с использованием непроверенных или несанитизированных входных данных от пользователей, являются уязвимыми.
  • 5.1.B.4 Атака SQL-инъекции помещает команды SQL и управляющие символы в поле ввода пользователя в приложении, что может привести к нарушению конфиденциальности путем возврата приложением большего объема информации, чем следует, или к нарушению целостности путем модификации или удаления данных в базе данных.
  • 5.1.B.5 Веб-сайты пишутся с использованием языка разметки гипертекста (HTML), и многие веб-сайты используют JavaScript для создания динамического контента на веб-сайтах или веб-приложениях. Поскольку команды JavaScript выполняются в браузере пользователя, посещающего веб-сайт, эти команды могут получать доступ к чувствительным данным, хранящимся в браузере, таким как имена пользователей, пароли и криптографические ключи.
  • 5.1.B.6 Атака межсайтового скриптинга (XSS) внедряет вредоносный код на веб-сайт, который затем выполняется браузером пользователя. Вредоносный код может быть встроен в ссылку, на которую нажимает пользователь (атака XSS Type I или Reflected XSS), или он может быть введен на веб-сайт через поле комментариев, пост на форуме или журнал посетителей, что повлияет на любого пользователя, посещающего этот веб-сайт (атака XSS Type II или Stored XSS).
  • 5.1.B.7 Когда приложения принимают ввод данных от пользователей, этот ввод записывается в буфер. Буфер — это выделенный участок компьютерной памяти фиксированного размера. Если объем введенных пользователем данных превышает размер буфера, он может переполниться в соседние области памяти и перезаписать другие части памяти компьютера.
  • 5.1.B.8 Атака переполнения буфера подает больше данных в память, чем было выделено, что может вызвать сбой системы или выполнение кода вне рамок политики безопасности программы, фактически позволяя злоумышленнику выполнять несанкционированные действия на компьютере, такие как доступ, модификация или удаление файлов.
  • 5.1.B.9 Файлы, запускающие веб-приложения, хранятся в каталогах на серверах. Когда пользователи получают доступ к веб-приложениям, их браузеры отправляют GET-запросы с использованием протокола передачи гипертекста (HTTP). GET-запрос получает доступ к файлу в любом месте файловой системы сервера.
  • 5.1.B.10 При атаке обхода каталогов злоумышленники изменяют URL-адреса и GET-запросы, пытаясь получить доступ к чувствительным данным (например, именам пользователей и паролям) в файловой системе сервера.
    • Иллюстративные примеры для 5.1.B.10:
      • Веб-сервер хранит изображения для размещаемого им веб-сайта в каталоге /var/www/images/. Злоумышленник изменяет URL-адрес, запрашивающий изображение, на ../../../etc/passwd. Две точки (..) перемещают на один каталог выше в файловой системе; поэтому три последовательных .. возвращают путь к корню, и оттуда злоумышленник пытается получить доступ к файлу passwd, который вернул бы список всех авторизованных имен пользователей на устройстве.

Цель обучения 5.1.C: Оценивать и документировать риски, связанные с уязвимостями приложений и данных.

  • 5.1.C.1 Риски безопасности данных могут включать нарушение конфиденциальности, когда несанкционированные лица получают доступ к чувствительным данным, нарушение целостности, когда данные могут быть манипулированы или изменены по отношению к их исходному состоянию, и нарушение доступности, когда данные могут быть уничтожены или зашифрованы, чтобы предотвратить их доступ другими лицами.
  • 5.1.C.2 Высокие риски от уязвимостей данных часто связаны с высокочувствительными данными (например, данными, регулируемыми законами или нормативными актами), которые могут быть скомпрометированы благодаря высоковозможной эксплуатации.
    • Иллюстративные примеры для 5.1.C.2:
      • Компания, разрабатывающая следующий реактивный двигатель, который будет использоваться ВВС в своих самолетах, хранит технические спецификации двигателя на незашифрованном диске.
  • 5.1.C.3 Средние риски от уязвимостей данных часто связаны с тем, что чувствительные данные не имеют достаточно сильной шифровки или строгих ограничений доступа.
    • Иллюстративные примеры для 5.1.C.3:
      • Компания хранит персональные данные клиентов (PII) в электронной таблице, которая шифруется с использованием малого ключа.
  • 5.1.C.4 Низкие риски от уязвимостей данных часто связаны с шифрованием менее чувствительной информации с использованием коротких ключей или наличием недостаточных ограничений доступа.
    • Примеры для 5.1.C.4:
      • Генеральный директор организации хранит свои личные служебные записки для исполнительного персонала в корпоративном сетевом хранилище, которое не зашифровано и не имеет ограничений доступа.

Source: College Board AP Course and Exam Description · ⁨Источник: Описание курса и экзамена 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.

Русский
SQL-инъекция

Приложения — это программы, работающие на компьютерах, а данные — то, что они обрабатывают; оба являются главными целями. Если файлы хранятся без шифрования, любой, имеющий доступ к диску, сможет их прочитать. Если обычному пользователю выданы административные привилегии, злоумышленник, воровавший эту учётную запись, получит широкие полномочия.

Главная опасность приложений — плохой ввод данных пользователем. Когда программа не проверяет, что вводит пользователь, злоумышленник может подставить команды — это атака внедрения. Валидация данных (проверка соответствия ввода ожидаемым правилам) является защитой. Ключевые атаки:

  • SQL-инъекция: внедрение команд SQL в поле ввода для чтения или изменения базы данных.
  • Межсайтовый скриптинг (XSS): внедрение вредоносного скрипта на веб-сайт, который выполняется в браузере другого пользователя.

Как выглядит SQL-инъекция на практике

SQL — язык запросов к базе данных, и его ключевые слова всегда пишутся заглавными буквами — SELECT, FROM, WHERE, IN, OR, AND. Форма входа обычно строит запрос, подставляя то, что вы ввели, в одну из частей:

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

Атакующий вводит SQL вместо имени. Две уловки наносят большую часть ущерба:

  • Условие, которое всегда истинно. Введение ' OR '1'='1 делает условие WHERE истинным для каждой строки, поэтому база данных возвращает всех пользователей.
  • Двойное тире, начинающее комментарий в SQL. Введение admin' -- завершает строку имени икомментирует всю остальную часть строки, включая проверку пароля, поэтому запрос превращается в … WHERE name = 'admin', и атакующий входит как администратор без пароля.

Защита заключается не в фильтрации слова SELECT. Она заключается в том, чтобы входные данные вообще не воспринимались как код: используйте параметризованные запросы (также называемые подготовленными инструкциями), когда базе данных передаются запрос и значения отдельно, никогда не смешивая их, и добавьте валидацию ввода, чтобы отвергать символы, которые поле не должно содержать.

  • Переполнение буфера: отправка большего объёма данных, чем может вместить буфер памяти, из-за чего данные перетекают в соседнюю память и могут выполнить код злоумышленника.
  • Проход по директориям: использование последовательностей ../ в URL для доступа к файлам вне целевой папки, например /etc/passwd.

Мы оцениваем риск данных по уровню чувствительности: незашифрованные военные планы — высокий риск; данные клиентов со слабым ключом — средний; малозначимые данные с короткими ключами — низкий.

Vocabulary · ⁨Словарь⁩ Train · ⁨Тренировать⁩
English Русский
SQL injection/ˌes kjuː ˈel ɪnˈdʒekʃn/ SQL-инъекция
Watch lesson · ⁨Смотреть урок⁩
5.2

Protecting Applications and Data: Managerial Controls and Access Controls · ⁨Защита приложений и данных: управленческие меры контроля и управление доступом⁩

Syllabus · ⁨Программа⁩
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.
Русский

Цель обучения 5.2.A: Объяснить, как состояние или классификация данных влияют на тип и степень применяемой к ним защиты.

  • 5.2.A.1 Организации внедряют конкретные меры безопасности для соблюдения правовых требований, основанных на типах собираемых, хранимых, обрабатываемых и передаваемых ими данных.
  • 5.2.A.2 Данные могут быть классифицированы по их состоянию.
    • Данные в покое (data at rest) хранятся на носителе. Важно защитить физический носитель, содержащий данные, от уничтожения или кражи. Данные в покое также можно зашифровать, чтобы в случае кражи злоумышленник не мог немедленно прочитать информацию.
    • Данные в пути (data in transit) передаются от одного устройства к другому. Если передача осуществляется через физические носители (например, кабели), важно защитить эти носители. Данные в пути также можно зашифровать, чтобы при перехвате злоумышленником он не смог немедленно прочитать информацию.
    • Данные в использовании (data in use) обрабатываются программным обеспечением или человеком. Для ограничения того, кто или что может использовать данные тем или иным образом (например, просматривать или редактировать), применяются средства управления доступом. Данные должны быть расшифрованы для использования.
  • 5.2.A.3 Организации часто группируют данные в зависимости от их конфиденциальности и обеспечивают более высокий уровень защиты для более чувствительной информации.
  • 5.2.A.4 Законы и нормативные акты могут требовать хранения, передачи и обработки определенных типов данных в соответствии с конкретными правилами.
    • Персонально идентифицируемая информация (PII) — любые данные, позволяющие идентифицировать человека, которые включают (но не ограничиваются): имя, подпись, номер телефона, адрес, биометрические данные (например, отпечатки пальцев), номер социального страхования, дату рождения и адрес электронной почты. Защита этих данных регулируется множеством законов, но наиболее значимыми являются Закон о конфиденциальности 1974 года, а для детей младше возраста 13 — Закон о защите конфиденциальности в интернете для детей 1998 года.
    • Защищаемая медицинская информация (PHI) — это любые сведения, связанные со здоровьем человека, его лечением или оплатой медицинских услуг в любое время, которые включают (но не ограничиваются): результаты анализов, записи о лечении, медицинские карты, заметки о визитах к врачу и записи об оплате медицинских услуг. Защита PHI предусмотрена Законом о переносимости и подотчетности медицинской страховки 1996 года.
    • Информация платежных карт (PCI) — это данные, собираемые организациями для обработки платежей с помощью карт (например, кредитных), и включает следующее: имя, номер счета, срок действия, адрес и код CVV. Защита этой информации регулируется стандартом безопасности данных индустрии платежных карт (PCI-DSS).
  • 5.2.A.5 Организации, собирающие регулируемые данные, маркируют их и имеют политики, соответствующие правовым или нормативным требованиям по безопасному хранению, передаче и обращению с этими данными.

Цель обучения 5.2.B: Определить управленческие меры контроля, связанные с защитой приложений и данных.

  • 5.2.B.1 Политика криптографии описывает допустимые протоколы шифрования и параметры ключей для организации и может включать:
    • Список алгоритмов шифрования, одобренных для конкретных целей
    • Минимальную или максимальную длину ключей
    • Требования и параметры генерации криптографических ключей
    • Требования к хранению криптографических ключей
  • 5.2.B.2 Политика безопасности веб-приложений определяет требования и параметры для тестирования и устранения уязвимостей веб-приложений в организации и может включать:
    • Параметры определения момента, когда приложение подлежит оценке безопасности
    • Сроки устранения уязвимостей в зависимости от уровня риска
    • Параметры проведения оценки безопасности приложения (например, с использованием конкретных инструментов или согласно определенным фреймворкам)

Цель обучения 5.2.C: Определить подходящую модель управления доступом для защиты приложений и данных.

  • 5.2.C.1 Управление доступом устанавливает, какие пользователи или приложения (называемые субъектами) могут получать доступ, изменять, добавлять или удалять (называемые операциями) определенные файлы или приложения (называемые объектами). Модели управления доступом описывают, как определить, какой тип доступа к каким объектам предоставляется субъектам.
  • 5.2.C.2 Управление доступом на основе ролей (RBAC) присваивает каждому субъекту роль и определяет, какие роли имеют какой тип доступа к каким объектам.
    • Примеры для 5.2.C.2:
      • Примером роли в компании может быть «бухгалтер», а одним из типов объектов — программное обеспечение для расчета заработной платы. Управление доступом на основе ролей может использоваться для обеспечения того, что только субъекты, назначенные на роль «бухгалтер», имеют доступ к объекту программного обеспечения для расчета заработной платы.
  • 5.2.C.3 Управление доступом на основе правил (RuBAC) проверяет набор правил для определения типа доступа, который должен иметь субъект для конкретного объекта, и затем разрешает или запрещает типы доступа в соответствии с этими правилами. Эта модель управления доступом обычно применяется поверх другой модели управления доступом.
    • Примеры для 5.2.C.3:
      • Существует правило, запрещающее субъектам (даже тем, кто обычно имеет доступ) обращаться к определенной базе данных (объекту) вне рабочего времени в данном регионе. Когда субъект пытается получить доступ к базе данных, даже если он авторизован для этого, ему будет отказано в доступе, если это происходит за пределами времени, указанного в правиле.
  • 5.2.C.4 Дискреционный контроль доступа (DAC) предоставляет отдельным субъектам возможность устанавливать тип доступа, который другие субъекты имеют к объектам, принадлежащим им. В моделях DAC некоторые субъекты назначаются администраторами или суперпользователями и обладают правом отменять ограничения доступа, установленные другими субъектами.
    • Иллюстративные примеры для 5.2.C.4:
      • Боб создает файл (объект) и решает предоставить Алисе разрешение на редактирование файла, Фрэнку — только на просмотр, а всем остальным полностью запретить доступ к файлу.
  • 5.2.C.5 Императивный контроль доступа (MAC) следует строгим правилам относительно типов доступа, которые каждый уровень субъекта имеет к объектам выше своего уровня, на своем уровне или ниже него. Уровни субъектов и объектов присваиваются внешним администратором.
  • 5.2.C.6 Модель Белла-ЛаПадулы является моделью MAC, которая часто используется правительственными и военными организациями для контроля безопасности информации. Эта модель обладает следующими двумя важными свойствами:
    • i. Свойство простого безопасности гласит, что субъекты не могут читать объекты, расположенные выше их уровня.
    • ii. Свойство * (Звезда) безопасности гласит, что субъекты не могут записывать данные в объекты, расположенные ниже их уровня.
    • Эти правила в совокупности часто обобщаются как «запись вверх, чтение вниз» (WURD).
  • 5.2.C.7 Принцип наименьших привилегий предполагает, что сущностям следует предоставлять ровно столько доступа, сколько необходимо для выполнения их функций, и ничего больше.

Учебная цель 5.2.D: Настроить параметры контроля доступа в системе на базе Linux.

  • 5.2.D.1 Авторизация — это предоставление сущности разрешения на определенный тип доступа к ресурсу. Механизмы контроля доступа используются для управления тем, какие пользователи имеют какой тип доступа к каким данным.
  • 5.2.D.2 В Linux существует три типа доступа к файлу, которые можно установить; они всегда перечисляются в следующем порядке:
    • i. Доступ на чтение позволяет пользователю просматривать содержимое файла.
    • ii. Доступ на запись позволяет пользователю вносить изменения в файл.
    • iii. Выполняемый доступ позволяет пользователю запускать бинарный файл, например программу.
    • Они сокращенно обозначаются rwx соответственно. Если у пользователя есть только разрешения на чтение и выполнение (без записи), это отображается как r-x. Символ – указывает на отсутствие этого разрешения.
  • 5.2.D.3 Существует три группы по умолчанию, для которых устанавливаются разрешения, и они всегда идут в этом порядке: (1) владелец файла, (2) группа файлов, (3) все остальные пользователи. Три набора разрешений отображаются без пробелов (например, rwxrwxrwx).
  • 5.2.D.4 Для просмотра текущих настроек разрешений файла используйте команду ls -l, которая покажет текущие настройки для групп по умолчанию. Если в конце разрешений стоит символ +, это означает, что для данного файла установлены дополнительные разрешения, которые можно проверить с помощью команды getfacl.
  • 5.2.D.5 Для изменения настроек разрешений файла используйте команду chmod. Эту команду можно использовать с числовым методом или символьным методом.
  • 5.2.D.6 Для использования команды chmod в числовом методе синтаксис выглядит так: chmod ### filename. Каждая из трех ### представляет одну из трех упомянутых выше групп (владелец, группа, остальные пользователи вне группы).
    • Первый # = владелец
    • Второй # = группа
    • Третий # = остальные пользователи вне группы
    • Разрешение для каждой группы определяется путем суммирования значений типов доступа, которые нужно предоставить:
    • 0 = нет разрешений
    • 1 = выполнение
    • 2 = запись
    • 4 = чтение
    • Следовательно, 3 устанавливает разрешения на запись и выполнение, 5 — на чтение и выполнение, 6 — на чтение и запись, а 7 — на чтение, запись и выполнение.
    • Иллюстративные примеры для 5.2.D.6:
      • Команда chmod 750 test установит для владельца разрешения на чтение, запись и выполнение, для группы — на чтение и выполнение, а для всех остальных — полный запрет доступа.
      • Команда chmod 543 test установит для владельца разрешения на чтение и выполнение, для группы — только на чтение, а для всех остальных — на запись и выполнение.
      • Команда chmod 777 test установит для всех трех групп разрешения на чтение, запись и выполнение для файла test.
  • 5.2.D.7 Для использования команды chmod в символьном методе синтаксис выглядит так: chmod entity +(or –) permission filename. Группы — это владелец пользователя, группа и остальные пользователи вне группы. Каждая группа обозначается одной буквой.
    • u = владелец пользователя
    • g = группа
    • o = остальные
    • a = все
    • Разрешения можно добавлять или удалять для любой комбинации групп.
      • = добавить разрешение
    • – = удалить разрешение
    • Устанавливаемые разрешения — это чтение, запись и выполнение.
    • r = чтение
    • w = запись
    • x = выполнение
    • Группы и разрешения можно объединить в одной команде. Чтобы добавить разрешения на чтение и выполнение для группы и владельца пользователя для файла testfile, команда будет выглядеть так: chmod ug+rx testfile.

Source: College Board AP Course and Exam Description · ⁨Источник: Описание курса и экзамена 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.

Русский

Данные классифицируются по состоянию: покоящиеся (хранящиеся на диске), в передаче (перемещающиеся между устройствами) и используемые (обрабатываемые). Покоящиеся и передаваемые данные можно зашифровать, чтобы украсть не мог прочитать их; используемые данные должны быть расшифрованы, поэтому их защищают меры контроля доступа.

Некоторые типы данных регулируются законом, который предписывает, как их следует хранить, передавать и обрабатывать, поэтому организация должна достичь соответствия требованиям, сопоставив свои меры контроля с правилами. На экзамене от вас ожидают, что вы сопоставите каждый тип данных с управляющим им законом:

Регулируемые данные Что это такое Управляющий закон
персональные идентифицируемые данные (PII) любые данные, позволяющие идентифицировать человека: имя, адрес, SSN, биометрия, дата рождения Закон о защите конфиденциальности (1974); COPPA для лиц младше 13 лет
защищённая медицинская информация (PHI) записи о состоянии здоровья, лечении и оплате медицинских услуг HIPAA (1996)
информация платёжных карт (PCI) номер карты, срок действия, CVV, имя держателя PCI-DSS

Организация, собирающая регулируемые данные, должна маркировать их и соблюдать политики, обеспечивающие соответствие требованиям при хранении, передаче и обработке — чем выше чувствительность данных, тем выше требуемый уровень защиты.

Управление доступом определяет, какие субъекты (пользователи) могут выполнять какие операции с какими объектами (файлами). Существует четыре модели:

  • Ролевая (RBAC) — доступ предоставляется на основе вашей роли (все «бухгалтеры» имеют доступ к программному обеспечению для расчёта заработной платы).
  • Правило-зависимая (RuBAC) — доступ предоставляется в соответствии с условиями (например, только в рабочее время), накладываясь на другую модель.
  • Дискреционная (DAC) — владелец файла решает, кому ещё разрешено его использовать.
  • Мандатная (MAC) — центральный администратор устанавливает строгие уровни доступа; модель Белла-ЛаПадулы обобщает это правило как «писать вверх, читать вниз».
Четыре модели управления доступом определяют, кто имеет доступ к какому объекту и как именно
Четыре модели управления доступом определяют, кто получает доступ к какому объекту и каким образом

Общей идеей, лежащей в основе всех моделей, является принцип наименьших привилегий: каждой сущности следует предоставлять ровно тот уровень доступа, который необходим для выполнения её задач, и не более того.

В системе Linux у каждого файла есть три права доступа — чтение (r), запись (w), выполнение (x) — для трёх групп: владельца, группы и остальных. Команда chmod устанавливает их числовым кодом, суммируя значения: 4 (чтение) + 2 (запись) + 1 (выполнение). Таким образом, chmod 640 означает, что владелец имеет права чтения и записи (6), группа — только чтения (4), остальные — без прав (0).

Права доступа к файлам Linux: чтение/запись/выполнение для владельца, группы и остальных
Права доступа к файлам Linux: чтение/запись/выполнение для владельца, группы и остальных

Разобранный пример. Управитель хочет, чтобы только он мог читать и редактировать файл, его сотрудники — только читать, а остальные не имели доступа. Чтение + запись = 4+2 = 6 для владельца, чтение = 4 для группы, отсутствие прав = 0 для остальных, что даёт код chmod 640 file. В выводе команды это отображается как -rw-r-----. Чтобы также разрешить владельцу запускать файл как программу, нужно добавить право выполнения (7 = 4+2+1), что даст код chmod 740.

Explore · ⁨Исследовать⁩

Which access-control model fits the rule? · ⁨Какая модель контроля доступа подходит под правило?⁩

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. · ⁨В каждой модели контроля доступа есть свой решатель: RBAC — ваша роль, RuBAC — условие, DAC — владелец файла, MAC — уровни центрального администратора.⁩

5.3

Protecting Stored Data with Cryptography · ⁨Защита хранимых данных с помощью криптографии⁩

Syllabus · ⁨Программа⁩
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
Русский

Учебная цель 5.3.A: Объяснить, как шифрование может использоваться для защиты файлов.

  • 5.3.A.1 Цель криптографии — скрыть информацию. Криптографический алгоритм определяет процесс шифрования и дешифрования информации. Шифрование — это процесс сокрытия информации, а дешифрование — процесс обратного преобразования шифрования для восстановления исходной информации.
  • 5.3.A.2 Алгоритм шифрования определяет процесс объединения информации, подлежащей шифрованию, с заранее определенным ключом. Информация, подлежащая шифрованию, называется открытым текстом. Результат работы алгоритма шифрования называется шифротекстом.
  • 5.3.A.3 Количество возможных ключей, которые могут использоваться в алгоритме шифрования, называется пространством ключей. Чем больше пространство ключей, тем дольше будет требоваться злоумышленнику для обнаружения правильного ключа случайным образом.
  • 5.3.A.4 Криптографические алгоритмы классифицируются по признаку использования одного или двух ключей.
    • Алгоритмы симметричного шифрования используют один и тот же ключ как для шифрования, так и для дешифрования информации.
    • Алгоритмы асимметричного шифрования используют два различных ключа — один для шифрования информации, а другой для её дешифрования.
  • 5.3.A.5 Криптографические алгоритмы также классифицируются по способу обработки информации: последовательно по одному биту или блоками фиксированного размера.
    • Блочное шифрование обрабатывает информацию фиксированными блоками, называемыми блоками, и генерирует выходной блок для каждого входного блока.
    • Поточное шифрование обрабатывает входную информацию непрерывно, выдавая выходные элементы по одному.

Учебная цель 5.3.B: Применять алгоритмы симметричного шифрования для шифрования и дешифрования данных.

  • 5.3.B.1 Компьютерные алгоритмы шифрования работают с двоичными данными. Наиболее распространенным алгоритмом симметричного шифрования является стандарт продвинутого шифрования (AES). Шифрование AES используется для защиты Wi-Fi-передач, веб-серфинга, шифрования файлов на дисках и аппаратного шифрования на уровне процессоров.
  • 5.3.B.2 AES — это блочный шифр с симметричным ключом, который шифрует данные блоками длиной 128 бит (16 байт). AES может работать с ключами различной длины. Более длинные ключи обеспечивают более высокую степень безопасности, но требуют больше времени для шифрования и дешифрования.
  • 5.3.B.3 Шифрование и дешифрование с использованием симметричных алгоритмов может выполняться через командную строку, специализированное программное обеспечение или веб-инструменты.
    • В командной строке пользователи могут шифровать или дешифровать данные с помощью OpenSSL.
    • Специализированное программное обеспечение, такое как AES Crypt, представляет собой инструмент с открытым исходным кодом, способный шифровать и дешифровать файлы.
    • Существует множество веб-инструментов для шифрования и дешифрования файлов.
  • 5.3.B.4 Используя OpenSSL в командной строке, пользователь может зашифровать и расшифровать файл с помощью следующих команд (обратите внимание, что ключ шифрования выводится из предоставленного пароля):
    • Для шифрования файла с именем test с использованием AES и ключа длиной 128 бит используйте команду: openssl enc -aes-128-cbc -e -in test -k password -out test.enc
    • Для дешифровки зашифрованного файла с использованием того же ключа используйте команду: openssl enc -aes-128-cbc -d -in test.enc -k password -out text

Source: College Board AP Course and Exam Description · ⁨Источник: Описание курса и экзамена 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.

Русский
Машина Энигма: криптография защищает хранимые и передаваемые данные от перехвата
Машина Энигма: криптография защищает хранимые и передаваемые данные от перехвата
Симметричное и асимметричное шифрование
Хеширование и лавинный эффект

Криптография скрывает информацию. Алгоритм шифрования объединяет открытый текст с ключом, чтобы получить шифротекст; расшифрование выполняет обратную операцию. Пространство ключей — это количество возможных ключей: чем оно больше, тем дольше противнику потребуется на подбор. Ключ длиной n бит имеет пространство ключей $2^n$.

Симметричное шифрование использует один и тот же ключ как для шифрования, так и для расшифрования. Стандартным является AES — блочный шифр, работающий с блоками по 128 бит и обеспечивающий защиту Wi-Fi, веб-серфинга и хранимых файлов. Поскольку обе стороны должны обладать одинаковым секретным ключом, безопасная передача этого ключа представляет собой основную задачу.

Шифровальная машина Энигма времён Второй мировой войны с ключами и роторами
Машина Энигма перемешивала сообщения с помощью роторов — ранний, но уязвимый пример шифрования
Explore · ⁨Исследовать⁩

Encrypt a message by shifting letters · ⁨Зашифруйте сообщение, сдвинув буквы⁩

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. · ⁨Шифрование объединяет открытый текст с ключом для получения шифротекста. В этом простом шифре ключ — это величина сдвига; расшифровать сообщение обратно может только тот, кто знает этот сдвиг.⁩

Vocabulary · ⁨Словарь⁩ Train · ⁨Тренировать⁩
English Русский
Applications/ˌæplɪˈkeɪʃnz/ Применения
administrative/ədˈmɪnɪstrətɪv/ административный
injection attack/ɪnˈdʒekʃn əˈtæk/ атака с внедрением
Data validation/ˈdeɪtə ˌvælɪˈdeɪʃn/ Валидация данных
Cross-site scripting (XSS)/krɒs saɪt ˈskrɪptɪŋ/ Межсайтовый скриптинг (XSS)
parameterised queries/ˌpærəˈmetəraɪzd ˈkwɪərɪz/ параметризованные запросы
Buffer overflow/ˈbʌfə ˌəʊvəˈfləʊ/ Переполнение буфера
buffer/ˈbʌfə/ буферного
Directory traversal/daɪˈrektəri træˈvɜːsl/ Обход каталога
at rest/æt rest/ покоится
in transit/ɪn ˈtrænsɪt/ в процессе передачи
in use/ɪn juːs/ в процессе использования
regulated/ˈreɡjʊleɪtɪd/ регулируемый
compliance/kəmˈplaɪəns/ соблюдение требований
personally identifiable information (PII)/ˈpɜːsənəli aɪˈdentɪfaɪəbl ˌɪnfəˈmeɪʃn/ персонально идентифицируемая информация (PII)
protected health information (PHI)/prəˈtektɪd helθ ˌɪnfəˈmeɪʃn/ защищенная медицинская информация (PHI)
payment card information (PCI)/ˈpeɪmənt kɑːd ˌɪnfəˈmeɪʃn/ информация платежных карт (PCI)
Role-based (RBAC)/rəʊl beɪst/ Роль (RBAC)
Rule-based (RuBAC)/ruːl beɪst/ Правило (RuBAC)
Discretionary (DAC)/dɪˈskreʃənəri/ Дискреционный (DAC)
Mandatory (MAC)/ˈmændətəri/ Мандатный (MAC)
principle of least privilege/ˈprɪnsɪpl ɒv liːst ˈprɪvɪlɪdʒ/ принцип наименьших привилегий
Cryptography/krɪpˈtɒɡrəfi/ Криптография
plaintext/ˈpleɪntekst/ открытый текст
key/kiː/ ключ
ciphertext/ˈsaɪfətekst/ шифротекст
keyspace/ˈkiːspeɪs/ ключевое пространство
Symmetric encryption/sɪˈmetrɪk enˈkrɪpʃn/ Симметричное шифрование
AES/ˌeɪ iː ˈes/ AES
block cipher/blɒk ˈsaɪfə/ блочный шифр
Asymmetric encryption/ˌeɪsɪˈmetrɪk enˈkrɪpʃn/ Асимметричное шифрование
key pair/kiː peə/ пара ключей
public key/ˈpʌblɪk kiː/ открытый ключ
private key/ˈpraɪvət kiː/ приватным ключом
elliptic curve cryptography (ECC)/ɪˈlɪptɪk kɜːv krɪpˈtɒɡrəfi/ криптография на эллиптических кривых (ECC)
Watch lesson · ⁨Смотреть урок⁩
5.4

Asymmetric Cryptography · ⁨Асимметричная криптография⁩

Syllabus · ⁨Программа⁩
English

Learning Objective 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.

Learning Objective 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.

Learning Objective 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
Русский

Учебная цель 5.4.A: Определять подходящий асимметричный ключ для отправки или получения зашифрованных данных.

  • 5.4.A.1 Асимметричное шифрование позволяет пользователям безопасно обмениваться данными без предварительной договоренности о общем секретном ключе.
  • 5.4.A.2 При использовании асимметричного шифрования каждое устройство, получающее данные, должно сначала сгенерировать пару ключей. Пары ключей представляют собой двоичные строки одинаковой длины, которые создаются одновременно путем математического процесса. Один ключ обозначается как открытый (публичный), а другой — как закрытый (приватный). Ключи являются математическими обратными величинами друг друга — каждый ключ обращает действие своего партнера. Любым ключом можно зашифровать информацию, но только другой ключ из пары сможет затем расшифровать её.
  • 5.4.A.3 После того как получатель сгенерировал пару ключей, закрытый ключ должен храниться в надежном месте. Если закрытый ключ становится известным, раскрывается, крадется, повреждается или компрометируется, пара ключей должна быть удалена, и необходимо сгенерировать новую пару, поскольку безопасность алгоритма шифрования зависит от сохранности закрытого ключа. Открытый ключ публикуется для всеобщего просмотра и использования.
  • 5.4.A.4 Для безопасной отправки информации получателю отправитель использует открытый ключ получателя для шифрования данных и их передачи. Только получатель, обладающий закрытым ключом, сможет расшифровать и прочитать информацию.

Учебная цель 5.4.B: Объяснить, почему длина ключа влияет на безопасность зашифрованных данных.

  • 5.4.B.1 Более длинные ключи приводят к увеличению пространства ключей. Для двоичных ключей ключ длиной n бит имеет пространство ключей $2^n$.
  • 5.4.B.2 Использование приложения для случайного подбора ключа шифрования длиной n бит означает, что в среднем злоумышленник сможет угадать правильный ключ за $2^n \div 2$ (или $2^{n-1}$) попыток.
  • 5.4.B.3 Хотя более длинные ключи обеспечивают большую безопасность, они также требуют больше времени для шифрования и дешифрования сообщений.
  • 5.4.B.4 Вычислительная мощность и эффективность продолжают расти, позволяя программному обеспечению подбирать ключи быстрее. Рекомендации по длине ключа как для симметричного, так и для асимметричного шифрования периодически увеличиваются с учетом роста вычислительной мощности.
  • 5.4.B.5 Сравнение длин ключей корректно только при сравнении ключей одного и того же криптографического алгоритма.
    • Иллюстративные примеры для 5.4.B.5:
      • Ключ AES длиной 256 бит более безопасен, чем ключ AES длиной 128 бит.
      • Ключ RSA длиной 4096 бит более безопасен, чем ключ RSA длиной 2048 бит.
      • Ключи RSA и AES нельзя напрямую сравнивать между собой для определения уровня безопасности.

Учебная цель 5.4.C: Применять алгоритмы асимметричного шифрования для шифрования и дешифрования данных.

  • 5.4.C.1 Распространенные алгоритмы асимметричного шифрования включают RSA и криптографию эллиптических кривых (ECC). Асимметричные алгоритмы используются во многих приложениях, включая цифровые подписи и цифровые сертификаты.
  • 5.4.C.2 Как и при симметричном шифровании, асимметричное шифрование и дешифрование может выполняться через командную строку, специализированное программное обеспечение или веб-инструменты.
    • В командной строке пользователи могут шифровать или дешифровать данные с помощью OpenSSL.
    • Специализированное программное обеспечение, такое как RSA Encryption Tool, является открытым инструментом, способным шифровать и расшифровывать файлы.
    • Существует множество веб-инструментов для шифрования и дешифрования файлов.
  • 5.4.C.3 В CLI пользователь может создать асимметричную пару ключей и зашифровать или расшифровать файлы по мере необходимости.
    • Для создания пары ключей RSA длиной 2048 бит и сохранения ключа в файл с именем rsa.pem используйте команду: openssl genrsa -out rsa.pem 2048
    • Для извлечения открытого ключа из файла rsa.pem в файл public.pem используйте команду: openssl rsa -pubout -in rsa.pem -outform PEM -out public.pem
    • Для шифрования файла test с использованием шифрования RSA и файла ключей public.pem используйте команду: openssl pkeyutl -encrypt -pubin -inkey public.pem -in test -out test.enc
    • Для расшифровки файла test.enc с использованием файла rsa.pem выполните команду: openssl pkeyutl -decrypt -inkey rsa.pem -in test.enc -out test

Source: College Board AP Course and Exam Description · ⁨Источник: Описание курса и экзамена 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.

Русский

Асимметричное шифрование решает проблему передачи ключей с помощью пары ключей: открытого ключа, который виден всем, и закрытого ключа, который остаётся в секрете. Ключи являются математическими инверсиями: то, что закрывается одним, открывается только другим. Чтобы отправить вам секретное сообщение, я шифрую его вашим открытым ключом, и только ваш закрытый ключ может его расшифровать — таким образом, нам не пришлось заранее обмениваться секретом.

Асимметричное шифрование: шифрование открытым ключом, расшифрование закрытым ключом
Асимметричное шифрование: шифрование открытым ключом, расшифрование закрытым ключом

Более длинные ключи означают большее пространство ключей и повышенную безопасность, но замедляют процесс шифрования. Распространённые алгоритмы асимметричного шифрования — RSA и криптография эллиптических кривых (ECC), используемые в цифровых подписях и сертификатах. Помните: длины ключей можно сравнивать только внутри одного алгоритма — RSA-ключ на 4096 бит нельзя напрямую сравнивать с AES-ключом на 256 бит.

Замок: криптография запирает данные так, что открыть их может только тот, у кого есть соответствующий ключ
Замок: криптография запирает данные так, что открыть их может только тот, у кого есть соответствующий ключ
Watch lesson · ⁨Смотреть урок⁩
5.5

Protecting Applications · ⁨Защита приложений⁩

Syllabus · ⁨Программа⁩
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
Русский

Учебная цель 5.5.A: Определить принципы безопасности приложений «безопасность по умолчанию» (secure by design) и «безопасность при включении» (security by default).

  • 5.5.A.1 Безопасность по умолчанию — это концепция, которая побуждает компании включать безопасность на всех этапах разработки продукта, включая проектирование. При внедрении принципа безопасности по умолчанию безопасность становится принципом проектирования, а не просто технической функцией.
  • 5.5.A.2 Безопасность по умолчанию включает три принципа проектирования:
    • i. Компании должны брать на себя ответственность за результаты безопасности клиентов. Компании должны разрабатывать продукты, отвечающие потребностям клиентов в области безопасности.
    • ii. Компании должны приверженно придерживаться радикальной прозрачности и подотчетности. Быстрое распространение релевантной информации о продукте и обновлениях, связанных с безопасностью, повышает уровень защиты для всех.
    • iii. Компании должны выстраивать организационную структуру и лидерство для реализации принципа безопасности по умолчанию. Компаниям нужны лидеры, ориентированные на безопасность и придерживающиеся приоритета безопасности.
  • 5.5.A.3 Безопасность по умолчанию включает концепцию безопасности при включении (secure by default), которая предполагает, что функции безопасности программного обеспечения и устройств должны быть активированы по умолчанию. Устройства и программное обеспечение должны быть безопасными в использовании сразу после установки, со встроенными активированными функциями безопасности.

Учебная цель 5.5.B: Объяснить, как очистка пользовательского ввода защищает приложения.

  • 5.5.B.1 Когда пользователи вводят данные в приложение, оно обычно оборачивает этот ввод в специальные символы для обработки. Символы, оборачивающие пользовательский ввод, называются управляющими символами и включают одинарную кавычку, двойную кавычку и точку с запятой.
  • 5.5.B.2 При создании программы, принимающей пользовательский ввод, программисты должны использовать функцию для проверки соответствия ввода ожидаемым критериям и отсутствия управляющих символов, которые могут быть использованы для манипулирования системой. Эта функция верификации может очищать пользовательский ввод, удаляя потенциально вредоносные символы, либо выдавать пользователю ошибку и требовать повторного ввода данных. Это может защитить от многих атак на приложения, включая:
    • Атаки SQL-инъекций
    • Атаки XSS
    • Атаки на обход директорий

Source: College Board AP Course and Exam Description · ⁨Источник: Описание курса и экзамена 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.

Русский

Два принципа проектирования обеспечивают безопасность приложений с самого начала. Безопасность по умолчанию (Secure by design) предполагает внедрение защитных мер на каждом этапе разработки, а не как добавление «на потом». Безопасность из коробки (Secure by default) означает, что продукт поставляется с функциями безопасности уже включёнными — безопасен сразу после установки.

Безопасность по умолчанию опирается на три принципа, которые должна принять компания: (1) взять на себя ответственность за результаты безопасности своих клиентов, а не перекладывать вину на пользователей; (2) стремиться к радикальной прозрачности и подотчётности — оперативно делиться новостями и обновлениями, связанными с безопасностью, чтобы все становились защищённее; (3) создавать организационную структуру и руководство, которые делают безопасность приоритетной целью.

Ключевая защита от атак типа «инъекция» — это очистка ввода. Определённые специальные символы — одинарная кавычка, двойная кавычка и точка с запятой — могут использоваться для манипулирования системой, поэтому качественная программа удаляет или отклоняет их до обработки. Очистка входных данных защищает от SQL-инъекций, XSS и атак через обход директорий.

Vocabulary · ⁨Словарь⁩ Train · ⁨Тренировать⁩
English Русский
Secure by design/sɪˈkjʊə baɪ dɪˈzaɪn/ Безопасность по умолчанию
Secure by default/sɪˈkjʊə baɪ dɪˈfɒlt/ Безопасность при проектировании
5.6

Detecting Attacks on Data and Applications · ⁨Обнаружение атак на данные и приложения⁩

Syllabus · ⁨Программа⁩
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.
Русский

Учебная цель 5.6.A: Объяснить, как обнаруживать атаки на данные.

  • 5.6.A.1 Устройства отслеживают и фиксируют моменты доступа к данным и лица, осуществляющие доступ. Процесс записи и мониторинга действий пользователей называется аудитом (accounting). Анализ этих журналов может выявить злонамеренную деятельность, когда злоумышленник пытается получить доступ, скопировать, переместить или удалить данные. Подозрительная активность может включать:
    • Доступ к файлам, которые обычно не просматриваются
    • Доступ к файлам или приложениям вне нормальных паттернов пользователя (включая время суток, местоположение и тип устройства)
    • Попытки удаления или копирования конфиденциальных файлов
  • 5.6.A.2 Медовая ловушка (honeypot) — это файл, который выглядит так, будто содержит ценные данные (например, информацию о кредитных картах, персональные данные, пароли), но данные внутри него являются фиктивными. Система может оповещать защитников, если кто-то попытается получить доступ к медовой ловушке. Поскольку медовая ловушка является фиктивным файлом, у нее нет легитимных причин для доступа, и любая попытка доступа будет индикатором злонамеренной деятельности.
  • 5.6.A.3 Криптографические хеш-функции могут создавать дайджест (хеш-сумму) для данных и выявлять их изменение. Если файл изменился неожиданным образом, это может быть признаком злонамеренной деятельности.

Учебная цель 5.6.B: Определить средства контроля для обнаружения атак на приложения или данные.

  • 5.6.B.1 Стоимость является критерием при определении средств обнаружения. Средства обнаружения, такие как медовые ловушки и использование значений хеш-функций для проверки целостности данных, являются недорогими. Некоторые организации инвестируют в сторонние услуги предотвращения утечки данных (DLP), которые мониторят доступ, использование и передачу данных пользователями по всей организации для выявления подозрительной активности; услуги DLP обеспечивают высокие возможности обнаружения, но стоят дороже.
  • 5.6.B.2 Чувствительность или критичность данных или приложений является критерием при определении средств обнаружения. Более чувствительные или критически важные данные и приложения чаще становятся целями злоумышленника и требуют более тщательного мониторинга.
  • 5.6.B.3 Классификация данных является критерием при определении средств обнаружения. Данные, классифицированные как конфиденциальные, образовательные, медицинские или финансовые, часто имеют законодательные или регуляторные требования к обнаружению и мониторингу.

Учебная цель 5.6.C: Оценить влияние метода обнаружения атак на приложения или данные.

  • 5.6.C.1 Для эффективной работы анализ журналов должен дополняться автоматизацией. Медовые ловушки обеспечивают практически мгновенное обнаружение.
  • 5.6.C.2 Некоторые инструменты DLP, honeypots и системы автоматического анализа логов в реальном времени предоставляют оповещения во время атаки. Эти инструменты позволяют оперативно реагировать, чтобы предотвратить атаку до того, как она нанесет больший ущерб. Ретроспективный анализ логов и использование криптографических хеш-сумм для проверки целостности данных выявляют атаки после их совершения.
  • 5.6.C.3 В приложениях и системах обнаружения атак на данные могут возникать ложные срабатывания (false negatives). Криптографические хеш-функции определяют только факт изменения данных. Злоумышленник может просматривать и красть данные без их изменения, и криптографическая хеш-функция не сможет это обнаружить. Honeypots не способны выявить злоумышленников, которые не пытаются к ним обратиться.

Цель обучения 5.6.D: Определить, были ли изменены файл, проверив его хеш-сумму.

  • 5.6.D.1 Криптографические хеш-функции помогают выявлять изменения в файле благодаря своей детерминированности: один и тот же входной сигнал всегда порождает одинаковый выходной результат для заданной хеш-функции.
  • 5.6.D.2 Хеш-суммы можно вычислить с помощью командной строки на компьютере, на веб-сайте или с использованием специализированного программного обеспечения.
    • В Windows PowerShell, если пользователю необходимо создать SHA256-хеш для файла testfile, следует использовать команду: Get-FileHash testfile -Algorithm SHA256
    • В BASH то же самое можно выполнить с помощью команды: sha256sum testfile
    • В zsh, стандартной командной строке на компьютерах Apple, это можно сделать с помощью команды: shasum -a 256 testfile
  • 5.6.D.3 Файл можно закодировать хешем и зафиксировать полученный результат. Затем его можно закодировать повторно позже, и второй результат сравнить с предыдущим для этого же файла. Если хеш файла изменился, значит, файл был модифицирован между моментами генерации первого и второго хешей.

Цель обучения 5.6.E: Применять методы обнаружения для выявления и сообщения об индикаторах атак на приложения путем анализа файлов логов.

  • 5.6.E.1 Атаки SQL-инъекций можно обнаружить, проверив логи приложений и сервера на наличие пользовательского ввода, содержащего управляющие слова и символы SQL, такие как:
    • Символ одинарной (') или двойной (") кавычки
    • Булевые условия, например OR 1=1
    • Двойное тире (которое обозначает комментарий в SQL): --
    • Управляющие слова SQL (всегда пишутся заглавными буквами), такие как WHERE, IN, FROM
  • 5.6.E.2 Атаки XSS (межсайтового скриптинга) можно обнаружить, проверяя пользовательский ввод на наличие подозрительных тегов, особенно тега .
  • 5.6.E.3 Для веб-приложений переполнение буфера можно обнаружить, проверив объем данных, которые пользователь отправляет веб-приложению в своем запросе. Обычно проверяются следующие поля: длина URL, длина куки, длина строки запроса и общая длина запроса. Длинные строки в любом из этих полей могут быть индикатором попытки атаки с использованием переполнения буфера.
  • 5.6.E.4 Атаки обхода директорий можно обнаружить, проверив логи приложений и сервера. HTTP GET-запросы, содержащие пути с последовательностями ../, являются признаками того, что злоумышленник пытается выполнить обход директории.

Source: College Board AP Course and Exam Description · ⁨Источник: Описание курса и экзамена 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.

Русский

Для обнаружения атак на данные системы выполняют учет — фиксацию того, кто, что и когда получил доступ. Однако журналы событий очень объемны, поэтому анализ логов должен быть автоматизирован для обеспечения приемлемой скорости; человек, читающий сырые логи, работает слишком медленно. Умным дополнением является медовая ловушка (honeypot) — поддельный файл, кажущийся ценным: поскольку у никого нет реальной причины открыть его, любой доступ является явным, почти мгновенным признаком атаки. Особое внимание следует уделять попыткам удалить или скопировать конфиденциальные файлы. Криптографические хеш-суммы также помогают: пересчитайте хеш файла и сравните — если значение изменилось, файл был модифицирован.

При выборе средств детектирования необходимо оценивать стоимость (медовые ловушки дешевы, а система предотвращения утечки данных (DLP) эффективна, но дорогая) в зависимости от чувствительности информации. Чтобы идентифицировать конкретную атаку по логам, ищите её сигнатуру: SQL-инъекция отображает OR 1=1 и --; XSS — теги <script>; обход каталогов — последовательности ../; переполнение буфера — unusually long input strings (необычно длинные входные строки).

Проверка целостности файла

Криптографический хеш преобразует файл любого размера в короткое значение фиксированной длины. Изменение одного байта файла полностью меняет хеш, поэтому сравнение хеша скачанного файла с тем, что указан издателем, подтверждает, что файл доставлен без изменений. Это выполняется в командной строке:

Среда Команда
BASH (Linux и большинство серверов) sha256sum testfile
zsh, стандартный терминал на компьютерах Apple shasum -a 256 testfile

Обе команды выводят SHA-256 хеш для testfile. Если он отличается от опубликованного значения хотя бы на один символ, файл был изменен — вследствие повреждения при передаче или действий злоумышленника, который его заменил.

⚠️ Хеш доказывает целостность, но не подлинность. Злоумышленник, способный заменить файл на веб-странице, обычно может заменить и опубликованный хеш рядом с ним; именно поэтому подписанный хеш или тот, полученный через отдельный доверенный канал, является более надежным доказательством.

Vocabulary · ⁨Словарь⁩ Train · ⁨Тренировать⁩
English Русский
honeypot/ˈhʌnɪpɒt/ honeypot (медовая сетка)
data loss prevention (DLP)/ˈdeɪtə lɒs prɪˈvenʃn/ предотвращение утечки данных (DLP)
5.6

Exam tips · ⁨Советы для экзамена⁩

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.
Русский
  • Соотнесите каждое приложение атаки с её доказательствами в логе: OR 1=1 / -- = SQL-инъекция; <script> = XSS; ../ = обход каталогов; очень длинные входные данные = переполнение буфера.
  • Выучите четыре модели управления доступом по их принявшему решение субъекту: RBAC = ваша роль, RuBAC = условие, DAC = владелец файла, MAC = центральный администратор. Основой всех них является принцип минимальных привилегий.
  • Чтение прав доступа Linux путем сложения 4+2+1 для каждой группы - chmod 750 = владелец rwx (7), группа r-x (5), остальные none (0). Тренируйтесь переводить в обоих направлениях.
  • Симметричное шифрование = один общий ключ (быстро, AES); асимметричное = пара открытого/закрытого ключей (решает проблему обмена ключами, RSA/ECC). Шифруйте с помощью открытого ключа получателя.
  • Очистка ввода (input sanitization) — лучший способ предотвращения атак типа инъекции; медовая ловушка — классический дешевый инструмент детектирования.
Vocabulary · ⁨Словарь⁩ Train · ⁨Тренировать⁩
English Русский
input sanitization/ˈɪnpʊt ˌsænɪtaɪˈzeɪʃn/ санитизация ввода
special characters/ˈspeʃl ˈkærɪktəz/ специальные символы
accounting/əˈkaʊntɪŋ/ бухгалтерский учет

Interactive lessons on this topic · ⁨Интерактивные уроки по этой теме⁩

Work through it step by step, with instant-check exercises. · ⁨Пройдите его шаг за шагом с упражнениями мгновенной проверки.⁩

Past Papers · ⁨Архив экзаменационных работ⁩

More topics in AP Cybersecurity · ⁨AP Комп'ютерна безпека⁩ · ⁨Больше тем в AP Cybersecurity · ⁨AP Комп'ютерна безпека⁩⁩

Log in or create account · ⁨Войти или создать аккаунт⁩

IGCSE, A-Level & AP