8/28/2014
HảiV. Phạm Bộ môn HTTT – Viện CNTT&TT (cid:17)H BKHN
@Hai V Pham
2
– Dạng tấn công thụ động rất khó bị phát hiện vì không làm thay đổi dữ liệu. – Với dạng tấn công thụ động, nhấn mạnh vấn đề ngăn chặn hơn là vấn đề phát hiện.
3
1
8/28/2014
công chchchchủ đđđđộngngngng DDDDạngngngng ttttấnnnn công côngcông (cid:1)
Mối đe dọa chủ động
4
(cid:1) Bảo đảm chỉ người dùng có quyền truy xuất
có thể truy cập thôngtin
(cid:1) Thông tin luôn luôn sẵn sàng cho người dùng
truy xuất
(cid:1) Dữ liệu phải luôn chính xác, không bị cập
nhật trái phép
@Hai V Pham
5
◦ Các phần mềm ác tính thường gặp ◦ Các biện pháp ngăn chặn
(cid:1) Phần mềm ác tính
◦ Các lỗi phần mềm thường gặp ◦ Các biện pháp an toàn (cid:1) Kiểm thử (Testing) (cid:1) Kiểm định hình thức (Formal Verification) (cid:1) Lập trình an toàn (Secure Coding)
(cid:1) Lỗi phần mềm
2
8/28/2014
◦ Các phần mềm ác tính thường gặp ◦ Các biện pháp ngăn chặn
(cid:1) Phần mềm ác tính
◦ Các lỗi phần mềm thường gặp ◦ Các biện pháp an toàn (cid:1) Kiểm thử (Testing) (cid:1) Kiểm định hình thức (Formal Verification) (cid:1) Lập trình an toàn (Secure Coding)
(cid:1) Lỗi phần mềm
(cid:1) Chạy theo chủ định của người lập trình ra nó (cid:1) Chạy và phản ứng theo cách bất thường,
không trông đợi từ phía người dùng
(cid:1) Ẩn náu trong hệ thống, hoặc gắn vào các
phần mềm không ác tính
(cid:1) Có thể làm được mọi thứ mà một phần mềm
có thể làm
(cid:1) Vi rut (Virus)
◦ Gắn vào một chương trình, phát tán bản sao ra khác chương trình
khác (cid:1) Trojan horse
◦ Có các tính năng bất thường
(cid:1) Bom logic (Logic bomb)
◦ Phát động khi điều kiện được thỏa mãn
(cid:1) Bom thời gian (Time bomb)
◦ Phát động khi đến hạn thời gian
(cid:1) Trapdoor
◦ Cho phép truy nhập trái phép các tính năng
(cid:1) Sâu (Worm)
◦ Phát tán bản sao qua mạng
(cid:1) Thỏ (Rabbit)
◦ Nhân bản đến khi không còn tài nguyên
3
8/28/2014
◦ Virus chạy cùng với một chương trình khác chạy bởi
người dùng
◦ Virus chạy khi mở tệp đính kèm trong e-mails, tệp
ảnh, tệp đồ họa
(cid:1) Virus chỉ gây hại khi được kích hoạt
◦ Nối mã virus với mã chương trình ◦ Mã virus bao quanh mã chương trình ◦ Mã virus tích hợp vào mã chương trình
(cid:1) Mã virus đính vào mã chương trình
◦ Tài liệu chứa cả dữ liệu và các lệnh
(cid:1) Virus tài liệu
(cid:1) Vùng Boot (Boot Sector) (cid:1) Bộ nhớ (Memory-Resident) (cid:1) Ứng dụng (Application Program) (cid:1) Thư viện (Library) (cid:1) …
4
8/28/2014
◦ Có thể nhận biết các đoạn mã của từng loại virus
(cid:1) Mã virus có kiểu mẫu đặc biệt
◦ Chương trình đính kèm sẽ lớn hơn chương trình
ban đầu
(cid:1) Mã đính kèm không thay đổi
(cid:1) Sử dụng phần mềm thương mại từ nguồn tin
(cid:1) Vị trí đính kèm không thay đổi
cậy
(cid:1) Kiểm thử phần mềm trên một máy tính/hệ
thống tách biệt
(cid:1) Mở tệp đính kèm chỉ khi nào biết rõ nguồn gốc (cid:1) Lưu ở nơi an toàn một phiên bản có thể tái tạo
của hệ thống đang sử dụng
(cid:1) Sử dụng phần mềm quét diệt virus
(cid:1) Virus chỉ lây nhiễm trên các hệ thống MS
Windows
(cid:1) Virus không thể thay đổi các file “hidden” hoặc
“read-only”
(cid:1) Virus chỉ xuất hiện trong tệp dữ liệu, chương
trình
(cid:1) Virus chỉ phát tán thông qua qua đĩa, e-mail (cid:1) Virus không thể tồn tại trong bộ nhớ sau khi
reboot power off/on
(cid:1) Virus lây nhiễm trên phần cứng
5
8/28/2014
◦ Các phần mềm ác tính thường gặp ◦ Các biện pháp ngăn chặn
(cid:1) Phần mềm ác tính
◦ Các lỗi phần mềm thường gặp ◦ Các biện pháp an toàn (cid:1) Kiểm thử (Testing) (cid:1) Kiểm định hình thức (Formal Verification) (cid:1) Lập trình an toàn (Secure Coding)
(cid:1) Lỗi phần mềm
◦ Các phần mềm ác tính thường gặp ◦ Các biện pháp ngăn chặn
(cid:1) Phần mềm ác tính
◦ Các lỗi phần mềm thường gặp ◦ Các biện pháp an toàn (cid:1) Kiểm thử (Testing) (cid:1) Kiểm định hình thức (Formal Verification) (cid:1) Lập trình an toàn (Secure Coding)
(cid:1) Lỗi phần mềm
◦ không cố ý ◦ không ác tính ◦ nhưng đôi khi gây hậu quả nghiêm trọng
(cid:1) Lập trình viên thường mắc lỗi
6
8/28/2014
◦ Array Index Out of Bound
(cid:1) Tràn bộ đệm (Buffer Overflow)
◦ Format String ◦ Implicit Cast, Integer Overflow (cid:1) (cid:17)ồng bộ (Synchronization)
◦ File stat()/open()
(cid:1) Không đầy đủ (Incomplete Mediation)
◦ Các phần mềm ác tính thường gặp ◦ Các biện pháp ngăn chặn
(cid:1) Phần mềm ác tính
◦ Các lỗi phần mềm thường gặp ◦ Các biện pháp an toàn (cid:1) Kiểm thử (Testing) (cid:1) Kiểm định hình thức (Formal Verification) (cid:1) Lập trình an toàn (Secure Coding)
(cid:1) Lỗi phần mềm
◦ Các phần mềm ác tính thường gặp ◦ Các biện pháp ngăn chặn
(cid:1) Phần mềm ác tính
◦ Các lỗi phần mềm thường gặp ◦ Các biện pháp an toàn (cid:1) Kiểm thử (Testing) (cid:1) Kiểm định hình thức (Formal Verification) (cid:1) Lập trình an toàn (Secure Coding)
(cid:1) Lỗi phần mềm
7
8/28/2014
(cid:1) Mục đích của kiểm thử là tìm ra lỗi của hệ
thống ◦ Nếu không tìm ra lỗi, chúng ta hi vọng rằng hệ
thống là an toàn
1. (cid:17)ơn vị (Unit Testing) 2. Tích hợp (Integration Testing) 3. Chức năng (Function Testing) 4. Hiệu năng (Performance Testing) 5. Công nhận (Acceptance Testing) 6. Cài đặt (Installation Testing)
◦ Nếu hệ thống có thay đổi, chỉnh sửa
(cid:1) Hồi quy (Regression Testing)
◦ Các trường hợp đặc biệt, dễ bị khai thác và tấn
công
(cid:1) Xoắn (Fuzz Testing)
8
8/28/2014
(cid:1) Hộp đen (Black-box)
◦ Không có thông tin về cấu trúc bên trong của phần
mềm
◦ Dùng cho tất cả các mức của quy trình kiểm thử
(cid:1) Hộp trắng (White-box)
◦ Biết cấu trúc bên trong của phần mềm ◦ Thường dùng cho kiểm thử đơn vị
(cid:1) Hộp xám (Grey-box)
◦ Hỗn hợp
(cid:1) (cid:17)en: kiểm thử (cid:1) Trắng: thiết kế ca kiểm thử
◦ Các phần mềm ác tính thường gặp ◦ Các biện pháp ngăn chặn
(cid:1) Phần mềm ác tính
◦ Các lỗi phần mềm thường gặp ◦ Các biện pháp an toàn (cid:1) Kiểm thử (Testing) (cid:1) Kiểm định hình thức (Formal Verification) (cid:1) Lập trình an toàn (Secure Coding)
(cid:1) Lỗi phần mềm
(cid:1) Mục đích của kiểm định hình thức là chứng
minh hệ thống an toàn
9
8/28/2014
(cid:1) Kiểm định mô hình (Model checking) ◦ Phần mềm được đặc tả bằng một mô hình ◦ Quá trình kiểm định thực hiện bằng cách duyệt tất cả
các trạng thái thông qua tất cả các chuyển tiếp
(cid:1) Suy diễn logic (Logical Inference)
◦ (cid:17)ầu vào của phần mềm bị ràng buộc bằng một biểu
thức logic
◦ Tương tự với đầu ra ◦ Bản thân phần mềm cũng bị ràng buộc bằng một biểu
thức logic
Chương trình
(cid:17)ầu vào
(cid:17)ầu ra
Chương trình + (cid:17)iều kiện
(cid:17)ầu vào + (cid:17)iều kiện trước
(cid:17)ầu ra +(cid:17)iều kiện sau
◦ Các phần mềm ác tính thường gặp ◦ Các biện pháp ngăn chặn
(cid:1) Phần mềm ác tính
◦ Các lỗi phần mềm thường gặp ◦ Các biện pháp an toàn (cid:1) Kiểm thử (Testing) (cid:1) Kiểm định hình thức (Formal Verification) (cid:1) Lập trình an toàn (Secure Coding)
(cid:1) Lỗi phần mềm
10
8/28/2014
◦ Mô đun (Modularity) ◦ (cid:17)óng gói (Encapsulation) ◦ Giấu thông tin (Information Hiding)
(cid:1) Nguyên tắc
(cid:1) Thiết kế các hợp phần ◦ Một mục tiêu/nhiệm vụ ◦ Nhỏ ◦ (cid:17)ơn giản ◦ (cid:17)ộc lập
(cid:1) Giấu thông tin về cách thức cài đặt các hợp
phần ◦ Ví dụ: lớp ảo C++, giao diện Java
◦ Ví dụ: các thư viện
(cid:1) Giảm thiểu chia xẻ giữa các hợp phần
(cid:1) Các hợp phần tương tác thông qua các giao
diện ◦ Ví dụ: tương tác giữa các đối tượng thông qua các
phương thức
11
8/28/2014
(cid:1) Một hợp phần như một hộp đen nhìn từ phía
ngoài ◦ Ví dụ: một lớp C++, Java
(cid:1) Các phần tử bên ngoài không thể thay đổi
sữa chữa thông tin một cách ác ý và trái phép ◦ Ví dụ: các thuộc tính private, protected
(cid:1) Kiểm tra dữ liệu đầu vào/đầu ra (cid:1) Sử dụng đặc quyền thấp nhất có thể
◦ Thiết kế theo chính sách an toàn ◦ Sử dụng các công cụ đảm bảo chất lượng
(cid:1) Kiểm thử (cid:1) Kiểm định (cid:1) Duyệt lại mã
(cid:1) Một số quy tắc thực hành ◦ Sử dụng một chuẩn lập trình ◦ Lập trình phòng thủ
(cid:1) Hãy thiết kế mô hình tổng quát bảo mật hệ thống thông tin / phần mềm của một doanh nghiệp hay tổ chức có cơ sở hạ tầng CNTT mạng LAN kết nối trực tuyến với Internet: (cid:1) 1) Mô hình bảo mật hệ thống thông tin /
phần mềm
(cid:1) 2) Các kỹ thuật và công cụ phần mềm để bảo
mật hệ thống / phần mềm
36