Tại sao tôi nên cho phép nhiều địa chỉ IP trên một trang web cho một phiên?


18

Tôi hy vọng câu hỏi của tôi phù hợp với phạm vi của trang web này.

Tôi đang phát triển một CMS . Hiện tại người dùng đã đăng nhập của tôi bị khóa vào địa chỉ IP của họ cho phiên. Thật không may, một phần nhỏ trong cơ sở người dùng của tôi liên tục nhảy giữa hai hoặc nhiều địa chỉ IP. Hầu hết trong số họ có thể sử dụng cân bằng tải. Về mặt kỹ thuật, không cần thiết phải khóa phiên người dùng vào một địa chỉ IP. Tôi không mong đợi khách hàng chuyển đổi giữa nhiều địa chỉ IP cho một yêu cầu trang trên trang web của tôi.

Bây giờ tôi tự hỏi, những rủi ro trong việc cho phép khách hàng của tôi liên tục chuyển giữa các địa chỉ IP cho một yêu cầu trang (ví dụ: các tệp CSS được yêu cầu bởi xxx.xxx.xxx.xxx và các tệp JavaScript được yêu cầu bởi yyy.yyy.yyy. yyy)? Tôi thường nên cho phép hoặc cấm điều đó?


39
Bạn thậm chí không cần cân bằng tải để nhảy xung quanh IP. Kết nối trên điện thoại của bạn trên tàu điện ngầm, bạn có thể nhận được một IP khác nhau cứ sau vài phút khi tàu di chuyển, và sau đó một lần nữa khi điện thoại của bạn chuyển sang WiFi tại một điểm đến.
tên

13
Ngoài ra đối với máy tính xách tay di chuyển giữa các địa điểm (giả sử, nhà> công việc> starbucks). Ngoài ra: Địa chỉ ngẫu nhiên IPv6 (tiện ích mở rộng quyền riêng tư IPv6 SLAAC).
marcelm

Theo trực giác, tôi mong muốn khách hàng nhảy xung quanh trên các nguồn khác nhau của Ips sẽ gây ra sự cố nếu đó là bất cứ điều gì ngoài "thỉnh thoảng".
Tom H

1
Nếu bạn đang phát triển một ứng dụng web sẽ được cài đặt trong mạng mà bạn kiểm soát hoặc bạn có kiến ​​thức về bạn có thể quyết định thực hiện việc này để bảo mật vì bạn có thể nói "trong tình huống này, nhiều IP sẽ không xảy ra do người dùng phải truy cập cái này từ WS của họ và không có bộ cân bằng tải hoặc những thứ khác ở giữa có thể thay đổi IP của họ "... trong trường hợp đó bạn thậm chí có thể theo dõi IP của người dùng vì WS của họ có thể luôn có cùng một (hoặc nó chỉ có thể thay đổi một lần trong vài tháng một lần)
Bakuriu

1
@TomH Không, phần lớn các ứng dụng web không quan tâm đến địa chỉ IP của bạn, họ sẽ chấp nhận cùng một cookie trong yêu cầu HTTP qua kết nối TCP mới. Chỉ có crap bị mất trí và được thiết kế xấu mới khóa phiên của bạn thành IP hoặc kết nối.
Navin

Câu trả lời:


35

một phần nhỏ trong cơ sở người dùng của tôi liên tục nhảy giữa hai hoặc nhiều địa chỉ IP.

Nguyên nhân

Giả sử rằng người dùng của bạn không chủ động tìm cách ẩn địa chỉ IP thực của họ bằng cách sử dụng dịch vụ ẩn danh ...:

Hầu hết các ví dụ về công ty tôi đã thấy là do các công ty lớn hơn và một số ISP sử dụng một cụm máy chủ proxy, mỗi máy chủ có một địa chỉ IP bên ngoài khác nhau, với các yêu cầu người dùng được cân bằng tải trên cụm đó.

Bạn có thể thấy người dùng Dual Stack thực hiện các yêu cầu qua cả IPv4 và IPv6 và chuyển đổi giữa hai giao thức RFC 8305 cho các yêu cầu tiếp theo.

