it-swarm-vi.com

Làm thế nào để bạn khám phá những quyền mà một nhóm AD có, nếu bạn không có tài liệu?

Bạn vừa được tuyển dụng tại công ty A và quản trị viên cũ không còn ở đó nữa. Yêu cầu bắt đầu thông qua để thêm người dùng vào nhóm hạn chế internet. Khi bạn nhìn vào các nhóm, không có cái tên nào có ý nghĩa và không có tài liệu nào để giải thích mỗi nhóm có quyền gì và nó làm gì. Điều đó sẽ gây lo ngại cho tôi. Để bảo mật, làm thế nào để bạn biết nếu mọi người đều có quyền chính xác.

Làm thế nào bạn sẽ khám phá những gì các nhóm có quyền? Có một công cụ ngoài đó sẽ tìm thấy thông tin này cho bạn?

20
Ambar Batista

Hãy để tôi nói trước những gì có thể sẽ là một câu trả lời dài với "Không có giải pháp đơn giản".
[.___.] Việc giải quyết điều này sẽ mất một số công việc chiến lược (đó là lý do tại sao tôi khuyên dùng không chuyển việc này sang SF).

Bây giờ tôi sẽ giải thích tại sao.

Windows, cốt lõi, chủ yếu dựa trên mô hình DAC của kiểm soát truy cập.
[.__.] Mọi thứ trong HĐH có thể bảo mật bằng ACL - tệp, thư mục, sổ đăng ký, đường ống có tên, ổ cắm, cổ phiếu, v.v.

Sử dụng các nhóm AD cho phép bạn trừu tượng hóa nó thành một mô hình kiểu RBAC, nhưng bên trong nó vẫn là một mô hình DAC. (Ý tôi là, bạn có thể tạo một ACE (mục kiểm soát truy cập) cho một nhóm (tức là vai trò), nhưng bạn vẫn đang tạo một ACE - và đó là những gì sẽ được xác minh khi truy cập).

Nhấn mạnh vào "chủ yếu".
[.__.] Có một vài ngoại lệ khác biệt cho việc này:

  1. Có một số triển khai MAC - tức là Cấp độ toàn vẹn (trong Vista/7/2008).
    [.__.] Tuy nhiên, đây thường là cơ chế bảo vệ hệ điều hành bên trong và thường là không được sử dụng để kiểm soát truy cập thực (trừ UAC tích hợp). Thông thường .
  2. Đặc quyền cấp hệ điều hành. (Mặc dù có thể chỉ định một người dùng cụ thể để cấp các đặc quyền này, nhưng nó được dự định - và hoạt động như - một mô hình RBAC).

Nhưng chờ đã, đó chỉ là trong hệ điều hành ...
[.__.] Windows, với tư cách là một nền tảng, cho phép và khuyến khích các ứng dụng (bên thứ 3, các sản phẩm MS và addons OS) sử dụng tư cách thành viên nhóm AD làm cơ chế RBAC:

  1. Các ứng dụng của bên thứ 3 có thể xác minh tư cách thành viên nhóm thông qua tra cứu AD/LDAP đơn giản - các ứng dụng này có thể đang lưu trữ tên nhóm và giải quyết vấn đề đó hoặc lưu SID của nhóm và truy vấn trực tiếp cho điều đó.
  2. Đừng quên SQL Server - điều này chủ yếu dựa trên (một số loại vai trò) khác nhau, tuy nhiên, cách tốt nhất thường được đề xuất là thêm AD nhóm cho các vai trò này chứ không phải người dùng trực tiếp.
  3. Miễn là chúng tôi làm việc đó, COM + cũng quản lý quyền truy cập bằng RBAC, nhưng thực tế tốt nhất là thêm các nhóm, không phải người dùng, vào vai trò COM +.
  4. Sharepoint cũng quản lý quyền truy cập vào các trang web theo vai trò/nhóm/và danh sách gửi thư ...

Bắt đầu thấy quan điểm của tôi?
[.__.] Tôi không muốn nói rằng nó vô vọng, NHƯNG ...

