An toàn phần mềm Lỗi phần mềm

34 4 0
An toàn phần mềm Lỗi phần mềm

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Slide 1 An toàn phần mềm Lỗi phần mềm Giáo viên hướng dẫn TS Trần Đức Khánh Học viên thực hiện 1 Trương Thảo Nguyên 2 Vũ Đình Phú 3 Nguyễn Hồng Tâm 4 Đỗ Ngọc Phục 5 Lê Gia Vĩnh Tài liệu tham khảo Bài giảng An toàn phần mềm – lỗi phần mềm TS Trần Đức Khánh, Đại học Bách Khoa Hà Nội 2 Security in Computing, Fourth Edition Charles P Pfleeger, Shari Lawrence Pfleeger Đồ án “Lỗi tràn bộ đệm trên Windows” Lương Khánh Hoàng, lớp Tin5 – K48 Bách Khoa Hà Nội 4 Websites wikipedia, security focus, teac.

An toàn phần mềm Lỗi phần mềm Giáo viên hướng dẫn: TS Trần Đức Khánh Học viên thực : Trương Thảo Nguyên Vũ Đình Phú Nguyễn Hồng Tâm Đỗ Ngọc Phục Lê Gia Vĩnh Tài liệu tham khảo Bài giảng An toàn phần mềm – lỗi phần mềm TS Trần Đức Khánh, Đại học Bách Khoa Hà Nội Security in Computing, Fourth Edition Charles P Pfleeger, Shari Lawrence Pfleeger Đồ án “Lỗi tràn đệm Windows” Lương Khánh Hoàng, lớp Tin5 – K48 Bách Khoa Hà Nội Websites wikipedia, security focus, teach target, etc 07/27/22 An toàn phần mềm Nội dung 07/27/22 Tổng quan an toàn phần mềm Một số lỗi phần mềm thường gặp Các biện pháp an toàn Tổng kết An toàn phần mềm Tổng quan an toàn phần mềm Bí mật (Confidentiability): tài sản truy nhập người có quyền Tồn vẹn (Intergrity): tài sản tạo/xóa/sửa đổi người có quyền Sẵn dùng (Availability): tài sản sẵn sàng để đáp ứng sử dụng cho người có quyền 07/27/22 Tổng quan an toàn phần mềm Tổng quan an tồn phần mềm Lỗi phần mềm Có lỗi phần mềm thơng thường  Có lỗi an toàn phần mềm ( kẻ xấu lợi dụng để vi phạm tính Bí mật – Tồn vẹn – Sẵn dùng) Code injection 07/27/22 Ping of death Tổng quan an toàn phần mềm WebDav Tổng quan an toàn phần mềm Lỗi tràn đệm ( buffer over flow) Lỗi không đầy đủ ( Incomplete mediation) Lỗi đồng (Synchronization) 07/27/22 Một số lỗi an toàn thường gặp Nội dung 07/27/22 Tổng quan an toàn phần mềm Một số lỗi phần mềm thường gặp Các biện pháp an toàn Tổng kết An toàn phần mềm 2.1 Lỗi tràn đệm  Hàm gets đọc nội dung từ stdin ghi vào buf  Nếu đầu vào lớn 80 byte, hàm gets ghi đè lên nhớ vượt nhớ buf  Đây lỗi phần mềm – lỗi tràn đệm 07/27/22 Một số lỗi phần mềm thường gặp 2.1 Lỗi tràn đệm  Lỗi tràn đệm (Buffer over flow)  Chèn mã lệnh thực mã lệnh  Phạm vi ảnh hưởng lớn (phụ thuộc vào quyền người dùng đăng nhập vào hệ thống mã thực thi xấu) Sep 05 2008: Google Chrome 0.2.149.27 'SaveAs' Function Buffer Overflow Vulnerability Discoverer: Le Duc Anh - SVRT – Bkis Description : The vulnerability is caused due to a boundary error when handling the "SaveAs" function On saving a malicious page with an overly long title ( tag in HTML), the program causes a stack-based overflow and makes it possible for attackers to execute arbitrary code on users' systems Nguồn: http://www.securityfocus.com/archive/1/496042 07/27/22 Một số lỗi phần mềm thường gặp 2.1 Lỗi tràn đệm 0x00…0 fn( param1,param2) đuợc gọi Stack Buffer 0x0012D000 Lưu lại SP Nội dung file exe Heap Kernel 0xFF…F 07/27/22 IP RET: Địa trả (IP) Stack frame hàm gọi fn(…) fn1(…) Nội dung hàm fn Một số lỗi phần mềm thường gặp 10 3.1 Kiểm thử Lập kết hoạch kiểm thử thực Phân tích động Kiểm thử đơn vị, Kiểm thử tích hợp, Kiểm thử chức năng, Kiểm thử hiệu năng, Kiểm thử chấp nhận, Kiểm thử cài đặt… Kiểm Kiểmthử thử an antồn tồnphần phần mềm mềm Phân tích tĩnh Dùng tool: Kiểm tra chạy chương trình Dùng check list ( best practice) Quét mã nguồn (Code scanning), Phân tích tĩnh (static analysis – code inspect) Tổng hợp từ Security Testing Services 07/27/22 Các biện pháp an tồn 20 3.2 Kiểm định hình thức Formal verification Mục đích: Nhằm chứng minh hệ thống đáp ứng yêu cầu an toàn  Việc chứng minh thường thơng qua:  Mơ hình hóa hệ thống mơ hình tốn học  Chứng minh dựa mơ hình tốn học Kiểm định mơ hình (Model checking) 07/27/22 Suy diễn logic (Logical inference) Các biện pháp an toàn 21 3.2 Kiểm định hình thức Kiểm định mơ hình Đặc tả phần mềm mộ hình tập trạng thái hữu hạn  Giữa trạng thái có chuyển tiếp (transition)  Kiểm định: Duyệt qua tất trạng thái thông qua tất chuyển tiếp Trong q trình xác định u cầu có thỏa mãn hay khơng 07/27/22 22 3.2 Kiểm định hình thức Suy diễn logic  Đặc tả phần mềm tập biểu thức logic: Đầu vào, đầu phần mềm, chức bị ràng buộc biểu thức logic Phần mềm bị ràng buộc biểu thức logic  Dựa suy diễn logic để xác định yêu cầu có thỏa mãn hay khơng 07/27/22 Các biện pháp an tồn 23 3.2 Kiểm định hình thức Suy diễn logic Giả sử chương trình P biến đổi P để chuyển đầu vào x thành đầu y; x y hoàn toàn xác định trước Như vậy, chương trình P gọi thực xác mục tiêu người thiết kế đặt Gọi: + Giả thiết {A} mệnh đề phát biểu để thể tính chất đầu vào, gọi tắt mệnh đề liệu vào + Kết luận {B} mệnh đề phát biểu để tính chất cần có liệu ra, gọi tắt mệnh đề liệu Do P có tính hữu hạn nên biểu diễn P dãy liên tiếp cấu trúc điều khiển P1, P2, ,Pn Dẫn đến: 07/27/22 Các biện pháp an toàn 24 3.2 Kiểm định hình thức Suy diễn logic P1 biến đổi {A} thành {A1} P2 biến đổi {A1} thành {A2} Pn biến đổi {An-1} thành {An} Và dựa vào quy tắc toán học, {An} suy {B} ta nói P với vào {A} {B} Lúc ký hiệu {A}P{B} Nói cách khác, để chứng minh P đúng, ta chứng minh theo sơ đồ sau: {A} P1 {A1} {A1} P2 {A2} … {An-1}Pn{An} {An}=>{B} 07/27/22 An toàn phần mềm 25 3.2 Kiểm định hình thức Suy diễn logic Ví dụ 1: Cho mệnh đề liệu vào {A: x,y∈R; 02} {A1}P2{A2: x,y∈R; x>2} {A2}P3{A3: x,y∈R; x>4} {A3}P4{A4: x,y∈R; x>y+4} Vậy ta có kết luận {A}P{B} hay nói cách khác P với liệu vào {A} liệu {B} 07/27/22 An toàn phần mềm 26 3.2 Kiểm định hình thức Suy diễn logic Hệ tiên đề Hoare: Tiên đề 1: Tiên đề Nếu mệnh đề {A} sau chịu tác động khối cấu trúc điều khiển P ta {B} mệnh đề {B} sau chịu tác động cấu trúc điều khiển Q ta {C} {A} chịu tác động P,Q thu {C} Hay nói cách khác, tiên đề dãy thao tác: Nếu {A} P {B} {B} Q {C} {A} P,Q {C} Tiên đề 2: tính chất phép gán Điều kiện để có mệnh đề {B} sau thực lệnh gán x: = E (với E biểu thức) từ mệnh đề {A} trước ta phải có {A} suy dẫn {B[x|E]} Mệnh đề {B[x|E]} mệnh đề thu từ {B} phép thay xuất x {B} E Tức là: {A} x: = E {B} {A}=>{B[x| E]} => Kỹ thuật lần ngược tiên đề gán 07/27/22 An toàn phần mềm 27 3.2 Kiểm định hình thức Suy diễn logic Hệ tiên đề Hoare: Tiên đề3: Rẽ nhánh Với mệnh đề liệu vào {A}, mệnh đề liệu {B}, biểu thức logic E, đoạn trình P Nếu ta có {A, E}P{B} ta nói mệnh đề {A} {B} tuân theo cấu trúc rẽ nhánh dạng khuyết với cấu trúc P điều kiện lựa chọn E; tức là: {A} if E then P; {B} Với mệnh đề liệu vào {A}, mệnh đề liệu {B}, biểu thức logic E, đoạn trình P, Q Nếu ta có {A, E}P{B} {A,! E}Q{B} ta nói mệnh đề {A} {B} tuân theo cấu trúc rẽ nhánh dạng đủ với cấu trúc P, Q điều kiện lựa chọn E; tức là: {A} if E then P else Q; {B} 07/27/22 An toàn phần mềm 28 3.2 Kiểm định hình thức Suy diễn logic Hệ tiên đề Hoare: Tiên đề 4: Tính bất biến chương trình Cho mệnh đề liệu vào {A} đoạn trình P Nếu ta có {A}P{A} ta nói tính chất liệu mệnh đề {A} không thay đổi chịu tác động đoạn trình P lúc người ta nói mệnh đề {A} bất biến P, tức ta có: {A}P{A} Tiên đề 5: Tiên đề lặp Cho mệnh đề liệu vào {A}, biểu thức logic E đoạn trình P Nếu mệnh đề {A} tuân theo cấu trúc lặp P với điều kiện lặp E mệnh đề {A} bất biến P điều kiện E, tức {A,E}P{A}, kết thúc vòng lặp ta có mệnh đề {A,!E} Lúc ta viết: {A} while E P; {A,!E} 07/27/22 An toàn phần mềm 29 3.3 Lập trình an tồn Áp dụng ngun tắc lập trình:  Module hóa: Chia thành thành phần nhỏ, đơn giản Mỗi thành phần làm nhiệm vụ  Tính đóng gói OOP:  Nhằm che dấu thông tin cách cài đặt  Tương tác thơng qua interface 07/27/22 Các biện pháp an tồn 30 3.3 Lập trình an tồn Áp dụng số quy tắc lập trình an tồn như:  Lập trình theo chuẩn (từ chuẩn đặt tên đến chuẩn phân bố code)  Luôn kiểm tra giá trị đầu vào / đầu  Sử dụng quyền thấp nhất, vừa đủ để thực thao tác  Có chiến lược kiểm tra an toàn phần mềm:  Xây dựng kế hoạch từ khởi đầu dự án phần mềm  Kiểm thử an toàn  Duyệt lại mã code 07/27/22 Các biện pháp an toàn 31 Nội dung 07/27/22 Tổng quan an toàn phần mềm Một số lỗi phần mềm thường gặp Các biện pháp an toàn Tổng kết An toàn phần mềm 32 Tổng kết    Lỗi tràn đệm (buffer over flow) Không đầy đủ (Incomplete mediation) Lỗi đồng (Synchronization)    Kiểm thử kĩ lưỡng Kiểm định hình thức Lập trình an tồn 07/27/22 4.Tổng kết 33 Cảm ơn lắng nghe ... etc 07/27/22 An toàn phần mềm Nội dung 07/27/22 Tổng quan an toàn phần mềm Một số lỗi phần mềm thường gặp Các biện pháp an toàn Tổng kết An toàn phần mềm Tổng quan an toàn phần mềm Bí mật (Confidentiability):... dụng cho người có quyền 07/27/22 Tổng quan an toàn phần mềm Tổng quan an tồn phần mềm Lỗi phần mềm Có lỗi phần mềm thơng thường  Có lỗi an toàn phần mềm ( kẻ xấu lợi dụng để vi phạm tính Bí... 07/27/22 Một số lỗi phần mềm thường gặp 17 Nội dung 07/27/22 Tổng quan an toàn phần mềm Một số lỗi phần mềm thường gặp Các biện pháp an toàn Tổng kết An toàn phần mềm 18 Các biện pháp an tồn Có nhiều

Ngày đăng: 22/07/2022, 10:09

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan