1. Trang chủ
  2. » Luận Văn - Báo Cáo

Click Jacking

61 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

Clickjacking là một kỹ thuật tấn công lừa đảo trong đó kẻ tấn công lừa người dùng nhấp vào một phần tử trên trang web khác mà họ không hề hay biết. Kẻ tấn công thường làm điều này bằng cách chèn một trang web độc hại hoặc một phần tử HTML vô hình lên trên một trang web hợp pháp. Khi người dùng nhấp vào một nút hoặc liên kết, họ thực sự nhấp vào phần tử mà kẻ tấn công đã chuẩn bị sẵn.

Trang 1

CHƯƠNG I: TỔNG QUAN TẤN CÔNG CLICKJACKING 8

1.1 VÀI NÉT VỀ TẤN CÔNG CLICKJACKING 8

1.2 KHÁI NIỆM TẤN CÔNG CLICKJACKING 10

1.3 THỰC HIỆN TẤN CÔNG CLICKJACKING 10

1.4 MỐI ĐE DỌA CỦA CLICKJACKING 12

1.5 MỘT SỐ KỸ THUẬT TẤN CÔNG CLICKJACKING 13

1.5.1 Che giấu đối tượng mục tiêu 13

1.5.2 Giả mạo con trỏ chuột 14

1.5.3 Strokejacking 15

1.5.4 Chèn đối tượng mục tiêu khi người dùng đang nhấp chuột 15

1.6 CÁC VẤN ĐỀ PHÒNG THỦ CHỐNG CLICK JACKING 16

1.6.1 Toàn vẹn mục tiêu hiển thị 16

1.6.2 Toàn vẹn con trỏ văn bản 17

1.6.3 Toàn vẹn thời gian 17

Trang 2

CHƯƠNG II: PHÂN LOẠI TẤN CÔNG CLICKJACKING VÀ PHƯƠNG PHÁP

PHÒNG CHỐNG 22

2.1 CÁC KIỂU TẤN CÔNG CLICKJACKING 22

2.1.1 Tương tác với một Frame ẩn 22

2.1.2 Sử dụng javascript 23

2.1.3 Tấn công qua lỗ hổng phần mềm 24

2.1.4 Kết hợp các cách tấn công trên các lỗi phổ biến như XSS, CSRF 25

2.2 CÁC BIẾN THỂ MỚI CỦA CLICKJACKING 31

2.2.1 Tấn công giả mạo con trỏ để chiếm quyền điều khiển Webcam 31

2.2.2 Tấn công double- click ăn cắp dữ liệu người dùng 31

2.3 CÁC PHƯƠNG PHÁP PHÒNG CHỐNG CLICKJACKING 32

2.3.1 Đảm bảo tính toàn vẹn thông tin hiển thị 32

CHƯƠNG III: DEMO LIKEJACKING 40

3.1 MỤC ĐÍCH CỦA DEMO TẤN CÔNG LIKEJACKING 40

3.2 CÁCH PHÒNG CHỐNG 41

3.2.1 Tắt Java Script trên trình duyệt web 41

3.2.2 Vô hiệu hoá Frame ẩn trên trình duyệt 44

3.2.3 Chèn đoạn code JavaScript vào trang web để ngăn chặn các Frame ẩn có trong trang web 45

CHƯƠNG IV: DEMO CLICKJACKING 46

4.1 MỤC TIÊU KIỂM TRA CLICKJACKING 46

4.2 PHƯƠNG THỨC KIỂM TRA CLICKJACKING 47

4.1.1 Bỏ qua Bypass Clickjacking 48

4.1.2 Bảo vệ phía máy khách: Frame Busting 48

4.1.3 Bảo vệ phía máy chủ: X-Frame-Options 52

4.1.4 Tạo Proof of Concept 53

4.3 DEMO CLICKJACKING 56

KẾT LUẬN 60

TÀI LIỆU THAM KHẢO 61

Trang 3

DANH MỤC HÌNH ẢNH

Hình 1: Facebook cũng từng là nạn nhân của Clickjacking worm 12

Hình 2: CSS opacity làm cho các iframe trong suốt 13

Hình 3: CSS pointer-events: none để vô hiệu hóa thao tác nhấp chuột 13

Hình 4: Mô phỏng sự di chuyển của con trỏ 14

Hình 5: Giả mạo con trỏ chuột 14

Hình 6: Strokejacking 15

Hình 7: Kỹ thuật tấn công “bait-and-switch” 15

Hình 8: Kỹ thuật tấn công “whack-a-mole” 16

Hình 9: Kẻ tấn công chèn nút Like ẩn 18

Hình 10: Clickjacking - Sensitive Click-Based Action 19

Hình 11: Clickjacking - Form Input 20

Hình 12: Ví dụ về Frame ẩn 22

Hình 13: Kết quả hiển thị 23

Hình 14: Nút like trong suốt ở vị trí con trỏ chuột chứa mã Javascript 24

Hình 15: Bảng điều khiển Adobe Security Settings 25

Hình 16: Tấn công giả mạo con trỏ để chiếm quyền điều khiển webcam 31

Hình 17: Tấn công Double-click 32

Hình 18: Đảm bảo toàn vẹn mục tiêu hiển thị 35

Hình 19: Hiệu ứng Lightbox 37

Hình 20: Hiệu suất của InContex 38

Hình 21: Web giả mạo chứa javascript 40

Hình 22: Link giả mạo 41

Hình 23: Tắt Java Script ở trình duyệt Google Chrome 42

Hình 24: Tắt JavaScript ở trình duyệt MozillaFirefox 16.0 43

Hình 25: Tắt Java Script ở trình duyệt IE 44

Hình 26: Vô hiệu hoá Frame ẩn trên trình duyệt Firefox 45

Hình 27: Tạo Proof of Concept 53

Hình 28: Trang độc hại 56

Hình 29: 1 trang web bình thường 56

Hình 30: Hacker đã nhúng trang web thật vào web giả 57

Hình 31: Thẻ div đè lên web thật 57

Hình 32: Cho thẻ a vào thẻ div 58

Hình 33: Người dùng ko chú ý tên miền nếu click vào sẽ ra link Facebook của hacker 58

Hình 34: Facebook của hacker sau khi người dùng click vào 59

Trang 4

DANH SÁCH TỪ VIẾT TẮT

CSSCascading Style SheetNgôn ngữ quy định cách trình bàycủa các thẻ HTML trên trang webXSSCross-site ScriptingLỗ hổng cho phép hacker có thể

chèn những đoạn mã client-script(thường là Javascript hoặcHTML) vào trang web, khi ngườidung vào những trang web này,mã độc sẽ được thực thi trên máycủa người dùng

ASPActive Server PageCung cấp một khung làm việc chocác ứng dụng phía Server

PHPHypertext PreprocessorNgôn ngữ lập trình kịch bản haymột loại mã lệnh chủ yếu đượcdung để phát triển các ứng dụngviết cho máy chủ, mã nguồn mở.Nó rất thích hợp với web và cóthể dễ dàng nhúng vào trangHTML.

CGICommon Gateway Interface Một phương pháp cho phép giaotiếp giữa server và chương trìnhnhờ các định dạng đặc tả thông tin

Trang 5

JSPJavaServerPagesCông nghệ cho phép thực hiện dễdàng việc viết các trang web động(dĩ nhiên ta cũng có thể viết cáctrang web tĩnh với JSP) Cụ thể,một trang JSP là một trang HTML(hay XML) trong đó có trộn lẫncác mã Java, tức các thành phầnJSP, cho phép thực hiện nộidung động.

