Bài 2: Cybersecurity Concepts and Principles

1. Các khái niệm cơ bản trong An toàn máy tính

1.1 Định nghĩa An toàn máy tính

Theo NIST (National Institute of Standards and Technology):

“Các biện pháp và kiểm soát đảm bảo tính bảo mật, toàn vẹn và sẵn sàng của các tài sản hệ thống thông tin, bao gồm phần cứng, phần mềm, firmware và thông tin đang được xử lý, lưu trữ và truyền thông.”


1.2 CIA Triad và các mục tiêu mở rộng

Mô hình CIA Triad là nền tảng của an toàn thông tin, gồm 3 mục tiêu cốt lõi:

Đảm bảo rằng thông tin chỉ được truy cập bởi những người có thẩm quyền. Ví dụ: mã hóa dữ liệu, kiểm soát truy cập, phân quyền người dùng.
Đảm bảo rằng dữ liệu không bị sửa đổi trái phép trong quá trình lưu trữ hoặc truyền tải. Ví dụ: hash, chữ ký số, checksum.
Đảm bảo hệ thống và dữ liệu luôn sẵn sàng cho người dùng hợp lệ khi cần. Ví dụ: dự phòng hệ thống, chống DDoS.

Ngoài CIA Triad, hai mục tiêu phổ biến khác thường được bổ sung:

Xác minh rằng người dùng đúng là người họ tuyên bố, và mỗi đầu vào đến hệ thống đến từ một nguồn đáng tin cậy. Ví dụ: đăng nhập hai yếu tố (2FA), chứng chỉ số (certificate).
Lưu lại nhật ký hoạt động của người dùng để phục vụ phân tích pháp y sau này, truy vết vi phạm bảo mật hoặc giải quyết tranh chấp giao dịch. Ví dụ: audit log, system log.

1.3 Vulnerability, Threat và Risk

graph LR V[Vulnerability\nĐiểm yếu đã biết] --> R[Risk\nKhả năng tổn thất] T[Threat\nSự cố tiềm ẩn] --> R
Khái niệmĐịnh nghĩaVí dụ
VulnerabilityĐiểm yếu đã biết của một tài sản hệ thống mà kẻ tấn công có thể khai thácLỗ hổng SQL Injection trong web app
ThreatSự cố mới hoặc mới phát hiện có tiềm năng gây hại cho hệ thốngMột nhóm hacker nhắm vào hệ thống ngân hàng
RiskKhả năng xảy ra tổn thất hoặc thiệt hại khi một mối đe dọa khai thác điểm yếuNguy cơ mất dữ liệu khách hàng nếu SQL Injection bị khai thác

1.4 Attack và Countermeasure

Attack (Tấn công): Là một mối đe dọa được thực hiện bởi tác nhân đe dọa (threat agent/adversary). Nếu thành công, dẫn đến vi phạm bảo mật không mong muốn.

Kẻ tấn công cố tình thay đổi tài nguyên hệ thống hoặc ảnh hưởng đến hoạt động của nó. Đặc điểm: sửa đổi luồng dữ liệu hoặc tạo luồng dữ liệu giả.

Các dạng tấn công chủ động:

  • Replay: Ghi lại và phát lại thông điệp hợp lệ để lừa hệ thống
  • Masquerade: Giả mạo danh tính của một thực thể hợp lệ
  • Modification of messages: Sửa đổi nội dung thông điệp trong quá trình truyền
  • Denial of Service (DoS): Làm tê liệt dịch vụ, ngăn người dùng hợp lệ truy cập

Kẻ tấn công chỉ nghe lén hoặc thu thập thông tin mà không ảnh hưởng đến tài nguyên hệ thống. Đặc điểm: rất khó phát hiện vì không có dấu hiệu thay đổi.

Các dạng tấn công bị động:

  • Release of message contents: Đọc nội dung thông điệp không được mã hóa
  • Traffic analysis: Phân tích mẫu lưu lượng để suy ra thông tin (dù không đọc được nội dung)
  • Inside attack (Insider): Kẻ tấn công là người bên trong tổ chức (nhân viên, contractor), đã có quyền truy cập hợp lệ.
  • Outside attack (Outsider): Kẻ tấn công từ bên ngoài, không có quyền truy cập ban đầu.

