Tấốn cống bằềng XSS

Một phần của tài liệu (TIỂU LUẬN) báo cáo đồ án các GIẢI PHÁP để đảm bảo AN TOÀN bảo mật một WEBSITE (Trang 34 - 40)

M c đích chính c a cu c tấốn cống này là ằn cằốp d li u nh n d ng c a ngụ ủ ộ ữ ệ ậ ạ ủ ười dùng nh cookies và ư

các thống tin khác. Trong hấều hêốt các tr ường h p, cu c tấốn cống này đang đợ ộ ượ ử ục s d ng đ ằn ể

cằốp cookie c a ngủ ười khác. Nh chúng ta biêốt, cookie giúp chúng tối đằng nh p t đ ng. Do đó ư ậ ự ộ

v i cookie b đánh cằốp, chúng tối có th đằng nh p bằềng các thống tin nh n d ng khác. Và đấy là ớ ị ể ậ ậ ạ

m t trong nh ng lý do, t i sao cu c tấốn cống này độ ữ ạ ộ ược coi là m t trong nh ng cu c tấốn cống nguy ộ ữ ộ

hi m nhấốt.ể

Tấốn cống XSS đang được th c hi n phía client. Nó có th đự ệ ở ể ược th c hi n v i các ngốn ng l p ự ệ ớ ữ ậ

trình phía client khác nhau. Tuy nhiên, th ường xuyên nhấốt cu c tấốn cống này độ ược th c hi n v i ự ệ ớ

Javascript và HTML.

Các lo i tấốn cống XSS thạ ường g pặ

Hi u vêề các lo i tấốn cống XSS là gì, b n m i có th phịng ng a chu đáo, tránh nh ng r i ro t kyỗ ể ạ ạ ớ ể ừ ữ ủ ừ

thu t tấốn cống này. XSS gốềm 3 lo i tấốn cống hay g p, bao gốềm Refected XSS, Stores XSS và DOM ậ ạ ặ

Based XSS.

Refected XSS: Refected XSS là hình th c tấốn cống XSS đứ ượ ử ục s d ng nhiêều nhấốt trong chiêốm phiên làm vi c c a ngệ ủ i dùng m ng. Qua đó, hacker đánh cằốp các d li u ngườ ạ ữ ệ ười dùng, chiêốm quyêền truy c p và ho t đ ng c a h trên website thống qua vi c chia s đ a ch URL ch a mã đ c ậ ạ ộ ủ ọ ệ ẻ ị ỉ ứ ộ

và ch n n nhấn ‘cằốn cấu’. Hình th c tấốn cống này thờ ạ ứ ường nhằốm vào m t sốố ít n n nhấn.ộ ạ

Stored XSS: Khống giốống nh Refected XSS, Stored XSS nhằốm đêốn khá nhiêều n n nhấn cùng ư ạ

lúc. V i hình th c tấốn cống này, hacker chèn các mã đ c vào database thống qua nh ng d li u ớ ứ ộ ữ ữ ệ

đấều vào nh form, input, textarea…Khi ngư ười dùng m ng truy c p website và tiêốn hành nh ng ạ ậ ữ

thao tác liên quan đêốn các d li u đã l u, mã đ c l p t c ho t đ ng trên trình duy t c a ngữ ệ ư ộ ậ ứ ạ ộ ệ ủ ười dùng.

DOM Based XSS: D ng tấốn cống XSS thạ ường g p cuốối cùng đóặ là DOM Based XSS. Đấy là m t d ng ộ ạ

kyỗ thu t dùng đ khai thác XSS d a vào c s thay đ i HTML c a tài li u, nói cách khác là thay đ i ậ ể ự ơ ở ổ ủ ệ ổ

các cấốu trúc DOM.

Tấốn cống XSS th c hi n nh thêố nào?ự ệ ư

Tấốn cống Cross Site Scripting nghĩa là g i và chèn l nh và script đ c h i, nh ng mã đ c này thử ệ ộ ạ ữ ộ ường đ c viêốt v i ngốn ng l p trình phía client nh Javascript, HTML, VBScript, Flash… Tuy nhiên, ượ ớ ữ ậ ư

cách tấốn cống này thống th ường s d ng Javascript và HTML. Cách tấốn cống này có th đử ụ ể ược th c ự

