Chủ Nhật, 19 tháng 4, 2015

Đồng Bộ Hóa Tiến Trình (Phần 1) - Vùng Tranh Chấp


Một tiến trình thao tác đồng thời có thể ảnh hưởng hay bị ảnh hưởng bởi tiến trình khác đang được sử dụng trong hệ thống. Các tiến trình đồng thao tác có thể trực tiếp chia sẻ không gian địa chỉ vật lý (code hay data) hay nó được phép chia sẻ dữ liệu qua các file. Trường hợp của vấn đề trước có thể đạt được thông qua việc sử dụng những tiến trình nhỏ hay là những tiểu trình. Việc truy cập đến vùng dữ liệu chia sẻ một cách đồng thời có thể dẫn đến mâu thuẫn trong dữ liệu . Ở đây chúng ta sẽ thảo luận những cơ chế khác nhau để đảm bảo thứ tự thực thi của những tiến trình thao tác đồng thời mà chia sẻ không gian địa chỉ luận lý để đảm bảo tính bền vững của dữ liệu, một giải pháp cụ thể được phân tích ở đây là giải pháp cho nhiều tiến trình( giải pháp bakery).

1. Khái Niệm

Giả sử rằng hệ thống có n tiến trình P(0), P(1), … ,P(n-1) cùng truy xuất đồng thời một vùng dữ liệu chia sẻ chẳng hạn như một đoạn code nào đó. Đoạn code được chia sẻ đó được gọi là vùng tranh chấp, trong vùng tranh chấp này các tiến trình có thể thay đổi biến dùng chung, cập nhật giá trị cho các dữ liệu,…
Hình ảnh sau minh họa cho vùng tranh chấp:

Đối với vùng tranh chấp vấn đề quan trọng là hệ thống phải đảm bảo sao cho khi một tiến trình đang thực thi trên vùng tranh chấp thì không có tiến trình nào khác được thực hiện tại vùng này. Sự thực thi của các tiến trình trên vùng tranh chấp được gọi là sự loại trừ tương hỗ( mutual exclusion)

2. Cấu Trúc Tổng Quát Của Tiến Trình Khi Vào Vùng Tranh Chấp


Để được vào vùng tranh chấp, mỗi tiến trình phải gửi yêu cầu cho hệ điều hành và phải được chấp thuận khi đó tiến trình mới được vào vùng tranh chấp. Phần đoạn code thực thi yêu cầu này được gọi là Entry_section(). Sau khi vào được vùng tranh chấp tiến trình thực thi trên vùng tranh chấp được gọi là  Critial_section(). Sau khi thực hiện xong trên vùng tranh chấp, tiến trình thoát ra khỏi  vùng tranh chấp bằng đoạn code được gọi là Exit_section().

   Cấu trúc tổng quát sau được mô tả đầy đủ:


do{
    entry section;
    critial section;
    exit section;
    remainder section;
}

while(1);



3. Nguyên Tắc Giải Quyết Tranh Chấp
  • Chia nhỏ các lệnh thì chia nhỏ cho đến khi không thể chia nhỏ được nữa.
  • Có thể chuyển các tiến trình động thời đồng bộ về tiến trình đồng thời bất đồng bộ.
  • Tiến trình ngoài vùng tranh chấp không có quyền cấm các tiến trình khác vào vùng tranh chấp.
  • Tiến trình không được trì hoãn vô hạn định khi vào vùng tranh chấp.

4. Phương Pháp Giải Quyết Tranh Chấp

Có 2 phương pháp cơ bản:
Phương pháp phần mềm (software solution):
Người sử dụng tự thực hiện thông thường có sự hỗ trợ của lập trình viên
Hệ điều hành cung cấp công cụ hỗ trợ lập trình viên qua lời gọi hệ thống
Giải pháp phần cứng:Dựa trên một số lệnh đặc biệt interrupt disable, test and set.

Phần sau: Giải thuật Bakery và chứng minh giải thuật


Nguồn: Ngọc Tiển I3
Unknown Software Developer

Là sinh viên, dành khá nhiều thời gian cho việc học tập và nghiên cứu. Đam mê An Toàn Thông Tin, Lập trình hệ thống, Quản Trị Mạng. Có kiến thức về CCNA, CCNP

Thứ Sáu, 17 tháng 4, 2015

MS15-034: Tấn công toàn quyền Windows


Vào ngày 14/04/2015 nhóm Citrix Security Team đã tìm ra lỗ hổng rất lớn trên Server IIS của các máy chủ cài hệ điều hành dùng nhân Windows NT 6.x (Microsoft Windows 7 SP1, Windows Server 2008 R2 SP1, Windows 8, Windows 8.1, và Windows Server 2012 Gold và R2)

Thông qua việc làm tràn số nguyên trong giao thức HTTP Stack (file C:\Windows\System32\drivers\http.sys) trên parameter “Range” ở HTTP Header. Điều này có thể khiến kẻ tấn công từ xa, gây ra lỗi tràn bộ đệm và có khả năng thực thi mã tùy ý với quyền SYSTEM.


Thông tin và phương thức thực hiện tấn công các bạn có thể tham khảo tại đây


