Tải bản đầy đủ (.docx) (40 trang)

Tìm hiểu Clickjacking và cách phòng chống

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.15 MB, 40 trang )

1
Học viện Kỹ Thuật Mật Mã

Đề tài:
Tìm hiểu Clickjacking và cách phòng chống
Nhóm sinh viên thực hiện : Nguyễn Xuân Phong
Lưu Ngọc Toàn
Trần Trung Anh
Tháng 9 năm 2014
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 1
2
MỤC LỤC
DANH SÁCH HÌNH
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 2
3
DANH SÁCH TỪ VIẾT TẮT
Từ viết tắt Từ đầyđủ Chú giải
UI UserInterface Giaodiệnngườidùng
CSS CascadingStyleSheet
Ngônngữquyđịnh
cáchtrìn
hbàycủa cácthẻ
HTMLtrêntrangweb
XSS Cross-siteScripting
Lỗhổngchophéphacker

thểchènnhữngđoạnmãclie
nt-
script(thườnglàJavascript
hoặcHTML)vàotrangweb
,khingườidùngvàonhữngt


rênwebnày,mãđộcsẽđược
thựcthitrênmáycủangười
ASP ActiveServerPage
Cungcấpmộtkhung
làmviệc chocác
ứngdụngphíaServer
PHP HypertextPreprocessor
Ngônngữlậptrìnhkịchbản
haymộtloạimãlệnhchủyế
uđượcdùngđểpháttriểncá
cứngdụngviếtchomáychủ
,mãnguồnmở.Nórấtthích
hợpvớiwebvàcóthểdễdàn
gnhúngvàotrangHTML.
CGI CommonGatewayInterfac
e
Mộtphươngphápchophép
giaotiếpgiữaservervàchư
ơngtrìnhnhờcácđịnhdạng
đặctảthôngtin
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 3
4
JSP JavaServerPages
Côngnghệchophépthực
hi
ệndễdàngviệcviếtcáctran
gwebđộng(dĩnhiêntacũng
cóthểviếtcáctrangwebtĩnh
vớiJSP).Cụthể,mộttrangJ
SPlàmộttrangHTML

(hayXML)trongđócótrộn
lẫncác mãJava,tứccác
thành phần JSP, cho
phép thực hiện nội dung
HTML HyperText Markup
Language
Ngôn ngữ đánh dấu siêu
văn bản - Một ngôn ngữ
đánh dấu được thiết kế ra
để tạo nên các trang web
với các mẩu thông tin
được trình bày trên
World Wide Web
API Application Programming
Interface
Giao diện lập trình ứng
dụng - là một giao tiếp
phần mềm chẳng hạn
như giữa chương trình và
hệ điều hành
CSR
F
Cross-site Request Forgery
Kỹ thuật tấn công bằng cách sử
dụng quyền chứng thực của người
dùng đối với một website
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 4
5
LỜI NÓI ĐẦU
Trong những năm gần đây, sự phát triển nhanh của hệ thống mạng Internet hiện

nay, thời gan đã cho thấy rằng các ứng dụng web đã trở nên phức tạp hơn để
cung cấp cá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ắt mắ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ảo mậ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 khung nộ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 dung khá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ứa khung 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à
Mozilla cù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ìmhiểuClickjackingvàphươngphápphòngchốngClickjacking”,
chúngemxintrìnhbày
rõhơnvềbảnchất,phươngthứchoạtđộngvàđưaracácgiảiphápphòngngừa,ngănchặnl
oạihìnhtấncôngmớinày.
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 5
6
CHƯƠNG I: TỔNG QUAN TẤN CÔNG CLICKJACKING
1.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ới trong cơ sở hạ tầng internet nhu trình duyệt, website và những plug-in
phổ biến dẫn tới hà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ới ra đờ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ám phá 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
“trong sạ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ào mạ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 đều cho 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 cho phép các website nhúng nội dung từ các trang web khác. Nội dung
nhúng có thể được ẩn và 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ủa clickjacking lại nhằm vào những plug-in phổ
biến hiện nay là Adobe Flash Player hay Microsoft 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ăng thự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ủa clickjacking 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ại không”.
Hansen đã lên 1 danh sách 12 trường hợp có thể khai thác clickjacking
trong trình duyệt, plug-in và website. Tuy nhiên, đây không phải là tất cả.
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 6
7
Adobe Flash Player là nạn nhân tầm cỡ của clickjacking. Ý tưởng khai
thác clickjacking 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 khai và 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át hành.
Đế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ại Barcelona, chuyên gia bảo mật người Anh - Paul Stone đã trình diễn 1
phương thức tấn cô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ị text và 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 web nguồ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ởi hàm API, hiện nay đã được trang bị trong hầu hết
các trình duyệt hiện nay như Internet Explorer, 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ụng ké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ội hoặc 1 trang web nào đó, khi mở tiếp 1 trang web từ trang nguồn này
thông qua 1 khung hì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ông thể 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 trang web đó 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ững hạ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ủa ngườ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ỗi nhậ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 được nhú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ới củ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ản dưới dạng text bằng cách kéo – thả nội
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 7
8
dung chỉ với 1 cú click duy nhất. Khi kết hợp tính nă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éo thả 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í được chỉ đị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ệc phả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 form nộ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 đối với Linux.
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 tin cậy, khi gửi đi yêu cầu với nội dung "X-FRAME-OPTIONS:
DENY" đến header của 1 trì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 1 khung (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 nay như 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ững trang 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ủa cá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ác trì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ấn cô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ừa ngườ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ác trang web, tuy nhiên qua cú click chuột đó hacker có thể

lấy được các thông tin bí mật củ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àn khá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ột trang 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ủa trang web (HTML element) có thể tồn
tại ở dạng hiện rõ, bị làm mờ, hoặc bị ẩn hoàn toàn. Nếu các HTML element
chồng lên nhau thì thứ tự chồng chất được quyết định bởi mộ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
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 8
9
Clickjacking, kẻ tấn công sẽ 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ển thị 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ụng Cascading 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 web mà 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ới vị 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ột vào.
1.3. 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ình duyệt web. Clickjacking là hình thức đưa một trang web cải trang vào
vị trí của website khá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ặc có thể sử dụng clickjacking để xem thông tin
tài khoản ngân hàng và mật khẩu mà nạn nhâ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ột và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.
1.4. Các vấn đề về tấn công và phòng thủ chống Clickjacking
1.4.1. Thoát khỏi những tấn công Clickjacking
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.
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 9
10
• 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.4.1.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 cho phé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ộ ra khi 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ằng cá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ân và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ếp
chồ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ột nhử 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ào phâ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:
Đô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ằng cá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ấu thông tin của chính chúng ở đầu khung thanh
toán Paypal để bao quát thông tin người nhậ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ào bố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ực hiện bởi
thuộc tính z-index của CSS hoặc sử dụng Flash Player mà làm bởi Window
Mode 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ục tiê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ến mớ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 ý.
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 10
11
1.4.1.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ác thô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ầm về 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ông có 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ập biể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ếu vớ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ệt cho 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ấn công Strokejacking. Ví dụ, kẻ tấn công có thể
nhúng các phần tử mục tiêu trong một khung 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át trườ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ộn là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.4.1.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ừa ngườ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ười dù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 quan và 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ông thời gian.
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ên nú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ặc nhấ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ập tức khi nạn nhân thực hiện cú
nhấp chuột đầu tiên.
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 11
12
1.4.1.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ội dụ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ười dùng, do đó được truyền rộng rãi
trên mạng.
Hình : Kẻ tấn công chèn nút Like ẩn
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ông hề hay biết.
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 12
13
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ới ngườ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 độc hại nằm trong iframe. Và thông qua iframe đó, hacker có
thể lấy cắp thông tin của người dù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.
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 13
14
Hình : Ví dụ về Frame ẩn
<style>
iframe{/*iframefromfacebook.com*/wi
dth:300px;
height:300px;p
osition:absolute;top:0
;left:0;
filter:alpha(opacity=50);/*inreallifeopacity=0*/opacity:0.2;
}
</style>
<div>Clickonthelinktogetrichnow:</div
<iframesrc=" />
</iframe>
<ahref=""target="_blank"
style="posit
ion:relative;left:20px;z-index:-1">CLICK ME!</a>
<div>You'llberichforthewholelife!</div>
Đoạn code đơn giản về frame ẩn