hi n theo nhiêều cách khác nhau, ph thu c vào lo i tấốn cống XSS, nh ng mã đ c có th đệ ụ ộ ạ ữ ộ ể ược ph n chiêốu trên trình duy t c a n n nhấn ho c đả ệ ủ ạ ặ ượ ưc l u tr trong c s d li u và đữ ơ ở ữ ệ ược ch y mốỗiạ

khi ng ười dùng g i ch c nằng thích h p. Nguyên nhấn chính c a lo i tấốn cống này là xác th c đấều ọ ứ ợ ủ ạ ự

vào d li u ngữ ệ ười dùng khống phù h p, d li u đ c h i t đấều vào có th xấm nh p vào d li u ợ ữ ệ ộ ạ ừ ể ậ ữ ệ

đấều ra. Mã đ c có th nh p m t script và độ ể ậ ộ ược chèn vào mã nguốền c a website. Khi đó trình ủ

duy t khống th biêốt mã th c thi có ph i đ c h i hay khống. Do đó mã đ c h i có th đang đệ ể ự ả ộ ạ ộ ạ ể ược th c thi trên trình duy t c a n n nh n ho c bấốt kỳ hình th c gi nào đang đự ệ ủ ạ ậ ặ ứ ả ược hi n th cho ể ị

ng i s d ng. Có m t sốố hình th c tấốn cống XSS có th x y ra. Bên dườ ử ụ ộ ứ ể ả ưới là nh ng hình th c tấốn ữ ứ

cống chính c a Cross Site Scripting:ủ

Cross Site Scripting có th x y ra trên t p l nh đ c h i để ả ậ ệ ộ ạ ược th c hi n phía client.ự ệ ở

Trang web ho c form gi m o đặ ả ạ ược hi n th cho ngể ị ười dùng (n i n n nhấn nh p thống tin đằng ơ ạ ậ

nh p ho c nhấốp vào liên kêốt đ c h i).ậ ặ ộ ạ

Trên các trang web có qu ng cáo đả ược hi n th .ể ị

Email đ c h i độ ạ ược g i đêốn n n nhấn. Tấốn cống x y ra khi tin t c tm kiêốm nh ng lốỗ h ng trên ử ạ ả ặ ữ ổ

website và g i nó làm đấều vào đ c h i. T p l nh đ c h i đử ộ ạ ậ ệ ộ ạ ược tiêm vào mã l nh và sau đó đệ ược g i dử ướ ại d ng đấều ra cho ng ười dùng cuốối cùng.

1.4. Tấn công bằng CSRF

Tấn công sử dụng kỹ thuật này dành cho người am hiểu về hệ thống, có thể đã từng phát triển hệ thống đó, hoặc một mã nguồn mở, hoặc một mã nguồn nào đó đã được cơng khai code. Hacker thực hiện gửi tin nhắn dến Admin, khi admin đọc tin nhắn này trình duyệt sẽ request đến link đó và lấy cookie của trình duyệt và tiến hành hoạt động (active). Trường hợp không gửi được mail, giả sử ta biết rằng admin đang login hacker có thể gửi 1 trang web mà hacher lập ra, trong đó có đoạn code độc hại rồi gửi qua yahoo hay gì gì đó, khi đó admin viếng thăm vào và thực hiện các thao tác trên. Như vậy hacker thực hiện một truy vấn trái phép dựa vào chính người dùng.

2. Giải pháp ngăn chặn

2.1. Giải pháp ngăn chặn tấn công dịch vụ

Liên l c v i nhà cung cấốp Internet (ISP): Trong m i trạ ớ ọ ường h p liên quan đêốn m ng, khống truy ợ ạ

c p đậ ược website thì ng ười đấều tiên b n nên cấền s giúp đ đó chính là nhà cung cấốp d ch v ạ ự ỡ ị ụ

internet. B i vì h s h u nh ng kyỗ thu t m ng l p trình viên có chun mốn cao, nên có th seỗ ở ọ ở ữ ữ ậ ạ ậ ể

phấn tch đ c vấốn đêề, tm ra đích tấốn cống, và hượ ướng dấỗn b n th c hi n nh ng phạ ự ệ ữ ương pháp x ử

lý phù h p, hi u qu .ợ ệ ả

