Đề 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!

Đề cương ôn thi _ Công nghệ web An toàn
Chương I
Internet & Web
Internet 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): 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 URL (Uniform Resource Locator)
URL hai phần:
Giao thức được sử dụng để kết nối với i nguyên
Tên miền: địa chỉ riêng nơi đặt tài nguyên
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 thể 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 đị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 Web Servers
Chương trình lập trình
Chương trình (Program) dãy các lệnh máy tính thực hiện theo để hoàn thành nhiệm vụ xử
dữ liệu thành thông tin.
Lập trình (Programming) hay phát triển phần mềm 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
Xác định các yêu cầu xử
Lập 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 chương trình theo pháp
Bước 4: Kiểm thử chương trình (Program test)
Chạy thử phát hiện lỗi:
lỗi pháp
lỗi logic
Chạy chương trình 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 liệu chương trình (Program documentation)
Viết liệu cho người sử dụng
Viết liệu cho người vận hành
Viế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 c, năng suất hiệu quả.
Hai tiêu chuẩn bảo trì chương trình:
Xác định hiệu chỉnh các lỗi, làm cho chương trình dễ sử dụng chuẩn hoá
chương trình.
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 đề ràng buộc (Problem and constraint languages)
SỞ DỮ LIỆU HỆ THỐNG THÔNG TIN
Dữ liệu (data) bao gồm các yếu tố hay c quan sát về con người, địa điểm, vạn vật các sự
kiện.
Các kiểu dữ liệu:
Số
tự
Âm thanh
Âm nhạc
Hình ảnh
Video
CSDL tập c bảng dữ liệu quan hệ logic được tích hợp với nhau
CSDL cần các đặc điểm sau:
Chia sẻ thông tin: thông tin từ bộ phận này thể sẵn sàng được chia sẻ với b
phận khác.
An toàn: người dùng chỉ thể truy cập được thông tin cần thiết cho họ.
Ít thừa dữ liệu (less data redundancy): Nếu không CSDL chung, khi đó các
bộ phận riêng lẻ cần phải tạo ra duy trì dữ liệu của mình dẫn đến thừa dữ
liệu.
Tính toàn vẹn dữ liệu (data integrity): khi nhiều nguồn dữ liệu, thông tin trong
các nguồn thể khác nhau.
Khai phá dữ liệu (Data Mining) quá trình sàng lọc phân tích lượng lớn dữ liệu để trích xuất
ra các mẫu các nghĩa ẩn để phát hiện tri thức mới.
Kho dữ liệu (Data Warehouse) sở dữ liệu đặc biệt của dữ liệu 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 kết nối với các nguồn dữ liệu
Thực hiện tổng hợp dữ liệu làm sạch dữ liệu
Nhận được cả dữ liệu siêu dữ liệu (dữ liệu về dữ liệu)
Chuyển dữ liệu 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 mật không bị tiết lộ cho những nhân
không được phép
Quyền riêng tư: Đảm bảo rằng nhân kiểm soát hoặc ảnh hưởng đến thông tin nào
thể được thu thập lưu tr
Toàn vẹn dữ liệu: đảm bảo rằng thông tin chương trình chỉ được thay đổi một cách ủy
quyền 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
trong nh trạng nguyên vẹn cách thức
Tính sẵn ng
Tính khả dụng: đảm bảo rằng hệ thống hoạt động nhanh chóng 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 bản
Tính kinh tế của chế: việc thiết kế c biện pháp an ninh nên đơn giản như
Đơn giản để thực hiện 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 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 mật (ví dụ: ít dùng thuật toán a)
lập:
Truy cập công cộng n được cách ly khỏi các tài nguyên quan trọng (không kết nối
giữa thông tin công khai 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)
chế bảo mật nên được cách ly (nghĩa ngăn chặn truy cập vào các chế đó)
Che dấu: tương tự khái niệm đối tượng (ẩn cấu trúc bên trong)
đun hóa: cấu trúc mô-đun tiêu chun
Phân lớp (phòng thủ theo chiều 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 khả năng gây bối rối cho người dùng
Tách đặc quyền: cần 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 ít đặc quyền nhất để thực hiện một
nhiệm vụ
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 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 thể hoàn thành trách nhiệm của họ
Bề mặt tấn ng
Bề mặt tấn công: các lỗ hổng thể truy cập 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 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ỗ hổng mạng)
Bề mặt tấn công phần mềm (nghĩa lỗ hổng phần mềm)
Bề mặt tấn công của con người (ví dụ: kỹ thuật hội)
Phân tích tấn công: đánh giá quy 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 yêu cầu
Mặc định không an toàn : từ chối quyền truy cập nếu không sự cho phép ràng
Tính kinh tế của chế : áp dụng các chế bảo mật đơn gin
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 liệu người yêu cầu quyền truy
cập hay không
Dựa trên chính ch
Thiết kế : không dựa vào 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 thể xung đột nhau, tương tác với nhau
đưa ra các quyết định tự trị cục bộ
Sự hiện diện của c đồng nghiệp độc hại trong các ứng dụng phi tập trung mở
Cần biện pháp bảo vệ đồng nghiệp trước các cuộc tấn công độc hại
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 chế bảo mật thể dễ ng sử dụng được
Phòng thủ theo chiều sâu : 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 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 quản 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 không an toàn - Insecure Cryptographic Storage
Chương IV
Hệ thống sở d liệu
sở dữ liệu dữ liệu 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 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 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 nguy hiểm nhất
Gửi các lệnh SQL độc hại đến máy chủ s dữ liệu
Tùy thuộc vào môi trường, SQL injection cũng 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 vào một hoặc nhiều câu lệnh điều kiện để
chúng luôn đánh giá đúng
End-of-line comment: Sau khi đưa vào một trường cụ thể, hợp lệ theo sau sẽ bị
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 cấu trúc của sở dữ
liệu phụ trợ của ứng dụng Web
Tấn công ngoài: Điều này 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 n ngoài từ máy chủ 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 sở dữ liu
DBMS cung cấp kiểm soát truy cập cho 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 sở dữ liệu
dụ: tạo, chèn, xóa, cập nhật, đọc, ghi
đến toàn bộ sở dữ liệu, bảng, hàng hoặc cột đã chọn
thể phụ thuộc vào nội dung của một mục bảng
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
hóa phòng thủ: xác thực dữ liệu mạnh hơn
phát hiện
Chữ 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 phù
hợp với hình truy vấn dự kiến hay không
Phát hiện suy luận khi thiết kế sở dữ liệu
thay đổi cấu trú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 thay đổi hoặc từ chối truy vấn
Điện toán đá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 sở hạ tầng máy tính cho nền tảng (phần mềm trung gian,
sở dữ liệu, HĐH, ngôn ngữ lập trình, công cụ)
Đối với IaaS: CP được tài nguyên máy tính vật lý: y chủ, mạng, lưu trữ,
Rủi ro bảo mật đám y
Lạm dụng sử dụng bất chính điện toán đám mây
Tương đối dễ đăng 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 ng
Bảo mật phụ thuộc vào API: phải bảo mật (từ xác thực đến 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ẽ 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 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
Yêu cầu minh bạch
Mất hoặc rỉ dữ liệu
Lưu trữ đám mây thể lưu trữ sao lưu duy nhất
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ẽ
hóa 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ế 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 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 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ế 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 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 nhật nhật 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 nguồn)
v11 Business Logic (Đảm bảo an toàn logic)
v12 Files and Resources (Tệp tin 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
ch
Sử dụng ASVS không tùy chỉnh cho tổ chức của bạn
Thiết lập ASVS như một tiêu chuẩn theo cách 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 để các nhà phát triển tích cực sử dụng trong công
việc phát triển 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 o đó sửa đổi theo thời
gian sau phiên bản 1.
| 1/12

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