Tóm lại:
[.___.] Để tìm danh sách các quyền chính xác mà một nhóm cụ thể có, bạn (hoặc một công cụ) sẽ cần kiểm tra đệ quy TẤT CẢ các điều sau đây (và, đừng quên lặp lại tư cách thành viên nhóm):

  • Đối với mỗi máy chủ trong org của bạn: [.__.]
    • kiểm tra đệ quy ACL trên tất cả các thư mục và tệp
    • kiểm tra đệ quy SACL trên tất cả các thư mục và tệp (danh sách kiểm soát truy cập hệ thống - kiểm tra kiểm soát này)
    • kiểm tra đệ quy chủ sở hữu trên tất cả các thư mục và tập tin
    • kiểm tra đệ quy ACL, SACL và chủ sở hữu trên tất cả các khóa đăng ký
    • kiểm tra đệ quy ACL, SACL và chủ sở hữu trên tất cả các đường ống, quy trình và chủ đề, dịch vụ, công việc, v.v.
    • Kiểm tra tất cả các đặc quyền cấp hệ điều hành (mặc dù có thể điều này có thể được thực hiện dễ dàng hơn bằng cách sử dụng GPO ...)
    • Kiểm tra tất cả các vai trò COM +, vai trò MSMQ, v.v.
  • Đối với mỗi tên miền trong AD của bạn: [.__.]
    • Kiểm tra tất cả các đặc quyền cấp tên miền
    • kiểm tra tất cả các GPO (đối tượng chính sách nhóm)
  • Đối với mỗi máy chủ cơ sở dữ liệu: [.__.]
    • Kiểm tra tất cả các vai trò máy chủ
    • kiểm tra tất cả các vai trò cơ sở dữ liệu
    • kiểm tra tất cả các vai trò ứng dụng (trong MSSQL)
  • Đối với mỗi cổng thông tin Sharepoint: [.__.]
    • kiểm tra tất cả các vai trò và đặc quyền cấp máy chủ
    • kiểm tra tất cả các vai trò và đặc quyền ở cấp độ trang web và cấp độ danh sách
  • Đối với mỗi ứng dụng của bên thứ 3: [.__.]
    • Kiểm tra bất kỳ việc sử dụng các nhóm AD
    • xác minh làm thế nào ứng dụng sử dụng các vai trò sau:
      [.__.] -> Tên nhóm so với DN so với nhóm SID so với ... ví dụ: nhóm GUID
      [.___.] -> ứng dụng có kiểm tra rõ ràng tư cách thành viên vai trò trực tiếp không, hay ứng dụng có sử dụng các phương thức đệ quy "thông minh hơn" không?
    • Lưu ý rằng điều này áp dụng cho cả các sản phẩm và nền tảng đóng gói của bên thứ 3 (ví dụ: Oracle, SAP, MQSeries, WebSphere ...) và cho các ứng dụng kinh doanh được phát triển tùy chỉnh.

Điều này đã hoàn thành chưa?
Thật đáng buồn không. Ví dụ: tôi không bao gồm việc xem xét tất cả máy tính để bàn trong org, vì những cái đó nên có các quyền cấp độ nhóm AD cụ thể được đặt trên chúng (ngoại trừ Quản trị viên và HelpDesk ) - nhưng lưu ý rằng họ thường làm.
[.__.] Nhưng đây không phải là một danh sách đầy đủ ...

Đây là nhược điểm lớn khi sử dụng mô hình DAC - "D" cũng có thể dành cho "Phân phối", vì không có vị trí trung tâm để tra cứu tất cả các ACL này.
[.__.] Như tôi đã lưu ý trong Sự khác biệt giữa RBAC và DAC/ACL là gì? :

  • Các định nghĩa về DAC thường được gắn vào dữ liệu/tài nguyên, trong khi RBAC thường được xác định ở hai vị trí: trong mã/cấu hình/siêu dữ liệu (quyền truy cập vai trò) và trên đối tượng người dùng (hoặc bảng - vai trò của mỗi người dùng).