Liên h v i nhà cung cấốp host: Nhà cung cấốp host là ngệ ớ ười cung cấốp máy ch và v n hành máy ch .ủ ậ ủ

Khi các server đang b tấốn cống, h seỗ t o “lốỗ đen” đ hút các trafc (l u lị ọ ạ ể ư ượng truy c p c a m t ậ ủ ộ

website) cho đêốn khi nó t d ng l i. Khi đó dù là u cấều truy c p chính thốống hay khống chính ự ừ ạ ậ

thốống thì cũng b g t qua, đốềng th i phị ạ ờ ương pháp này seỗ b o v nh ng máy ch khách hàng khác ả ệ ữ ủ

khống b nh hị ả ưởng. Sau m t th i gian, h seỗ truyêền l i tấốt c trafc, l c l i, và cho phép các yêu ộ ờ ọ ạ ả ọ ạ

cấều chính thốống ho t đ ng bình thạ ộ ường.

Liên l c v i chuyên gia: Nêốu trang web b tấốn cống m c đ c c l n và nguy hi m, và các phạ ớ ị ở ứ ộ ự ớ ể ương pháp trên khống th gi i quyêốt để ả ược thì b n có th nh đêốn s giúp đ c a các chuyên gia, nh ngạ ể ờ ự ỡ ủ ữ

ngườ i này seỗ có nh ng máy ch c c kh ng đ điêều hữ ủ ự ủ ể ướ ng trafc, và lo i b nh ng trafc khống ạ ỏ ữ

chính thốống.

Đằng ký ch ng ch SSL: Đằng ký ch ng ch SSL và thiêốt l p giao th c liên kêốt HTTPS cho website đ ứ ỉ ứ ỉ ậ ứ ể

tằng c ng b o m t d li u và chốống l i các cu c tấốn cống t hacker, virus phát tán.ườ ả ậ ữ ệ ạ ộ ừ

2.2. Giải pháp ngăn chặn SQL Injection

L c d li u t ngọ ữ ệ ừ ười dùng: Cách phòng chốống này tương t nh XSS. Ta s d ng flter (b l c) đ ự ư ử ụ ộ ọ ể

l c các kí t đ t bi t (; “ ‘) ho c các t khóa (Select, Union) do ngọ ự ặ ệ ặ ừ ười dùng nh p vào. Nên s d ng ậ ử ụ

t vi n/ funtion đư ệ c cung cấốp b i framework vì t viêốt l i t đấều v a tốốn th i gian v a dêỗ s sót.ượ ở ự ạ ừ ừ ờ ừ ơ

Khống c ng chuốỗi đ t o SQL: S d ng parameter (tham sốố) thay vì c ng chuốỗi. Nêốu d li u truyêềnộ ể ạ ử ụ ộ ữ ệ

vào khống h p pháp, SQL Engine seỗ t đ ng báo lốỗi, ta khống cấền dùng hàm t t o đ ki m tra.ợ ự ộ ự ạ ể ể

Khống hi n th exception, massage lốỗi: K tấốn cống d a vào thống báo lốỗi đ tm ra cấốu trúc c s ể ị ẻ ự ể ơ ở

d li u. Khi có lốỗi, ta ch hi n thống báo lốỗi ch đ ng hi n th đấềy đ thống tin vêề lốỗi, tránh k tấốn ữ ệ ỉ ệ ứ ừ ể ị ủ ẻ

cống l i d ng.ợ ụ

Phấn quyêền trong Database: Nêốu ch truy c p d li u t m t sốố b ng, hãy t o m t tài kho n trong ỉ ậ ữ ệ ừ ộ ả ạ ộ ả

c s d li u, gán quyêền truy c p cho tài kho n đó ch đ ng dùng tài kho n root hay superuser. ơ ở ữ ệ ậ ả ứ ừ ả

Lúc này, dù k tấốn cống có tiêm đẻ ược SQL cũng khống th đ c d li u t các b ng chính, s hay ể ọ ữ ệ ừ ả ử

xóa d li u.ữ ệ

Backup d u li u thữ ệ ường xuyên. D li u ph i thữ ệ ả ường xuyên đ ược sao l u đ nêốu có k tấốn cống ư ể ẻ

xóa thì ta vấỗn có th khối ph c để ụ ược.