MLHyperText Markup Language Ngôn ngữ đánh dấu siêu văn bản Một ngôn ngữ đánh dấu đượcthiết kế ra để tạo nên các trangweb với các mẩu thông tin đượctrình bày trên World Wide Web

-APIApplication Programming

InterfaceGiao diện lập trình ứng dụng - làmột giao tiếp phần mềm chẳnghạn như giữa chương trình và hệđiều hành

FCross-site Request ForgeryKỹ thuật tấn công bằng cách sửdụng quyền chứng thực của ngườidùng đối với một website

Trang 6

LỜI MỞ ĐẦU

Trong những năm gần đây, sự phát triển nhanh của hệ thống mạng Internet hiệnnay, thời gian đã cho thấy rằng các ứng dụng web đã trở nên phức tạp hơn để cung cấpcác chức năng mới với các tính năng sử dụng nhiều hơn hoặc chỉ đơn giản tạo ra sự bắtmắt cho người sử dụng Nhưng mức độ phức tạp hơn không phản ánh rằng khả năng bảomật sẽ tốt hơn Luôn có những cuộc tấn công mới có thể bị bỏ qua bởi các cơ chế bảo vệhiện có Vì vậy, các kỹ sư phần mềm phải chú ý để phát triển các ứng dụng web an toàn.

Thủ thuật clickjacking, tức nội dung trong đường link người dùng bấm vào đã bịthay đổi mà họ không hay biết, được giới bảo mật đánh giá là một trong những nguy cơnghiêm trọng mới trên Internet Phương pháp clickjacking được thực hiện nhờ một khungnội tuyến (iframe) cho phép cửa sổ trình duyệt chia thành nhiều phần để các nội dungkhác nhau có thể hiển thị trên từng phần đó Khi khách truy cập bấm chuột vào mục chứakhung nội tuyến độc, cuộc khai thác sẽ diễn ra đúng theo kế hoạch của kẻ tấn công.

Kiểu tấn công mới này xảy ra trên hầu hết các trình duyệt từ Internet Explorer,Firefox, Opera, Safari cho đến bản gần đây nhất Google Chrome Microsoft và Mozillacùng thừa nhận không dễ có giải pháp khắc phục cho vấn đề nghiêm trọng này Với đề tài

“Tìm hiểu Clickjacking và phương pháp phòng chống Clickjacking”, chúng em xin trình

bày rõ hơn về bản chất, phương thức hoạt động và đưa ra các giải pháp phòng ngừa, ngănchặn loại hình tấn công mới này.

Trang 7

CHƯƠNG I: TỔNG QUAN TẤN CÔNG CLICKJACKING1.1 VÀI NÉT VỀ TẤN CÔNG CLICKJACKING

Năm 2008 Robert Hansen và Jeremiah Grossman khám phá ra hàng loạt lỗi mớitrong cơ sở hạ tầng internet nhu trình duyệt, website và những plug-in phổ biến dẫn tớihàng tá nguy cơ bảo mật ảnh hưởng dến mọi người dùng web, một thuật ngữ bảo mật mớira đời: Clickjacking.

Robert Hansen (nhà sáng lập và điều hành hãng SecTheory) và Jeremiah Grossman(giám đốc công nghệ tại hội nghị Whitehat Security) đặc biệt nhấn mạnh những khámphá của mình về mức độ nguy hiểm đối từ clickjacking, thuật ngữ ám chỉ một nguy cơbảo mật thật sự đe dọa ngành công nghiệp bảo mật hiện nay.

Nó diễn ra qua việc lừa đảo mọi người click vào một liên kết với vẻ ngoài “trongsạch” trong một trình duyệt, ví dụ như một nút nhấn để lưu 1 bài báo online đang đọc vàomạng xã hội lưu trữ Digg chứ không chỉ đơn thuần là nhấn vào các liên kết lừa đảo nhưtrước đây tin tặc hay sử dụng Cách thức đã thay đổi và cả Hansen cùng Grossman đềucho rằng hầu hết các trình duyệt đều không đương đầu được với clickjacking.

Một cuộc tấn công clickjacking có thể dựa trên một thiết kế cơ bản trong HTML chophép các website nhúng nội dung từ các trang web khác Nội dung nhúng có thể được ẩnvà người dùng web hoàn toàn không biết đang tương tác với nó Một dạng thức khác củaclickjacking lại nhằm vào những plug-in phổ biến hiện nay là Adobe Flash Player hayMicrosoft Silverlight Thực chất, clickjacking đã xuất hiện từ một vài năm trước nhưng từsau những khám phá mới của Hansen và Grossman thì clickjacking mới lộ rõ khả năngthực sự của mình.

“Có nhiều dạng clickjacking” - Hansen bày tỏ sự lo âu của mình về mối nguy cơ củaclickjacking khá đa dạng “Một vài loại yêu cầu quyền truy cập cross-domain, một sốkhác lại không Một vài loại bao phủ toàn bộ các trang bên trên 1 trang, một vài tin tặc sẽdùng iframe để đưa bạn click vào một điểm Một số khác yêu cầu JavaScript và một số lạikhông”.

Hansen đã lên 1 danh sách 12 trường hợp có thể khai thác clickjacking trong trìnhduyệt, plug-in và website Tuy nhiên, đây không phải là tất cả.

Adobe Flash Player là nạn nhân tầm cỡ của clickjacking Ý tưởng khai thácclickjacking dựa trên những nhân tố ẩn của Flash dẫn dắt người đến các trang web giảmạo Hãng Adobe đang ráo riết nghiên cứu trên lỗi này trước khi nó bị phát tán công khaivà không quên bày tỏ sự cảm kích Hansen và Grossman đã giữ kín lỗi nguy hiểm này.Trước mắt, người dùng web nên theo sự hướng dẫn thiết lập của Adobe cho Flash Playerđể tránh những cuộc tấn công từ clickjacking trước khi có bản vá chính thức được pháthành.

Trang 8

Đến năm 2010, tại cuộc hội thảo hacker - Black Hat Europe vừa mới kết thúc tạiBarcelona, chuyên gia bảo mật người Anh - Paul Stone đã trình diễn 1 phương thức tấncông hoàn toàn mới của clickjacking attack.

Bài trình diễn của Stone không giới hạn số lượng kích chuột, có thể điền giá trị textvà form, đọc văn bản đang được mở trên trình duyệt của nạn nhân hoặc các trang webnguồn khác Đồng thời Stone cũng tận dụng tối đa khả năng kéo – thả, được cung cấp bởihàm API, hiện nay đã được trang bị trong hầu hết các trình duyệt hiện nay như InternetExplorer, Firefox, Chrome và Safari Bên cạnh việc “chỉ định” nạn nhân kích vào nhữngđối tượng được điểu khiển sẵn, Stone còn trình diễn khả năng “điều khiển” người sử dụngkéo 1 đối tượng bất kỳ, 1 chuỗi ký tự text từ cửa sổ hoặc form có sẵn vào 1 module “vôhình” nào đó

