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

15 2K 15
Tìm hiểu Clickjacking và cách phòng chống(demo)

Đ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

MỤC LỤC DANH SÁCH HÌNH 3 DANH SÁCH TỪ VIẾT TẮT 4 LỜI NÓI ĐẦU 6 CHƯƠNG I: TỔNG QUAN TẤN CÔNG CLICKJACKING 7 1.1. Vài nét về tấn công Clickjacking 7 1.2. Khái niệm tấn công Clickjacking. 9 1.3. Mối đe dọa của Clickjacking 10 1.4. Các vấn đề về tấn công và phòng thủ chống Clickjacking 10 CHƯƠNG II: PHÂN LOẠI TẤN CÔNG CLICKJACKING VÀ PHƯƠNG PHÁP PHÒNG CHỐNG 14 2.1. Các kiểu tấn công clickjacking 14 2.2.Các biến thể mới của Clickjacking 21 2.3. Các phương pháp phòng chống Clickjacking 23 CHƯƠNG III: DEMO LIKEJACKING 31 3.1. Mục đích củademotấn côngLikejacking 31 Demo tấn côngLikejacking: 31 3.1. Cách phòngchống 32 KẾTLUẬN 38 TÀILIỆUTHAMKHẢO 39 DANH SÁCH HÌNH Hình 1: Kẻ tấn công chèn nút Like ẩn 14 Hình 2: Ví dụ về Frame ẩn 15 Hình 3: Kết quả hiển thị 16 Hình 4: Nút like trong suốt ở vị trí con trỏ chuột chứa mã Javascript . 17 Hình 5: Bảng điều khiển Adobe Security Settings 18 Hình 6: Tấn công giả mạo con trỏ để chiếm quyền điều khiển webcam 23 Hình 7: Tấn công Doubleclick 24 Hình 8: Đảm bảotoànvẹnmụctiêuhiểnthị 27 Hình 9: HiệuứngLightbox 30 Hình 10: Hiệu suất của InContex 31 Hình 11: Web giả mạo chứa javascript 33 Hình 12: Link giả mạo 34 Hình 13: TắtJavaScriptởtrìnhduyệtGoogleChrome 35 Hình 14: TắtJavaScriptởtrìnhduyệtMozillaFirefox16.0 36 Hình 15: TắtJavaScriptởtrìnhduyệtIE 37 Hình 16: Vô hiệu hoá Frame ẩn trên trình duyệt Firefox 38 Hình 17: Đoạn Script giúp phát hiện và vô hiệu hoá frame ẩn 39 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địnhcáchtrìnhbàycủa cácthẻ HTMLtrêntrangweb XSS CrosssiteScripting Lỗhổngchophéphackercóthểchènnhữngđoạnmãclientscript(thườnglàJavascripthoặcHTML)vàotrangweb,khingườidùngvàonhữngtrênwebnày,mãđộcsẽđượcthựcthitrênmáycủangườidùng ASP ActiveServerPage Cungcấpmộtkhung làmviệc chocác ứngdụngphíaServer PHP HypertextPreprocessor Ngônngữlậptrìnhkịchbảnhaymộtloạimãlệnhchủyếuđượcdùngđểpháttriểncácứngdụngviếtchomáychủ,mãnguồnmở.NórấtthíchhợpvớiwebvàcóthểdễdàngnhúngvàotrangHTML. CGI CommonGatewayInterface Mộtphươngphápchophépgiaotiếpgiữaservervàchươngtrìnhnhờcácđịnhdạngđặctảthôngtin JSP JavaServerPages Côngnghệchophépthựchiệndễdàngviệcviếtcáctrangwebđộng(dĩnhiêntacũngcóthểviếtcáctrangwebtĩnhvớiJSP).Cụthể,mộttrangJSPlàmộttrangHTML (hayXML)trongđócótrộnlẫncác mãJava,tứccác thành phần JSP, cho phép thực hiện nội dung động. 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 CSRF Crosssite 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 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ặnloạihìnhtấncôngmớinày. 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 plugin 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 plugin 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 crossdomain, 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, plugin 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á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ư crosssite. 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 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 XFRAMEOPTIONS: 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 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ố zindex để 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.

[...]... gian: +Delay giao diện người dùng +Nhấp con trỏ vào một yếu tố nhạy cảm để hiển thị nội dung thông tin +Khu vực padding xung quanh yếu tố nhạy cảm Phương pháp cơ bản chống Clickjacking Tắt Javascript trên trình duyệt  Vô hiệu hóa Frame ẩn  Sử dụng các addon chống clickjacking, javascript: Clickjacking Reveal, NoScript…  Demo Likejacking Cám ơn thầy cô và các bạn đã xem .. .Phòng thủ chống Clickjacking Yêu cầu:  Toàn vẹn mục tiêu hiển thị  Giấu phần tử mục tiêu  Giấu một phần của phần tử mục tiêu  Chia nhỏ phần tử mục tiêu  Toàn vẹn con trỏ văn bản  Toàn vẹn thời gian Phòng thủ chống lại Clickjacking - Đảm bảo tính toàn vẹn thông tin hiển thị: +Xác nhận người dùng +Giao diện . toàn mới của clickjacking attack.  Hiện nay, có 2 lạo hình tấn công Clickjacking phổ biến là Tweebomb và Likejacking Vài nét về tấn công ClickJacking 9/26/14HVKTMM -Nhóm Lửa3  Clickjacking. 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ạolà nạn nhân tầm cỡ của clickjacking. Ý tưởng khai thác clickjacking. { Tìm hiểu về Clickjacking và cách phòng chống 9/26/14HVKTMM -Nhóm Lửa1  Tổng quan về tấn công clickjacking  Các kiểu tấn công clickjacking  Các phương pháp phòng

Ngày đăng: 26/09/2014, 16:03

Tài liệu cùng người dùng

Tài liệu liên quan