Hình : 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ặc tí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 được thông dịch trong trang HTML sau khi toàn
bộ trang được load nhưng trước khi trang đượ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ực hiện theo hành động của con trỏ chuột.
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 14
15
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ấp chuộ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. Trong trườ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ện nhiề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ên kế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 ra mộ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ùng không thể nhận ra
được.
Hình : 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ể khai thác được bằng Clickjacking, tuy nhiên nếu người dùng chưa update

thì vẫn có thể bị tấn công. Ngoài ra, các phần mềm khác như activeX hay MS
SilverLight… vẫn còn tiềm ẩn những nguy cơ bị tấn công Clickjacking.
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:
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 15
16
/>s_manager04.html
Một trang web trợ giúp về Adobe Flash Player được hiển thị. Ngoài ra,
“cài đặt trình quản lý – settings manager” với thẻ đăng ký “cài đặt an ning toàn
cầu – Global Security Settings” sẽ tự động mở, nếu người dùng cài đặt Flash.
Hình : 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 tin từ các trang web khác sử dụng một hệ thống an ninh cũ. Trong đó
có ba tuỳ chọn, luôn luô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 – always allow” 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ích hoạt camera hoặc microphone.
2.1.4. Kết hợpcá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ất hiệ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ứ 1 textbox nào của thẻ HTML, hoặc những đoạn mã script nguy
hiểm, từ đó chiếm quyền điều khiển của victim hoặc thực hiện những mệnh lệnh
mà hacker đưa ra. Còn CSRF(Cross-Site Request Forgery) là kĩ thuật tấn công
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 16
17
bằng cách sử dụng quyền chứng thự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 thao tá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ông trê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ống như 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 ứng dụ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ên thà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ệu nà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ương thứ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ương thứ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 đối vớ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ủa trang 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 đầu ra bằng cách nhấp vào hình ảnh. Ví dụ
URL sau:

/>pic=flower.jpg”%20onclick=”alert(0)
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 17
18
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ều nà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.
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ên tấ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 web tiế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 XSS bằng cách Clickjacking. Điều này có
thể được sử dụng để đọc các tập tin, có được một mã 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ác phần tử HTML. Ở đây, từ khoá “span” có giá trị “too“ và một thẻ giá
trị “bar” bên trong thuộ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ị
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ực hiện, jQuery được sử dụng để
ràng buộc một sự kiện nhấp chuột với sự kiện JavaScript hoặc để kích hoạt sự
kiện trên một phần tử.
1<spanclass=foo>Sometext</span>
2<aclass=barhref="">ww
w.nds.rub.de</a>3<scriptsrc="er
y.com/jquery-1.4.4.js"></script>

