Hướng dẫn u can t debug this detecting javascript anti debugging techniques in the wild - bạn không thể gỡ lỗi điều này phát hiện các kỹ thuật chống gỡ lỗi javascript trong tự nhiên

Authors: 

Marius Musch và Martin Johns, Tu Braunschweig

Abstract: 

Thông qua các cuộc thi bảo mật như PWN2Own, chúng tôi liên tục nhắc nhở rằng không có phần mềm phức tạp nào được coi là an toàn. Khi chúng tôi thực thi mã không đáng tin cậy trong trình duyệt của chúng tôi mỗi ngày, trình duyệt khai thác được viết bằng JavaScript vẫn là mối đe dọa liên tục đối với bảo mật của các hệ thống của chúng tôi. Cụ thể, phần mềm độc hại lảng tránh phát hiện các hệ thống phân tích và sau đó thay đổi hành vi của nó là một vấn đề nổi tiếng.

Tuy nhiên, cũng có các kỹ thuật chống bỏ bám, can thiệp vào phân tích thủ công của một trang web trong một trình duyệt thực. Các kỹ thuật này cố gắng ngăn chặn, hoặc ít nhất là làm chậm, mọi nỗ lực kiểm tra thủ công và gỡ lỗi mã JavaScript của một trang web. Ví dụ, một kỹ thuật như vậy có thể liên tục kích hoạt các điểm dừng tại các vị trí ngẫu nhiên để cản trở hiệu quả một bước trong khi gỡ lỗi mã. Một cách xảo quyệt hơn, nó cũng có thể tìm hiểu xem các công cụ phát triển tích hợp của trình duyệt có mở hay không bằng cách sử dụng một số kênh bên có sẵn trong JavaScript. Với kiến ​​thức này, có thể thay đổi một cách tinh tế hoặc đàn áp bất kỳ hành vi độc hại nào trong khi đang được phân tích.

Trong bài báo này, chúng tôi khám phá một cách có hệ thống hiện tượng này. Để kết thúc này, chúng tôi giới thiệu 9 kỹ thuật chống debugging và thảo luận về lợi thế và nhược điểm của họ. Sau đó, chúng tôi tiến hành một nghiên cứu quy mô lớn trên 6 người trong số đó, để điều tra mức độ phổ biến của các kỹ thuật này trong tự nhiên. Chúng tôi thấy rằng có tới 1 trên 550 trang web chứa các biện pháp chống chebug nghiêm trọng, với nhiều kỹ thuật này hoạt động trên cùng một trang web. Hơn nữa, chúng tôi trình bày một cách tiếp cận mới dựa trên phát lại trang web xác định và so sánh phạm vi bảo hiểm mã JavaScript. Phương pháp này có thể tự động phát hiện 3 kỹ thuật chống chebugging dựa trên thời gian còn lại, sử dụng các kênh phụ để tìm hiểu xem các devtools có mở không. Trong một nghiên cứu được nhắm mục tiêu trên 2000 trang web với các kỹ thuật chống lừa đảo, chúng tôi phát hiện ra hơn 200 trong số chúng thực sự thực hiện mã khác nhau khi được phân tích.

Mở phương tiện truy cập

Usenix cam kết mở quyền truy cập vào nghiên cứu được trình bày tại các sự kiện của chúng tôi. Giấy tờ và thủ tục tố tụng có sẵn miễn phí cho mọi người khi sự kiện bắt đầu. Bất kỳ video, âm thanh và/hoặc các slide được đăng sau sự kiện cũng miễn phí và mở cửa cho mọi người. Hỗ trợ Usenix và cam kết của chúng tôi về truy cập mở.

Hướng dẫn u can t debug this detecting javascript anti debugging techniques in the wild - bạn không thể gỡ lỗi điều này phát hiện các kỹ thuật chống gỡ lỗi javascript trong tự nhiên

Video trình bày & NBSP;

