Như với bất kỳ công cụ phát triển phần mềm hiện đại nào khác, bảo mật là mối quan tâm số một để phát triển ứng dụng Angular sớm.
Angular- một khuôn khổ dựa trên thành phần front-end- chắc chắn giúp giảm thiểu một loạt các mối đe dọa bảo mật mà không cần thêm các dòng mã.
Tuy nhiên, ngay cả với lá chắn bảo vệ tuyệt vời cùng với Hỗ trợ dài hạn (LTS) từ Google, các ứng dụng được xây dựng trên Angular vẫn dễ bị tấn công.
Xác định các lỗ hổng bảo mật là bước đầu tiên trong vở kịch của các tác nhân đe dọa.
Khi tìm thấy một điểm yếu chưa được vá, chúng sẽ khai thác nó để giành quyền truy cập vào ứng dụng và khởi động một cuộc tấn công.
Snyk đã làm rất tốt khi giải thích các phương pháp hay nhất về bảo mật trong Angular cạnh giúp ngăn chặn các cuộc tấn công vào các ứng dụng chạy trên Angular.
Bài viết này sẽ xem xét năm rủi ro bảo mật được biết đến nhiều nhất mà các ứng dụng Angular quan tâm.
Kịch bản chéo trang (XSS)
Cross-site scripting là một cuộc tấn công web lớp ứng dụng phổ biến trong đó tin tặc đưa các đoạn mã độc hại vào một ứng dụng web. Trang web thu thập dữ liệu độc hại và diễn giải nó dưới dạng mã. Khi thực thi, lỗ hổng XSS cho phép kẻ độc hại kiểm soát hoàn toàn ứng dụng.
Khi một trang web có lỗ hổng XSS thực thi một mã độc hại, nó sẽ gửi thông tin cookie của bạn cho kẻ tấn công đằng sau hậu trường. Điều này có nghĩa là cả bạn và trang web đều không biết rằng một cuộc tấn công XSS đang diễn ra.
Xem thêm: Cách chuyển đổi thư mục VIDEO_TS cho iPad
Trong hầu hết các trường hợp, những kẻ tấn công gửi mã dưới dạng kết hợp của XSS và HTML. Nhưng XSS cũng có thể ở dạng plugin thực thi, nội dung tải xuống và nội dung phương tiện.
Có ba loại tấn công XSS:
XSS liên tục
XSS liên tục còn được gọi là XSS được lưu trữ, là khi kẻ tấn công tiêm mã độc hại trực tiếp vào một ứng dụng web dễ bị tấn công.
XSS không liên tục (AKA Loại II hoặc XSS phản chiếu)
Cuộc tấn công này xảy ra khi một tập lệnh độc hại được phản ánh từ một ứng dụng web trên trình duyệt của người dùng của bạn.
XSS dựa trên DOM
XSS dựa trên DOM còn được gọi là Type-0 XSS, là một cuộc tấn công trong đó kẻ tấn công thay đổi Mô hình Đối tượng Tài liệu (DOM) trong trình duyệt của nạn nhân.
Do đó, kẻ tấn công có thể chạy mã trong trình duyệt mục tiêu mà người dùng không hề hay biết.
Mặc dù không có thay đổi nào được thực hiện trên chính phản hồi HTTP, nhưng tập lệnh gây hại có thể thực thi khác nhau do sự thay đổi trong môi trường DOM.
Tấn công bằng Clickjacking
Clickjacking là khi kẻ tấn công thao túng người dùng nhấp vào nút hoặc liên kết, do đó thực hiện một hành động trên trang khác khi họ có ý định thực hiện một điều gì đó khác biệt. Do đó, kẻ tấn công đang chiếm đoạt các nhấp chuột bằng cách định tuyến lại chúng đến các trang của chúng.
Thông thường, một cuộc tấn công bằng clickjacking sẽ ẩn giao diện người dùng của trang web mục tiêu một số lớp bên dưới giao diện người dùng hiển thị. Do đó, nạn nhân không biết rằng họ đang nhấp vào một trang web khác. Đó là lý do tại sao các cuộc tấn công này còn thường được gọi là các cuộc tấn công chỉnh sửa giao diện người dùng hoặc các cuộc tấn công chỉnh sửa giao diện người dùng.
Hậu quả của những cuộc tấn công này có thể bao gồm việc tải xuống phần mềm độc hại, vô tình tăng lượt thích trên mạng xã hội, mua sản phẩm trên các cửa hàng Thương mại điện tử và thậm chí là chuyển tiền.
Có nhiều kiểu tấn công clickjacking khác nhau, bao gồm;
Các cuộc tấn công của trình quản lý mật khẩu
Cuộc tấn công này đánh lừa người quản lý mật khẩu để sử dụng chức năng tự động điền.
Likejacking
Trong cuộc tấn công Likejacking, kẻ tấn công chiếm đoạt các nhấp chuột của người dùng và chuyển chúng thành các lượt thích trên mạng xã hội, chẳng hạn như Facebook.
Cookiejacking
Đây là nơi người dùng được thực hiện để tương tác với một phần tử giao diện người dùng, chẳng hạn như hộp kiểm, do đó cung cấp cho kẻ tấn công các cookie được lưu trữ trong trình duyệt của họ.
Điều này cho phép kẻ tấn công thay mặt người dùng thực hiện các hành động trên trang web mục tiêu.
Các cuộc tấn công Injection Template Side Client (CSTI)
Lỗ hổng phía máy khách này phát sinh khi một ứng dụng chạy khuôn khổ mẫu phía máy khách đặt đầu vào của người dùng vào các trang web.
Các lỗ hổng chèn mẫu phía máy khách thường gặp trong Angular vì nó là khung mẫu phía máy khách.
Trong cuộc tấn công tiêm mẫu phía máy khách, kẻ tấn công có thể lấy cắp dữ liệu của nạn nhân và sử dụng nó để thực hiện các hành động thay mặt họ. Trong hầu hết các trường hợp, các lỗ hổng CSTI vô tình xảy ra do thiết kế mẫu kém.
Tuy nhiên, điều quan trọng cần lưu ý là một số lỗ hổng CSTI đôi khi được triển khai có chủ ý. Ví dụ: nếu trang web của bạn cho phép người dùng nhập, chẳng hạn, cho phép người chỉnh sửa có đặc quyền gửi mẫu theo thiết kế, bạn có nguy cơ cao bị tấn công CSTI ngay khi kẻ tấn công xâm phạm tài khoản người dùng với các đặc quyền đó.
Phiên bản Angular 1.2-1.6 có hộp cát giúp ngăn chặn các cuộc tấn công CSTI.
Nhưng điều này sau đó được phát hiện là không hiệu quả và bị loại bỏ trong các phiên bản 1.6 trở lên. Nếu bạn đang thử nghiệm một ứng dụng web chạy trên Angular 1.2 đến 1.5, thì bước đầu tiên sẽ là tìm kiếm hộp cát và bỏ qua nó để tải trọng thực thi.
Tấn công SQL Injection
Trong suốt lịch sử của Angular, SQL injection luôn nằm trong top những mối đe dọa phổ biến nhất mà các nhà phát triển và doanh nghiệp phải vật lộn.
Tấn công SQL Injection là một kỹ thuật tấn công web phổ biến trong đó kẻ tấn công cố gắng chèn một mã SQL độc hại vào cơ sở dữ liệu của bạn thông qua các trường dễ bị tấn công, chẳng hạn như hộp văn bản.
Thực tế là nó được thực thi trên cơ sở dữ liệu của bạn có nghĩa là hệ thống và dữ liệu nhạy cảm của bạn đang gặp rủi ro, khiến đây trở thành hình thức tấn công tồi tệ nhất mà bạn nên đề phòng.
Sau một cuộc tấn công SQL Injection Attack thành công, tác nhân độc hại có thể: 1. Hack tài khoản của người dùng 2. Đánh cắp và sao chép dữ liệu nhạy cảm từ cơ sở dữ liệu của trang web 3. Xóa dữ liệu nhạy cảm 4. Sửa đổi cấu trúc của cơ sở dữ liệu 5. Thay đổi hoặc sửa đổi dữ liệu nhạy cảm của hệ thống dữ liệu 6. Xem thông tin cá nhân của người dùng khác 7. Kiểm soát máy chủ cơ sở dữ liệu và ra lệnh các hành động theo ý muốn
Các cuộc tấn công JSONP
JSONP (hoặc JSON có đệm) là một cuộc tấn công trên diện rộng giữa các trang web dựa trên Chia sẻ tài nguyên nhiều nguồn gốc (hoặc CORS).
CORS là một khái niệm trong đó một trang web cung cấp quyền rõ ràng cho trang khác
Ngoài CORS, còn có JSONP. Đây là một cách khác để truy cập dữ liệu từ một trang web khác. Sử dụng phương pháp này, chỉ người dùng được xác thực mới có thể truy xuất dữ liệu cá nhân dành riêng cho người dùng. Điều này có nghĩa là các trang web khác không thể có quyền truy cập vào dữ liệu đó.
Tuy nhiên, JSONP cho phép điều này dưới dạng tấn công kiểu CSRF. Cuộc tấn công này lợi dụng thực tế là JSONP dựa vào Chính sách nguồn gốc (SOP). Vấn đề với SOP là nó không ngăn các trang web thực thi các thẻ <script> bên ngoài.
Trong trường hợp đó, trang web của kẻ tấn công thêm URL JSONP làm tập lệnh.
Trình duyệt thực hiện yêu cầu và gửi cookie cho người dùng đã xác thực. JSONP trả về dữ liệu cho người dùng đã xác thực, dữ liệu này được trang web của kẻ tấn công đọc.
Kẻ tấn công sử dụng phiên hiện tại để thực hiện các yêu cầu bổ sung. Như bạn có thể tưởng tượng, điều này gây ra một mối đe dọa lớn nếu trang web thứ hai có dữ liệu nhạy cảm và có thể khai thác được.
No comments:
Post a Comment