Countermeasure (Biện pháp đối phó): Mọi biện pháp được áp dụng để xử lý tấn công bảo mật.

  • Lý tưởng nhất: ngăn chặn tấn công trước khi xảy ra
  • Nếu không thể ngăn chặn: phát hiện tấn côngphục hồi hoặc giảm thiểu tác hại

1.5 Threat Consequences và Threat Actions

Theo RFC 4949, các hậu quả của mối đe dọa được phân loại thành 4 nhóm:

Một thực thể truy cập dữ liệu mà nó không được phép.

Threat ActionMô tả
ExposureDữ liệu nhạy cảm bị tiết lộ trực tiếp cho thực thể trái phép
InterceptionThực thể trái phép trực tiếp truy cập dữ liệu đang truyền giữa nguồn và đích hợp lệ
InferenceThực thể trái phép gián tiếp suy ra dữ liệu nhạy cảm qua đặc điểm hoặc sản phẩm phụ của truyền thông
IntrusionThực thể trái phép vượt qua các cơ chế bảo vệ để truy cập dữ liệu

Thực thể được ủy quyền nhận dữ liệu sai và tin là đúng.

Threat ActionMô tả
MasqueradeThực thể trái phép giả mạo thực thể hợp lệ để truy cập hệ thống hoặc thực hiện hành động độc hại
FalsificationDữ liệu giả được đưa vào để đánh lừa thực thể hợp lệ
RepudiationMột thực thể lừa dối thực thể khác bằng cách phủ nhận trách nhiệm về hành động đã thực hiện

Gián đoạn hoặc ngăn chặn hoạt động đúng của dịch vụ và chức năng hệ thống.

Threat ActionMô tả
IncapacitationNgăn hoặc gián đoạn hoạt động hệ thống bằng cách vô hiệu hóa thành phần hệ thống
CorruptionSửa đổi bất lợi chức năng hoặc dữ liệu hệ thống theo hướng không mong muốn
ObstructionCản trở việc cung cấp dịch vụ hệ thống bằng cách làm khó hoạt động hệ thống

Kiểm soát dịch vụ hoặc chức năng hệ thống bởi thực thể trái phép.

Threat ActionMô tả
MisappropriationThực thể giành quyền kiểm soát logic hoặc vật lý trái phép đối với tài nguyên hệ thống
MisuseKhiến thành phần hệ thống thực hiện chức năng/dịch vụ gây hại cho bảo mật hệ thống

1.6 Threats and Assets — Ví dụ cụ thể

Tài sảnAvailabilityConfidentialityIntegrity
HardwareThiết bị bị đánh cắp hoặc vô hiệu hóa, từ chối dịch vụUSB không mã hóa bị đánh cắp
SoftwareChương trình bị xóa, người dùng mất quyền truy cậpSao chép phần mềm trái phépChương trình bị sửa đổi để thất bại khi thực thi hoặc thực hiện tác vụ ngoài ý muốn
DataFile bị xóa, mất quyền truy cậpĐọc dữ liệu trái phépFile hiện có bị sửa đổi hoặc file mới được tạo giả mạo
Communication Lines & NetworksThông điệp bị hủy hoặc xóa; mạng bị tê liệtThông điệp bị đọc; phân tích mẫu lưu lượngThông điệp bị sửa đổi, trì hoãn, đảo thứ tự, nhân bản; thông điệp giả được tạo ra

2. Phạm vi của An toàn máy tính

An toàn máy tính bao gồm nhiều lớp bảo vệ:

graph TD A[User Authentication\nXác thực người dùng tại cổng vào] --> B[Access Control/Protection\nKiểm soát quyền truy cập dữ liệu] B --> C[File Security\nBảo mật file/dữ liệu trên hệ thống] C --> D[Network Security\nBảo mật dữ liệu khi truyền qua mạng]

Môn học NT140 tập trung vào Network Security — lớp bảo mật khi dữ liệu được truyền qua mạng.