Điều này có thể được giải thích như sau, người sử dụng đăng nhập vào 1 trang xã hộihoặc 1 trang web nào đó, khi mở tiếp 1 trang web từ trang nguồn này thông qua 1 khunghình ẩn được dựng sẵn, tất nhiên người sử dụng không hề biết được sự tồn tại này Theoý kiến của Stone, chính sách hoạt động theo cùng nguồn gốc của các trình duyệt khôngthể hiện nhiều hành động phản kháng trong tình cảnh này, và các thành phần trong trangweb đó sẽ tự động bị chuyển đổi từ site bất kỳ sang site được dựng sẵn dựa vào hànhđộng “vô tình” của người sử dụng Sử dụng phương pháp này, Stone có thể phá vỡ nhữnghạn chế nhằm ngăn chặn giả mạo những yêu cầu tương tự như cross-site.

Ngược lại, tính năng kéo – thả còn được sử dụng để sao chép nội dung từ cửa sổ củangười sử dụng sang cửa sổ làm việc của kẻ tấn công Cũng theo Stone, điều này có thểđược sử dụng để truy cập vào mã HTML của trang web, bao gồm các hàm ID hoặc chuỗinhận dạng token Và thông qua cơ chế này, kẻ tấn công sẽ dễ dàng chèn thêm các hàmđiều khiển khác

Các cuộc tấn công như vậy ngày càng trở nên tinh vi khi Java và mã Javascript đượcnhúng vào hệ thống Cũng theo Stone, hàm kéo – thả API của Java còn mạnh hơn so vớicủa trình duyệt Lợi dụng điểm này, những kẻ tấn công sẽ phân chia và đánh dấu văn bảndưới dạng text bằng cách kéo – thả nội dung chỉ với 1 cú click duy nhất Khi kết hợp tínhnăng này với với các phương thức tấn công khác thông qua Javascript, có thể đặt lệnh kéothả tại bất cứ thời điểm nào, ngay cả khi con trỏ chuột chưa di chuyển đến các vị trí đượcchỉ định bởi Java applet hoặc khi nạn nhân không nhấn và giữ phím chuột trái

Bên cạnh đó, Java còn hỗ trợ tính năng tự động điền mẫu nhanh hơn Thay cho việcphải chờ từng hành động kích chuột của nạn nhân, kẻ tấn công có thể hoàn thành formnội dung chỉ trong 1 thao tác duy nhất “Spraying”, cách gọi vắn tắt của phương thức này,có thể hoạt động trong nền tảng Windows và Mac OS X, nhưng không thể áp dụng đốivới Linux

Trang 9

Tuy nhiên, những kiểu tấn công này có thể bị chặn bởi những hệ thống web server tincậy, khi gửi đi yêu cầu với nội dung "X-FRAME-OPTIONS: DENY" đến header của 1trình duyệt bất kỳ nào đó, điều này sẽ bảo vệ và cho phép trang web hiển thị trong 1khung (frame) duy nhất Tuy nhiên, chỉ có các phiên bản trình duyệt mới nhất hiện naynhư mới có khả năng “nhận thấy” tùy chọn này Stone cũng chỉ ra rằng, đối với nhữngtrang web có lưu lượng truy cập lớn hoặc rất lớn như facebook.com, googlemail.com vàtwitter.com đã có thể chống lại nạn clickjacking, nhưng bên cạnh đó, theo nhận định củacác chuyên gia bảo mật khác, các phiên bản dành cho mobile hoặc smartphone của cáctrình duyệt này cũng đã được tối ưu hóa với mức cao nhất để phòng tránh nguy cơ bị tấncông qua clickjacking.

1.2 KHÁI NIỆM TẤN CÔNG CLICKJACKING

Clickjacking (còn được gọi là "UI redress attack") là một thuật ngữ diễn tả việc lừangười sử dụng click chuột vào một liên kết nhìn bề ngoài có vẻ "trong sạch" trong cáctrang web, tuy nhiên qua cú click chuột đó hacker có thể lấy được các thông tin bí mậtcủa người sử dụng hay kiểm soát máy tính của họ.

Khi thực hiện một cú click, người dùng nghĩ là mình nhấn chuột lên một đối tượngđang hiển thị trên màn hình, nhưng thực ra lại đang truy cập vào một trang web hoàn toànkhác Điều đó xảy ra là do một số tính chất của ngôn ngữ HTML đã bị lợi dụng như: Mộttrang web có thể chứa một trang web khác bằng cách sử dụng thẻ iframe Các phần tử củatrang web (HTML element) có thể tồn tại ở dạng hiện rõ, bị làm mờ, hoặc bị ẩn hoàntoàn Nếu các HTML element chồng lên nhau thì thứ tự chồng chất được quyết định bởimột tham số đặc biệt, gọi là z- index.

Như vậy, một phần tử HTML có thể được thiết lập để đặt trước tất cả mọi phần tửHTML khác, nhưng lại tồn tại ở dạng ẩn và phần tử HTML đó có thể là một trang webđược tải về nhờ thẻ iframe Trong cách thức tiến hành tấn công Clickjacking, kẻ tấn côngsẽ dùng thẻ iframe để mở một trang web mà chúng muốn người dùng nhấn chuột vào,đồng thời đặt iframe (được thiết lập ở chế độ ẩn) đó phía trên trang web đang được hiểnthị trên trình duyệt của người dùng Việc này có thể thực hiện được bằng cách sử dụngCascading Style Streets (CSS), với tham số opacity để thiết lập tính ẩn và tham số z-index để thiết lập thứ tự xếp chồng Kết quả là khi người dùng nhấn chuột vào trang webmà anh ta đang xem thì cú nhấn chuột đó lại được tính là thực hiện trên trang web (ẩn)của kẻ tấn công Để người dùng nhấn chuột vào đúng vị trí mà kẻ tấn công mong muốn,chúng sẽ sử dụng tính năng định vị tuyệt đối của CSS để thiết lập cho vị trí đó trùng vớivị trí của vùng trên trang web đang hiện mà có nhiều khả năng người dùng sẽ nhấn chuộtvào.

1.3 THỰC HIỆN TẤN CÔNG CLICKJACKING

Ban đầu, Clickjacking được hacker sử dụng để kiếm tiền quảng cáo trên mạng Đểthực hiện Clickjacking, kẻ tấn công sẽ lôi kéo người dùng truy cập vào trang web đã bị

Trang 10

cài mã Clickjacking Cách sơ đẳng nhất (nhưng vẫn được dùng khá phổ biến hiện nay) đểkhiến người dùng nhấp chuột, đó là hiển thị một thông báo trên trang web mà người dùngđang xem, rằng anh ta đã trúng một giải thưởng nào đó, rồi yêu cầu người dùng truy cậpvào đường link nhất định để xem chi tiết chương trình trúng thưởng đó.

Nếu người dùng tin vào thông báo và nhấn chuột có thể vào đường link “Cách nhậngiải thưởng” thì cú nhấn chuột được tính là nhấn vào dòng quảng cáo cho Amazon củaBing (được đặt ở chế độ ẩn) Kết quả là kẻ tấn công sẽ được trả một khoản tiền nhất định.Tuy nhiên, hình thức tấn công này cũng có thể được sử dụng với mục đích khác, ví dụnhư lừa người dùng nhấn vào nút “Retweet” hay nút “Like” cho những dòng tin của kẻtấn công, hoặc quy mô hơn, như cài một Web Shell server lên máy chủ web.

