Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 49 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
49
Dung lượng
1,42 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ o0o Đỗ Gia Quân PHÁT HIỆN VÀ NGĂN CHẶN QUẢNG CÁO ĐỘC HẠI DỰA VÀO URL KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ thơng tin HÀ NỘI - 2016 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ -o0o - Đỗ Gia Quân PHÁT HIỆN VÀ NGĂN CHẶN QUẢNG CÁO ĐỘC HẠI DỰA VÀO URL KHĨA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán hướng dẫn: TS Lê Đình Thanh HÀ NỘI - 2016 VIETNAM NATIONAL UNIVERSITY, HANOI UNIVERSITY OF ENGINEERING AND TECHNOLOGY -o0o - Do Gia Quan URL-BASED DETECTION OF AND COUNTERMEASURES FOR MALICIOUS WEB ADVERTISEMENTS Major: Information Technology Supervisor: Dr Le Dinh Thanh HA NOI – 2016 Lời cám ơn Lời đầu tiên, xin gửi lời cảm ơn lịng biết ơn sâu sắc tới TS Lê Đình Thanh, Phịng thí nghiệm An tồn Thơng tin, Khoa Cơng nghệ Thông tin, Trường Đại học Công nghệ, ĐHQGHN định hướng đề tài tận tình hướng dẫn, bảo tơi suốt q trình thực khóa luận tốt nghiệp Tôi xin chân thành cảm ơn thầy, cô Trường Đại học Công nghệ, ĐHQGHN truyền đạt kiến thức suốt bốn năm đại học tạo điều kiện thuận lợi cho học tập nghiên cứu Tôi xin gửi lời cảm ơn đến thầy cô, anh chị, bạn Phịng thí nghiệm An tồn Thơng tin hỗ trợ nhiều kiến thức chuyên môn q trình thực khóa luận Tơi xin cảm ơn bạn lớp K57CLC ủng hộ khuyến khích tơi suốt suốt q trình học tập làm việc trường Cuối cùng, xin gửi cám ơn vơ hạn tới gia đình bạn bè, người bên cạnh, giúp động viên tơi q trình học tập suốt q trình thực khóa luận Mặc dù nỗ lực, cố gắng chắn khóa luận tơi cịn nhiều thiếu sót Tơi mong nhận ý kiến đánh giá phê bình quý thầy cô, anh chị bạn Tôi xin chân thành cảm ơn! Hà Nội, ngày 28 tháng năm 2016 Sinh viên thực Đỗ Gia Quân Lời cam đoan Tơi xin cam đoan khóa luận tốt nghiệp “Phát ngăn chặn quảng cáo độc hại dựa vào URL” thực hướng dẫn giáo viên hướng dẫn TS Lê Đình Thanh Các nội dung khóa luận ghi rõ nguồn gốc phía cuối khóa luận Nếu có phát gian lận chép tài liệu, cơng trình nghiên cứu tác giả khác mà không ghi rõ phần tài liệu tham khảo, tơi chịu hồn tồn trách nhiệm kết khóa luận Hà Nội, ngày 28 tháng năm 2016 Sinh viên thực Đỗ Gia Quân Mục lục CHƯƠNG TỔNG QUAN QUẢNG CÁO TRỰC TUYẾN 1.1 Quảng cáo trực tuyến 1.2 Các đối tượng tham gia vào hoạt động quảng cáo trực tuyến .3 1.3 Các hình thức quảng cáo trực tuyến 1.4 Các kỹ thuật đưa quảng cáo lên website 10 1.5 Những lợi ích quảng cáo trực tuyến 13 1.6 Rủi ro an ninh quảng cáo trực tuyến 14 1.7 Phát ngăn chặn quảng cáo trực tuyến 15 CHƯƠNG PHÁT HIỆN QUẢNG CÁO ĐỘC HẠI DỰA VÀO URL 18 2.1 Cách phát quảng cáo độc hại 18 2.1.1 Phát quảng cáo 18 2.1.2 Các phương pháp phát web độc hại 20 2.2 Áp dụng thuật toán Kolmogorov phát quảng cáo độc hại 22 2.2.1 Khái niệm độ phức tạp Kolmogorov .22 2.2.2 Áp dụng thuật toán Kolmogorov với URL 23 CHƯƠNG CÀI ĐẶT VÀ ĐÁNH GIÁ 28 3.1 Thu thập tập liệu 28 3.1.1 Thu thập url quảng cáo 28 3.1.2 Sử dụng VirusTotal API để phân loại quảng cáo 31 3.2 Cài đặt đánh giá thuật toán Kolmogorov 34 KẾT LUẬN 40 TÀI LIỆU THAM KHẢO 41 DANH MỤC HÌNH ẢNH Hình 1 Mơ hình hoạt động quảng cáo trực tuyến Hình : Hình ảnh minh họa quảng cáo hiển thị Hình : Hình ảnh minh họa banner quảng cáo Hình : Hình ảnh minh họa pop-ups quảng cáo Hình : Hình ảnh minh họa quảng cáo expandable ads Hình : Hình ảnh minh họa trick ads Hình : Hình ảnh minh họa text ads Hình : Hình ảnh minh họa quảng cáo mạng xã hội Hình : Hình ảnh minh họa cho quảng cáo thiết bị di động 10 Hình 10 : Ảnh hiển thị minh họa sử dụng HTML 11 Hình 11 : Hình minh họa sử dụng Javascript 12 Hình 12 : Hình minh họa sử dụng Actionscript 13 Hình 13 : Hình minh họa sử dụng XML 13 Hình Mơ hình hoạt động Adblock Plus 20 Hình Quá trình thu thập URL quảng cáo 29 Hình Quá trình phân loại URL dựa vào VirusTotal API 32 Hình 3 Mơ tả đối chiếu hai kết 35 DANH MỤC BẢNG BIỂU Bảng Thống kê tập liệu 38 Bảng Thống kê kết tỉ lệ âm tính giả, dương tính giả 38 TÓM TẮT Trong năm gần đây, phát triển Internet tăng lên nhanh chóng Cùng với phát triển nó, phát triển loại hình dịch vụ quảng cáo trực tuyến ngày phổ biến, thay quảng cáo truyền thống báo giấy, tivi… Quảng cáo trực tuyến đem lại nhiều lợi ích to lớn Tuy nhiên, mục tiêu công hacker nhằm lan truyền phần mềm độc hại hay đánh cắp thông tin người dùng Quảng cáo trực tuyến thực hành vi độc hại nêu gọi quảng cáo độc hại (malvertising) Quảng cáo lợi dụng khe hở mối liên hệ nhà xuất nội dung web (publisher) với nhà quảng cáo (advertiser) nhà mạng quảng cáo (ad network) để lan truyền nội dung độc hại ẩn sau nội dung quảng cáo Các phương pháp phòng chống cũ danh sách đen (blacklist) hay phân tích nội dung website gặp phải số hạn chế định Một phương pháp nghiên cứu rộng rãi gần phát trang web độc hại dựa vào URL Phương pháp nghiên cứu trang web thơng thường nói chung trang web lừa đảo nói riêng Tuy nhiên, chưa có cơng trình thử nghiệm phương pháp vào phát quảng cáo độc hại Mặc dù quảng cáo trang web, đặc điểm riêng nó, so với trang web thơng thường, dẫn đến khó khăn, thách thức hay thuận lợi phương pháp phát dựa vào URL Nhằm khám phá điều chưa biết đó, khóa luận tập trung vào việc phát ngăn chặn quảng cáo độc hại dựa vào URL Khóa luận tìm hiểu phân tích phương pháp phát trang web độc hại dựa vào URL, áp dụng phương pháp vào phát quảng cáo độc hại Kết thử nghiệm cho thấy phương pháp phát quảng cáo độc hại dựa vào URL chưa hiệu với tỉ lệ phát sai cịn cao Từ khóa: Quảng cáo độc hại, phát hiện, dựa vào URL ABSTRACT In recent years, the development of the Internet has increased rapidly Along with its development, the development online advertising services are also increasingly popular, replacing traditional advertising such as newspapers, television Online advertising brings huge benefits However, it is also targeted by hackers to spread malware or steal user information Online advertising perform malicious activities such as the above is known as malicious advertising (malvertising) Malvertising takes of the gap in the relationship between the web content publishers, advertisers and the ads-network to spread malicious content Old methods of prevention, such as blacklisting or web content analysis are encountering some certain limitations A new method was extensively studied recently discovers malicious sites based on URL This method has been studied on the regular sites in general and on phishing sites in particular However, the method has not been studied on the detection of malicious advertising Although advertising is also the site, its own characteristics, compared to conventional sites, can lead to difficulties, challenges or advantages for detection methods based on the URL In order to explore this unknown area, the thesis focuses on detecting and blocking malicious ads based on URL The study is to analyze URL-based methods, apply the methods to detect malicious ads Experimental results showed that the methods are quite ineffective with a high rate of false detection Keywords: Malicious advertising, detection, URL-based Trong đó: s : xâu cần dự đốn Dm : xâu nối tập tất URL độc hại thu thập Db : xâu nối tập tất URL lành tính thu thập Dms: xâu nối Dm s Dbs: xâu nối Db s 27 CHƯƠNG CÀI ĐẶT VÀ ĐÁNH GIÁ Chương trình bày việc cài đặt đánh giá thuật toán Kolmogorov áp dụng phát quảng cáo độc hại Hầu hết nghiên cứu gần URL thu thập sử dụng liệu Tập URL PhishTank gồm URL độc hại, Tập URL lành tính Yahoo Directory thử nghiệm web độc hại Tuy nhiên phạm vi khóa luận này, khóa luận đề cập đến việc phát ngăn chặn quảng cáo độc hại dựa vào URL, khóa luận khơng sử dụng tập liệu tổng hợp sẵn, mà tự xây dựng tập liệu Mẫu để kiểm thử hiệu phương pháp đề xuất Đồng thời, mơi trường Internet khơng có sẵn kho liệu URL quảng cáo độc tính kho liệu URL quảng cáo lành tính nào, chúng tơi tự thu thập URL quảng cáo sử dụng VirusTotal để phân loại URL tạo lập kho nêu Một tập lớn URL quảng cáo thu thập, sau chia thành hai tập Tập thứ sử dụng cho cài đặt thuật toán Kolmogorov Tập thứ hai sử dụng để kiểm thử đánh giá hiệu phát thuật tốn Q trình thu thập phân loại liệu, trình kiểm thử hiệu phương pháp kết thử nghiệm, đánh giá thuật tốn Kolmogorov trình bày phần 3.1 Thu thập tập liệu Trước hết, thu thập tập D gồm 200 URL quảng cáo, sử dụng Framework Javascript PhantomJS Tiếp đó, D chia làm tập con: Tập Dk gồm 100 URL quảng cáo Dt gồm 100 URL quảng cáo Sau đó, sử dụng VirusTotal API phân loại tập Dk thành tập Dkb tập Dkm để sử dụng cho Kolmogorov, phân loại tập Dt thành hai tập Dtb Dtm để đối chiếu, kiểm thử hiệu thuật toán Kolmogorov Cuối cùng, sử dụng thuật toán độ phức tạp Kolmogorov tập Dt để phân loại Dt thành Dtkb Dtkm, sau so sánh kết dựa vào Kolmogorov so với kết dựa vào VirusTotal API, sau để kiểm thử hiệu phương pháp phát dựa vào URL Phần trình bày chi tiết phần 3.2 3.1.1 Thu thập url quảng cáo Đầu tiên, cài đặt PhantomJS, Javascript Framework, dùng để phân tích, thu thập liệu webpages Sau đó, sử dụng PhantomJS để phân tích webpage thu thập tất Iframe trang Trong bước này, để độ 28 sâu (số lần tối đa người dùng kích vào link khác website) 2, thực tế độ sâu lớn nhiều, người dùng thao tác webpage nhiều lần trang khác webpage Nhưng phạm vi khóa luận này, chúng tơi tập trung vào vài “Seed url”(URL ban đầu đưa vào) định gồm nhiều URL công khai Internet, để thu tập “URL Iframe” định, để thu số url quảng cáo định Ở đây, thu thập IFRAME ví dụ điển hình URL quảng cáo webpage, webpage chứa nhiều loại quảng cáo, link khác webpage Sau thu hầu hết tất URL IFRAME webpage, sử dụng API Adblock Plus để xem URL Iframe mà thu thập, URL URL quảng cáo Nếu kết trả mà URL bị ngăn lại (block), nghĩa bị API Adblock Plus giữ lại, tức URL URL quảng cáo, cịn ngược lại URL quảng cáo Cứ thu tập D gồm khoảng 200 URL quảng cáo Dưới sơ đồ mô tả trình thu thập tập URL quảng cáo D Seed URL Phantomjsbased Crawler Page Content BEGIN ADBLOCK PLUS PARSE IFRAME EXTRACTION Depth< MAXDEPTH ? TRUE ? NO NO END YES YES ADS DATASET (D) Hình 1Quá trình thu thập URL quảng cáo Để thu thập “IFRAME” dựa vào PhantomJS ta sử dụng mã giả chương trình : 29 Thu thập URL “Iframe” trang Đầu vào : Trang web cần thu thập (SeedURL) Đầu : Tập URL “Iframe” trang Bắt đầu Nếu URL = d >= MAX_DEPTH: Ghi file Thoát Ngược lại Lấy URL tập độ xâu tương ứng Với URL thu thực hiện: Tập URL “a”, Tập độ xâu tương ứng với URL, Tập URL “Iframe” Kết thúc Sau đó, sử dụng tập “IFRAME” gồm tất URL trang bao gồm URL quảng cáo URL không quảng cáo Để biết URL URL quảng cáo, đưa qua AdblockPlus API (đây API mã nguồn mở dùng để phát quảng cáo Adblock Plus), ta thu tập URL quảng cáo D 30 # open file and read file have iframe = open(OUTPUT_URL,'r') rads = ra.readline() reads = rads.split(",") from adblockparser import AdblockRules abp = AdblockRules(rules) # write data into ads file wa = open(ADS_URL,'w') list_ads = [] count_TRUE = total = for iad in reads: total += result = abp.should_block(iad) if result and iad not in list_ads: count_TRUE += list_ads.append(iad) ads = wa.write(iad+'\n') 3.1.2 Sử dụng VirusTotal API để phân loại quảng cáo VirusTotal website dịch vụ trực tuyến miễn phí cho phép xác định virus, Trojan, malmare nội dung độc hại khác phát công cụ chống virus công cụ quét website (theo VirusTotal.com) Đồng thời sử dụng phương tiện để phát dương tính giả, tức nguồn tài nguyên vô hại phát độc hại nhiều máy quét Nhiệm vụ VirusTotal để giúp việc cải thiện chống virus an ninh công nghiệp làm cho Internet nơi an tồn thơng qua việc phát triển cơng cụ dịch vụ miễn phí 31 Trong phần này, khóa luận sử dụng VirusTotal API để phân loại URL quảng cáo Cũng khóa luận này, ta coi kết mà VirusTotal phân loại chấp nhận kết để đối chiếu kết thử nghiệm Theo sơ đồ đây, chia tập URL quảng cáo D thu phần 3.1.1 thành tập lớn Dk Dt, Dk tập để làm sở liệu sử dụng thuật tốn Kolmogorov, Dt tập để kiểm thử độ xác việc xác định url độc hại sử dụng thuật toán Kolmogorov Với tập lớn Dk Dt, sử dụng VirusTotal API để kiểm tra danh sách url quảng cáo tập xem số lượng URL lành tính URL độc hại Đối với Dk, sử dụng VirusTotal API chia tập thành hai tập Dkb Dkm, Dkb tập url lành tính, Dkm tập url độc hại Hai tập Dkb Dkm làm tập liệu sử dụng để làm liệu thuật toán Kolmogorov để kiểm thử hiệu phương pháp Đối với Dt, sử dụng VirusTotal API chia tập thành hai tập Dtb Dtm, Dtb tập url lành tính, Dtm tập url độc hại Hai tập sử dụng đối chiếu với kết sử dụng thuật toán Kolmogorov tập Dt việc phát quảng cáo độc hại Dưới sơ đồ mô tả lại trình sử dụng VirusTotal API để phân loại quảng cáo D Dk Dkm Dt Dk Dt VirusTotal API VirusTotal API Dkb Dtm Hình Quá trình phân loại URL dựa vào VirusTotal API 32 Dtb Sau đoạn mã lệnh giúp phân loại URL dựa VirusTotal API Dk ml = [] Dk bl = [] # Su dung VirusTotal API de phan loai quang cao for item in list_source_Dk : parameters = {"resource": item, "apikey": MY_API, "scan": '1'} data = urllib.urlencode(parameters) req = urllib2.Request(url, data) response = urllib2.urlopen(req) jsonstr = response.read() listjson = simplejson.loads(jsonstr) print listjson total = for i in listjson: if i.get('positives') > 0: Dkml.append(i.get('resource').encode('utf-8')) malicious_count += else: Dkbl.append(i.get('resource').encode('utf-8')) 33 3.2 Cài đặt đánh giá thuật toán Kolmogorov Trong phần 3.1 Chúng ta thu tập liệu dựa VirusTotal API Bao gồm : Tập Dkm tập Dkb hai tập để sử dụng cho kiểm thử với thuật toán độ phức tạp Kolmogorov Tập Dtb tập Dtm hai tập sử dụng để đối chiếu với kết sau sử dụng thuật toán Kolmogorov lên tập Dt Đối với tập Dt, sử dụng thuật toán độ phức tạp Kolmogorov để chia tập Dt thành tập con: tập Dtkm tập gồm URL độc hại, tập Dtkb gồm URL lành tính Trong q trình phân loại tập này, ta kết hợp sử dụng thuật toán nén Deflate Cuối cùng, ta đem đối chiếu hai kết trên, kết sử dụng VirusTotal API kết sử dụng thuật toán Kolmogorov Ta so sánh Dtb với Dtkb Dtm với Dtkm Sau ta kiểm tra tỉ lệ URL âm tính giả (sử dụng thuật toán Kolmogorov cho kết âm tính với độc hại, sử dụng VirusTotal API cho kết dương tính với độc hại), tỉ lệ dương tính giả (sử dụng thuật toán Kolmogorov cho kết dương tính với độc hại, sử dụng VirusTotal API cho kết âm tính với độc hại) Dưới sơ đồ thuật tốn mơ tả q trình kiểm thử hiệu thuật toán Kolmogorov phương pháp trên: 34 Dt Kolmogorov Dtkm Dtkb Đối chiếu Dtmvà Dtkb Đối chiếu Dtm Dtkm fn ? fp ? tn ? ? Tỉ lệ phát ? Hình 3 Mô tả đối chiếu hai kết Dưới mã lệnh để đối chiếu kết việc sử dụng VirusTotal API phương pháp phát dựa URL với thuật toán Kolmogorov Dưới mã lệnh cài đặt thuật toán Kolmogorov : oads = open('ads_Dt.txt', 'r') iads = oads.readlines() # Nen file Dtm va Dtb theo thuat toan Deflate cua thu vien zlib dtm_compress = zlib.compress(dtm) dtb_compress = zlib.compress(dtb) deflate_list = [] count = total = 35 for item in iads: total += item_concat_mal_compress = zlib.compress(dtm + item) item_concat_ben_compress = zlib.compress(dtb + item) benign_compress = len(item_concat_ben_compress)len(dtb_compress) malicious_compress = len(item_concat_mal_compress)len(dtm_compress) result = (malicious_compress benign_compress)*1.0/(malicious_compress + benign_compress) if result