3. Trusting Trust — Vấn đề niềm tin trong hệ thống

3.1 Bài toán “Reflections on Trusting Trust”

Đây là một bài toán kinh điển do Ken Thompson trình bày năm 1984 trên CACM (Communications of the ACM), đặt ra câu hỏi cốt lõi: Chúng ta có thể tin tưởng vào điều gì trong hệ thống máy tính?


3.2 Câu hỏi và phân tích từng lớp

Q: Chúng ta có thể tin tưởng chương trình login trong một bản phân phối Linux (ví dụ Ubuntu) không?


Q: Chúng ta có thể tin tưởng mã nguồn của login không?


3.3 Backdoor của Ken Thompson — Tấn công qua Compiler

Ken Thompson đề xuất một backdoor tinh vi được cài vào compiler (trình biên dịch C), không phải vào mã nguồn chương trình.

Bước 1: Sửa đổi mã nguồn compiler

compile(s) {
    if (match(s, "login-program")) {
        compile("login-backdoor");
        return;
    }
    if (match(s, "compiler-program")) {
        compile("compiler-backdoor");  // Tự nhân bản backdoor vào compiler mới
        return;
    }
    /* regular compilation */
}

Bước 2: Thực hiện tấn công

  1. Biên dịch compiler đã sửa đổi → tạo ra compiler binary có backdoor
  2. Khôi phục mã nguồn compiler về trạng thái ban đầu (xóa bỏ mọi dấu vết trong source)
  3. Kết quả: Kiểm tra mã nguồn compiler → không thấy gì bất thường
  4. Nhưng khi dùng compiler binary để biên dịch → vẫn tạo ra compiler bị nhiễmlogin có backdoor

3.4 Chúng ta có thể tin tưởng phần cứng không?

Xem xét tình huống thực tế: Bạn đặt mua một laptop qua bưu điện. Khi nhận được, bạn có thể tin tưởng gì trên đó?

Thành phầnVấn đềGiải phápHạn chế của giải pháp
OS/ApplicationsCó thể đã bị cài backdoorCài lại OS và ứng dụngKhông thể tin OS hiện tại để cài lại OS
Quá trình cài lạiOS hiện tại không đáng tinBoot từ USB Tails (Debian)Vẫn phải tin vào BIOS/UEFI
BIOS/UEFICó thể bị nhiễm (ví dụ: ShadowHammer 2018)?Rất khó kiểm soát
Motherboard/FirmwareCó thể bị can thiệp phần cứng?Gần như không thể kiểm tra

3.5 Kết luận: Trusted Computing Base (TCB)

Sự thật đáng buồn: Về mặt lý thuyết, không có gì hoàn toàn đáng tin cậy — bất kỳ thành phần nào cũng có thể bị xâm phạm.

Nhưng nếu không tin tưởng bất cứ điều gì, chúng ta không thể tiến lên phía trước.


4. Security Design Principles

4.1 Economy of Mechanism (Tính đơn giản của cơ chế)

Nguyên tắc: Thiết kế các cơ chế bảo mật càng đơn giản và nhỏ gọn càng tốt.

Lý do: Hệ thống càng phức tạp, càng có nhiều điểm yếu tiềm ẩn và càng khó kiểm tra toàn diện.

Ví dụ: Thay vì xây dựng một hệ thống xác thực phức tạp với nhiều lớp logic, hãy sử dụng thư viện xác thực đã được kiểm chứng (như OAuth2) với cấu hình đơn giản, rõ ràng.


4.2 Fail-Safe Defaults (Mặc định an toàn khi thất bại)

Nguyên tắc: Giá trị mặc định phải là từ chối truy cập. Chỉ cấp quyền truy cập khi có sự cho phép rõ ràng.

Lý do: Nếu hệ thống gặp lỗi hoặc tình huống không xác định, hành vi mặc định phải là an toàn (deny), không phải cho phép (allow).

Ví dụ về lỗi thiết kế (từ Homework):