Kịch bản khác là khi tôi ở phạm vi cực cao của điểm truy cập Wi-Fi và thiết bị của tôi "chuyển đổi" ngẫu nhiên giữa Wi-Fi và dữ liệu di động.

Các giải pháp

Trong kịch bản đầu tiên, bạn có thể thỏa hiệp giữ "bảo mật" địa chỉ IP đó trong các phiên của mình bằng cách chỉ xem xét ba octet đầu tiên, vì thông thường, một cụm máy chủ proxy như vậy đều nằm trong một mạng con nhỏ và sẽ có địa chỉ IP lân cận.

Trong kịch bản thứ hai và thứ ba, bạn sẽ thấy các địa chỉ IP của máy khách hoàn toàn khác nhau, từ các nhà cung cấp thậm chí không liên quan.

Đừng ràng buộc các phiên của bạn với một địa chỉ IP cụ thể, điều đó có nhiều khả năng phá vỡ trải nghiệm người dùng hơn là cung cấp bảo mật được cải thiện thực tế.


27
Không ai liên kết các phiên với địa chỉ IP nữa, vì chính xác những lý do này.
Michael Hampton

33
KHÔNG BAO GIỜ liên kết các phiên với địa chỉ IP, thập niên 80 đã kết thúc! ISP của tôi cung cấp một mạng hoàn chỉnh / 64 cho điện thoại của tôi, trong đó trình duyệt của tôi nhảy xung quanh như điên.
bjoster

6
Ngoài tất cả, TCP đa đường đang ngày càng phổ biến.
Poyrazoğlu

3
Nếu bạn đang tạo CMS cho người dùng kỹ thuật, bạn có thể đặt hộp kiểm "giới hạn phiên này cho ip của bạn (xxx.yyy.zzz.iii)" trên trang đăng nhập
Ferrybig

6
@bjoster đó là vì tiện ích mở rộng quyền riêng tư IPv6, nó liên tục chuyển đổi địa chỉ để các trang web không thể theo dõi bạn bằng ip của bạn (đây không phải là vấn đề với IPv4, vì nhiều người đứng sau cùng một địa chỉ)
Ferrybig

9

Bây giờ tôi tự hỏi, những rủi ro trong việc cho phép khách hàng của tôi liên tục chuyển giữa các địa chỉ IP cho một yêu cầu trang (ví dụ: các tệp CSS được yêu cầu bởi xxx.xxx.xxx.xxx và các tệp JavaScript được yêu cầu bởi yyy.yyy.yyy. yyy)? Tôi thường nên cho phép hoặc cấm điều đó?

Rủi ro chính là người dùng độc hại chiếm quyền điều khiển phiên. Nếu bạn có thể khóa xuống một hoặc một nhóm nhỏ địa chỉ IP, bạn có thể chặn người dùng từ các địa chỉ IP hoàn toàn khác nhau chiếm quyền điều khiển phiên.

Vấn đề là một số người dùng làm điều này một cách hợp pháp. Cho dù họ đang sử dụng proxy cân bằng tải hoặc ở lề của hai điểm truy cập không dây (hoặc bất cứ điều gì), họ đều sử dụng nhiều địa chỉ IP. Vì vậy, bạn khá nhiều phải cho phép nó cho những người dùng. Và thật khó để nói người dùng nào yêu cầu nhiều địa chỉ IP trừ khi họ yêu cầu từ nhiều địa chỉ IP.

Một cách để giảm tác động của việc này là sử dụng HTTPS. Sau đó, diễn viên độc hại phải có cách để thỏa hiệp lớp bảo mật cũng như cookie phiên. Trong một kết nối không an toàn, diễn viên độc hại chỉ có thể sử dụng kiểm tra mạng để thỏa hiệp cookie phiên. Nhưng qua HTTPS, cùng một diễn viên độc hại cần có quyền truy cập vào một trong những kết thúc của cuộc trò chuyện. Và nếu diễn viên độc hại có điều đó, thì không cần thiết phải sử dụng một IP khác.