2.3. Giải pháp ngăn chặn tấn công XSS

Đ c đánh giá là d ng tấốn cống nguy hi m và mang l i nhiêều r i ro nhấốt, các bi n pháp ngằn ch n ượ ạ ể ạ ủ ệ ặ

XSS rấốt đáng đ quan tấm. Các chuyên gia hàng đấều vêề an ninh m ng khuyêốn khích s d ng 3 ể ạ ử ụ

ph ương pháp là Data validation, Filtering và Escaping đ ngằn ch n các cu c tấốn cống này.ể ặ ộ

Data validation (xác đ nh đấều vào):ị Đ m b o d li u đấều vào đả ả ữ ệ ược cung cấốp v i ngớ ười dùng m ng ạ

là chính xác. Tuy khống th ngằn ch n hoàn toàn song cách này seỗ gi m thi u khá nhiêều r i ro vêề ể ặ ả ể ủ

lốỗ h ng b o m t, tránh tấốn cống d ng Stored XSS.ổ ả ậ ạ

Filtering (l c đấều vào ngọ ười dùng): Bi n pháp này giúp tm kiêốm nh ng keyword nguy hi m có ệ ữ ể

trong phấền nh p c a ngậ ủ ười dùng đ k p th i thay thêố ho c xóa b chúng. L c đấều vào có th để ị ờ ặ ỏ ọ ể ược th c hành b i nh ng developers viêốt mã phía server.ự ở ữ

Escape: Đấy là bi n pháp ngằn ch n XSS tệ ặ ương đốối hi u qu bằềng cách thay đ i các ký t bằềng mã ệ ả ổ ự

đ c bi t. Điêều duy nhấốt b n cấền l u ý trong trặ ệ ạ ư ường h p này là tm kiêốm th vi n Escape thích ợ ư ệ

h p.ợ Ngoài ra, ng ười dùng m ng cũng nên t b o v d li u c a mình bằềng vi c c n th n khi nhấốpạ ự ả ệ ữ ệ ủ ệ ẩ ậ

vào m t link độ ược chia s nào đó. Đấy là chiêu trị hay dùng c a hacker khi tấốn cống XSS, đ c bi t ẻ ủ ặ ệ

là d ng Refected XSS.ạ

Quét mã đ c websiteộ : Đ có th s m phát hi n ra lốỗi và khằốc ph c thì m i ngể ể ớ ệ ụ ọ ười cấền s d ng các ử ụ

bi n pháp nhằềmệ quét mã đ c trên websiteộ c a mình t đó có kêố ho ch x lý tốốt h n.ủ ừ ạ ử ơ

Vêề phía doanh nghi p, đ tránh các cu c tấốn cống DOM Based XSS b n cấền t o ra m t list các th ệ ể ộ ạ ạ ộ ẻ

HTML h p l . Đốềng th i xóa b th , nh ng đo n script lốỗi và kí t nh “>”, “.ợ ệ ờ ỏ ẻ ữ ạ ự ư

2.4. Giải pháp ngăn chặn tấn công CSRF

Thống th ng đ tránh tấốn cống ta seỗ chia làm hai đốối tườ ể ng, m t là đốối tượ ộ ượng coder và hai là đốối t ượng ng ười dùng cuốối (user).

- V i đốối tớ ượng ng ười dùng cuốối thì:

H n chêố s d ng login vào h thốống khi nói chuy n tiêốp xúc v i nh ng ngạ ử ụ ệ ệ ớ ữ ườ ại l qua các kênh khác nhau, nh ng email khống rõ nguốền gốốc. Khi khống dùng h thốốngữ ệ thì l p t c logout. ậ ứ

Nên login vào m t máy riêng và khống cho ngộ ười th 2 tiêốp xúc v i máy đó. ứ ớ

Thay đ i m t kh u liên t c, và ch n nh ng m t kh u khó đốn, có kyỗ t đ c bi t. Vì hi n nay có ổ ậ ẩ ụ ọ ữ ậ ẩ ự ặ ệ ệ

rấốt nhiêều phấền mêềm dò pass. - V i đốối tớ ượng coder:

-Th c hi n t o nh ng token auto và random v i t ng máy, t ng trình duy t và thiêốt l p th i gian ự ệ ạ ữ ớ ừ ừ ệ ậ ờ