// WRONG — Nguy hiểm!
DWORD dwRet = IsAccessAllowed(...);
if (dwRet == ERROR_ACCESS_DENIED) {
    // Từ chối truy cập
} else {
    // Cho phép truy cập — Sai! Bao gồm cả trường hợp lỗi!
}
// CORRECT — An toàn!
DWORD dwRet = IsAccessAllowed(...);
if (dwRet == ERROR_SUCCESS) {
    // Chỉ cho phép khi có xác nhận rõ ràng là được phép
    // Do something
} else {
    // Mặc định: từ chối — bao gồm cả lỗi và ACCESS_DENIED
    // Inform user that access is denied
}

4.3 Complete Mediation (Kiểm tra toàn diện)

Nguyên tắc: Mọi yêu cầu truy cập vào mọi đối tượng đều phải được kiểm tra quyền. Không có ngoại lệ, không cache quyền truy cập một cách thiếu kiểm soát.

Lý do: Nếu bỏ qua kiểm tra ở bất kỳ điểm nào (ví dụ cache quyền truy cập cũ), kẻ tấn công có thể khai thác điểm đó.

Ví dụ: Hệ thống file phải kiểm tra quyền mỗi lần truy cập file, không chỉ khi mở file lần đầu. Nếu quyền thay đổi giữa chừng, hệ thống phải phát hiện và từ chối.


4.4 Open Design (Thiết kế mở)

Nguyên tắc: Tính bảo mật của hệ thống không được phụ thuộc vào việc giữ bí mật thiết kế hay thuật toán. Bí mật chỉ nằm ở khóa (key) hoặc mật khẩu (password).

Lý do: Đây là nguyên tắc Kerckhoffs. Một hệ thống bảo mật qua ẩn giấu (security through obscurity) rất dễ bị phá vỡ khi thiết kế bị lộ.

Ví dụ: Các thuật toán mã hóa như AES, RSA đều được công bố công khai. Độ bảo mật nằm ở độ dài và bí mật của khóa, không phải ở việc giữ bí mật thuật toán.


4.5 Separation of Privilege (Phân tách đặc quyền)

Nguyên tắc: Không nên cấp quyền truy cập chỉ dựa trên một điều kiện duy nhất. Yêu cầu nhiều điều kiện phải được thỏa mãn đồng thời.

Lý do: Giảm thiểu rủi ro khi một yếu tố bị xâm phạm.

Ví dụ: Xác thực hai yếu tố (2FA) — cần cả mật khẩu (something you know) lẫn OTP từ điện thoại (something you have). Chỉ bị lộ mật khẩu thì chưa đủ để xâm nhập.


4.6 Least Privilege (Đặc quyền tối thiểu)

Nguyên tắc: Mỗi chương trình và người dùng hệ thống chỉ nên có đúng những đặc quyền cần thiết để hoàn thành công việc, không hơn.

Lý do: Giới hạn tầm ảnh hưởng nếu tài khoản hoặc chương trình bị xâm phạm.

Ví dụ: Một web server chỉ cần quyền đọc file tĩnh và ghi log — không nên chạy với quyền root. Nếu bị tấn công, kẻ tấn công chỉ có quyền hạn chế, không thể kiểm soát toàn bộ hệ thống.


Câu hỏi trắc nghiệm

Câu 1. Theo định nghĩa của NIST, An toàn máy tính đảm bảo điều gì?

  • A. Chỉ bảo vệ phần cứng và phần mềm
  • B. Bảo vệ tính bảo mật, toàn vẹn và sẵn sàng của tài sản hệ thống thông tin
  • C. Chỉ bảo vệ dữ liệu đang được truyền trên mạng
  • D. Ngăn chặn mọi cuộc tấn công vào hệ thống

Câu 2. CIA Triad trong bảo mật thông tin bao gồm những yếu tố nào?

  • A. Confidentiality, Integrity, Authenticity
  • B. Confidentiality, Integrity, Availability
  • C. Confidentiality, Identity, Availability
  • D. Control, Integrity, Availability

Câu 3. “Authenticity” trong bảo mật thông tin có nghĩa là gì?

  • A. Mã hóa toàn bộ dữ liệu truyền qua mạng
  • B. Lưu lại nhật ký hoạt động của người dùng
  • C. Xác minh người dùng đúng là người họ tuyên bố và đầu vào đến từ nguồn đáng tin
  • D. Đảm bảo dữ liệu không bị thay đổi trong quá trình truyền