Việc sử dụng Clickjacking có thể cài (trái phép) một Web Shell server lên một máychủ web Tấn công này thực ra chỉ hướng đến một ứng dụng cụ thể, nhưng rất phổ biếnhiện nay, đó là WordPress Nguyên nhân dẫn đến khả năng tấn công không chỉ nằm trongbản thân WordPress mà còn do các mô đun mở rộng (plugin) Việc mở trang để cài đặtplugin là quá đơn giản Trong trang quản trị website, chỉ cần mở kho lưu trữ ra, chọn mộtplugin và nhấn nút Install Now (tương tự như trongFireFox) Như vậy, không gì có thểngăn cản tải trang web này vào một iframe ẩn và đánh lừa cho nạn nhân nhấn lên nútInstall Now Tuy nhiên, bằng cách đó thì plugin mới chỉ được cài đặt chứ chưa được kíchhoạt Nhưng có thể biết chính xác rằng file plugin đó (được phân phối dưới dạng file nénZip) nằm ở một thư mụcnhất định và có thể truy cập được Vấn đề là ở chỗ, cần phải càiplugin nào để đạtđược mục đích Có hai sự lựa chọn là: đưa vào kho chứa một plugin cótính năng Trojan (và thực hiện Clickjacking để plugin đó được cài đặt) hoặc tìm mộtplugin có lỗ hổng bảo mật và khai thác nó.

Dù rằng tấn công trên đây đã mang lại hiệu quả ấn tượng (lấy được shell),nhưng kỹthuật Clickjacking được sử dụng trong đó là quá đơn giản Có những kỹt huậtClickjacking phức tạp hơn nhiều, giúp mở rộng khả năng mà kẻ tấn công cóthể đạt được,ví dụ như:

Có thể khiến người dùng không chỉ đơn giản là nhấn chuột, mà còn thực hiện kéo thả các đối tượng Ví dụ, dịch chuyển một đoạn text vào form Hoặc có thểdịchchuyển text ra khỏi iframe, qua đó kẻ tấn công đạt được khả năng thu được cácdữ liệuhữu ích (như thông tin ẩn trên các mạng xã hội chẳng hạn).

Khiến người dùng nhập dữ liệu (như mật khẩu) vào form.

- Có thể điều khiển vùng hiển thị trong iframe thông qua anchor để định vị thuận tiệnhơn.

Trang 11

- Có thể thiết kế một iframe ẩn dõi theo sự di chuyển của con trỏ chuột để “cướp lấy”sự kiện nhấn chuột, không cần biết người dùng đã nhấn chuột ở vị trí nào Và nhưthế, không phải quan tâm đến vấn đề định vị nữa.

- Có thể thiết kế để người dùng thực hiện nhiều cú nhấn chuột ở các vị trí nhất định.Cách đây không lâu, bằng cách này, hacker đã tấn công lên Flash Player và giànhđược quyền truy cập tới webcam và microphone trên máy tính của người dùng.

1.4 MỐI ĐE DỌA CỦA CLICKJACKING

Tấn công clickjacking hiện cũng là vấn đề nan giải của tất cả các nhà phát triển trìnhduyệt web Clickjacking là hình thức đưa một trang web cải trang vào vị trí của websitekhác đồng thời cho phép tin tặc xem thông tin truy cập của người dùng và những hoạtđộng của họ Ví dụ, khi một người nào đó đang truy cập vào website ngân hàng, tin tặccó thể sử dụng clickjacking để xem thông tin tài khoản ngân hàng và mật khẩu mà nạnnhân không hề hay biết.

Kỹ thuật tấn công Clickjacking được kẻ tấn công sử dụng rộng rãi trên các mạng xãhội Ví dụ điển hình là trang mạng xã hội Facebook như việc kẻ tấn công sử dụng kỹthuật tấn công kỹ nghệ xã hội (Social engineering) để đánh lừa người dùng kích chuộtvào nút like facebook với nội dung sai lệch với hình ảnh từ một trang web của tổ chức từthiện Khi nạn nhân hiểu việc làm của mình là có ích, đã kích chuột vào nút like và sau đótrên trình duyệt sẽ mở ra trang mới có thể chứa mã độc theo kịch bản mà kẻ tấn công đãdựng trước Một kẻ tấn công Clickjacking thường khai thác một hệ thống không có khảnăng duy trì tính toàn vẹn ngữ cảnh cho hành động của người sử dụng và do đó nó có thểthao tác các yếu tố nhạy cảm với trực quan để đánh lừa người dùng.

Facebook cũng từng là nạn nhân của Clickjacking worm (được Sophos đặt tênlà Troj/Iframe -ET) khi người sử dụng nhìn thấy một liên kết có dạng:

Trang 12

Hình 1: Facebook cũng từng là nạn nhân của Clickjacking worm

1.5 MỘT SỐ KỸ THUẬT TẤN CÔNG CLICKJACKING

1.5.1 Che giấu đối tượng mục tiêu

Sử dụng thuộc tính CSS opacity (làm cho các iframe trong suốt) để che giấu đốitượng web cần click vào và z-index để hiển thị đối tượng web dùng để lừa.

Hình 2: CSS opacity làm cho các iframe trong suốt

Lấy đối tượng dùng để đánh lừa phủ lên đối tượng mục tiêu và sử dụng thuộc tínhCSS pointer-events: none để vô hiệu hóa thao tác nhấp chuột lên đối tượng dùng đểđánh lừa.

Trang 13

Hình 3: CSS pointer-events: none để vô hiệu hóa thao tác nhấp chuột

1.5.2 Giả mạo con trỏ chuột

Ẩn con trỏ chuột thật, thay thế bằng con trỏ chuột giả bằng cách sử dụng thuộc tínhCSS cursor: none và sử dụng javascript để mô phỏng sự di chuyển của con trỏ thật.

Trang 14

Hình 4: Mô phỏng sự di chuyển của con trỏ

Hình 5: Giả mạo con trỏ chuột

1.5.3 Strokejacking

Đánh lừa người dùng gõ chuỗi ký tự khi con trỏ chuột đang đặt vào các form nhập dữ liệu Kẻ tấn công có thể lừa người dùng nhập vào một số thông tin không mong muốn vào trang web mục tiêu.

Trang 15

Hình 6: Strokejacking

1.5.4 Chèn đối tượng mục tiêu khi người dùng đang nhấp chuột

Để tấn công bằng kỹ thuật này, kẻ tấn công có thể lừa người dùng tham gia trò chơi yêu cầu nhấp chuột nhanh nhất.

Hình 7: Kỹ thuật tấn công “bait-and-switch”

Trang 16

Hình 8: Kỹ thuật tấn công “whack-a-mole”

1.6 CÁC VẤN ĐỀ PHÒNG THỦ CHỐNG CLICK JACKING

Phân loại việc thoát khỏi những cuộc tấn công buộc người sử dụng trong việc ban hành lệnh đầu vào ngoài bối cảnh của giao diện thực thi gồm:

Toàn vẹn mục tiêu hiển thị: đảm bảo người dùng có thể nhìn thấy đầy đủ và nhận

ra phần tử đích trước khi người dùng thực hiện hành động nhập vào.

Toàn vẹn con trỏ văn bản: đảm bảo người dùng có thể trả lời phản hồi con trỏ để

chọn những vị trí cho những sự kiện nhập vào.

Toàn vẹn thời gian: đảm bảo người dùng có đủ thời gian để hiểu họ đang nhấp

chuột vào đâu.

1.6.1 Toàn vẹn mục tiêu hiển thị

Giấu phần tử mục tiêu:

Các trình duyệt hiện đại ngày nay đều hỗ trợ các đặc tính tạo kiểu HTML/CSS chophép kẻ tấn công giấu phần tử mục tiêu khi nhìn bằng mắt nhưng phần tử đích đó sẽ lộ rakhi kích chuột tới nó Ví dụ, một kẻ tấn công có thể làm rõ ràng phần tử mục tiêu bằngcách gói nó trọng một vật chứa với CSS có giá trị đồ mờ bằng 0, để dụ dỗ được nạn nhânvào nó, kẻ tấn công có thể kéo tới một cái bẫy dính trước dưới phần tử đích bằng sách sửdụng chỉ số CSS thấp hơn z-index( z-index là thuộc tính của CSS, thiết lập thứ tự xếpchồng nhau của một thành phần vị trí Thứ tự chồng nhau được sắp xếp dựa theo giá trịsố, thành phần HTML nào có chỉ số z-index cao hơn sẽ nằm trên, ngược lại sẽ nằm dưới,mặc định là giá trị 0) Kẻ tấn công hoàn toàn có thể bao quát các yếu tố mục tiêu với mộtnhử mờ đục nhưng mà không thể kích chuột vào mồi nhử đó bằng cách thiết lập các sựkiện con trỏ trong CSS Những cú kích chuột của nạn nhân sẽ bị rơi vào bẫy và nằm vàophân vùng chứa phần tử mục tiêu không nhìn thấy được

Che giấu một phần của phần tử mục tiêu:

Trang 17

Đôi khi, kẻ tấn công tạo ra sự nhầm lẫn cho nạn nhân khi nhìn bằng mắt thường bằngcách làm mờ đi một phần của phần tử mục tiêu Ví dụ, những kẻ tấn công có thể che giấuthông tin của chính chúng ở đầu khung thanh toán Paypal để bao quát thông tin ngườinhận và số tiền giao diện khi rời khỏi nút thanh toán- “Pay”, do đó nạn nhân sẽ rơi vàobối cảnh không đúng khi kích chuột vào “Pay” Vấn đề che giấu này có thể được thựchiện bởi thuộc tính z-index của CSS hoặc sử dụng Flash Player mà làm bởi WindowMode cao nhất cài đặt kiểu trực tiếp Hơn nữa, một phần tử mục tiêu có thể bị cửa sổpopup của kẻ tấn công che giấu.

Chia nhỏ phần tử mục tiêu:

Ngoài ra, kẻ tấn công có thể chia nhỏ phần tử mục tiêu chỉ để thể hiện một phần mụctiêu chẳng hạn như nút “Pay”, bằng cách gói phần tử mục tiêu trong một khung nội tuyếnmới Một dạng khác của việc chia nhỏ và tạo ra nhiều vật chưa điểm ảnh 1x1 của phần tửmục tiêu và dùng điểm ảnh duy nhất để vẽ ra được nghệ thuật kích chuột có thể tùy ý.

1.6.2 Toàn vẹn con trỏ văn bản

Bối cảnh thị giác phù hơp đòi hỏi không chỉ các phần tử mục tiêu mà còn tất cả cácthông tin con trỏ phản hồi để hoàn toàn có thể nhìn thấy và xác thực Một kẻ tấn công cóthể vi phạm toàn vẹn con trỏ bằng cách hiển thị một biểu tượng con trỏ giả đi từ con trỏthật và được gọi là Cursorjacking Điều này dẫn đến việc nạn nhận có nhân thức sai lầmvề vị trí con trỏ hiện tại Bằng cách sử dụng thuộc tính con trỏ của CSS, một kẻ tấn côngcó thể dễ dàng che giấu con trỏ mặc định và lập trình ra một con trỏ giả khác để thiết lậpbiểu tượng con trỏ chuột nhằm tùy chỉnh một ảnh đánh lừa thị giác người dùng mà cómột biểu tượng con trỏ chuyển dịch một số điểm ảnh ra khỏi vị trí ban đầu.

Một biến thể của thao tác liên quan đến con trỏ là con trỏ nhấp nháy thao tác chủ yếuvới bàn phím (Ví dụ, khi gõ văn bản vào một trường đầu vào) Lỗ hổng trong trình duyệtcho phép kẻ tấn công thực hiện thao tác tập trung vào bàn phím bằng cách sử dụng tấncông Strokejacking Ví dụ, kẻ tấn công có thể nhúng các phần tử mục tiêu trong mộtkhung tẩn, yêu cầu người dùng gõ một số văn bản vào để kẻ tấn công có thể kiểm soáttrường đầu vào Khi nạn nhân thực hiện đánh máy, kẻ tấn công trong giây lát có thểchuyển đổi các thao tác bàn phím vào các phần tử mục tiêu Con trỏ nhấp nháy lẫn lộnlàm nạn nhân nghĩ rằng họ đang gõ văn bản vào trường đầu vào, trong khi đó nạn nhânđang thực sự tương tác với phần tử mục tiêu.

1.6.3 Toàn vẹn thời gian

Các cuộc tấn công trong hai phần trên thao tác với bối cảnh thị giác đầu vào để lừangười dùng và gửi đến các yếu tố giao diện người dùng sai khác Một cách trực giao đểđạt được cùng một mục tiêu là để thực thi các yêu tố giao diện người dùng sau khi ngườidùng đã quyết định nhấp chuột nhưng trước khi hành động nhấp chuột thực tế xảy ra.Người dùng thường mất một vài trăm mili giây để phản ứng với những thay đổi trực quanvà kẻ tấn công có thể tận dụng lợi thế phản ứng chậm này để khởi động các cuộc tấn côngthời gian.

Trang 18

Ví dụ, một kẻ tấn công có thể di chuyển các phần tử mục tiêu thông qua thuộc tính vịtrí của CSS trên đầu trang của một nút bẫy ngay sai khi nạn nhân di chuyển con trỏ lênnút mồi bằng cách dự đoán vị trí các nhấp chuột Để dự đoán nhấp chuột hiệu quả hơn, kẻtấn công có thể yêu cầu nạn nhân nhiều lần nhấn lên đối tượng trong một trò chơi hoặcnhấn đúp chuột vào nút mồi, sau đó di chuyển các phần tử mục tiêu trong mồi ngay lậptức khi nạn nhân thực hiện cú nhấp chuột đầu tiên.

1.6.4 Hệ quả

Hiện nay, có 2 lạo hình tấn công Clickjacking phổ biến là Tweebomb và Likejacking.Trong cả hai loại hình tấn công này, nạn nhân đều bị kẻ tấn công sử dụng kỹ thuật ẩn nộidụng lừa người dùng kích chuột vào nút Tweet trên Twitter hoặc nút Like trên Facebook,sau đó tạo ra một liên kết đến trang web của kẻ tấn công và được gửi cho bạn bè ngườidùng, do đó được truyền rộng rãi trên mạng.

Tấn công Clickjacking đã tăng truy cập vào trang của kẻ tấn công mà nạn nhân khônghề hay biết.

Hình 9: Kẻ tấn công chèn nút Like ẩn

Trang 19

1.7 HẬU QUẢ CỦA TẤN CÔNG CLICKJACKING

Clickjacking - Sensitive Click-Based Action (Clickjacking dẫn tới hành động nhấpchuột gây nguy hiểm): Đây là mức độ nguy hiểm cao nhất của Clickjacking Trangweb mà hacker khai thác có chứ những nút click mang tính nguy hiểm cao mà khôngthực hiện xác thực.

Những nút Click nguy hiểm có thể bao gồm: Xóa tài khoản người dùng, xác thực 1giao dịch thông qua 1 hoặc rất ít lần nhấp chuột.

Hình 10: Clickjacking - Sensitive Click-Based Action