Bạn không thể gỡ lỗi điều này: phát hiện các kỹ thuật chống debugging javascript trong tự nhiên Anti-Debugging Techniques in the Wild

Marius Musch và Martin Johns Tu Braunschweig
TU Braunschweig

Chung

Đây là những triển khai mẫu mực cho 9 kỹ thuật chống lừa đảo được trình bày tại Usenix Security'21. Các kỹ thuật này cố gắng ngăn chặn, hoặc ít nhất là làm chậm, mọi nỗ lực kiểm tra thủ công và gỡ lỗi mã JavaScript của một trang web.

Hãy thử nó cho chính mình và nhấp vào bất kỳ liên kết nào bên dưới, sau đó (cố gắng) mở devtools và xem điều gì sẽ xảy ra!


Kỹ thuật cơ bản

Đường tắt

Trình kích hoạt (thay thế)

Kết luận

Modbuilt (thay thế)

Chiều rộng

Logget (thay thế 1) (thay thế 2)


Kỹ thuật tinh vi

Độc thân

Newbreak

Conspam


Sự xuất bản

Đọc thêm chi tiết trong bài báo của chúng tôi (sắp ra mắt) hoặc xem bài thuyết trình của chúng tôi (sắp ra mắt)

Nếu bạn đang sử dụng những thứ này cho công việc tiếp theo, vui lòng trích dẫn giấy của chúng tôi