Câu 4. “Accountability” phục vụ mục đích gì?

  • A. Ngăn chặn tấn công từ bên ngoài
  • B. Lưu lại hoạt động để phục vụ phân tích pháp y và truy vết vi phạm bảo mật
  • C. Xác minh nguồn gốc của dữ liệu
  • D. Mã hóa thông tin nhạy cảm

Câu 5. Điểm khác biệt chính giữa Vulnerability và Threat là gì?

  • A. Vulnerability là từ bên ngoài, Threat là từ bên trong
  • B. Vulnerability là điểm yếu đã biết của tài sản, Threat là sự cố tiềm ẩn có thể gây hại
  • C. Vulnerability nghiêm trọng hơn Threat
  • D. Không có sự khác biệt, hai khái niệm giống nhau

Câu 6. Risk trong bảo mật được định nghĩa là gì?

  • A. Một điểm yếu của hệ thống
  • B. Một cuộc tấn công đã xảy ra
  • C. Khả năng xảy ra tổn thất khi mối đe dọa khai thác điểm yếu
  • D. Biện pháp bảo vệ hệ thống

Câu 7. Đặc điểm nào phân biệt Passive Attack với Active Attack?

  • A. Passive attack chỉ xảy ra từ bên trong tổ chức
  • B. Passive attack không ảnh hưởng đến tài nguyên hệ thống và rất khó phát hiện
  • C. Passive attack luôn gây thiệt hại lớn hơn Active attack
  • D. Passive attack sửa đổi dữ liệu trong khi Active attack chỉ nghe lén

Câu 8. Tấn công Replay thuộc loại nào?

  • A. Passive attack
  • B. Active attack
  • C. Cả hai
  • D. Không thuộc loại nào

Câu 9. Traffic analysis là dạng tấn công nào?

  • A. Active attack — vì phân tích dữ liệu
  • B. Passive attack — vì chỉ quan sát mẫu lưu lượng mà không thay đổi gì
  • C. Inside attack
  • D. DoS attack

Câu 10. Biện pháp đối phó (Countermeasure) lý tưởng nhất là gì?

  • A. Phát hiện tấn công sau khi xảy ra
  • B. Phục hồi hệ thống sau tấn công
  • C. Ngăn chặn tấn công trước khi nó thành công
  • D. Ghi log tất cả các hoạt động

Câu 11. “Unauthorized Disclosure” là hậu quả của mối đe dọa nào?

  • A. Một thực thể nhận dữ liệu sai
  • B. Một thực thể truy cập dữ liệu mà nó không được phép truy cập
  • C. Dịch vụ hệ thống bị gián đoạn
  • D. Thực thể trái phép kiểm soát chức năng hệ thống

Câu 12. Threat action “Inference” khác với “Interception” ở điểm nào?

  • A. Inference sửa đổi dữ liệu, Interception chỉ đọc
  • B. Inference gián tiếp suy ra dữ liệu qua đặc điểm truyền thông, Interception trực tiếp truy cập dữ liệu
  • C. Inference chỉ xảy ra qua mạng, Interception xảy ra cục bộ
  • D. Không có sự khác biệt

Câu 13. Kẻ tấn công giả mạo danh tính của người dùng hợp lệ để truy cập hệ thống — đây là threat action gì?

  • A. Falsification
  • B. Repudiation
  • C. Masquerade
  • D. Intrusion

Câu 14. “Repudiation” trong bảo mật có nghĩa là gì?

  • A. Mã hóa dữ liệu để từ chối truy cập
  • B. Một thực thể phủ nhận trách nhiệm về hành động đã thực hiện
  • C. Hệ thống từ chối yêu cầu trái phép
  • D. Dữ liệu bị xóa mà không để lại dấu vết

Câu 15. “Incapacitation” thuộc nhóm hậu quả nào?

  • A. Unauthorized Disclosure
  • B. Deception
  • C. Disruption
  • D. Usurpation

