Lí do cần bảo mật web• Trong thời đại công nghệ số ngày nay các tội phạm mạng lợi dụng những sự phát triển mạnh mẽ của các thiết bị, ứng dụng công nghệ thông tin để tấn công chiếm đoạt
Trang 1BẢO MẬT ỨNG DỤNG WEB
GVHD: MAI CƯỜNG THỌ
Trang 2Các nội dung cần tìm hiểu
1 Tổng quát
2 Lí do cần bảo mật web?
3 Một ứng dụng web cần bảo mật khi nào?
4 Đối tượng dễ bị tấn công
5 Một số kỹ thuật tấn công ứng dụng web điển hình
6 10 lỗ hỗng trên ứng dụng web thường gặp nhất
7 Hậu quả khi bị tấn công
8 Giải pháp bảo mật toàn diện cho ứng dụng web
9 Chứng chỉ HTTPS là gì?
10 Tại sao phải có chứng chỉ SSL?
11 SSL hoạt động như thế nào?
12 Các loại SSL
13 So sánh HTTP và HTTPS
14 Làm thế nào để sử dụng giao thức HTTPS?
15 Lợi ích của giao thức HTTPS
16 Quá trình giao tiếp giữa client và server thông qua HTTPS
Trang 3Tổng quát
• Ứng dụng web ngày càng cải
tiến và được sử dụng rộng rãi Kéo theo là những tiềm ẩn trong việc bảo mật ứng dụng
web đang hàng ngày gây quan ngại cho các doanh nghiệp, tổ chức lớn và chính phủ
• Trong kỹ thuật phần mềm, một Ứng dụng web hay webapp là một trình ứng dụng mà có thể tiếp cận qua web thông qua
mạng như Internet hay intranet
Trang 4Lí do cần bảo mật web
• Trong thời đại công nghệ số ngày
nay các tội phạm mạng lợi dụng những sự phát triển mạnh mẽ của các thiết bị, ứng dụng công nghệ thông tin để tấn công chiếm đoạt tài khoản cá nhân, thông tin doanh nghiệp, thông tin mật của các tổ chức chính phủ…Vai trò của bảo mật thông tin càng ngày càng trở lên quan trọng bởi nó quyết định
sự sống còn của mỗi doanh
nghiệp.
Trang 5Một ứng dụng web cần bảo mật khi nào?
• Cho phép hoặc cấm dịch vụ
truy cập ra bên ngoài hoặc từ
bên ngoài truy cập vào bên
Trang 6Đối tượng dễ bị tấn công
• Chủ yếu là các doanh nghiệp,
tổ chức lớn, chính phủ
• Lý do: Vì tiền, hacker sẽ sẵn sàng xâm nhập vào ứng dụng web ăn cắp dữ liệu, bán data hoặc đe dọa chuộc tiền
Trang 7Một số kỹ thuật tấn công ứng dụng web điển hình
• Đánh cắp hoặc chiếm đoạt quyền truy cập
của người dùng, nhà quản trị.
• Chiếm các phiên làm việc trên session
management hoặc ẩn phiên làm việc
session fixation.
• Mã hóa một số Url quan trọng hoặc toàn
bộ url trong ứng dụng web từ đó hacker
có thể dễ dàng chèn mã lệnh trên trình
duyệt để hại người dùng
• Tấn công người dùng bằng lỗi SQL
Injection, Null Characters, từ chối dịch vụ
DOS…
Trang 810 lỗ hỗng trên ứng dụng web thường gặp nhất
• Lỗ hổng XSS (Cross Site Scripting)
• Chèn mã độc hại (Injection flaws)
• Tệp tin chứa mã độc
• CSRF (Cross-Site Request Forgery)
• Tham chiếu đối tượng trực tiếp không an
toàn
• Rò rỉ thông tin và xử lý lỗi không đúng
cách
• Quản lý xác thực và quản lý phiên yếu
• Không hạn chế truy nhập vào URL nội bộ
• Không kiểm tra sự điều hướng và chuyển
tiếp của URL
• Sử dụng các lỗ hổng có sẵn trong thư viện
Trang 910 lỗ hỗng trên ứng dụng web thường gặp nhất
• Lỗ hổng XSS (Cross Site
Scripting):
Thông qua lỗ hổng XSS, kẻ tấn công
có thể chiếm quyền điều khiển phiên
người dùng, gỡ bỏ trang web, và có
thể đánh cắp thông tin của người
dùng dựa trên trình duyệt Tin tặc có
thể chèn mã JavaScript vào các trang
web có lỗi XSS, khi người dùng truy
cập vào những trang web này, lập
tức mã script của tin tặc sẽ hoạt động
lưu lại thông tin người dùng.
Trang 1010 lỗ hỗng trên ứng dụng web thường gặp nhất
• Chèn mã độc hại (Injection
flaws):
Hacker có thể sử dụng điểm yếu
của các truy vấn đầu vào bên trong
ứng dụng để chèn thêm dữ liệu
không an toàn, từ đó máy chủ có
thể bị tấn công bởi một số dạng
như: SQL Injection, Xpath
Injection, XML Injection, Buffer
overflow, LDAP lookups, Shell
command Injection
Trang 1110 lỗ hỗng trên ứng dụng web thường gặp nhất
• Tệp tin chứa mã độc:
Nguy cơ bị tấn công tiềm ẩn với
việc mã hóa trong tích hợp tệp
tin từ xa (RFI) có thể cho phép
kẻ tấn công tạo sự thỏa hiệp của
Trang 1210 lỗ hỗng trên ứng dụng web thường gặp nhất
• CSRF (Cross-Site Request Forgery):
Một trong những lỗ hổng bảo mật
thường gặp trong ứng dụng web là lỗ
hổng CSRF.Lợi dụng cơ chế tự động
đăng nhập vào một số website, tin tặc
có thể điều hướng người dùng thực
hiện các đoạn chứa mã độc, nhúng vào
các website mà người dùng đang trong
phiên làm việc Từ đó, mã độc sẽ chạy
trên trình duyệt của người dùng và
hacker sẽ thực hiện các hành vi gian
lận.
Trang 1310 lỗ hỗng trên ứng dụng web thường gặp nhất
• Tham chiếu đối tượng trực
tiếp không an toàn:
Mối đe dọa tiềm ẩn ở đây là
những kẻ tấn công có thể lợi
dụng những tài liệu tham khảo
để truy cập vào quyền của các
đối tượng khác mà không sự cho
phép Ví dụ: A có thể mạo danh
là B để truy cập vào hệ thống
Trang 1410 lỗ hỗng trên ứng dụng web thường gặp nhất
• Rò rỉ thông tin và xử lý lỗi
không đúng cách:
• Mối đe dọa tiềm ẩn từ việc rò rỉ
thông tin và xử lý lỗi không đúng
cách (Broken Authentication and
Session Management) có thể giúp
tin tặc ăn cắp dữ liệu nhạy cảm,
hoặc tiến hành các cuộc tấn công
nghiêm trọng hơn
Trang 1510 lỗ hỗng trên ứng dụng web thường gặp nhất
• Quản lý xác thực và quản lý phiên
yếu:
Khâu xác thực (authentication) và
trao quyền (authorisation) được sử
dụng khá phổ biến trong các ứng
dụng web Nếu một trong 2 khâu này
không bảo mật mạnh mẽ thì đây
chính là lỗ hổng tiềm ẩn giúp tin tặc
xâm nhập vào hệ thống Mối đe dọa
tiềm ẩn ở đây là kẻ tấn công có thể
thỏa hiệp mật khẩu, mã khóa hoặc
danh tính người dùng Để hạn chế
nguy cơ tấn công, quản trị viên nên
thiết lập session thật tốt.
Trang 1610 lỗ hỗng trên ứng dụng web thường gặp nhất
• Không hạn chế truy nhập vào
URL nội bộ :
Một trong những giải pháp nhằm
hạn chế sự tấn công từ bên trong
nội bộ mà nhà quản trị nên làm
Trang 1710 lỗ hỗng trên ứng dụng web thường gặp nhất
• Không kiểm tra sự điều hướng
và chuyển tiếp của URL:
Lợi dụng sơ hở này, tin tặc có
thể điều hướng đường link gốc
đến một trang web hoặc 1 ứng
dụng lừa đảo hoặc trang web
đen Khi click vào đường dẫn tới
trang web lừa đảo, máy tính của
người dùng có thể bị nhiễm mã
độc và hacker sau đó có thể ép
người dùng tiết lộ thông tin cá
nhân
Trang 1810 lỗ hỗng trên ứng dụng web thường gặp nhất
• Sử dụng các lỗ hổng có sẵn trong
thư viện:
Thực tế hiện nay, một số tổ chức và
doanh nghiệp Việt Nam chưa cập nhật
những bản vá lỗi trong ứng dụng web
của mình, và cá nhân cũng vậy Một số
lỗi xuất phát từ thư viện ứng dụng, một
số nằm trong plugin cài thêm, số khác
Trang 19Hậu quả khi bị tấn công
• Những thông tin cá nhân, thông tin quan trọng, tài chính của công ty và khách hàng sẽ bị hacker xâm phạm
• Ứng dụng web và các phần mềm
khác mà công ty, doanh nghiệp đang
sử dụng rất có thể sẽ bị hacker cài mã theo dõi, virus độc hại
• Hệ thống máy chủ hoặc hệ thống có thể bị tê liệt do sự cố bắt nguồn từ
các ứng dụng web
Trang 20Giải pháp bảo mật toàn diện cho ứng dụng web
• Rà soát lỗ hổng ứng dụng trước khi sử dụng
Bạn có thể nhờ dịch vụ pentest ứng dụng
website hoặc các chuyên gia bảo mật,
chuyên gia an ninh mạng đánh giá.
• Xây dựng và phát triển các ứng dụng web
theo tiêu chuẩn 2.0 vào các tiêu chí bảo mật
cao nhất như OWASP, DSS, PCI…
• Tăng hiệu năng của hệ thống toàn diện.
• Xây dựng lớp bảo mật cho từng thiết bị
trong hệ thống có khả năng phát hiện và tự
vệ trước những sự cố về mạng hay virus,
hacker tấn công.
Trang 21Chứng chỉ HTTPS là gì?
• Khi yêu cầu kết nối HTTPS với trang web, đầu
tiên trang web sẽ gửi chứng chỉ SSL tới trình
duyệt của bạn Chứng chỉ này chứa khóa công
khai cần thiết để bắt đầu phiên bảo mật Dựa
trên trao đổi ban đầu này, trình duyệt và trang
web sẽ bắt đầu giao thức SSL handshake (giao
thức bắt tay) Giao thức SSL handshake liên
quan đến việc tạo bí mật chia sẻ để thiết lập kết
nối an toàn duy nhất giữa bạn và trang web.
• Khi sử dụng chứng chỉ SSL đáng tin cậy trong
quá trình kết nối HTTPS, người dùng sẽ thấy
biểu tượng ổ khóa trong thanh địa chỉ của trình
duyệt Khi một chứng chỉ Extended Validation
Certificate được cài đặt trên một trang web,
thanh địa chỉ sẽ chuyển sang màu xanh lá cây.
Trang 22Tại sao phải có chứng chỉ SSL?
• Tất cả các thông tin liên lạc được gửi qua
các kết nối HTTP đều nằm trong văn bản
thuần và có thể được đọc bởi bất kỳ
hacker nào có thể đột nhập vào kết nối
giữa trình duyệt và trang web của bạn
Việc này có thể là một mối nguy hiểm nếu
nó có chứa thông tin liên lạc nằm trong
đơn đặt hàng, chi tiết thẻ tín dụng hoặc số
an sinh xã hội của bạn Với kết nối
HTTPS, tất cả các thông tin liên lạc đều
được mã hóa an toàn Điều này có nghĩa
là ngay cả khi ai đó đã đột nhập vào kết
nối, họ sẽ không thể giải mã bất kỳ dữ
liệu nào đi qua giữa bạn và trang web.
Trang 23SSL hoạt động như thế nào?
• Khi bạn truy cập vào 1 trang web sử dụng
4 Máy chủ web gửi ngược lại chữ ký số sẽ
dùng để mã hóa và giải mã trong suốt quá trình giao tiếp sau đó.
5 Mọi thông tin trao đổi giữa trình duyệt và máy chủ sẽ được mã hóa.
Trang 24Các loại SSL
Trang 25So sánh HTTP và HTTPS
• HTTPS viết tắt của Hyper Text
Transfer Protocol Secure (giao thức
truyền tải siêu văn bản bảo mật) là
phiên bản an toàn của HTTP, là sự kết
hợp giữa giao thức HTTP và giao thức
bảo mật SSL, TLS nhằm tạo nên một
rào chắn an ninh, bảo mật khi truyền
tải các thông tin trên mạng Internet
Chữ 'S' ở cuối HTTPS là viết tắt của
"Secure" (Bảo mật) Nó có nghĩa là tất
cả các giao tiếp giữa trình duyệt và
trang web đều được mã hóa
• Tóm lại, HTTPS là loại giao thức giúp đảm bảo các yếu tố cơ bản của thông tin, bao gồm:
Confidentiality: Sử dụng phương thức mã
hóa (encryption) để đảm bảo các thông điệp được trao đổi giữa client và server không bị kẻ thứ ba (hackers) đọc được.
Integrity: Sử dụng phương thức hashing
để cả người dùng (client) và máy chủ (server) đều có thể tin tưởng rằng các thông điệp chuyển giao qua lại là toàn diện và không qua bất kì chỉnh sửa nào.
Authenticity: Sử dụng chứng chỉ số
(digital certificate) để giúp client có thể tin tưởng rằng server/website mà họ đang truy cập thực sự là server/website “chính chủ”.
Trang 26đơn vị thiết kế web, các công
ty tại Việt Nam
Trang 27Lợi ích của giao thức HTTPS
• HTTPS đóng vai trò quan trọng
trong các loại website có thực hiện các giao dịch mua bán, chuyển tiền điện tử hoặc chuyển giao các thông tin mật của khách hàng Giao thức HTTPS cũng giúp các công ty,
doanh nghiệp đảm bảo các thông
tin lưu truyền từ máy chủ đến các
trình duyệt được đảm an toàn
Trang 28Quá trình giao tiếp giữa client và server thông qua HTTPS
1. Client gửi request cho một secure page (có URL bắt đầu với https://)
2. Server gửi lại cho client certificate của nó.
3. Client (web browser) tiến hành xác thực certificate này bằng cách kiểm tra
(verify) tính hợp lệ của chữ ký số của CA được kèm theo certificate.
4. Client tự tạo ra ngẫu nhiên một symmetric encryption key (hay session
key), rồi sử dụng public key (lấy trong certificate) để mã hóa session key này
và gửi về cho server.
5. Server sử dụng private key (tương ứng với public key trong certificate ở
trên) để giải mã ra session key ở trên.
6. Sau đó, cả server và client đều sử dụng session key đó để mã hóa/giải mã
các thông điệp trong suốt phiên truyền thông.