Bây giờ, một chút về các giải pháp:

  • Có một số công cụ để thu thập các phần khác nhau của danh sách trên, ví dụ: Câu trả lời của @ Ian sử dụng tập lệnh powershell để thu thập ACL thư mục. Có nhiều công cụ khác cho điều đó (trước đây tôi đã biết sử dụng CACLS), một số công cụ được ghi chú tại đây .
    [.__.] Để yêu cầu một công cụ/tập lệnh cho một phần cụ thể của danh sách, bạn có thể có ý tưởng tốt hơn tại ServerFault. Tuy nhiên, hãy tính đến việc đó chỉ là một phần của danh sách.
  • Có một số sản phẩm "quản lý vai trò" và "khám phá vai trò" ngoài kia, từ một số nhà cung cấp lớn, thường là trong không gian Quản lý danh tính - tôi không thể đề xuất một cách cụ thể, nhưng đáng để xem xét: CA (trước đây là Eurekify là một công cụ khá (mặc dù chưa hoàn thành)), IBM , Oracle .
    [.__.] Tất nhiên là có những người khác, và tôi sẽ nghiêng nặng nề hướng tới việc tìm kiếm các nhà cung cấp nhỏ hơn tốt nhất, ngay cả từ một công ty khởi nghiệp (được, có lẽ tôi thiên vị;)). Ý tôi là, từ những người không được mua bởi các nhà cung cấp lớn hơn.
  • Bạn có thể (và có lẽ nên, mặc dù điều này không quan trọng) bắt đầu quá trình vạch ra tổ chức, yêu cầu kinh doanh và như vậy - nhắm đến những đặc quyền nào họ nên get, và không chỉ hiện trạng là gì ngay bây giờ =. Một số công cụ được đề cập ở điểm trước có thể giúp đỡ ở đây.
  • Nếu việc phân tích và mô hình hóa các vai trò trước diễn ra tốt đẹp, hãy xem xét việc tìm kiếm một giải pháp IdM/IAM/EAM toàn diện. Một lần nữa, ý kiến ​​của tôi nhà cung cấp wrt vẫn đứng.
  • Trong mọi trường hợp, hãy hướng tới việc giảm thiểu việc phân phối ACL ở mọi nơi và Đẩy cho RBAC tối thiểu, tập trung hết mức có thể.

Và, một lời cảnh báo cuối cùng cho những người may mắn trở thành trước đó tình huống khó chịu mà bạn hiện đang thấy mình gặp phải:
[.__.] Chắc chắn xem xét một nền tảng ủy quyền tập trung, chẳng hạn như các sản phẩm IdM/IAM/EAM. (Lưu ý rằng một số là much tốt hơn những cái khác và một số thậm chí sẽ không giải quyết được tình huống này.)


tl; dr: Bạn đúng và thực sự say mê . Xem ở trên. ;)
(Nhưng không phải mọi hy vọng đều mất...)

23
AviD

Câu trả lời cho điều này phụ thuộc vào chính xác cách bạn muốn xem/quản lý dữ liệu này. Đề xuất của tôi sẽ là PowerShell để có được tất cả những điều này.

Nếu bạn chọn sử dụng PowerShell, bạn có thể sử dụng Cmdlets AD gốc hoặc Cmdlets miễn phí của Quest (http://www.quest.com/powershell/activeroles-server.aspx). Để sử dụng Cmdlets gốc, bạn phải có ít nhất một bộ điều khiển miền Windows Server 2008 R2 trong miền của bạn hoặc ít nhất một phiên bản trong bộ cấu hình AD LDS đang chạy trên máy chủ Windows Server 2008 R2 - xem http: //technet.Microsoft.com/en-us/l Library/ee617195.aspx để biết chi tiết.

Thực tế, tất cả những gì bạn phải làm là kiểm tra đệ quy ACL thư mục để biết mức truy cập của một Nhóm cụ thể. Có một vài nơi ( ở đâyở đây ) nơi mọi người thực hiện các nỗ lực, nhưng cho rằng đây có thể là một lượng lớn cấu trúc tệp mà kịch bản phải điều hướng, nó chắc chắn có thể mất một thời gian. Nó thậm chí còn phức tạp hơn cho các nhóm lồng nhau.

EDIT: @AviD là điểm nhấn về cú pháp lệnh ban đầu và nó đã làm sai hoàn toàn! Chỉnh sửa để được nhiều hơn về chủ đề.

4
Ian Pugsley

Điều này có thể được thực hiện thông qua lệnh Windows Prompt như sau:

  • Chuyển đến thư mục bạn muốn lưu báo cáo của mình, nếu không được chọn, nó sẽ mặc định là thư mục người dùng đã đăng nhập. Một ví dụ sẽ là cd C:\Users\Administrator\Desktop

  • Tạo một báo cáo bằng cách sử dụng lệnh sau:

    gpresult /s servername /user INTERNAL\user1 /h gpreport.html
    
  • Lệnh trên sẽ tạo một báo cáo dựa trên GPOS và các quy tắc được áp dụng cho người dùng mà báo cáo được chọn. Người dùng này phải là người là thành viên của một nhóm nhất định hoặc bạn có thể tạo người dùng thử để kiểm tra cài đặt của một nhóm nhất định.

  • Một cách khác bạn có thể tìm thấy thông tin này là bằng cách chỉnh sửa GPO và trên Windows 2008, bạn nên có tùy chọn để xem tất cả các cài đặt và sắp xếp chúng theo trạng thái, sau đó bạn có thể ghi lại tất cả các cài đặt được bật của GPO.

1
Brian Winning Jr.