Câu 16. “Corruption” trong nhóm Disruption có nghĩa là gì?

  • A. Đánh cắp dữ liệu nhạy cảm
  • B. Sửa đổi bất lợi chức năng hoặc dữ liệu hệ thống theo hướng không mong muốn
  • C. Phủ nhận trách nhiệm về hành động
  • D. Giả mạo danh tính người dùng hợp lệ

Câu 17. Nhóm hậu quả “Usurpation” mô tả tình huống nào?

  • A. Dữ liệu bị lộ cho bên trái phép
  • B. Người dùng nhận dữ liệu sai
  • C. Thực thể trái phép kiểm soát dịch vụ hoặc chức năng hệ thống
  • D. Hệ thống bị gián đoạn hoạt động

Câu 18. “Misuse” trong nhóm Usurpation là gì?

  • A. Thực thể giành quyền kiểm soát vật lý trái phép
  • B. Khiến thành phần hệ thống thực hiện chức năng gây hại cho bảo mật
  • C. Sửa đổi dữ liệu truyền qua mạng
  • D. Nghe lén lưu lượng mạng

Câu 19. Theo bảng Threats and Assets, mối đe dọa nào ảnh hưởng đến Confidentiality của Hardware?

  • A. Thiết bị bị đánh cắp hoặc vô hiệu hóa
  • B. USB không được mã hóa bị đánh cắp
  • C. Phần mềm bị xóa
  • D. File bị sửa đổi

Câu 20. Mối đe dọa nào ảnh hưởng đến Integrity của Software?

  • A. Chương trình bị xóa
  • B. Sao chép phần mềm trái phép
  • C. Chương trình bị sửa đổi để thực hiện tác vụ ngoài ý muốn
  • D. Phần mềm bị từ chối truy cập

Câu 21. Mối đe dọa nào đối với Availability của Communication Lines and Networks?

  • A. Thông điệp bị đọc trộm
  • B. Thông điệp bị sửa đổi
  • C. Thông điệp bị hủy hoặc xóa, mạng bị tê liệt
  • D. Thông điệp bị nhân bản

Câu 22. Ken Thompson đề xuất backdoor trong bài “Reflections on Trusting Trust” năm nào?

  • A. 1974
  • B. 1984
  • C. 1994
  • D. 2004

Câu 23. Backdoor của Thompson được cài vào đâu?

  • A. Vào mã nguồn chương trình login
  • B. Vào hệ điều hành Linux
  • C. Vào compiler (trình biên dịch)
  • D. Vào firmware BIOS

Câu 24. Tại sao backdoor của Thompson lại nguy hiểm đặc biệt?

  • A. Vì nó ảnh hưởng đến phần cứng
  • B. Vì nó tự nhân bản vào mọi compiler được biên dịch từ nó, dù mã nguồn compiler hoàn toàn sạch
  • C. Vì nó không thể bị phát hiện bởi antivirus
  • D. Vì nó mã hóa toàn bộ hệ thống

Câu 25. Trong ví dụ Thompson’s backdoor, Attack step 2 bao gồm những gì?

  • A. Viết thêm backdoor vào mã nguồn login
  • B. Biên dịch compiler đã sửa rồi khôi phục mã nguồn compiler về trạng thái gốc
  • C. Xóa toàn bộ hệ thống và cài lại
  • D. Mã hóa compiler binary

Câu 26. ShadowHammer Operation (2018) minh họa điều gì?

  • A. Phần mềm antivirus có thể bị qua mặt
  • B. Ngay cả BIOS/UEFI firmware cũng có thể bị xâm phạm qua kênh cập nhật chính thống
  • C. Mạng WiFi có thể bị nghe lén
  • D. Mật khẩu yếu dễ bị brute force

Câu 27. Trusted Computing Base (TCB) là gì?

  • A. Một phần mềm antivirus mạnh nhất thị trường
  • B. Phần tối thiểu của hệ thống được giả định là không bị xâm phạm để xây dựng bảo mật trên đó
  • C. Một tiêu chuẩn mã hóa quốc tế
  • D. Một giao thức xác thực mạng