Clickjacking - Form Input (Clickjacking lợi dụng chức năng nhập vào form): Bêncạnh việc sử dụng các nút click để khai thác Hacker có thể lợi dụng các form input củatrang web khai thác.Ta sẽ xem xét 1 ví dụ sau: Trang web khai thác có chứa chức năngđổi mật khẩu nhưng không xác thực lại mật khẩu cũ Hacker sẽ lợi dụng Clickjackingđể lừa người dùng nhập vào 1 chuỗi ký tự vào form input của trang web mà hackerkiểm soát, nhưng thực chất là đang nhập 1 mật khẩu mới và hacker hoàn toàn biết đượcgiá trị của mật khẩu mới đó Như vậy hacker có thể chiếm được tài khoản của nạnnhân.

Trang 20

Hình 11: Clickjacking - Form Input

Form input ngoài chức năng đổi mật khẩu thì hacker có thể khai thác chức năng đổiemail người dùng nếu như không được xác thực đúng cách Bên cạnh đó chức năngđăng nhập cũng có thể được lợi dụng để khai thác tuy nhiên thì cách tấn công nàymang lại hiệu quả không quá cao.

Clickjacking -> Non-Sensitive Action (Clickjacking chứa các hành động khôngnguy hiểm): Tại mức độ này thì sự nguy hiểm của Clickjacking mang lại là không caokhi trang web đã sử dụng các phương thức xác thực tốt hoặc không chứa những nútclick dẫn tới tác động cụ thể.

Hiện tại thì lỗi trên thường được đánh mức nguy hiểm là P5 (mức độ infomation)trong trong các chương trình bugbounty Tuy nhiên không thể chắc chắn trong tươnglai trang web đó có thêm các tính năng dẫn tới nguy hiểm hay không nên vẫn tiềm ẩnrủi ro.

1.8 CÁCH PHÒNG TRÁNH TẤN CÔNG CLICKJACKING

Ngày nay để ngăn chặn tấn công Clickjacking khá dễ dàng Có 2 phương diện

để phòng tránh Clickjacking bao gồm từ phía client và server.

1.8.1 Client

Về phía Client, cách phòng tránh tốt nhất là người dùng nên cảnh giác đốivớinhững đường link lạ với các nội dung hướng người dùng đến việc click chuộtnhư:Click để nhận phần thưởng, Click để quay số vv

Đánh giá Bảo vệ Email: Cài đặt và kiểm tra bộ lọc spam email mạnh là một

cách phát hiện có hiệu quả bất kỳ loại tấn công nào trên tài khoản của bạn Tấn côngClickjacking thường bắt đầu bằng cách lừa người dùng thông qua email truy cập vàotrang web độc hại Điều này được thực hiện bằng cách triển khai các email giả mạohoặc được tạo thủ công đặc biệt trông thật Chặn email bất hợp pháp cũng làm giảmkhả năng tấn công và tấn công của các tấn công khác.

Trang 21

1.8.2 Server

Về phía Server sẽ có nhiều cách để phòng tránh Clickjacking:

Sử dụng tùy chọn X-Frame: Giải pháp này của Microsoft là một trong những giải

pháp hiệu quả nhất chống lại các cuộc tấn công clickjacking trên máy tính của bạn.Bạn có thể bao gồm tiêu đề HTTP X-Frame-Options trong tất cả các trang web củabạn Điều này sẽ ngăn không cho trang web của bạn bị nhúng vào trong 1 khung thôngqua các thẻ như: <frame>, <iframe>, <object> X-Frame được hỗ trợ bởi các phiên bảnmới nhất của hầu hết các trình duyệt bao gồm Safari, Chrome, IE.

Di chuyển các phần tử trên trang của bạn: Hacker chỉ có thể tấn công

Clickjacking khi biết nó cấu trúc của trang web và từ đó đặt được những điểm Clickẩn Bằng cách di chuyển phần tử đó liên tục đến các vị trí khác nhau, Hacker sẽ rất

khó để có thể lợi dụng lỗ hổng trên để khai thác Vấn đề duy nhất với giải pháp nàylà sẽ khiến người dùng cảm thấy khó tiếp cận và sử dụng trang web.

Sử dụng URL một lần: Đây là một phương pháp khá tiên tiến để bảo vệ chống lại

những kẻ lừa đảo Bạn có thể làm cho cuộc tấn công trở nên khó khăn hơn nhiều nếubạn sử dụng URL 1 lần vào các trang quan trọng Việc sử dụng url 1 lần khiến hackerkhông thể nhúng url vào trong trang web để thực hiện khai thác Điều này tương tự nhưnonces được sử dụng để ngăn chặn CSRF nhưng độc đáo theo cách nó bao gồm noncestrong các URL để nhắm mục tiêu các trang, không phải trong các hình thức trong cáctrang đó (khá giống với cách Wordpress sử dụng wp-nonce trên URL).

Sử dụng tường lửa ứng dụng Web: Tường lửa ứng dụng của WEF là một khía

cạnh quan trọng của bảo mật trong trường hợp doanh nghiệp có hầu hết dữ liệu của họtrên mạng Một số các công ty có xu hướng bỏ qua sự cần thiết của một và kết thúc lênbị tấn công với sự cố clickjacking lớn Dữ liệu gần đây đã chỉ ra rằng gần 70% của tấtcả các SMB đã bị tấn công trong một số năng lực trong thập kỷ qua Nó có thể làmgiảm gánh nặng của bạn, giảm đáng kể rủi ro và chi phí ít hơn mức bạn có thể phải đốimặt.

Trang 22

CHƯƠNG II: PHÂN LOẠI TẤN CÔNG CLICKJACKING VÀPHƯƠNG PHÁP PHÒNG CHỐNG

2.1 CÁC KIỂU TẤN CÔNG CLICKJACKING

Clickjacking la một kĩ thuật tương đối mới, và thực tế các nguy cơ bị Clickjacking làkhá đa dạng Trong tương lai sẽ xuất hiện nhiều biến thể của Clickjacking được hacker sửdụng.Các kiểu tấn công Clickjacking bao gồm:

 Tương tác với một Frame ẩn Sử dụng javascript

 Tấn công qua lỗ hổng phần mềm

 Kết hợp các cách tấn công trên các lỗi phổ biến như XSS, CSRF

2.1.1 Tương tác với một Frame ẩn

Tin tặc sẽ tạo ra một trang web, trong đó có chứa một frame ẩn (trong suốt đối vớingười dùng) và nội dung hiển thị sẽ lừa người dùng click vào một hoặc một vài điểm nàođó trên website Khi đó người dùng không hề biết là đang thao tác với một trang web độchại nằm trong iframe Và thông qua iframe đó, hacker có thể lấy cắp thông tin của ngườidùng hoặc thực hiện các thao tác khác.

 Iframe chưa trang web độc có thể nằm trên toàn bộ hoặc trong một phần websiteđó, tuỳ theo cách thức mà hacker đặt ra để lừa người dùng.

 Iframe có thể được điều khiển bằng javascript hoặc nằm cố định nhờ CSS.

 Iframe có thể nằm dưới hoặc nằm trên (Grapic overlaying) đối tượng lừa người sửdụng click vào.

Hình 12: Ví dụ về Frame ẩn

Trang 23

Đoạn code đơn giản về frame ẩn:<style>

Hình 13: Kết quả hiển thị

2.1.2 Sử dụng javascript

