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

12