TL; DR : bạn thường nên cho phép các yêu cầu từ các địa chỉ IP khác nhau cho cùng một người dùng. Có những lý do chính đáng điều này có thể xảy ra. Thay vào đó, hãy sử dụng HTTPS để bảo vệ khỏi lớp khai thác đó.


4

những rủi ro trong việc cho phép khách hàng của tôi liên tục nhảy giữa các địa chỉ IP cho một yêu cầu trang

Từ quan điểm bảo mật - không có rủi ro.

Bây giờ, từ một quan điểm thực tế. Điều đó có nghĩa là bạn không thể sử dụng một số loại thuật toán nhất định để bảo mật hoặc bảo vệ DoS .

Một cách đơn giản để điều tiết các yêu cầu của người dùng là theo dõi theo địa chỉ IP. Vì điều này không cần phải tương tác với máy chủ ứng dụng của bạn, bạn có thể sử dụng các dịch vụ ở cấp thấp hơn để làm điều này. Phần mềm như mod_evasive của Apache làm điều này. Bạn vẫn có thể sử dụng các kỹ thuật này, nhưng người dùng thay đổi địa chỉ IP sẽ làm giảm hiệu quả của chúng. Sau đó, một lần nữa, người dùng sẽ chuyển đổi địa chỉ IP để các kỹ thuật này chưa bao giờ thực sự hiệu quả.

Một trường hợp sử dụng có liên quan, nhưng khác nhau, đang điều chỉnh các lần thử đăng nhập thất bại. Điều này là để ngăn chặn việc đoán mật khẩu vũ phu. Nhưng một lần nữa, không có gì bạn có thể làm nếu người dùng thay đổi địa chỉ IP. Một hacker thực sự nghiêm túc thậm chí sẽ không sử dụng máy của chính mình. Anh ấy chỉ cần mua một chút thời gian trên botnet (hoặc sử dụng botnet bị nhiễm trước đó của chính mình) và kết nối với dịch vụ của bạn thông qua 10.000 PC của người khác (địa chỉ IP). Điều này không thực sự liên quan đến việc giới hạn địa chỉ IP của người dùng vì đó là thông tin đăng nhập trước, nhưng đó là điều cần lưu ý.


1

Có một số lý do tại sao người dùng có thể chuyển đến một địa chỉ IP mới.

  1. Tiện ích mở rộng bảo mật IPv6, nhiều máy khách IPv6 hiện nay sẽ nhảy xung quanh trong / 64 trên mạng.
  2. Tải các proxy cân bằng, yêu cầu của máy khách được chuyển đến một trong một số proxy với mỗi IP riêng biệt.
  3. Các nhóm NAT, đường viền nat được cấu hình với nhiều địa chỉ IP và gán các kết hợp IP / cổng từ nhóm arbitarilly cho các kết nối TCP của máy khách.
  4. Người dùng di chuyển giữa các mạng hoặc các bộ phận khác nhau của mạng, phổ biến với điện thoại hiện nay.
  5. Người dùng ngăn xếp kép có thể nhảy giữa IPv4 và IPv6.

Bây giờ tôi tự hỏi, những rủi ro trong việc cho phép khách hàng của tôi liên tục nhảy giữa các IP cho một yêu cầu trang

Ưu điểm của việc khóa sessoins của khách hàng đối với IP là nó làm cho các cuộc tấn công ăn cắp phiên trở nên khó khăn hơn. Nếu kẻ tấn công có cơ chế cho phép chúng đánh cắp cookie của khách hàng nhưng không cho phép chúng thực hiện kết nối với máy chủ của bạn từ địa chỉ IP của máy khách thì khóa IP sẽ chặn chúng lấy cắp phiên.

Nhược điểm là như bạn nói nó sẽ gây ra sự cố cho một số người dùng thấy phiên của họ bị vô hiệu mà không có lý do rõ ràng.

Hầu hết các trang web hiện nay dường như nghĩ rằng sự phá vỡ lớn hơn lợi ích của việc khóa như vậy.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.