Javascript là một ngôn ngữ thông dịch, chương trình nguồn của nó được nhúng hoặctích hợp vào tập tin HTML Khi trang web được tải trong trình duyệt hỗ trợ Javascript,trình duyệt sẽ thông dịch và thực hiện các lệnh Javascript Chương trình nguồn Javascript

Trang 24

được thông dịch trong trang HTML sau khi toàn bộ trang được load nhưng trước khitrang được hiển thị.

Một biến thể mở rộng của Clickjacking cơ bản là sử dụng ngôn ngữ lập trình hướngđối tượng Javascript Nó được sử dụng để tạo ra một khung nội tuyến iframe vô hình thựchiện theo hành động của con trỏ chuột.

Một mặt, các nạn nhân bị hạnh chế để thực hiện hành động duy nhất với cú nhấpchuột đầu tiên, nhờ đó cuộc tấn công được kích hoạt bởi các khung nội tuyến Trongtrường hợp này, nạn nhân không còn cách nào khác để lựa chọn các yếu tố khác thực hiệnnhiều hơn một hành động trên trang web Tấn công Clickjacking sử dụng Javascript cóthể vô hiệu hoá cơ chế bảo vệ của trình duyệt web.

Ngoài ra, thông qua Javascript, tin tặc có thể kiểm soát được vị trí con trỏ chuột vàcác thao tác click chuột của người dùng Đồng thời có thể thay đổi vị trí một object bất kìtrên trang web, khiến người dùng bắt buộc phải click vào những vị trí chứa những liênkết độc hại nằm trên trang web đó mà không hề hay biết Từ đó, tin tặc cũng có thể tạo ramột cuộc tấn công multi-click liền mạch, có nghĩa là sau một số lần click chuột, hacker sẽngừng tấn công và trả lại quyền kiểm soát con trot cho người dùng, khiến người dùngkhông thể nhận ra được.

Hình 14: Nút like trong suốt ở vị trí con trỏ chuột chứa mã Javascript

2.1.3 Tấn công qua lỗ hổng phần mềm

Từ phiên bản 10 của Flash, Adobe đã fix lỗi hổng camera và microphone có thể khaithác được bằng Clickjacking, tuy nhiên nếu người dùng chưa update thì vẫn có thể bị tấncông Ngoài ra, các phần mềm khác như activeX hay MS SilverLight… vẫn còn tiềm ẩnnhững nguy cơ bị tấn công Clickjacking.

Trang 25

Robert Hansen và Jeremiah Crossman giới thiệu Clickjacking với một ví dụng về“Adobe Flash Player Settings Manager”, bằng cách mở URL:

Một trang web trợ giúp về Adobe Flash Player được hiển thị Ngoài ra, “cài đặt trìnhquản lý – settings manager” với thẻ đăng ký “cài đặt an ning toàn cầu – Global SecuritySettings” sẽ tự động mở, nếu người dùng cài đặt Flash.

Hình 15: Bảng điều khiển Adobe Security Settings

Như được mô tả trong bảng điều khiển trên, một trang web có thể truy cập thông tintừ các trang web khác sử dụng một hệ thống an ninh cũ Trong đó có ba tuỳ chọn, luônluôn hỏi – always ask, luôn luôn cho phép – always allow, luôn luôn chặn – always deny.Do đó, kẻ tấn công sẽ quan tâm tới việc kích hoạt tuỳ chọn “luôn luôn cho phép – alwaysallow” của bảng điều khiển Global Security Settings.

Còn ở Flash, nạn nhân sẽ được thu hút vào nút “cho phép – allow” trên một cửa sổ“Flash Player Setting Manager” vô hình, bởi các nút được hiển thị trong bối cảnh khác.Trong trường hợp này, Clickjacking có thể truy cập vào trang web của Adobe để kíchhoạt camera hoặc microphone.

2.1.4 Kết hợp các cách tấn công trên các lỗi phổ biến như XSS, CSRF

XSS (Cross-Site Scripting) là một trong những kĩ thuật hack website phổ biến nhấthiện nay bằng cách chèn vào url, chèn qua các thanh tìm kiếm hoặc chèn ở bất cứ 1textbox nào của thẻ HTML, hoặc những đoạn mã script nguy hiểm, từ đó chiếm quyền

Trang 26

điều khiển của victim hoặc thực hiện những mệnh lệnh mà hacker đưa ra CònCSRF(Cross-Site Request Forgery) là kĩ thuật tấn công bằng cách sử dụng quyền chứngthực của người dùng đối với một website, dựa vào đó hacker có thể thực thi những thaotác phải yêu cầu sự chứng thực.

Nếu một trang web bị lỗi XSS hay CSRF, hacker có thể sử dụng các cách tấn côngtrên để lừa người dùng click vào đúng vị trí bị XSS hay CSRF Qua đó, ta có thể thấyđược sự nguy hiểm của Clickjacking.

2.1.4.1 Clickjacking và XSS

XSS là một loại tấn công có thể thường thấy trong các ứng dụng web, cũng giốngnhư trường hợp của Clickjacking Khả năng của XSS bao gồm các hành vi trộm cắp dữliệu, thay đổi diện mạo trực quan của ít nhất một trang web và phân phối từ chối dịch vụđể làm cho một nguồn tài nguyên máy tính mất tính khả dụng.

Cuộc tấn công thường bắt đầu bằng việc kẻ tấn công gửi dữ liệu đầu vào cho một ứngdụng web của một máy chủ web thông qua phương thức GET của HTTP Bước đầu tiênthành công nếu dữ liệu đầu vào này được máy chủ thể hiện đến trình duyệt web Dữ liệunày được mã thành HTML, để tạo ra một tiêu đề, mã thành JavaScript để ra một cửa sổcảnh báo Vấn đề chính của các loại hình tấn công XSS là một kẻ tấn công tìm được lỗhổng trên một trang web và gửi URL, lỗ hổng đó được sử dụng để gửi dữ liệu với phươngthức GET lên trình duyệt, một nạn nhân sẽ mở URL với mã của kẻ tấn công rồi sau đó sẽthực hiện các hành động trên nó.

Eventjacking:

Eventjacking được giả định trong một trang web có tải một hình ảnh Hình ảnh đóđược xác định bởi một từ khoá “img”, chứa một thuộc tính “src” với một giá trị, giá trịnày được thiết lập bởi tham số “pic” trên thanh địa chỉ của trình duyệt thông qua phươngthức HTTP GET Ví dụ, URL sẽ có dạng như sau:

Eventjacking cũng được giả định rằng giá trị của các thuộc tính “pic” sẽ được lọc đốivới hầu hết các phần bởi máy chủ web với một danh sách đen Các lập trình viên củatrang web nên quan tâm đến xử lý sự kiện “Onclick” và dấu ngoặc kép vì cũng có thể làmột nguy hiểm của tấn công Ở URL sửa đổi này, có một cửa sổ cảnh báo như là một đầura bằng cách nhấp vào hình ảnh Ví dụ URL sau:

Vấn đề ở đây là nạn nhân cần phải thực hiện một cú nhấp chuột vào hình ảnh Điềunày có thể được thực hiện với clickjacking bằng các sử dụng iframe trong suốt như đãtrình bày.

Trang 27