@INPROCEEDINGS{musch2021antidebugging,
  author = {Marius Musch and Martin Johns},
  title = {U Can't Debug This: Detecting JavaScript Anti-Debugging Techniques in the Wild},
  booktitle = {Proc. of {USENIX} Security Symposium},
  year = {2021}
}

Tuyên bố về dấu ấn và bảo vệ dữ liệu tại đây

Để bảo vệ quyền riêng tư của bạn, tất cả các tính năng dựa trên các cuộc gọi API bên ngoài từ trình duyệt của bạn đều bị tắt theo mặc định. Bạn cần phải chọn tham gia để họ trở nên hoạt động. Tất cả các cài đặt ở đây sẽ được lưu trữ dưới dạng cookie với trình duyệt web của bạn. Để biết thêm thông tin, hãy xem F.A.Q.

Liên kết bài viết chưa được đặt ra

Thêm các liên kết truy cập mở từ danh sách các liên kết tài liệu bên ngoài (nếu có).

Hướng dẫn u can t debug this detecting javascript anti debugging techniques in the wild - bạn không thể gỡ lỗi điều này phát hiện các kỹ thuật chống gỡ lỗi javascript trong tự nhiên
to the list of external document links (if available).

tải liên kết từ unpaywall.org

Thông báo về quyền riêng tư: Bằng cách bật tùy chọn ở trên, trình duyệt của bạn sẽ liên hệ với API của Unpaywall.org để tải các siêu liên kết để mở các bài viết truy cập. Mặc dù chúng tôi không có bất kỳ lý do nào để tin rằng cuộc gọi của bạn sẽ được theo dõi, chúng tôi không có bất kỳ quyền kiểm soát nào về cách máy chủ từ xa sử dụng dữ liệu của bạn. Vì vậy, xin vui lòng tiến hành chăm sóc và xem xét kiểm tra chính sách bảo mật chưa được thực hiện.

Liên kết được lưu trữ qua Wayback Machine

Đối với trang web không còn có sẵn, hãy cố gắng truy xuất nội dung từ kho lưu trữ Internet (nếu có).

Hướng dẫn u can t debug this detecting javascript anti debugging techniques in the wild - bạn không thể gỡ lỗi điều này phát hiện các kỹ thuật chống gỡ lỗi javascript trong tự nhiên
of the Internet Archive (if available).

Tải nội dung từ Web.Archive.org

Thông báo về quyền riêng tư: Bằng cách bật tùy chọn ở trên, trình duyệt của bạn sẽ liên hệ với API của Web.Archive.org để kiểm tra nội dung lưu trữ của các trang web không còn khả dụng. Mặc dù chúng tôi không có bất kỳ lý do nào để tin rằng cuộc gọi của bạn sẽ được theo dõi, chúng tôi không có bất kỳ quyền kiểm soát nào về cách máy chủ từ xa sử dụng dữ liệu của bạn. Vì vậy, vui lòng tiến hành chăm sóc và xem xét kiểm tra chính sách bảo mật lưu trữ Internet.

Danh sách tham khảo

Thêm một danh sách các tài liệu tham khảo từ, và để ghi lại các trang chi tiết.

Hướng dẫn u can t debug this detecting javascript anti debugging techniques in the wild - bạn không thể gỡ lỗi điều này phát hiện các kỹ thuật chống gỡ lỗi javascript trong tự nhiên
,
Hướng dẫn u can t debug this detecting javascript anti debugging techniques in the wild - bạn không thể gỡ lỗi điều này phát hiện các kỹ thuật chống gỡ lỗi javascript trong tự nhiên
, and
Hướng dẫn u can t debug this detecting javascript anti debugging techniques in the wild - bạn không thể gỡ lỗi điều này phát hiện các kỹ thuật chống gỡ lỗi javascript trong tự nhiên
to record detail pages.

Tải tài liệu tham khảo từ Crossref.org và OpenCitations.net

Thông báo về quyền riêng tư: Bằng cách cho phép tùy chọn ở trên, trình duyệt của bạn sẽ liên hệ với API của Crossref.org, OpenCitations.net và SemanticsCholar.org để tải thông tin tham chiếu bài viết. Mặc dù chúng tôi không có bất kỳ lý do nào để tin rằng cuộc gọi của bạn sẽ được theo dõi, chúng tôi không có bất kỳ quyền kiểm soát nào về cách máy chủ từ xa sử dụng dữ liệu của bạn. Vì vậy, vui lòng tiến hành chăm sóc và xem xét kiểm tra chính sách quyền riêng tư của CrossRef và Chính sách bảo mật của OpenCitations, cũng như Chính sách bảo mật AI2 bao gồm các học giả ngữ nghĩa.

Dữ liệu trích dẫn

Thêm một danh sách các bài viết trích dẫn từ và để ghi lại các trang chi tiết.

Hướng dẫn u can t debug this detecting javascript anti debugging techniques in the wild - bạn không thể gỡ lỗi điều này phát hiện các kỹ thuật chống gỡ lỗi javascript trong tự nhiên
and
Hướng dẫn u can t debug this detecting javascript anti debugging techniques in the wild - bạn không thể gỡ lỗi điều này phát hiện các kỹ thuật chống gỡ lỗi javascript trong tự nhiên
to record detail pages.

Tải trích dẫn từ opencitations.net

Thông báo về quyền riêng tư: Bằng cách bật tùy chọn ở trên, trình duyệt của bạn sẽ liên hệ với API của OpenCitations.net và SemanticsCholar.org để tải thông tin trích dẫn. Mặc dù chúng tôi không có bất kỳ lý do nào để tin rằng cuộc gọi của bạn sẽ được theo dõi, chúng tôi không có bất kỳ quyền kiểm soát nào về cách máy chủ từ xa sử dụng dữ liệu của bạn. Vì vậy, vui lòng tiến hành chăm sóc và xem xét kiểm tra chính sách bảo mật opencitations cũng như chính sách bảo mật AI2 bao gồm các học giả ngữ nghĩa.

Dữ liệu Openalex

Tải thêm thông tin về các ấn phẩm từ.

Hướng dẫn u can t debug this detecting javascript anti debugging techniques in the wild - bạn không thể gỡ lỗi điều này phát hiện các kỹ thuật chống gỡ lỗi javascript trong tự nhiên
.

tải dữ liệu từ openalex.org

Thông báo về quyền riêng tư: Bằng cách bật tùy chọn ở trên, trình duyệt của bạn sẽ liên hệ với API của Openalex.org để tải thêm thông tin. Mặc dù chúng tôi không có bất kỳ lý do nào để tin rằng cuộc gọi của bạn sẽ được theo dõi, chúng tôi không có bất kỳ quyền kiểm soát nào về cách máy chủ từ xa sử dụng dữ liệu của bạn. Vì vậy, vui lòng tiến hành chăm sóc và xem xét kiểm tra thông tin được cung cấp bởi Openalex.

Tweets trên trang chủ DBLP

Hiển thị các tweet từ trên trang chủ DBLP.

Hướng dẫn u can t debug this detecting javascript anti debugging techniques in the wild - bạn không thể gỡ lỗi điều này phát hiện các kỹ thuật chống gỡ lỗi javascript trong tự nhiên
on the dblp homepage.

Tải Tweets từ Twitter.com

Thông báo về quyền riêng tư: Bằng cách bật tùy chọn ở trên, trình duyệt của bạn sẽ liên hệ với Twitter.com và Twimg.com để tải các tweet được quản lý bởi tài khoản Twitter của chúng tôi. Đồng thời, Twitter sẽ liên tục lưu trữ một số cookie với trình duyệt web của bạn. Mặc dù chúng tôi đã báo hiệu Twitter để không theo dõi người dùng bằng cách đặt cờ "DNT", chúng tôi không có bất kỳ quyền kiểm soát nào về cách Twitter sử dụng dữ liệu của bạn. Vì vậy, vui lòng tiến hành chăm sóc và xem xét kiểm tra chính sách bảo mật Twitter.

Làm cách nào để kích hoạt gỡ lỗi JavaScript?

Gỡ lỗi tập lệnh phía máy chủ..
Với dự án của bạn mở trong Visual Studio, hãy mở tệp JavaScript phía máy chủ (chẳng hạn như máy chủ. ....
Để chạy ứng dụng của bạn, nhấn F5 (gỡ lỗi> bắt đầu gỡ lỗi). ....
Nhấn F5 để tiếp tục ứng dụng ..
Nếu bạn muốn sử dụng các công cụ của nhà phát triển Chrome, hãy nhấn F12 vào trình duyệt Chrome ..

Làm cách nào để kích hoạt gỡ lỗi JavaScript trong Internet Explorer?

Để cho phép gỡ lỗi tập lệnh trong Internet Explorer..
Trên menu Công cụ Explorer Internet, chọn Tùy chọn Internet ..
Trong hộp thoại Tùy chọn Internet, nhấp vào tab nâng cao ..
Trên tab nâng cao, hãy xem trong hộp Cài đặt, Danh mục duyệt ..
Xóa DECUT DEBUGGING SCRIPT (Internet Explorer) ..
Bấm OK ..

Tại sao JavaScript rất khó để gỡ lỗi?

Điều làm cho JavaScript trở nên tuyệt vời cũng là điều khiến nó bực bội khi gỡ lỗi.Bản chất không đồng bộ của nó giúp bạn dễ dàng điều khiển DOM để đáp ứng với các sự kiện của người dùng, nhưng nó cũng gây khó khăn cho việc xác định các vấn đề.Its asynchronous nature makes it easy to manipulate the DOM in response to user events, but it also makes it difficult to locate problems.

Làm cách nào để gỡ lỗi vấn đề JavaScript?

Trong cửa sổ trình gỡ lỗi, bạn có thể đặt các điểm dừng trong mã JavaScript.Tại mỗi điểm dừng, JavaScript sẽ ngừng thực hiện và cho phép bạn kiểm tra các giá trị JavaScript.Sau khi kiểm tra các giá trị, bạn có thể tiếp tục thực thi mã (thường bằng nút phát).. At each breakpoint, JavaScript will stop executing, and let you examine JavaScript values. After examining values, you can resume the execution of code (typically with a play button).