Đề cương ôn tập môn Cơ sở an toàn thông tin - Học Viện Kỹ Thuật Mật Mã
Internet là mạng lớn kết nối các mạng nhỏ trên toàn cầu với nhau. Nhà cung cấp dịch vụ Internet (ISP – Internet Service Provider), Cung cấp đường kết nối riêng để truy cập Internet, Công nghệ kết nối: Đường cáp (đồng, quang), Kết nối qua mạng không dây cellular 3G, 4G. Tài liệu giúp bạn tham khảo và đạt kết quả tốt. Mời bạn đọc đón xem!
Preview text:
Đề cương ôn thi _ Công nghệ web và An toàn Chương I Internet & Web
Internet là mạng lớn kết nối các mạng nhỏ trên toàn cầu với nhau.
Nhà cung cấp dịch vụ Internet (ISP – Internet Service Provider)
▪ Cung cấp đường kết nối riêng để truy cập Internet ▪ Công nghệ kết nối:
• Đường cáp (đồng, quang)
• Kết nối qua mạng không dây cellular 3G, 4G ▪ VNPT, Viettel, FPT, . .
Trình duyệt (Browsers): là chương trình dùng để truy cập tài nguyên Web
▪ Microsoft Internet Explorer, Microsoft Edge ▪ Mozilla FireFox ▪ Google Chrome ▪ Apple Safari
Vị trí hay địa chỉ tài nguyên Web được gọi là URL (Uniform Resource Locator) URL có hai phần:
▪ Giao thức được sử dụng để kết nối với tài nguyên
▪ Tên miền: địa chỉ riêng nơi đặt tài nguyên
▪ Ví dụ: http://hust.edu.vn
• http - HyperText Transfer Protocol - giao thức truyền thông
• hust.edu.vn : tên miền (domain name)
▪ Sau tên miền có thể có thêm đường dẫn:
• http://www.apple.com/iphone-7/ DNS: Domain Name System
Hệ thống thiết lập tương ứng giữa tên miền và địa chỉ IP (Internet Protocol) dạng sốqy
Trang Web (Web page): Trang thông tin được hiển thị bởi trình duyệt: văn bản, hình ảnh, âm thanh
▪ Trang Web được tạo bởi các lệnh của Ngôn ngữ đánh dấu siêu văn bản HTML (HyperText Markup Language).
▪ Trang Web cho phép siêu liên kết (hyperlink) đến các trang Web khác.
WebSite: là nhóm các trang Web liên quan với nhau.
▪ Home page (trang nhất): là trang đầu tiên của WebSite.
▪ Máy tính chứa WebSites gọi là Web Servers
Chương trình và lập trình
Chương trình (Program) là dãy các lệnh mà máy tính thực hiện theo để hoàn thành nhiệm vụ xử
lý dữ liệu thành thông tin.
Lập trình (Programming) hay phát triển phần mềm là thủ tục gồm các bước để tạo ra chương trình.
Các bước lập trình gồm:
Bước 1: Đặc tả chương trình (Program Specification)
▪ Xác định các mục tiêu của chương trình (các vấn đề cần giải quyết)
▪ Xác định các đầu ra muốn có
▪ Xác định các dữ liệu đầu vào cần có
▪ Xác định các yêu cầu xử lý
▪ Lập tư liệu đặc tả chương trình
Bước 2: Thiết kế chương trình (Program design)
▪ Lập kế hoạch giải vấn đề/bài toán sử dụng kỹ thuật lập trình cấu trúc
▪ Viết tài liệu thiết kế
Bước 3: Viết mã chương trình (Program code)
▪ Chọn ngôn ngữ lập trình thích ứng
▪ Viết mã chương trình theo cú pháp
Bước 4: Kiểm thử chương trình (Program test)
▪ Chạy thử và phát hiện lỗi: ▪ lỗi cú pháp ▪ lỗi logic
▪ Chạy chương trình và gỡ rối (alpha testing)
▪ Chạy chương trình với dữ liệu thực (beta testing)
Bước 5: Lập tư liệu chương trình (Program documentation)
▪ Viết tư liệu cho người sử dụng
▪ Viết tư liệu cho người vận hành
▪ Viết tư liệu cho người lập trình
Bước 6: Bảo trì chương trình (Program maintenance)
▪ Đảm bảo để chương trình chạy chính xác, năng suất và hiệu quả.
▪ Hai tiêu chuẩn bảo trì chương trình:
▪ Xác định và hiệu chỉnh các lỗi, làm cho chương trình dễ sử dụng và chuẩn hoá mã chương trình.
▪ Có những thay đổi cần thiết theo thời gian. Ngôn ngữ lập trình
Các thế hệ ngôn ngữ lập trình:
▪ Ngôn ngữ máy (Machine languages)
▪ Hợp ngữ (Assembly languages)
▪ Ngôn ngữ thủ tục bậc cao (High-level procedural languages)
▪ Ngôn ngữ hướng nhiệm vụ (Task-oriented languages)
▪ Ngôn ngữ vấn đề và ràng buộc (Problem and constraint languages)
CƠ SỞ DỮ LIỆU VÀ HỆ THỐNG THÔNG TIN
Dữ liệu (data) bao gồm các yếu tố hay các quan sát về con người, địa điểm, vạn vật và các sự kiện. Các kiểu dữ liệu: ▪ Số ▪ Ký tự ▪ Âm thanh ▪ Âm nhạc ▪ Hình ảnh ▪ Video
CSDL là tập các bảng dữ liệu có quan hệ logic được tích hợp với nhau
CSDL cần có các đặc điểm sau:
▪ Chia sẻ thông tin: thông tin từ bộ phận này có thể sẵn sàng được chia sẻ với bộ phận khác.
▪ An toàn: người dùng chỉ có thể truy cập được thông tin cần thiết cho họ.
▪ Ít dư thừa dữ liệu (less data redundancy): Nếu không có CSDL chung, khi đó các
bộ phận riêng lẻ cần phải tạo ra và duy trì dữ liệu của mình và dẫn đến dư thừa dữ liệu.
▪ Tính toàn vẹn dữ liệu (data integrity): khi có nhiều nguồn dữ liệu, thông tin trong
các nguồn có thể khác nhau.
Khai phá dữ liệu (Data Mining) là quá trình sàng lọc và phân tích lượng lớn dữ liệu để trích xuất
ra các mẫu và các nghĩa ẩn và để phát hiện tri thức mới.
Kho dữ liệu (Data Warehouse) là cơ sở dữ liệu đặc biệt của dữ liệu và siêu dữ liệu (metadata) sạch
Dữ liệu được đưa vào một kho dữ liệu thông qua các bước sau:
▪ Xác định và kết nối với các nguồn dữ liệu
▪ Thực hiện tổng hợp dữ liệu và làm sạch dữ liệu
▪ Nhận được cả dữ liệu và siêu dữ liệu (dữ liệu về dữ liệu)
▪ Chuyển dữ liệu và siêu dữ liệu cho kho dữ liệu Chương II Khái niệm ATTT Bảo mật (bí mât)
• Bảo mật dữ liệu: Đảm bảo rằng thông tin bí mật không bị tiết lộ cho những cá nhân không được phép
• Quyền riêng tư: Đảm bảo rằng cá nhân kiểm soát hoặc ảnh hưởng đến thông tin nào có
thể được thu thập và lưu trữ
• Toàn vẹn dữ liệu: đảm bảo rằng thông tin và chương trình chỉ được thay đổi một cách ủy quyền và duy nhất.
• Tính toàn vẹn của hệ thống: Đảm bảo rằng một hệ thống thực hiện các hoạt động của nó
trong tình trạng nguyên vẹn cách thức Tính sẵn sàng
• Tính khả dụng: đảm bảo rằng hệ thống hoạt động nhanh chóng và dịch vụ không bị từ
chối đối với người dùng được ủy quyền
Nguyên Tắc Thiết Kế ATTT cơ bản
• Tính kinh tế của cơ chế: việc thiết kế các biện pháp an ninh nên đơn giản như
➢ Đơn giản để thực hiện và xác minh ➢ Ít lỗ hổng
• Mặc định không an toàn: các quyết định truy cập phải dựa trên các quyền; tức là không
cấp trước quyền truy cập trước khi được xác minh
• Quy trình hoàn chỉnh: mọi truy cập phải được kiểm tra dựa trên kiểm soát truy cập hệ thống
• Thiết kế mở: thiết kế nên mở hơn là bí mật (ví dụ: ít dùng thuật toán mã hóa) • Cô lập: ➢
Truy cập công cộng nên được cách ly khỏi các tài nguyên quan trọng (không có kết nối
giữa thông tin công khai và quan trọng) ➢
Các tệp người dùng nên được tách biệt với nhau (trừ khi được yêu cầu) ➢
Cơ chế bảo mật nên được cách ly (nghĩa là ngăn chặn truy cập vào các cơ chế đó)
• Che dấu: tương tự khái niệm đối tượng (ẩn cấu trúc bên trong)
• Mô đun hóa: cấu trúc mô-đun tiêu chuẩn
• Phân lớp (phòng thủ theo chiều sâu): sử dụng nhiều phương pháp bảo vệ chồng chéo
• Thân thiện người dùng: một chương trình hoặc giao diện phải luôn phản hồi theo cách
ít có khả năng gây bối rối cho người dùng
• Tách đặc quyền: cần có nhiều đặc quyền để đạt được truy cập (hoặc hoàn thành một nhiệm vụ)
• Ít đặc quyền nhất: mọi người dùng (tiến trình) phải có ít đặc quyền nhất để thực hiện một nhiệm vụ
• Cơ chế ít công bố nhất: một thiết kế nên giảm thiểu chức năng được chia sẻ bởi những
người dùng khác nhau (cung cấp bảo mật lẫn nhau; giảm bế tắc)
• Trách nhiệm các bên: các cơ chế bảo mật không nên can thiệp quá mức vào công việc của
người dùng đảm bảo người dùng có thể hoàn thành trách nhiệm của họ Bề mặt tấn công
Bề mặt tấn công: các lỗ hổng có thể truy cập và khai thác trong hệ thống • Cổng mở
• Các dịch vụ bên ngoài tường lửa
• Một nhân viên có quyền truy cập vào thông tin nhạy cảm Ba loại
• Bề mặt tấn công mạng (nghĩa là lỗ hổng mạng)
• Bề mặt tấn công phần mềm (nghĩa là lỗ hổng phần mềm)
• Bề mặt tấn công của con người (ví dụ: kỹ thuật xã hội)
Phân tích tấn công: đánh giá quy mô và mức độ nghiêm trọng của các mối đe dọa Chương III
Nguyên tắc thiết kế ATTT cho web/webapp
Đặc quyền tối thiểu : chỉ cấp cho mỗi thành phần những đặc quyền mà nó yêu cầu
Mặc định không an toàn : từ chối quyền truy cập nếu không có sự cho phép rõ ràng
Tính kinh tế của cơ chế : áp dụng các cơ chế bảo mật đơn giản
Kiểm soát truy cập: đảm bảo mọi quyền truy cập đều phải được cho phép
• Quyết định xem nên cấp hay từ chối quyền truy cập vào tài nguyên được bảo vệ
• Dựa trên danh tính của người yêu cầu, tài nguyên và liệu người yêu cầu có quyền truy cập hay không • Dựa trên chính sách
Thiết kế : không dựa vào bí mật để bảo mật
Tách đặc quyền : giới thiệu nhiều bên để tránh việc lợi dụng đặc quyền
• Các đồng nghiệp độc lập, với các mục tiêu có thể xung đột nhau, tương tác với nhau và
đưa ra các quyết định tự trị cục bộ
• Sự hiện diện của các đồng nghiệp độc hại trong các ứng dụng phi tập trung mở
• Cần có biện pháp bảo vệ đồng nghiệp trước các cuộc tấn công độc hại
Cơ chế ít phổ biến nhất : giới hạn việc chia sẻ tài nguyên quan trọng chỉ ở một số cơ chế
Khả năng chấp nhận : làm cho các cơ chế bảo mật có thể dễ dàng sử dụng được
Phòng thủ theo chiều sâu : có nhiều lớp biện pháp đối phó
Một số lỗ hổng đặc biệt phổ biến theo OWASP
1. Tập lệnh chéo trang - Cross-Site Scripting (XSS)
2. Giả mạo yêu cầu trên nhiều trang web - Cross-Site Request Forgery (CSRF)
3. Tham chiếu đối tượng trực tiếp không an toàn - Insecure Direct Object Reference 4. Lỗ hổng tiêm
a) Tiêm SQL, Tiêm XPATH, v.v.
5. Xác thực và quản lý phiên bị hỏng - Broken Authentication and Session Management
6. Không hạn chế quyền truy cập URL - Failure to Restrict URL Access
7. Lưu trữ mật mã không an toàn - Insecure Cryptographic Storage Chương IV
Hệ thống cơ sở dữ liệu
Cơ sở dữ liệu là dữ liệu có cấu trúc được lưu trữ để sử dụng bởi một hoặc nhiều ứng dụng
Chứa các mối quan hệ giữa các mục dữ liệu và các nhóm mục dữ liệu
Đôi khi có thể chứa dữ liệu nhạy cảm cần được bảo mật
Ngôn ngữ truy vấn: Cung cấp giao diện thống nhất cho cơ sở dữ liệu
Các cuộc tấn công SQL injection
Một trong những mối đe dọa bảo mật dựa trên mạng phổ biến và nguy hiểm nhất
Gửi các lệnh SQL độc hại đến máy chủ cơ sở dữ liệu
Tùy thuộc vào môi trường, SQL injection cũng có thể được khai thác để:
◦ Sửa đổi hoặc xóa dữ liệu
◦ Thực thi các lệnh hệ điều hành tùy ý
◦ Khởi chạy các cuộc tấn công từ chối dịch vụ (DoS)
Tautology : Hình thức tấn công này đưa mã vào một hoặc nhiều câu lệnh có điều kiện để
chúng luôn đánh giá là đúng
End-of-line comment: Sau khi đưa mã vào một trường cụ thể, mã hợp lệ theo sau sẽ bị vô
hiệu hóa thông qua việc sử dụng các nhận xét cuối dòng.
Piggybacked queries: Kẻ tấn công thêm các truy vấn bổ sung ngoài truy vấn dự định, ủng
hộ cuộc tấn công trên một yêu cầu hợp lệ.
Tấn công suy luận (thu thập thông tin): Truy vấn bất hợp pháp/không chính xác về mặt
logic: cho phép kẻ tấn công thu thập thông tin quan trọng về loại và cấu trúc của cơ sở dữ
liệu phụ trợ của ứng dụng Web
Tấn công ngoài: Điều này có thể được sử dụng khi có những hạn chế trong việc truy xuất
thông tin nhưng kết nối ra bên ngoài từ máy chủ cơ sở dữ liệu lại lỏng lẻo
Các biện pháp đối phó SQLi
Kiểm soát truy cập cơ sở dữ liệu
DBMS cung cấp kiểm soát truy cập cho cơ sở dữ liệu
giả sử đã xác thực người dùng
DBMS cung cấp quyền truy cập cụ thể cho các phần của cơ sở dữ liệu
◦ ví dụ: tạo, chèn, xóa, cập nhật, đọc, ghi
◦ đến toàn bộ cơ sở dữ liệu, bảng, hàng hoặc cột đã chọn
◦ có thể phụ thuộc vào nội dung của một mục bảng
có thể hỗ trợ một loạt các chính sách: ◦ quản lý tập trung
◦ quản lý dựa trên quyền sở hữu ◦ quản lý phi tập trung
Mã hóa phòng thủ: xác thực dữ liệu mạnh hơn phát hiện ◦ Chữ ký dựa trên
◦ dựa trên sự bất thường ◦ phân tích mã
Ngăn chặn thời gian chạy: Kiểm tra các truy vấn trong thời gian chạy để xem liệu chúng có phù
hợp với mô hình truy vấn dự kiến hay không
Phát hiện suy luận khi thiết kế cơ sở dữ liệu
◦ thay đổi cấu trúc cơ sở dữ liệu hoặc kiểm soát truy cập
Phát hiện suy luận tại thời điểm truy vấn
◦ bằng cách giám sát và thay đổi hoặc từ chối truy vấn Điện toán đám mây
Nhiệm vụ của nhà cung cấp
Đối với SaaS: CP triển khai, định cấu hình, bảo trì, cập nhật phần mềm ứng dụng
Đối với PaaS: CP quản lý cơ sở hạ tầng máy tính cho nền tảng (phần mềm trung gian, cơ
sở dữ liệu, HĐH, ngôn ngữ lập trình, công cụ)
Đối với IaaS: CP có được tài nguyên máy tính vật lý: máy chủ, mạng, lưu trữ, …
Rủi ro bảo mật đám mây
Lạm dụng và sử dụng bất chính điện toán đám mây
◦ Tương đối dễ đăng ký dịch vụ
◦ Nhiều dịch vụ đám mây cung cấp bản dùng thử miễn phí
◦ Cho phép hacker xâm nhập vào bên trong để tiến hành tấn công (spam, DoS ,…)
◦ Gánh nặng đối với CP để cung cấp sự bảo vệ biện pháp đối phó
◦ Nghiêm ngặt hơn / hạn chế đăng ký
◦ Tăng cường giám sát thẻ tín dụng
◦ Giám sát toàn diện (lưu lượng truy cập)
Giao diện không an toàn của API
◦ CP hiển thị một bộ API cho ứng dụng của khách hàng
◦ Bảo mật phụ thuộc vào API: phải bảo mật (từ xác thực đến mã hóa) biện pháp đối phó
◦ Phân tích tính bảo mật của API
◦ Đảm bảo xác thực mạnh mẽ và kiểm soát truy cập
◦ Hiểu ghế phụ thuộc giữa các API nội gián ác ý
◦ Tổ chức khách hàng từ bỏ nhiều (hoặc tất cả) CNTT của mình và trao cho CP
◦ Mối quan tâm nghiêm trọng: hoạt động nội gián độc hại
Biện pháp đối phó (bởi khách hàng)
◦ Đánh giá nhà cung cấp toàn diện
◦ Chỉ định các yêu cầu về nguồn nhân lực như một phần của hợp đồng pháp lý ◦ Yêu cầu minh bạch
Mất hoặc rò rỉ dữ liệu
◦ Lưu trữ đám mây có thể là lưu trữ sao lưu duy nhất
◦ Có thể tàn phá đối với nhiều khách hàng nếu dữ liệu bị mất biện pháp đối phó
◦ Triển khai kiểm soát truy cập API mạnh mẽ
◦ Mã hóa và bảo vệ tính toàn vẹn khi chuyển tiếp
◦ Phân tích bảo vệ dữ liệu tại thời điểm thiết kế và chạy
Chiếm đoạt tài khoản hoặc dịch vụ
◦ Thông thường với thông tin đăng nhập bị đánh cắp
◦ Thỏa hiệp tính bảo mật, tính toàn vẹn và tính sẵn sàng biện pháp đối phó
◦ Cấm chia sẻ thông tin đăng nhập giữa những người dùng
◦ Tận dụng xác thực đa nhà máy mạnh mẽ
◦ Sử dụng giám sát chủ động Chương V
■ OWASP ASVS là Tiêu chuẩn bảo mật ứng dụng đầu tiên của các nhà phát triển dành cho các lập trình viên!
■ Xác định ba mức độ rủi ro với hơn 200 cách thức, biện pháp kiểm soát.
v1 Kiến trúc, thiết kế và mô hình hoá mối đe dọa - Thiết kế tích hợp ATTT
v2 Authentication (Xác thực)
v3 Session management (quản lý phiên)
v4 Access Control (kiểm soát truy cập)
v5 Validation, Sanitization and Encoding (xác minh, làm sạch dữ liệu đầu vào)
v6 Cryptography at rest (Mã hóa dữ liệu lưu trữ)
v7 Error handling and logging (Quản lý nhật ký và nhật ký lỗi)
v8 Data protection (bảo mật dữ liệu)
v9 Communications security (an toàn đường truyền)
v10 Malicious Code (an toàn mã nguồn)
v11 Business Logic (Đảm bảo an toàn logic)
v12 Files and Resources (Tệp tin và tài nguyen)
v13 API Security (An toàn API)
v14 Configuration (An toàn Cấu hình) Làm sao sử dụng ASVS
Tránh làm những việc dưới đây:
■ Lãnh đạo an ninh gửi tài liệu ASVS tới các nhóm phát triển "Bộ an ninh nói anh phải làm
theo điều này ngay bây giờ. Chúc may mắn!"
■ Tránh yêu cầu các nhà phát triển tham gia vào các mục ASVS trước khi thực hiện chính sách
■ Sử dụng ASVS mà không tùy chỉnh nó cho tổ chức của bạn
■ Thiết lập ASVS như một tiêu chuẩn theo cách mà nó không bao giờ được sử dụng, chưa
từng đọc hoặc chưa từng được xem xét. Mục tiêu
■ Mục tiêu của việc áp dụng ASVS là để các nhà phát triển tích cực sử dụng nó trong công
việc phát triển và kiến trúc của họ mỗi ngày.
■ Làm việc với các nhà phát triển ngay từ đầu trong việc áp dụng ASVS.
■ Hãy để các nhà phát triển dẫn đầu trong phiên bản 1 về những yêu cầu nào sẽ được chấp nhận bởi nhóm.
■ Giống như bất kỳ luật pháp phức tạp nào, chỉ cần đưa nó vào đó và sửa đổi nó theo thời gian sau phiên bản 1.
Document Outline
- Internet & Web
- Chương trình và lập trình
- Ngôn ngữ lập trình
- Chương II
- Khái niệm ATTT
- Nguyên Tắc Thiết Kế ATTT cơ bản
- Bề mặt tấn công
- Chương III
- Nguyên tắc thiết kế ATTT cho web/webapp
- Chương IV
- Các cuộc tấn công SQL injection
- Các biện pháp đối phó SQLi
- Điện toán đám mây
- Chương V
- Làm sao sử dụng ASVS