4 <script>
5 $("span.foo").click(function(){
6 alert(’foo’);
7
$("a.bar").click();
8
});
9 $("a.bar").click(function(){
10 alert(’bar’);
11 location=
"http://w
ww.example.org";
12
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 18
19
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ảnh bá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 trong thuộ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ội dung “bar”. Sau khi đóng cửa sổ cảnh báo,
trình duyệt sẽ chuyển hướng đến trang web . Nếu có
một nhấp chuột vào liên kết www.nds.rub.de và không phả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ội dung “bar”, theo
sau là một chuyển hướng đến trang www.nds.rub.de mà không phải là trang
. 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ột và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ủa JavaScript. Các cuộc tấn công Clickjacking kết hợp với XSS rất
mạnh mẽ khi có thêm cá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ông bá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 cho tấ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ụng trong 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ột cuộ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ình thứ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ủa trang Twitter.com được công bố tháng 2 năm 2009. Nó được khởi xướng và
thực hiện bởi mộ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ột tin 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ào mộ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 web và 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 web sử dụng
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 19
20
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ộc tí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ệt web:
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:
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ủa Twitter 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”:
1<BUTTON
2 style={
3 width:120px;top:10px;left:10px;
4 position:abs
olute;z-index:1;
5
}
6>
7 Don’tClick
8 </BUTTON>
Liên quan đến kỹ thuật Social Engineering, nạn nhân sẽ quan tâm để biết những
thô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ân sẽ đượ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ạn nhâ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âu mạng được thể hiện trong đoạn code
sau:
1 <IFRAME
2 style={
3 width:550px;height:228px;
4
top:-170px;left:-400px;
5 position:absolute;z-index:2;
6 opacity:0;filter:alpha(opacity=0);
7
}
8 scrolling="no"
9

src="http://twitter .com/home?status=Don’t Click:
/>10</IFRAME>
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 20
21
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ên blog 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ện theo 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.
2.2. Các biến thể mới của Clickjacking
2.2.1. Tấn công giả mạo con trỏ để chiếm quyền điều khiển webcam
Hình : Tấn công giả mạo con trỏ để chiếm quyền điều khiển webcam
Đầu tiên là tạo ra một cuộc tấn công giả mạo con trỏ để truy cập vào một tài
khoản cá nhân nhằm đánh cắp tài nguyên người dùng, ở đây là webcam. Trong
cuộc tấn công này người dùng thấy một trang web như hình. Một con trỏ được
lập trình để cung cấp phản hồi sai lầm cho người sử dụng, trong đó con trỏ giả
từng bước dịch chuyển khỏi con trỏ thực sự khi di chuyển con trỏ. Một quảng
cáo video lớn tự động mở, dẫn người dùng nhấp vào “Skip this ad”. Nếu người
dùng ấn vào liên kết bỏ qua quảng cáo thfi nó sẽ đi tới một giao diện hộp thoại
thiết lập webcam mà Adobe Flash Player đã cấp phép cho trang web để truy cập
vào webcam người dùng.
2.2.2. Tấn công double- click ăn cắp dữ liệu người dùng.
Các trình duyệt ngày nay không bảo vệ toàn vẹn thời gian cho các trang
web dẫn tới việc xảy ra các cuộc tấn công Clickjackng ảnh hưởng đến toàn vẹn
thời gian cho các cửa sổ popup.
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 21
22
Kịch bản là tạo ra một trang mồi nhử và chuyển đổi vào tấn công double-

đối với hộp thoại cho các tài khoản Google được bảo vệ bởi cài đặt X-frame.
Đầu tiên, người dùng được dụ đến một trang và thực hiện kích chuột vào một
nút mồi nhử. Sau khi thực hiện nhấp chuột, trang mồi nhử sẽ chuyển sang cửa
sổ pop-up Google OAuth (Oauth là phương pháp chia sẻ tài nguyên giữa các
ứng dụng mà không phải đưa ra “giấy thông hành” là username và password)
dưới con trỏ ngay trước khi người dùng click chuột lần hai. Cuộc tấn công này
có thể ăn cắp email của người dùng và dữ liệu cá nhân từ tài khoản Google của
người dùng.
Hình : Tấn công Double-click
2.3. Các phương pháp phòng chống Clickjacking
2.3.1. Đảm bảo tính toàn vẹn thông tin hiển thị
Để đảm bảo tính toàn vẹn của nội dung trực quan tại thời điểm của một
hành động nhạy cảm của người dùng, hệ thống cần phải làm cho màn hình hiển
thị của cả hai yếu tố giao diện người dùng nhạy cảm và thông tin phản hồi của
con trỏ hoàn toàn có thể nhìn thấy cho người dùng. Chỉ khi cả hiển thị mục tiêu
toàn vẹn và toàn vẹn con trỏ được thảo mãn, hệ thống sẽ kích hoạt các yếu tố
giao diện người dùng nhạy cảm và cung cấp đầu vào cho họ.
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 22
23
• Xác nhận người dùng:
Một biện pháp giảm nhẹ hơn để ngăn ngừa ngữ cảnh ngoài của hành động
nhấp chuột là đưa ra một dấu xác nhận cho người dùng khi họ nhấp chuột vào
các phần tử đích. Facebook đang triển khai biện pháp này cho nút Like, yêu cầu
xác nhận được thực hiện khi các yêu cầu đó đến từ các miền danh sách đen.
Nhưng phương pháp này làm việc trải nghiệm của người dùng bị hạn chế, đặc
biệt là trên nút nhấp chuột duy nhất được hiển thị, và có thể lừa nạn nhân bấm
vào để thông qua cả 2 phần tử mục tiêu và xác nhận pop up.
• Giao diện người dùng ngẫu nhiên:
Một kỹ thuật để bảo vệ phần tử mục tiêu là bố trí ngẫu nhiên giao diện của
người dùng. Ví dụ, Paypal để ngẫu nhiên vị trí nút “Pay” trên hộp thoại thanh

toàn để gây khó khăn cho kẻ tân công khi che giấu nó với một nút mồi. Đây
không phải là một biện pháp an toàn bởi kẻ tấn công có thể yêu cầu nạn nhân
nhấn giữ chuột đến khi đoán thành công vị trí nút “Pay”.
• Framebusting:
Có rất nhiều ứng dụng web có thể bị tấn công bởi Clickjacking. Tuy nhiên, kiểu
tấn công này cũng có thể dễ dàng ngăn chặn được. Thông thường, để chống lại
Clickjacking, người ta sử dụng những kịch bản JavaScript đặc biệt, nhằm ngăn
chặn việc hiển thị trang web trong frame. Những snippet như thế được gọi là
framebuster hay framekiller và có dạng đơn giản như sau:
if (top.location != location) top.location = self.location;
Một hạn chế của Framebusting là không tương thích với phần tử mục tiêu để
đóng khung bởi các trang web bên thứ ba, chẳng hạn như nút Like của
Facebook. Kịch bản framebuster bao gồm một cấu trúc điều kiện, nó kiểm tra
xem có phải trang web được tải vào trong một frame hay không, và một đoạn
mã để thực thi trong trường hợp điều kiện trên là đúng. Tuy nhiên, cách bảo vệ
này có thể bị vượt qua một cách dễ dàng. Tuy nhiên, có một số nghiên cứu trước
đây chỉ ra rằng JavaScript Framebusting hông thể đảm bảo chống lại
Clickjacking hoàn toàn.
• Phát hiện khả năng hiện thị khi nhấp chuột:
Thay vì hoàn toàn không cho phép khung hiển thị, thay vào đó là cho phép dựng
khung hình trong suốt sẽ chặn việc nhấp chuột nếu trình duyệt phát hiện các
khung nguồn gốc khi nhấp chuột vào không phải hoàn toàn có thể thấy được.
Adobe đã thêm bảo vệ truy cập vào webcam FlashPlayer để đối phó với các
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 23
24
cuộc tấn công Clickjacking vào webcam. Tuy nhiên, biện pháp này chỉ bảo vệ
được hộp thoại webcam và không sẵn sàng cho nội dung khác của trang web.
Module ClearClick có trong phần tiện ích mở rộng của FireFox cũng sử dụng kỹ
thuật này, bằng sách so sánh bitmap của đối tượng nhấp trên một trang web với
bitmap của đối tượng trả lại trong sự biệt lập với nhau. Mặc dù ClearClick là

hợp lý, có hiệu quả trong việc phát hiện nội dung ấn không thấy bằng thị giác,
nhưng bản chất mặc định của tiện tích này là phải giả định tất cả các khung
nguồn gốc cần được bảo vệ trước Clickjacking, kết quả là nó có thể phát hiện
sai trên một số trang web. Do những phát hiện sai đó, Clickjacking nhắc người
dùng phải xác nhận hành động nếu nghi ngờ là Clickjacking. Cuối cùng, hạn
chế của kỹ thuật xác minh bitmap trình duyệt là không bắt được biểu tượng con
trỏ, do đó tình toàn vẹn con trỏ không được đảm bảo. Để giải quyết vấn đề này
ClearClick kiểm trả đặc tính con trỏ tới phần tử để phát hiện con trỏ ẩn. Tuy
nhiên, các cuộc tấn công giả mạo con trỏ vẫn đem lai hiệu quá đối với một số
người sử dụng ngay cả khi nạn nhân có thể thấy được mục tiêu.
2.3.1.1. Đảm bảo toàn vẹn hiển thị thông tin đích
Mặc dù có thể thực thi toàn vẹn sự hiển thị của tất cả các yếu tố giao diện
ứng dụng người dùng nhưng làm như thế sẽ làm cho tất cả các yếu tố giao diện
của người dùng sẽ bất hoạt nếu có một phần của giao diện không nhìn thấy.
Điều này sẽ tạo ra sự khó khăn cho người dùng, làm cho toàn bộ ứng dụng giao
diện người dùng bị cản trở khi thực hiện bất kì sự tương tác với các ứng dụng.
Như vậy toàn bộ các ứng dụng hiển thị toàn vẹn thường là không cầ thiết. Ví dụ,
không phải tất cả các trang web có chứa các hoạt động nhạy cảm và dễ bị tấn
công Clickjacking. Vì chỉ có các ứng dụng biết được các yếu tố giao diện người
dùng cần được bảo vệ, cho phép các trang web chỉ tra các yếu tố giao diện
người dùng hoặc các trang web nhạy cảm. Nội dung sandbox(Sandbox là kĩ
thuật rất quan trọng trong bảo mật giúp hạn chế việc truy cập vào tài nguyên hệ
thống của các ứng dụng ngoài) được cô lập để các trnag nhúng không bị tấn
công. Ngược lại, các nội dung nhạy cảm được bảo vệ toàn vẹn với bối cảnh đối
với các hành động của người dùng, do đó trang nhúng không có tính năng
Clickjacking các nội dung nhạy cảm.
Một số giải pháp thay thế thiết kế để cung cấp tính toàn vẹn của mục tiêu hiển
thị như sau:
• Kiểm tra CSS:
Một các tiếp cận cho phép trình duyệt kiểm tra các kiểu của phần tử CSS như vị

trí, kích thước, độ mờ…và đảm bảo các yếu tố nhạy cảm không được che phủ
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 24
25
bởi các yếu tố nguồn gốc. Tuy nhiên, các kỹ thuật khác để tồn tại đã bỏ qua CSS
và ăn cắp giá trị hiển thị trên cùng chẳng hạn như IE sử dụng phương thức
createPopup (). Mặt khác, chỉ dựa vào kiểm tra CSS là không đáng tin cậy và vì
thế việc kiểm tra CSS là không đủ.
• Thamchiếucủaảnhbitmap(Bitmap–làđịnhdạngtệptinhìnhảnh)
Mộtcáchtiếpcậnkháclàđểchotrangwebcungcấpmộtbitmaptĩnhcủayếutốnhạycảml
àmộtthamchiếuvàđểchotrìnhduyệtđảmbảocácyếutốnhạycảmtrảlạiphùhợpvớitha
mchiếu.Flashplayer sử dụngphươngphápnàyđểbảovệhộpthoạitruycậpwebcam
củamình.Tuynhiên,cáctrìnhduyệtkhácnhaucóthểtạoracácảnhbitmapkhácnhaukhi
kếtxuấttừmộtđoạnmãHTML,vìthếsẽtạorasựkhókhănchocácnhàpháttriểnkhiphảit
ìmcáchđápứngcácthamchiếubitmapkhácnhauchocáctrìnhduyệtkhácnhau.Hơnnữ
a, cáchtiếpcậnkhôngthànhcôngkhicácyếutố
nhạycảmcóchứanộidunghoạtảnhđộng(nhưhiệuứngnútchuộthoặcnộidungtạotheo
kiểuđộng…),chẳnghạnnhư sốtiền phảitrả
trongmộtgiaodiệnngườidùngthanhtoán.
InContextthựcthitoànvẹnmụctiêuhiểnthịbằngcáchsosánhcácảnhchụpmànhìnhcấ
phệđiềuhànhcủakhuvựccóchứacácyếutốnhạycảm(nhữnggìngườidùngthấy),vàbit
mapcủacácyếutốnhạycảmtrảlạitạithờiđiểmhànhđộngcủangườidùngxảyra.Nếuhai
bitmaplàkhônggiốngnhauthìcáchànhđộngcủangườidùngsẽbịhủybỏvàcácyếutốnh
ạycảmsẽkhôngđược chuyểnđến.
Hình : Đảm bảotoànvẹnmụctiêuhiểnthị
TrongcuộctấncôngvídụtấncôngLikejacking,khingườidùngnhấpchuộtvàonút“like
”Facebooktrongsuốt,trìnhduyệtphảnứngvôđiềukiệnvớisựkiệnclickvàonút“like”f
acebook.Facebookcóthểgắnnhãnnút“like”trongtrangwebcủanónhưlàcácyếutốnh
ạycảmtrongcácphảnứngHTTPtươngứng.Sauđó,trìnhduyệtsẽ
nhữnggìmàngườidùngthấytạivị
HVKTMM- Tìm hiểu Clickjacking và cách phòng chống Page 25

×