220 likes | 454 Views
Bảo mật mã nguồn. Nhóm 3. Nội dung thuyết trình. 1. Bảo mật mã nguồn là gì?. Bảo mật mã nguồn là sự hạn chế khả năng lạm dụng mã nguồn. 2.Tại sao phải bảo mật mã nguồn?. Không muốn cho người khác truy cập trái phép Ý nghĩa sống còn trong kinh doanh
E N D
Bảo mật mã nguồn Nhóm 3
1. Bảo mật mã nguồn là gì? Bảo mật mã nguồn là sự hạn chế khả năng lạm dụng mã nguồn.
2.Tại sao phải bảo mật mã nguồn? • Không muốn cho người khác truy cập trái phép • Ý nghĩa sống còn trong kinh doanh • Có ít đi những lổ hổng bảo mật đồng nghĩa với việc chất lượng của phần mềm tốt hơn và giá thành giảm đi.
3. Làm sao để viết mã nguồn một cách bảo mật? • Phụ thuộc vào developers để giảm thiểu lỗi(không sử dụng các phương thức như: strcpy,strcat,sprintf, vsprintf) • Dựa vào mã an toàn được cài đặt sẵn trước khi ứng dụng được thực hiện • Sử dụng các công cụ hỗ trợ của các tổ chức bảo mật(ví dụ như OWASP) • …
4. Những lỗi thông dụng thường gặp • SQL Injection • Cross-Site Scripting (XSS) • Buffer OverFlow • Replay Attack
SQL Injection Định nghĩa : Là 1 kĩ thuật cho phép lợi dụng: • Lỗ hổng trong kiểm tra dữ liệu nhập trong các ứng dụng web • Các thông báo lỗi của hệ quản trị cơ sở dữ liệu Mục đích: Đưa vào và thực thi các câu lệnh SQL bất hợp pháp
SQL Injection • Khai thác lỗi này như thế nào?
SQL Injection • string cmdStr = "INSERT INTO • Customer(Name, Phone) VALUES • ('" + txtName.Text + "','" + txtPhone.Text + "')"; conn.Open();SqlCommand cmd = new SqlCommand(cmdStr, conn);cmd.ExecuteNonQuery();
SQL Injection string cmdStr = "INSERT INTO Customer(Name, Phone) VALUES('" + txtName.Text + "','" + txtPhone.Text + "')"; string cmdStr = "INSERT INTO Customer(Name, Phone) VALUES('','123');delete from order--')";
SQL Injection Cách khắc phục : • Kiểm tra dữ liệu đầu vào hợp lệ bằng các tiêu chuẩn phù hợp • Sử dụng thủ tục store procedure • Dùng chuỗi SQL có tham số (dùng cmd.Parameters.Add) • …
Cross-Site Scripting (XSS) Định nghĩa : XSS là một kĩ thuật tấn công bằng cách chèn vào các website động những thẻ HTML hay những đoạn mã script nguy hiểm có thể gây nguy hại cho những người sử dụng khác. Trong đó, những đoạn mã nguy hiểm đựơc chèn vào hầu hết được viết bằng các Client-Site Script như JavaScript, JScript, DHTML và cũng có thể là cả các thẻ HTML
Cross-Site Scripting (XSS) • Khai thác lỗi này như thế nào?
Cross-Site Scripting (XSS) Cách khắc phục : • Lọc: Luôn luôn lọc các dữ liệu nhập từ phía người dùng bằng cách lọc các kí tự meta (kí tự đặc biệt) được định nghĩa trong đặc tả của HTML để phát hiện các thẻ script. • Mã hóa: Mã hóa phía máy chủ là một tiến trình mà tất cả nội dung phát sinh động sẽ đi qua một hàm mã hóa nơi mà các thẻ script sẽ được thay thể bởi mã của nó.
Buffer OverFlow Định nghĩa : Một khối lượng dữ liệu được gửi cho ứng dụng vượt quá lượng dữ liệu được cấp phát khiến cho ứng dụng không thực thi được câu lệnh dự định kế tiếp mà thay vào đó phải thực thi một đoạn mã bất kì do hacker đưa vào hệ thống.
Buffer OverFlow • Khai thác lỗi này như thế nào? greeting(char *temp1, char *temp2) { char name[400]; strcpy(name, temp2); printf("Hello %s %s\n", temp1, name); } main(int argc, char *argv[]) { greeting(argv[1], argv[2]); printf("Bye %s %s\n", argv[1], argv[2]); }
Buffer OverFlow Shellcode : Shellcode còn có thể làm được nhiều thứ, từ việc điều chỉnh giờ hệ thống hay download và thực thi một tập tin từ internet cho đến việc gửi 1 email ra ngoài Mục đích : viết chương trình khai thác lỗi bằng shellcode và chèn vào chương trình bị lỗi
Buffer OverFlow Cách khắc phục : • Phụ thuộc vào developers để giảm thiểu lỗi(không sử dụng các phương thức như: strcpy,strcat,sprintf, vsprintf) • Dựa vào mã an toàn được cài đặt sẵn trước khi ứng dụng được thực hiện
Replay Attack Định nghĩa : Replay attack là một kiểu tấn công man-in-the-middle, kẻ tấn công sẽ tiến hành lắng nghe trên đường truyền của nạn nhân. Khi nạn nhân tiến hành trao đổi các thông tin quan trọng(ví dụ như passwork) thì kẻ tấn công sẽ chặn các gói tin đó lại. Các gói tin bị bắt không bị kẻ tấn công thay đổi nội dung mà giữ nguyên đợi đến 1 thời gian thích hợp nào đó sẽ gởi gói tin đó đi giả dạng như nó được gởi ra từ máy gốc.
Replay Attack • Khai thác lỗi này như thế nào? http://www.youtube.com/watch?v=RVn6vfYGi1E http://www.security365.vn/
Replay Attack Cách khắc phục : • Thiết lập giao thức an toàn trước khi trao đổi các thông tin quan trọng • Sử dụng khóa phiên trong các phiên làm việ • Xác thực đối phương trước khi gửi thông tin hay cấp quyền cho một hành động nào đó