Sunday, May 29, 2016

Các công nghệ đảm bảo an toàn phần mềm

1. Address Space Layout Randomization (ASLR)

ASLR là tính năng bảo mật khiến vị trí dữ liệu của chương trình được sắp xếp một cách ngẫu nhiên trong bộ nhớ. Trước ASLR, vị trí dữ liệu của chương trình trong bộ nhớ có thể dự đoán được, làm các cuộc tấn công trên chương trình đơn giản hơn. Với ASLR, kẻ tấn công phải đoán đúng vị trí trong bộ nhớ khi cố gắng khai thác lỗ hổng trong chương trình. Dự đoán không chính xác có thể dẫn đến việc chương trình bị treo, do đó kẻ tấn công sẽ không thể thử lại.
Tính năng bảo mật này cũng được sử dụng trên các phiên bản Windows 32-bit và nhiều hệ điều hành khác. Tuy nhiên trên các phiên bản Windows 64 bit, ASLR mạnh hơn rất nhiều. Hệ thống 64-bit có không gian địa chỉ lớn hơn nhiều so với hệ thống 32-bit, do đó ASLR cũng hiệu quả hơn nhiều.
2. Data Execution Protection (DEP)
DEP cho phép hệ điều hành đánh dấu một số khu vực trên bộ nhớ dưới dạng “non-executable” (không được thực thi) bằng cách thiết lập “NX bit”. Vùng bộ nhớ này chỉ được phép lưu trữ dữ liệu chứ không thể thực thi các lệnh sử dụng.
Ví dụ, trên hệ thống không DEP kẻ tấn công có thể sử dụng một số loại buffer overflow (lỗi tràn bộ đệm) để viết mã vào vùng bộ nhớ của ứng dụng sau đó có thể được thực hiện. Với DEP, kẻ tấn công có thể viết mã vào vùng bộ nhớ của ứng dụng - nhưng khu vực này sẽ được đánh dấu là không thể thực thi không thể được thực hiện giúp ngăn chặn cuộc tấn công.
Trên hệ điều hành Windows 64-bit có DEP dựa trên phần cứng (nếu bạn có CPU hiện đại, các phiên bản Windows 32-bit cũng hỗ trợ DEP dựa trên phần cứng). Tuy nhiên, DEP luôn được kích hoạt đối với các chương trình 64-bit, trong khi theo mặc định, nó bị vô hiệu hóa đối với các chương trình 32-bit vì lý do tương thích.
Hộp thoại cấu hình DEP trong Windows chỉ áp dụng cho cho các ứng dụng, tiến trình 32-bit vì tài liệu của Microsoft cho biết, DEP luôn được sử dụng cho tất cả các tiến trình 64-bit.

Related Posts:

  • Reverse " Hello World " programNhư bài viết trước mình đã giới thiệu cơ bản về RE. Vậy để RE chúng ta cần những gì ? Câu trả lời là kiến thức về lập trình. Ngôn ngữ lập trình yêu cầu là C/C++ và Assembly. Trong loạt tut về OllyDbg mình thấy tổng hợp những … Read More
  • ISSN, ISI, SCI MỘT VÀI THÔNG TIN VỀ MÃ SỐ CHUẨN QUỐC TẾ CHO TẠP CHÍ VÀ SÁCH, VỀ SỰ PHÂN LOẠI TẠP CHÍ KHOA HỌC VÀ CÁCH TRÌNH BÀY MỘT BÀI BÁO TRONG TẠP CHÍ KHOA HỌC Trần Văn Nhung Để có thêm thông tin cho các ứng viên chức danh giáo sư… Read More
  • DebuggingDebugger là một phần mềm hoặc phần cứng được sử dụng để kiểm tra và việc thực thi của một chương trình khác. Debuggers giúp sức trong quá trình phát triển phần mềm, bời vì các chương trình thường xuyên có những lỗi khi chúng … Read More
  • Xây dựng lab phục vụ cho phân tích động malwareMalware labs có thể cực kì đơn giản hoặc rất phức tạp. Tất cả phụ thuộc vào resources hiện có của bạn (ví dụ như hardware, networking equipment, Windows licences, và những thứ khác), phụ thuộc vào bao nhiêu công việc phân tíc… Read More
  • Basic Dynamic Analysis: SandboxDynamic analysis là bất cứ quá trình phân tích nào được thực hiện sau khi thực thi malware. Dynamic analysis techniques là bước thứ hai trong quá trình phân tích malware. Dynamic analysis thường được thực hiện sau basic … Read More

0 comments:

Post a Comment