XÁO TRỘN MÃ ỨNG DỤNG Phân tích điểm yếu mã nguồn và giả mã

Một phần của tài liệu ĐỀ tài dự án QUẢN lý SINH VIÊN (Trang 25 - 29)

Phân tích điểm yếu mã nguồn và giả mã

Trong nhiều môi trường ứng dụng hiện đại ngày nay, một số mã được đặt trong định dạng mã nguồn hoặc trong định dạng mà có thể dễ dàng được sử dụng cũng như dễ dàng lấy được. Và từ đó kẻ tấn công có thể có được rất nhiều thông tin về các hoạt động bên trong của ứng dụng (đây cũng là một vi phạm về quyền sở hữu trí tuệ, nhưng không được đề cập đến trong chương này). Một kẻ tấn công có thể tìm hiểu các cách thức kết nối trong ứng dụng với CSDL, hay làm thế nào tên tài khoản được mã hóa, cũng như các câu truy vấn tới CSDL mà ứng dụng sử dụng là gì. Mã nguồn cũng có thể bị kẻ tấn công phân tích để tìm ra những lỗ hổng trong ứng dụng.

Một vấn đề khác về mã bảo vệ liên quan đến mã giả hoặc định dạng trung gian. Cả hai môi trường Java và Microstt .Net đểu dựa trên một máy ảo (VM) mẫu, trong đó mã nguồn được biên dịch thành một định dạng trung gian (hay còn gọi là mã giả) mà sau đó được sử dụng bởi các máy ảo để chạy ứng dụng. Định dạng trung gian này bao gồm các hướng dẫn, chỉ thị cụ thể đối với máy ảo, máy ảo thực hiện những chỉ thị này và đôi khi biên dịch chúng thành mã máy (code on-the-fly / just in time complie). Lợi thế của kiến trúc này là tính di động và khả năng tương tác tốt. Ví dụ trong môi trường Java nó cho phép một chương trình chạy trên một hệ điều hành có cài máy ảo Java (JVM - java virtual machine) mà không cần phải sửa đổi hay biên dịch lại code. Các lớp (class) trong Java được biên dịch thành các fíle .class chứa các bytecode, chỉ thị, điều khiển máy ảo java (JVM) . Nền tảng .Net thực hiện cáctương tác với Microsott, trong đó nhiều ngôn ngữ lập trình có thể tương tác tốt và chia sẻ các tập lệnh dễ dàng bởi tất cả đều được biên dịch theo một định dạng chung trên một cơ sở chung. Cơ sở chung này được gọi là Common Library Runtime(CLR), và các định dạng trung gian trong đó tất cả các chương trình được biên dịch được gọi là Common Intermediate Language(CIL). Định dạng CIL bao gồm siêu dữ liệu (metadata) có thể đọc hiểu code và cung cấp nhiều thông tin có giá trị cho hacker. Trong khi máy ảo và mã giả rất thuận tiện cho việc phát triển và đơn giản hóa việc triển khai phần mềm, thì chính nó cũng là phần dễ bị tổn thương. Mã giả gồm những tập lệnh chỉ thị ở mức máy ảo, và máy ảo chạy như một phần mềm thông dịch, nó chuyển dịch mã nguồn của một ngôn ngữ lập trình thành các lệnh cho máy tính thực hiện tính toán, bởi vì những tập lệnh này rất thông dụng, kẻ tấn công đã xây dựng các chương trình gọi là phần mềm ăn cắp mã giả. Các chương trình này đọc biên soạn mã giả và tạo ra mã nguồn. Mã nguồn này gần chính xác như mã gốc.

Khắc phục vấn đề tấn công khai thác lỗ hổng dựa trên phân tích mã nguồn.

để hạn chế các tấn công khai thác lỗ hổng dựa trên phân tích mã nguồn là sử dụng các kỹ thuật mã hóa ứng dụng gồm:

-Mã hóa giao diện:

Bao gồm làm xáo trộn các nhận dạng, loại bỏ các chú thích câu lệnh, và đảo vị trí các method.

-Mã hóa dữ liệu:

Ảnh hưởng tới cấu trúc dữ liệu và mã hóa dữ liệu. Ví dụ: một mảng hai chiều có thể được chuyển thành mảng một chiều và trải rộng.

int i=1;

while (i < 100) { .. arr[i] ..

i++ }

int i = 7; int j = i + 4; while (j < 8003) { .. arr[(j-3)/(i+1)] ..; j += (i+1); }

- Kiểm soát mã mã hóa bao gồm các kỹ thuật sắp xếp lại, hay bổ sung các câu lệnh không liên quan.

- Thêm đoạn mã giúp chống lại việc biên dịch ngược. Ví dụ, trong nhiều năm, ứng dụng phổ biến nhất dùng cho việc dịch ngược mã Java là phần mềm freeware tên là Mocha. Một trình mã hóa giả được tạo ra gọi là HoseMocha đã gắn thêm các lệnh giả chống lại việc dịch ngược, mà không làm ảnh hưởng đến việc thực thi chương trình.

Cú pháp mã hóa:

AES_ENCRYPT(chuoi_can_ma_hoa, KEY_SECRET); Cú pháp giải mã:

AES_DECRYPT(ten_column, KEY_SECRET);

KEY_SECRET ở đây là một khóa dùng để mã hóa và giải mã, chúng ta cần tránh để lộ khóa này.

Ví dụ:

ĨNSERT into SinhVien (MaSV, HoTenSV) VALUES (AES ENCRYPT(, SV00r, 'secret'), AES ENCRYPT('Tran Ouoc Hoang', 'secret'));

Một phần của tài liệu ĐỀ tài dự án QUẢN lý SINH VIÊN (Trang 25 - 29)

Tải bản đầy đủ (DOCX)

(34 trang)
w