Câu 28. Tại sao không thể dùng OS hiện tại để cài lại OS khi nghi ngờ bị backdoor?

  • A. OS hiện tại không có quyền cài lại OS
  • B. Vì không thể tin tưởng OS hiện tại — nó có thể đã bị compromised và sẽ cài lại OS có backdoor
  • C. Vì cần phải mua license mới
  • D. Vì OS mới không tương thích với phần cứng

Câu 29. Nguyên tắc “Economy of Mechanism” khuyến nghị điều gì?

  • A. Tiết kiệm chi phí vận hành hệ thống
  • B. Thiết kế cơ chế bảo mật càng đơn giản và nhỏ gọn càng tốt
  • C. Sử dụng nhiều lớp bảo mật phức tạp
  • D. Tối ưu hóa hiệu năng hệ thống

Câu 30. Nguyên tắc “Fail-Safe Defaults” nghĩa là gì?

  • A. Hệ thống tự động backup dữ liệu khi gặp lỗi
  • B. Giá trị mặc định là từ chối truy cập; chỉ cấp quyền khi có phê duyệt rõ ràng
  • C. Hệ thống tiếp tục hoạt động dù gặp lỗi
  • D. Mật khẩu mặc định phải được thay đổi ngay khi cài đặt

Câu 31. Trong đoạn code lỗi của Homework, vấn đề bảo mật chính là gì?

if (dwRet == ERROR_ACCESS_DENIED) {
    // Từ chối
} else {
    // Cho phép  ← Vấn đề ở đây
}
  • A. Code không kiểm tra null pointer
  • B. Code cho phép truy cập trong mọi trường hợp không phải ERROR_ACCESS_DENIED, kể cả khi có lỗi hệ thống
  • C. Code không sử dụng mã hóa
  • D. Code không ghi log

Câu 32. Cách sửa đúng cho đoạn code lỗi trên theo nguyên tắc Fail-Safe Defaults là gì?

  • A. Thêm log để ghi lại lỗi
  • B. Kiểm tra ERROR_SUCCESS để cho phép, tất cả trường hợp khác đều từ chối
  • C. Dùng try-catch để bắt exception
  • D. Tăng timeout của hàm IsAccessAllowed()

Câu 33. Nguyên tắc “Complete Mediation” yêu cầu gì?

  • A. Mã hóa tất cả dữ liệu truyền qua mạng
  • B. Mọi yêu cầu truy cập vào mọi đối tượng đều phải được kiểm tra quyền
  • C. Chỉ kiểm tra quyền khi người dùng đăng nhập lần đầu
  • D. Sử dụng nhiều lớp mã hóa

Câu 34. Nguyên tắc “Open Design” phát biểu rằng tính bảo mật không nên phụ thuộc vào điều gì?

  • A. Độ mạnh của mật khẩu
  • B. Việc giữ bí mật thiết kế hay thuật toán
  • C. Số lượng lớp bảo mật
  • D. Phần cứng được sử dụng

Câu 35. “Security through obscurity” vi phạm nguyên tắc nào?

  • A. Least Privilege
  • B. Open Design
  • C. Complete Mediation
  • D. Fail-Safe Defaults

Câu 36. Xác thực hai yếu tố (2FA) là ví dụ minh họa cho nguyên tắc nào?

  • A. Economy of Mechanism
  • B. Open Design
  • C. Separation of Privilege
  • D. Least Privilege

Câu 37. Nguyên tắc “Least Privilege” nghĩa là gì?

  • A. Cấp quyền tối đa để người dùng làm việc hiệu quả
  • B. Mỗi chương trình và người dùng chỉ có đúng những đặc quyền cần thiết để hoàn thành công việc
  • C. Chỉ quản trị viên mới có quyền truy cập hệ thống
  • D. Tất cả người dùng có cùng mức quyền

Câu 38. Tại sao web server không nên chạy với quyền root?

  • A. Quyền root làm chậm web server
  • B. Nếu bị tấn công, kẻ tấn công chỉ có quyền hạn chế, không kiểm soát được toàn bộ hệ thống
  • C. Quyền root không tương thích với web server
  • D. Root không thể truy cập file tĩnh

