1. Trang chủ
  2. » Công Nghệ Thông Tin

Secure programming - lập trình an toàn

97 431 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 97
Dung lượng 824,26 KB

Nội dung

Lương Ánh Hoàng hoangla@soict.hut.edu.vn LẬP TRÌNH AN TOÀN Secure Programming • Cung cấp các kiến thức, kỹ thuật cơ bản để xây dựng các ứng dụng an toàn. Mục đích 2 • Yêu cầu về kiến thức: – An ninh mạng – Ngôn ngữ lập trình C/C++. • Lên lớp đầy đủ Yêu cầu 3 • Thời lượng: 45 tiết – Lý thuyết: 30 tiết – Bài tập:15 tiết Thời lượng môn học 4 • Secure Program Cookbook for C and C++, Matt Messier, John Viega, O'Reilly 2003. Tài liệu 5 • Chương 1. Kiểm tra đầu vào • Chương 2. Kiểm soát truy nhập • Chương 3. Mã hóa đối xứng • Chương 4. Hàm băm và xác thực thông điệp • Chương 5. Mã hóa công khai • Chương 6. Anti-Tampering • Chương 7. Các vấn đề khác Nội dung 6 • Bài tập lớn: 70% • Quá trình: 30% Đánh giá 7 Lương Ánh Hoàng hoangla@soict.hut.edu.vn Chương 1. Kiểm tra đầu vào Input Validation 1.1 Nguyên tắc kiểm tra. 1.2 Các hàm định dạng xâu (string formatting) . 1.3 Tràn bộ đệm. 1.4 Tràn số học. 1.5 Kiểm tra tên file và đường dẫn. 1.6 Giải mã URL 1.7 Cross-Site Scripting 1.8 SQL Injection Nội dung 9 • Luôn luôn giả định dữ liệu đầu vào là không đáng tin cậy – Dữ liệu từ mạng trong mô hình client-server – Dữ liệu từ người dùng – Dữ liệu từ tệp tin – … • Ưu tiên loại bỏ dữ liệu hơn là cố gắng sửa chữa dữ liệu. • Thực hiện kiểm tra đầu vào tại nhiều cấp, nhiều điểm – Kiểm tra đầu vào ở các hàm – Kiểm tra đầu vào giữa các module. – … • Không tiếp nhận lệnh trực tiếp từ người dùng nếu chưa qua kiểm tra. • Kiểm tra các ký tự đặc biệt, dấu nháy. • Tìm hiểu và sử dụng cơ chế trích dẫn (quoting mechanism) nếu cần. • Càng hiểu về dữ liệu bao nhiêu càng lọc được tốt bấy nhiêu. 1.1 Các nguyên tắc kiểm tra 10 [...]... ứng với: user id, group id, và other -rwxr-xr-x 1 Luong Anh Hoang None 17964 Aug 28 23:45 test.exe • Khi tiến trình tạo một file hoặc tài nguyên, hệ thống sẽ gán user id và group id cho file mới đó bằng effective user id và effective group id của tiến trình • Khi tiến trình truy nhập một file hoặc tài nguyên, hệ thống sẽ lần lượt so sánh user id, group id của tiến trình và file và chọn ra tập quyền tương... thể có 3 bit đặc biệt • Sticky Nếu bit này được thiết lập, người dùng sẽ không thể xóa hay đổi tên file của người khác nằm trong thưc mục mà người dùng quản lý Mặc định là không được thiết lập • Setuid: Bit này liên quan đến quá trình tạo một tiến trình mới Nếu bit này được thiết lập, tiến trình được tạo từ file này sẽ không kế thừa quyền từ tiến trình cha, mà sẽ có quyền từ user id của chính file đó... cao hơn (do được khởi chạy từ super user, hoặc các bit setuid được bật) • Tiến trình từ bỏ đặc quyền bằng việc thiết lập group mới chính là real user id qua lệnh • setgroups(): Thiết lập lại nhóm của tiến trình • setegid(): Thiết lập lại effective group id của tiến trình • seteuid(): Thiết lập lại effective user id của tiến trình 36 ... có toàn quyền với đối tượng bất kể trong DACL có cấm hay không • Owner có thể bị chiếm bởi user khác 35 2.3 Hạ thấp quyền truy nhập của tiến trình • Nếu một tiến trình có đặc quyền cao, thực hiện các thao tác nguy hiểm => cần hạ thấp quyền trước khi thực hiện • Tiến trình có thể kiểm tra real user id, real group id bằng lệnh getuid (), getgid() Đây là các đặc quyền kế thừa từ tiến trình cha • Tiến trình. .. 20 1.7 Cross-Site Scripting • Cross-Site Scripting (XSS) là hình thức tấn công vào trình duyệt người dùng bắt nguồn từ việc kiểm tra lỏng lẻo từ server • Có thể dẫn đến thất thoát thông tin nhạy cảm: mật khẩu, session, cookie… • Thực hiện bằng cách chèn mã HTML/JAVASCRIPT vào dữ liệu sẽ hiển thị ra trình duyệt => đoạn mã sẽ chạy trên trình duyệt của nạn nhân • VD Một ứng dụng web có hai trang – Hello.php:... một cách tường minh – Sử dụng Stack Guard trong các trình biên dịch hỗ trợ – Sử dụng DEP (Data Execution Preventation) trên hệ điều hành hỗ trợ – Sử dụng ASLR (Address Space Layout Randomization) trên trình biên dịch và hệ điều hành hỗ trợ 16 1.4 Tràn số học • Dữ liệu nhận về có thể có sai sót trong trường liên quan đến kích thước • Các thao tác liên quan đến số nguyên lớn có thể bị tràn, lẫn lộn giữa... file đó • Setgid: • Đối với file thực thi, nếu bit này được thiết lập thì một tiến trình mới được tạo sẽ có quyền từ groupd id của file đó chứ không kế thừa từ tiến trình cha (tương tự Setuid) • Đối với thưc mục, nếu bit này được thiết lập thì các file tạo trong thư mục này sẽ có groupd id của thư mục cha, chứ không kế thừa từ tiến trình tạo ra file đó 32 2.2 Cơ chế kiểm soát truy nhập trên Windows... Oracle DB: thêm ký tự ‘\’ trước ký tự đặc biệt 27 Chương 2 Kiểm soát truy nhập Access Control Lương Ánh Hoàng hoangla@soict.hut.edu.vn Nội dung 2.1 Cơ chế kiểm soát truy nhập trên Unix/Linux 2.2 Cơ chế kiểm soát truy nhập trên Windows 2.3 Hạ thấp quyền truy nhập của tiến trình 2.4 Xóa file an toàn 2.5 Hạn chế quyền truy nhập trên file 2.6 Khóa file 2.7 Tạo file tạm 2.8 Hạn chế truy nhập đến hệ thống file... dùng 21 1.7 Cross-Site Scripting • File Hello.php Xin chào, vui lòng nhập tên bạn

Ngày đăng: 11/03/2014, 16:00

TỪ KHÓA LIÊN QUAN

w