Lỗ hổng này được CVE (Common Vulnerabilities and Exposures ) đánh giá mức độ nguy hiểm là 10/10, điểm cao nhất trong thang điểm đánh giá. Với độ phức tạp tấn công rất thấp, không cần đăng nhập và khả năng chiếm toàn quyền hệ thống.

Vào năm ngoái, nhóm Citrix cũng đã tìm ra lỗ hổng bảo mật trên Server Apache CloudStack.
Unknown Software Developer

Là sinh viên, dành khá nhiều thời gian cho việc học tập và nghiên cứu. Đam mê An Toàn Thông Tin, Lập trình hệ thống, Quản Trị Mạng. Có kiến thức về CCNA, CCNP

Thứ Tư, 15 tháng 4, 2015

Biến Nexus của bạn thành thiết bị nguy hiểm nhất thế giới (Phần 1)


Pwnie Express – một hệ điều hành nhẹ nhàng, mượt mà, tùy biến sâu trên nền Android Kitkat 4.4 được trang bị rất nhiều công cụ tấn công, đánh giá mức độ an toàn và phân tích cấu trúc hệ thống mạng. Hiện nay Pwnie vẫn còn đang trong giai đoạn thử nghiệm, nhưng hiểu quả của nó đem lại xứng đáng để bạn trải nghiệm trên thiết bị có màn hình cực đẹp, có thời lượng pin cực cao (có thể tới 9 tiếng hoạt động liên tục, điều mà khó có phiên bản Android nào có thể thực hiện được). Giờ đây, các pentester có thể thực hiện kiểm thử mạng không dây, hay thậm chí có dây, điều mà trước đây chưa bao giờ có được trên một thiết bị cầm tay.



Pwnie Express phần phối dưới 2 dạng:

  • Bản thương mại: bạn mua thiết bị đã cài sẵn hệ điều hành Pwnie Express với giá tham khảo là 1095 USD với Pwn Pad 2014 (Nexus 7 2013 32GB LTE) hoặc 1295 USD với Pwn Phone 2014 (Nexus 5 32GB).
  • Bản cộng đồng hỗ trợ: Bạn có thể tải miễn phí tại đường dẫn sau: https://www.pwnieexpress.com/community/


Pwnie Express Community có 4 bản dành cho 4 loại thiết bị khác nhau: Nexus 5, Nexus 7 2013, Nexus 7 2012, TFTP Cisco

Trong bài viết này mình xin hướng dẫn các bạn cách cài Pwnie Express lên Nexus 7 2013, các thiết bị khác sẽ có trong các bài viết sau.

Tất cả những gì bạn cần có là:

  • 1 máy tính chạy nền tảng Linux ( khuyên dùng Ubuntu ), không nên dùng máy ảo vì Nexus 7 chế độ kết nối USB rất giới hạn
  • 1 máy tính bảng Nexus 7 2013 LTE 32GB (K009)
  • 1 dây OTG micro-USB 2.0.
  • 1 USB kết nối với Wifi (khuyên dùng TP-Link TL-WN722N) (Thiết bị để kiểm thử mạng không dây)
  • 1 Bluetooth Adapter (khuyên dùng SENA UD100) (Thiết bị để kiểm thử Bluetooth)
  • 1 DCOM 3G (các loại của Huawei đều được hỗ trợ) (Kiểm thử mạng 3G)

Sau khi chuẩn bị đầy đủ đồ chơi, chúng ta tiến hành cài đặt Pwnie Pad
Cài đặt gói “adb” và “fastboot” cho máy tính đang chạy Linux:
$ sudo add-apt-repository ppa:nilarimogard/webupd8

$ sudo apt-get update

$ sudo apt-get install android-tools-adb android-fastboot-tools
Giải file tar của Pwnie Express ra:

$ tar xvf pwnpad-2014_image.tar.xz

$ cd pwnie_img/

$ chmod +x imagev2.sh

Kết nối Nexus 7 của bạn vào máy tính bằng cáp USB chính hãng.
Chú ý: KHÔNG ĐƯỢC dùng bất cứ dây cáp thay thế hay USB Hub hoặc bất kì adapter nào khác để tránh quá trình truyền dữ liệu bị gián đoạn và brick máy

Bấm giữ nút nguồn và nút âm lượng xuống để đưa Nexus 7 vào chế độ “FastBoot”Từ máy tính Linux, gõ lệnh sau để cài đặt adb server:
$ sudo adb start-server

Thực thi dòng lệnh sau để tiến hành flash Pwnie vào máy:

$ sudo ./imagev2.sh

Tiếp theo chỉ cần làm theo hướng dẫn của script là ban đã có Pwn Pad 2014 trên tay.


Loạt bài sau chúng ta sẽ cùng tìm hiểu về một số hình thức tấn công hệ thống mạng từ các thiết bị cầm tay.
Unknown Software Developer

Là sinh viên, dành khá nhiều thời gian cho việc học tập và nghiên cứu. Đam mê An Toàn Thông Tin, Lập trình hệ thống, Quản Trị Mạng. Có kiến thức về CCNA, CCNP