Ứng dụng truyền thông & an toàn thông tin

  • 37 trang
  • file: .pdf

đang tải dữ liệu....

Tài liệu bị giới hạn, để xem hết nội dung vui lòng tải về máy tính.

Tải xuống - 37 trang

Nội dung text: Ứng dụng truyền thông & an toàn thông tin

Ứng dụng Truyền thông &
An toàn Thông tin
Nội dung
● Giới thiệu
● Cấu trúc máy tính
● Hợp ngữ
● Tràn bộ đệm
● Chuỗi định dạng
● Dư một
● Điều kiện đua
● Tràn số nguyên
Nội dung
● Ứng dụng web và các công nghệ an ninh web
● Chèn SQL
● Kịch bản chéo trang
● Giả yêu cầu chéo trang
● An toàn thông tin
● Các thuật toán mật mã
● Áp dụng hệ thống mật mã
Giới thiệu
● Giảng viên: Nguyễn Thành Nam (namnt@), trợ
giảng: Nguyễn Duy (duyn@)
● Thang điểm (trên 100):
● 30 điểm bài tập
● 30 điểm kiểm tra giữa kỳ
● 40 điểm kiểm tra cuối kỳ
● 10 điểm cộng (tổng không quá 100)
● Miễn thi với sinh viên xuất sắc
● Tài liệu: Nghệ Thuật Tận Dụng Lỗi Phần Mềm,
và The Web Application Hacker's Handbook
Giới thiệu
● 3 bài tập về nhà
● Bài tập sẽ được chấm lại khi sinh viên yêu cầu
● Nộp trễ sẽ không có điểm
● Gian lận sẽ không có điểm, không nhắc nhở
● Kiểm tra giữa kỳ sẽ kiểm tra những gì đã học
cho đến thời điểm đó
● Kiểm tra cuối kỳ sẽ kiểm tra toàn bộ kiến thức
của môn học
● Kiểm tra trắc nghiệm và trả lời ngắn
Cấu trúc máy tính
● Bộ nhập chuẩn (stdin, bàn phím)
● Bộ xuất chuẩn (stdout, màn hình)
● Bộ xử lý
● Chương trình chứa các lệnh được bộ xử lý
thực thi, dữ liệu được truyền qua bộ nhập, và
hiển thị ở bộ xuất
● Để tận dụng lỗi ta cần phải biết cách hoạt động
của bộ xử lý
● Chúng ta chỉ xét cấu trúc Intel x86
Cấu trúc máy tính
● CPU đọc lệnh từ bộ nhớ
● Con trỏ lệnh (Instruction Pointer) trỏ đến địa chỉ
của lệnh sẽ được thực hiện kế tiếp
● Trong quá trình thực hiện lệnh hiện tại, con trỏ
lệnh sẽ được cập nhật với giá trị của địa chỉ
lệnh kế tiếp
● Mỗi lệnh có độ dài khác nhau (tối đa 15 byte),
ví dụ: XOR EAX, EAX dài 2 byte (31 C0), NOP
dài 1 byte (90)
Cấu trúc máy tính
Cấu trúc máy tính
Cấu trúc máy tính
Cấu trúc máy tính
● Ví dụ tại ô nhớ có địa chỉ 12345678 là các byte
31 C0 90 90, và EIP đang có giá trị 12345678
● Lệnh sẽ được thực hiện kế tiếp là XOR EAX, EAX
● Trong khi thực hiện lệnh này, EIP sẽ có giá trị
1234567A
● Thực hiện xong lệnh thì EIP vẫn giữ giá trị này
● Lệnh thứ hai được thực hiện là NOP
● Trong khi thực hiện lệnh NOP, EIP sẽ có giá trị
1234567B
● Thực hiện xong lệnh thì EIP vẫn giữ giá trị này
Cấu trúc máy tính
● Thanh ghi là một dạng bộ nhớ rất nhanh
● Được làm ngay bên trong bộ xử lý, hoạt động
với cùng xung bộ nhớ
● Có ít thanh ghi, chia làm các nhóm
● Thanh ghi chung (EAX, EBX, ECX, EDX)
● Thanh ghi xử lý chuỗi (ESI, EDI)
● Thanh ghi ngăn xếp (ESP, EBP)
● Thanh ghi đặc biệt (EIP, EFLAGS)
● Thanh ghi phân vùng (SS, DS, CS, ...)
Cấu trúc máy tính
● Thanh ghi chung được xử dụng như bộ nhớ
siêu tốc dùng trong tính toán, biến tạm
● Thanh ghi xử lý chuỗi chuyên dùng trong các
tác vụ liên quan chuỗi
● Thanh ghi ngăn xếp được sử dụng trong quản
lý cấu trúc ngăn xếp
● Thanh ghi EIP là con trỏ lệnh, EFLAGS chứa
cờ, hiệu ứng phụ của các lệnh
● Thanh ghi phân vùng dùng để định địa chỉ
Cấu trúc máy tính
● Để truy xuất bộ nhớ, hệ điều hành dùng địa chỉ
tuyến tính (linear address)
● Ô nhớ đầu tiên có địa chỉ 0, ô nhớ kế có địa chỉ
1, … Mỗi ô nhớ chứa 1 byte
● Kiến trúc 32 bit có thể định địa chỉ cho 4GB
● Địa chỉ có thể được chứa gọn trong 1 thanh ghi
● Địa chỉ tuyến tính được ánh xạ vào địa chỉ vật
lý thông qua bộ quản lý bộ nhớ ảo
Cấu trúc máy tính
● Đường truyền dữ liệu rộng 32 bit
● Mỗi lần truy xuất sử dụng cả 32 bit
● Làm sao để truy xuất 1 byte?
● Đọc cả 32 bit
● Chỉ xử lý 1 byte
● Lấy 8 bit nào trong 32 bit?
● Tính kết thúc nhỏ (little endian)
● Lấy 8 bit ở địa chỉ thấp hơn
Cấu trúc máy tính
Cấu trúc máy tính
Cấu trúc máy tính
● Ngăn xếp là cấu trúc vùng nhớ đặc biệt, dạng
Vào Sau Ra Trước (LIFO)
● Chứa biến cục bộ, và quá trình gọi hàm, thực
thi của chương trình
● Hai thanh ghi ESP và EBP chủ yếu dùng để
quản lý ngăn xếp
● ESP chỉ đến đỉnh ngăn xếp nên gọi là con trỏ
ngăn xếp (stack pointer)
Cấu trúc máy tính
● Ngăn xếp có hai thao tác chính
● PUSH (đưa) vào ngăn xếp
● ESP giảm 4
● 4 byte được đưa vào địa chỉ do ESP chỉ đến
● POP (lấy) từ ngăn xếp
● 4 byte từ địa chỉ do ESP chỉ đến được chép ra
● ESP tăng 4
● Đỉnh ngăn xếp có địa chỉ thấp nhất
● Ngăn xếp phát triển về bên dưới (grow down)
Cấu trúc máy tính