Câu 39. DoS (Denial of Service) attack thuộc loại tấn công nào theo phân loại Active/Passive?

  • A. Passive attack
  • B. Active attack
  • C. Cả hai
  • D. Không thuộc loại nào

Câu 40. “Masquerade” attack có thể được ngăn chặn hiệu quả nhất bằng cơ chế nào?

  • A. Firewall
  • B. Xác thực mạnh (strong authentication) như 2FA, chứng chỉ số
  • C. Mã hóa dữ liệu
  • D. Antivirus

Câu 41. Một hacker nghe lén lưu lượng HTTPS đã được mã hóa nhưng không đọc được nội dung, thay vào đó phân tích tần suất và thời điểm liên lạc để suy ra thông tin — đây là dạng tấn công nào?

  • A. Interception
  • B. Exposure
  • C. Traffic analysis (Inference)
  • D. Intrusion

Câu 42. Trong phân loại inside/outside attack, nhân viên bất mãn cố tình xóa dữ liệu quan trọng là ví dụ của loại nào?

  • A. Outside attack
  • B. Inside attack (Insider threat)
  • C. Passive attack
  • D. Không thuộc loại nào

Câu 43. Nguyên tắc nào trong Security Design Principles liên quan trực tiếp đến việc ghi audit log để truy vết hành động người dùng?

  • A. Economy of Mechanism
  • B. Fail-Safe Defaults
  • C. Complete Mediation
  • D. Accountability (mục tiêu bảo mật, không phải design principle, nhưng Complete Mediation hỗ trợ nó)

Câu 44. Kẻ tấn công thực hiện tấn công “Obstruction” bằng cách nào?

  • A. Đánh cắp dữ liệu mà không thay đổi hệ thống
  • B. Cản trở, gây khó khăn cho hoạt động cung cấp dịch vụ hệ thống
  • C. Giả mạo danh tính người dùng hợp lệ
  • D. Phủ nhận đã thực hiện giao dịch

Câu 45. Kẻ tấn công giành quyền kiểm soát logic trái phép đối với một server — đây là threat action nào?

  • A. Misuse
  • B. Misappropriation
  • C. Corruption
  • D. Obstruction

Câu 46. Theo nguyên tắc “Open Design”, AES được coi là thuật toán mã hóa an toàn dù thuật toán được công khai vì lý do nào?

  • A. Vì AES sử dụng nhiều vòng mã hóa phức tạp
  • B. Vì tính bảo mật nằm ở độ dài và bí mật của khóa, không phải bí mật thuật toán
  • C. Vì AES được chính phủ Mỹ phê duyệt
  • D. Vì AES không thể bị brute force

Câu 47. Nếu một hệ thống chỉ kiểm tra quyền truy cập file khi mở file lần đầu (không kiểm tra lại các lần sau), nguyên tắc nào bị vi phạm?

  • A. Least Privilege
  • B. Fail-Safe Defaults
  • C. Complete Mediation
  • D. Separation of Privilege

Câu 48. Hệ thống phân quyền trong Linux (owner/group/others với read/write/execute) là ví dụ minh họa cho nguyên tắc nào?

  • A. Open Design
  • B. Economy of Mechanism
  • C. Least Privilege
  • D. Fail-Safe Defaults

Câu 49. Trong bối cảnh “Trusting Trust”, lý do khiến vấn đề không thể giải quyết triệt để là gì?

  • A. Phần cứng luôn an toàn hơn phần mềm
  • B. Luôn tồn tại một lớp thấp hơn mà ta phải tin tưởng mà không thể kiểm chứng hoàn toàn
  • C. Mã nguồn mở thì luôn an toàn hơn mã nguồn đóng
  • D. Backdoor chỉ tồn tại trong phần mềm cũ

Câu 50. Nhóm nghiên cứu phát hiện ra rằng thư viện mã nguồn mở phổ biến chứa backdoor do một contributor độc hại chèn vào — đây là dạng tấn công nào?

  • A. Passive attack
  • B. Inside attack / Supply chain attack
  • C. DoS attack
  • D. Traffic analysis