Như ví dụ trên, tuỳ thuộc vào lọc XSS, có thể thêm vào xử lý sự kiện “onclick” lêntất cả các liên kết hoặc toàn bộ văn bản, cung cấp cho kẻ tấn công lựa chọn vượt ra ngài“onclick” Ví dụ như việc thực hiện hành động giữa nhấp chuột và yêu cầu của trang webtiếp theo Eventjacking là kiểu tấn công các sự kiện để mở rộng các chức năng của XSSbằng cách Clickjacking Điều này có thể được sử dụng để đọc các tập tin, có được mộtmã thông báo CSRF hoặc để thực hiện nhiều hành động nguy hiểm khác bằng cách sửdụng nạn nhân như một máy nhấp chuột tự động.

Classjacking:

CSS cung cấp các thuộc tính “class” như một bộ chọn để tạo kiểu cho một nhóm cácphần tử HTML Ở đây, từ khoá “span” có giá trị “too“ và một thẻ giá trị “bar” bên trongthuộc tính “class” Giá trị này có thể được sử dụng để xác định kích thước phông chữhoặc thuộc tính CSS cụ thể khác.

Đầu tiên “script” giữ một thẻ thuộc tính “src” với giá trị http://codejquery.com/jquery-1.4.4.js, nó là một tham chiếu đến tập tin thư viện jQuery tới JavaScript v1.4.4,jQuery là từ viết tắt một thư viện JavaScript nhằm đơn giản hoá tài liệu HTML, xử lý sựkiện, tạo hiệu ứng động và tương tác với Ajax Sau đó, hành động nhấp chuột được thựchiện, jQuery được sử dụng để ràng buộc một sự kiện nhấp chuột với sự kiện JavaScripthoặc để kích hoạt sự kiện trên một phần tử.

1 <spanclass=foo>Sometext</span>2 <aclass=barhref="http://

a>3<scriptsrc="http://code.jquery.com/jquery-4 <script>

5 $("span.foo").click(function(){6 alert(’foo’);

7 $("a.bar").click();

9 $("a.bar").click(function(){10 alert(’bar’);

11 location="http://

www.example.org"; 12 });

Trang 28

Trong trường hợp này, một cửa sổ cảnh báo sẽ được thực hiện với các nội dung “foo”sau khi nhấp chuột vào một đoạn nội dung của từ khoá “span” Sau khi đóng cửa sổ cảnhbáo, một sự kiện nhấp chuột được kích hoạt trên một từ khoá với giá trị “bar” bên trongthuộc tính “class” Tương tự với sự kiện đầu tiên, một cửa sổ cảnh báo xuất hiện với nộidung “bar” Sau khi đóng cửa sổ cảnh báo, trình duyệt sẽ chuyển hướng đến trang webhttp://www.example.org Nếu có một nhấp chuột vào liên kết www.nds.rub.de và khôngphải trên nội dung phần văn bản thì một cửa sổ cảnh báo sẽ được hiển thị với các nộidung “bar”, theo sau là một chuyển hướng đến trang www.nds.rub.de mà không phải làtrang http://www.example.org Hành vi đó được thực hiện sau thuộc tính “href”.

Tóm lại, có thể kết hợp các hành động khác nhau như một hệ quả của cú nhấp chuộtvào một yếu tố bằng các sử dụng thuộc tính “class” của CSS và thư viện jQuery củaJavaScript Các cuộc tấn công Clickjacking kết hợp với XSS rất mạnh mẽ khi có thêmcác mã JavaScript để xử lý các phần tử của lớp.

2.1.4.2 Clickjacking và CSRF

Như thường được biết đến, một giá trị duy nhất trong hình thức của một mã thôngbáo có thể ngăn chặn một tấn công CSRF hay ít nhất nó có thể được sử dụng để làm chotấn công này khó khăn hơn Vì lý do này, một mã thông báo như vậy có thể được sử dụngtrong một trường mẫu ẩn để truyền tải thông tin với một hình thức cho một máy chủ web.

Tồn tại này chỉ một sự khác biệt giữa một cuộc tấn công Clickjacking cơ bản và mộtcuộc tấn công Clickjacking với CSRF Sự khác biệt này là thay đổi giá trị thuộc tính “src”của các thẻ iframe với mã số để điền thông tin vào trong một hình thức tự động Hìnhthức có thể được điền theo cách như vậy nếu hình thức đó hỗ trợ truyền tải các giá trịhình thức thông qua các biến với pương thức GET của HTTP Trong trường hợp này,việc đó là cần thiết để mở một trang web với giá trị sửa đổi trong thanh địa chỉ Tương tựnhư vậy, có thể dùng các iframe từ khoá để mở một trang web như vậy.

Một ví dụ nổi tiếng của cuộc tấn công Clickjacking với CSR là con sâu mạng củatrang Twitter.com được công bố tháng 2 năm 2009 Nó được khởi xướng và thực hiện bởimột cuộc tấn công Clickjacking Một tính năng cơ bản của trang Twitter.com là gửi mộttin nhắn ngắn đến máy chủ web của Twitter Dạng thông tin này được gửi đến máy chủweb với sự giúp đỡ của một hình thức HTML Một thông báo ngắn có thể được nhập vàomột vùng văn bản này với một tin nhắn ngắn là sử dụng thanh địa chỉ của trình duyệt webvà nhập vào các thông điệp như một giá trị của thuộc tính “status”, bởi vì các trnag websử dụng phương thức GET để điền vào vùng văn bản tự động nếu có một giá trị của thuộctính “status” Ví dụ về một URL có tính khả thi khi gõ vào thanh địa chỉ của trình duyệtweb:

Trang 29

Http://twitter.com/home?status=Don’tClick: http//tinyurl.com/amgzs6

Sau khi yêu cầu của trang web, thông điệp “Don’t Click: http://tinurl.com/amgzs6” sẽđược dán vào vùng văn bản tự động Thông báo này bao gồm văn bản “Don’t Click” vàmột URL ngắn đề cập đến một trang web của kẻ tấn công Khi một người truy cập củaTwitter nhấp vào URL trên, một trang web sẽ được nạp vào chứa một nút “Don’t Click”:

Trang 30

Liên quan đến kỹ thuật Social Engineering, nạn nhân sẽ quan tâm để biết nhữngthông tin đằng sau nít “Don’t Click” và có thể click vào đó Đặc điểm này của nạn nhânsẽ được kẻ tấn công sử dụng Tương tự như tấn công Clickjacking cơ bản, ở đây có thể sửdụng một khung nội tuyến từ khoá trong suốt lợi dụng nút “Don’t Click” để buộc nạnnhân phải bấm vào một phần tử của khung nội tuyến Khung nội tuyến từ khoá của sâumạng được thể hiện trong đoạn code sau:

1 <IFRAME2 style={

228px;4

5 position:absolute;z-index:2;6 opacity:0;filter:alpha(op

acity=0);7 }8 scrolling="no"

9 src="http://twitter.com/home?status=Don’t Click: http://tinyurl.com/amgzs6">

10 </IFRAME>

Như trong tấn công Clickjacking cơ bản, vị trí của các khung nội tuyến trong suốt cóthể được thiết lập với mã CSS Khi nạn nhân nhấp chuột vào nút “Don’t Click” sẽ tựđộng nhấp chuột vào nút hình thức của trang twitter.com nạp bởi nội khung nội tuyến.Sau một cú nhấp chuột của nạn nhân, thông báo đó sẽ được đăng một cách tự động lênblog của nạn nhân Một số bạn bè của các nạn nhân khi đọc blog đó sẽ vô tình thực hiệntheo các liên kết đó để đến các trang web độc hại và vòng quay lây nhiễm sẽ bắt đầu.

Ngày đăng: 10/08/2024, 21:24

w