sốống cho token đó.

Khống s d ng phử ụ ương th c GET v i nh ng request mà có nh hứ ớ ữ ả ưởng đêốn CSDL. Khi lấốy d li u t ngữ ệ ừ ười dùng thì ki m tra ch t cheỗ.ể ặ

URL trong admin càng khó nh càng bí hi m càng tốốt.ớ ể

CHƯƠNG IV: MƠ HÌNH HĨA ĐƠN GIẢN NGĂN CHẶN TẤN CƠNG WEBSITE

1. Quét lỗ hổng web bằng công cụ OWASP ZAP

1.1. OWASP ZAP là gì ?

Owasp Zap – The Open Web Application Security Project được hiểu là dự án mở về bảo mật ứng dụng web. Đây là một dự án được cả cộng đồng chung tay tham gia, giúp các tổ chức có thể phát triển mở hoặc bảo trì các ứng dụng ở trạng thái an toàn. Chúng được người dùng biết đến nhiều nhất với tính năng quét lỗi bảo mật của ứng dụng web, mã nguồn mở. Owasp Zap cũng đưa ra 10 rủi ro mà bạn có thể gặp phải

- Khả năng bị tiêm nhiễm mã độc.

- Tính san lầm trong việc kiểm tra định danh cũng như các phiên làm việc.

- Thực thi mã Scrip xấu.

- Đối tượng tham chiếu khơng được an tồn tuyệt đối.

- Cấu hình an ninh có thể bị sai.

- Có thể bị lộ cấu hình nhạy cảm.

- Đơi khi cịn bị mất kiểm sốt mức độ truy cập chức năng.

- Giả mạo yêu cầu.

- Bị tấn công khi sử dụng các thành phần với những lỗ hổng bảo mật.

- Chuyển hướng khơng an tồn.

1.2. Thực hiện quét lỗ hổng web bằng OWASP ZAP

Để thực hiện dò quét lỗ hổng của một trang web ta có thể sự dụng cơng cụ chun dị qt lỗ hổng website. ở đây ta sẽ sử dụng công cụ OWASP ZAP: https://www.zaproxy.org/download/.

Khi tải xuống, một thông báo "Bạn có muốn lưu ?" xuất hiện, hãy lưu nó. Tiếp theo, sẽ xuất hiện thông báo hỏi "Bạn muốn lưu ZAP session như thế nào ?", check vào checkbox "Không lưu liên tục, chỉ lưu session khi cần" rồi nhấp vào "Bắt đầu". Như vậy, OWASP ZAP đã sẵn sàng để chạy trên máy tính, sau khi thực hiện cài đặt proxy thì ta có thể thực hiện kiểm tra lỗ hổng.

OWASP ZAP sẽ kiểm tra lỗ hổng của ứng dụng web . "Scan" nghĩa là tấn công ứng dụng web mục tiêu. Khi nhập URL của ứng dụng Web cần kiểm tra trong OWASP ZAP, quá trình scan đơn giản sẽ bắt đầu. Tùy trường hợp mà việc scan có thể được thực hiện trong vài phút, nhưng hoặc có thể mất vài giờ. OWASP ZAP sẽ gửi một số lượng lớn request đến ứng dụng Web mục tiêu. ("Request" theo thuật ngữ máy tính là "yêu cầu" hoặc "tin nhắn" được trao đổi trên hệ thống máy tính.)

Khi q trình scan đơn giản hồn tất, các lỗ hổng được tìm thấy sẽ được hiển thị ở mục "Alert (warning)" trên màn hình.

Trong đồ án này ta chỉ quét lỗ hổng trang web một cách đơn giản nhất nên bước đầu tiên ta cần thu thập thông tin địa chỉ IP của ứng dụng web. Ở đây ta sẽ thực hiện quét lỗ hổng của trang web báo Thanh Niên: https://blogtuoitre.vn/. Để quét lỗ hổng của trang web này ta có thể sử dụng chức năng Automated scan của

công cụ như sau:

Nhập URL trang web mong muốn dị qt sau đó click vào nút Attack:

Một phần của tài liệu (TIỂU LUẬN) báo cáo đồ án các GIẢI PHÁP để đảm bảo AN TOÀN bảo mật một WEBSITE (Trang 34 - 40)