CISCO UMBRELLA
Cisco Umbrella là một cơ chế bảo mật dựa trên dịch vụ DNS, cung cấp dịch vụ bảo mật chung ở hình thức tại chổ on-prem hoặc off-prem (trên mây) cho các thiết bị đầu cuối. Umbrella tại chổ sẽ không cần các thiết bị đầu cuối cài đặt bất cứ phần mềm nào vào máy. Nếu so sánh với thiết bị tường lửa, tường lửa phù hợp để chặn những mối đe dọa từ ngoài vào, còn Umbrella thì dùng để chặn những nguy cơ từ bên trong. Các mối đe dọa này không thể bị ngăn chặn bởi những thiết bị ngoại vi bởi vì nó đã ở phía sau của tường lửa.
Umbrella là một giải pháp bảo mật dựa giúp bảo vệ và chống lại các mối đe dọa phát sinh trên Internet. Umbrella là tuyến phòng thủ đầu tiên cho những người dùng có thể đang cố gắng kết nối Internet từ mọi nơi. Một thiết bị kết nối với Internet cần tra cứu DNS (Hệ thống Domain) để dịch tên của trang web hoặc dịch vụ sang địa chỉ IP mà nó cần kết nối. Umbrella xử lý hàng tỷ yêu cầu DNS mỗi ngày, phân tích và tìm hiểu về các hoạt động khác nhau và chặn các yêu cầu đến các điểm đến không mong muốn và độc hại trước khi kết nối được thiết lập. Cisco Umbrella kết hợp các dịch vụ bảo mật sau trong sản phẩm của mình, bất kể người dùng ở đâu:
Trong một vài trường hợp trong mạng doanh nghiệp, bạn phải điều chỉnh chính sách bảo mật cho các thiết bị đầu cuối mà không nằm trong phạm vi quản lý của bạn. Điều này đặt ra vài thách thức mà người thực thi bảo mật phải giải quyết: “Làm thế nào để quản lý bảo mật cho các thiết bị đầu cuối mà bạn không thể quản lý?”
Umbrella xử lý các yêu cầu DNS nhận được từ người dùng hoặc thiết bị trên mạng. Nó không chỉ hoạt động trên HTTP hoặc HTTPS mà còn hỗ trợ các giao thức khác. Giả sử rằng một người dùng muốn truy cập một trang web và đưa ra yêu cầu đối với trang web đó. Điều này dẫn đến một yêu cầu DNS được gửi đến Umbrella. Các bước sau xảy ra:
Bước 1. Umbrella phân tích yêu cầu DNS để kiểm tra xem tên miền (domain) có độc hại hay an toàn hay không.
Bước 2. Umbrella kiểm tra xem có bất kỳ chính sách nào được kích hoạt hay không, chẳng hạn như chính sách lọc nội dung hoặc các tên miền nằm trong danh sách cấm.
Bước 3. Nếu tất cả đều ổn, địa chỉ IP sẽ được gửi đến người dùng yêu cầu. Trong trường hợp của stanford.edu, Umbrella trả về địa chỉ IP chính xác.
Bước 4. Khi một yêu cầu DNS được gửi cho domain.xyz, Umbrella sẽ kiểm tra xem có bất kỳ chính sách nào được kích hoạt hay không hoặc đây có phải là một tên miền độc hại đã biết hay không.
Bước 5. Umbrella phản hồi bằng thông báo “trang bị chặn”, thông báo cho người dùng rằng tên miền độc hại hoặc nằm trong danh sách bị chặn.
Hình Umbrella: Chặn tra cứu tên miền độc hại
Umbrella có thể chặn những kết nối từ phía client ở mức ứng dụng, không cần quan tâm đến kiểu kết nối mạng hay các bảo mật ở lớp biên. Cách hoạt động của Umbrella là nó ngăn ngừa DNS phân giải địa chỉ đích. Nếu một máy client không thể phân giải địa chỉ đích, nó không thể thiết lập kết nối và sẽ không tải về các phần mềm độc hại. Umbrella có thể được dùng để ngăn ngừa các kết nối từ máy client đến các trang web độc hại hoặc những trang web mà chính sách của công ty không cho truy cập. 9.3.2. Umbrella APIs
Các API của Umbrella được thiết kế để cho phép các đối tác công nghệ khả năng gửi các biến cố về bảo mật từ nền tảng/dịch vụ/ứng dụng của họ đến Umbrella để áp đặt một chính sách. Bạn có thể liệt kê một danh sách các tên miền và xóa từng tên miền riêng lẻ ra khỏi danh sách. Tất cả các biến cố nhận được sẽ được phân tách ra thành từng nhóm cho từng khách hàng và có thể sử dụng cho các chính sách tương lai.
Để tích hợp thành công, bạn phải định dạng các sự kiện theo dạng chuẩn. Loại API mà Umbrella hỗ trợ là REST API và tuân theo đầy đủ các nguyên tắc RESTful. API này chỉ sử dụng HTTPS và có thể truy cập ở địa chỉ https://s-platform.api.opendns.com. Tất cả các kết quả trả về ở định dạng JSON và tất cả các cuộc gọi API đều phải xác thực. API loại này sử dụng rất nhiều các câu lệnh truy vấn để truy xuất và lọc tài nguyên.
Umbrella hỗ trợ nhiều API khác nhau cho các chức năng khác nhau:
3. Xác thực API của Umbrella
Tất cả các API của Umbrella đều sử dụng xác thực cơ bản HTTP. Giá trị khóa và giá trị bí mật (key and secret values) cần được mã hóa Base64 và được gửi như một phần của header Authorization cơ bản HTTP tiêu chuẩn. Yêu cầu API được gửi qua HTTPS. API yêu cầu thông tin xác thực phải được gửi trong header Authorization. Thông tin xác thực là tên người dùng và mật khẩu, được phân tách bằng dấu hai chấm (:), trong một chuỗi được mã hóa Base64.
Ví dụ:
"Basic ZGV2YXNjOnN0cm9uZ3Bhc3N3b3Jk"
Trong trường hợp này, ZGV2YXNjOnN0cm9uZ3Bhc3N3b3Jk là chuỗi mã hóa Base64 devasc:strongpassword (trong đó devasc là tên người dùng và strongpassword là mật khẩu). Ví dụ cho thấy ba dòng mã thực hiện mã hóa Base64 để gán giá trị vào header Authorization.
>>>""" Generate Base64 encoding using the base64 library """
>>>import base64
>>>encoded =base64.b64encode('devasc:strongpassword'.encode(' UTF-8')).decode('ASCII')
>>>print(encoded)
4. API Quản lý
Management API cho phép khách hàng, nhà cung cấp dịch vụ, nhà cung cấp dịch vụ được quản lý (MSP-managed service providers) và nhà cung cấp dịch vụ bảo mật được quản lý (MSSP-managed security service providers) quản lý các tổ chức, mạng, thiết bị mạng, người dùng và máy tính chuyển vùng và tích hợp các hành động trong quy trình làm việc hàng ngày của họ...
Management API có thể sử dụng điểm cuối ISP và MSSP chuyển ủy quyền được mã hóa Base64 trong tiêu đề.
>>>""" Get Customer details given a customerID """
>>>import requests
>>>url="https://management.api.umbrella.com/v1/serviceproviders/serviceProviderId/customers/customerId"
>>>headers = {
'accept': "application/json",
'authorization': "Basic
ZGV2YXNjOnN0cm9uZ3Bhc3N3b3Jk"
}
>>> response = requests.request("GET", url,
>>> headers=headers)
>>> print(response.text)
Management API bao gồm:
Umbrella Enforcement API được thiết kế để cung cấp cho các đối tác công nghệ khả năng gửi các sự kiện bảo mật từ nền tảng / dịch vụ / thiết bị của họ trong môi trường của khách hàng chung tới đám mây Umbrella để thực thi. Với API này, bạn có thể liệt kê các tên miền hoặc xóa các tên miền riêng lẻ khỏi danh sách. API bị hạn chế đối với HTTPS và được lưu trữ tại https://s-platform.api.opendns.com. Khóa khách hàng (customer key) UUID-v4 dùng để xác thực khách hàng đối với API. Một khóa phải được cung cấp với mỗi yêu cầu tới API. Để tạo hoặc lấy khóa khách hàng, bạn phải đăng nhập vào bảng điều khiển và điều hướng đến Policies > Policy Components > Integrations. Dưới đây là các bước liên quan khi khách hàng phát hiện một tên miền độc hại và muốn thêm tên miền đó vào Umbrella:
Bước 1. Khách hàng xác định mã độc hoặc hoạt động độc hại khi người dùng truy cập vào một URL hoặc tên miền cụ thể. Việc phát hiện có thể xảy ra với phần mềm của bên thứ ba hoặc Cisco AMP hoặc bất kỳ cơ chế nào khác mà khách hàng đã có sẵn.
Bước 2. Sự kiện này được gửi đến API thực thi Umbrella thông qua yêu cầu POST.
Bước 3. Cisco Umbrella tuân theo logic và thuật toán thích hợp trước khi thêm tên miền vào danh sách bị chặn. Nó trải qua các bước sau:
1. Umbrella kiểm tra xem tên miền có tồn tại trong danh sách khối toàn cầu của Umbrella theo một trong các danh mục bảo mật hay không.
2. Nó chạy API điều tra nội bộ để quyết định xem tên miền có lành tính hay không.
3. Nó kiểm tra trạng thái của tên miền (nghĩa là, chưa được phân loại hoặc đã phân loại).
4. Nó sẽ kiểm tra xem liệu tên miền đã có trong danh sách cho phép của khách hàng trong tổ chức hay chưa.
Bước 4. Nếu tất cả các lần kiểm tra đều được xác thực, Umbrella sẽ chặn các tên miền trong danh sách đó theo cài đặt bảo mật chính sách Umbrella của khách hàng đó. Ví dụ Mã POST Python để thêm tên miền bằng Enforcement API.
>>>""" Add domain using the Enforcement API """
>>>import json
>>>import requests
>>>url = "https://splatform.api.opendns.com/1.0/events"
>>>querystring = {"customerKey":"XXXXXXX-YYYYZZZZ-YYYY-XXXXXXXXXXXX"}
>>>payload = [
{
"alertTime": "2020-01-01T09:33:21.0Z",
"deviceId": "deadbeaf-e692-4724-ba36-c28132c761de",
"deviceVersion": "13.7a",
"dstDomain": "looksfake.com",
"dstUrl":
"http://looksfake.com/badurl",
"eventTime": "2020-01-01T09:33:21.0Z",
"protocolVersion": "1.0a",
"providerName": "Security Platform"
}
]
>>>headers = {
'Content-Type': "text/plain",
'Accept': "*/*",
'Cache-Control': "no-cache",
'Host': "s-platform.api.opendns.com",
'Accept-Encoding': "gzip, deflate",
'Connection': "keep-alive",
'cache-control': "no-cache"
}
>>>response=requests.request("POST", url, data=json.loads(payload), headers=headers, params=querystring)
>>>print(response.text)
Phần cuối cùng của Enforcement API là lệnh gọi DELETE để xóa tên miền. API giúp bỏ chặn các tên miền đã bị chặn do các sự kiện đã chèn trước đó. Ví dụ bên dưới cho thấy một lệnh Python yêu cầu đơn giản để xóa một tên miền bằng cách sử dụng API thực thi.
""" Delete domain using the Enforcement API """
>>>import requests
>>>url = "https://splatform.api.opendns.com/1.0/domains/looksfake.com"
>>>querystring = {"customerKey":"XXXXXXX-YYYYZZZZ-YYYY-XXXXXXXXXXXX"}
>>>response = requests.request("DELETE", url, headers=headers, params=querystring)
>>>print(response.text)
6. API Điều tra (Investigate API)
Umbrella Investigate API được thiết kế để cung cấp cho các đối tác công nghệ khả năng truy vấn các sự kiện bảo mật từ nền tảng / dịch vụ / thiết bị của họ trong môi trường của khách hàng chung tới đám mây Umbrella cho mục đích điều tra. API điều tra Umbrella cho phép người dùng truy vấn cơ sở dữ liệu Umbrella để xem tên miền có an toàn hay không an toàn. Nó vượt ra ngoài các kết quả DNS truyền thống để hiển thị các sự kiện và mối tương quan bảo mật. Sau đây là một số tác vụ có thể được thực hiện thông qua API REST của Umbrella Investigate:
Investigate API có thể được truy cập thông qua access token và access token có thể được tạo thông qua console Umbrella. Các nhà phát triển và khách hàng có thể sử dụng và truy vấn dữ liệu Umbrella thông qua Investigate API. Dưới đây là một số danh mục tiêu chuẩn:
Bây giờ, hãy xem xét một số ví dụ về Umbrella Investigate API. Nếu bạn truy vấn tên miền tại https://investigate.umbrella.com/domain view/name/cisco.com/view qua giao diện người dùng, bạn sẽ thấy một màn hình như trong hình.
Hình Umbrella Investigate API qua giao diện người dùng cho cisco.com
Như bạn có thể thấy, tên miền cisco.com được phân loại là lành tính và điểm SecureRank là 2. Do đó, cisco.com là một miền an toàn. Bây giờ chúng ta hãy xem xét cùng một hoạt động nhưng thông qua API điều tra. API cần gọi là https://investigate.api.umbrella.com...tion/cisco.com. Một lệnh yêu cầu Python thực hiện lệnh gọi API với khóa API thích hợp:
""" Domains categorization using the Investigate API """
>>>import requests
>>>url ="https://investigate.api.umbrella.com/domains/categorization/cisco.com"
>>>querystring = {"showLabels":""}
>>>headers = {
'authorization': "Bearer deadbeef-24d7-40e1-a5ce-3b064606166f",
'cache-control': "no-cache",
}
>>>response = requests.request("GET", url, headers=headers, params=querystring)
>>>print(response.text)
Có ba giá trị trả về để phân loại:
{
"cisco.com": {
"status": 1,
"security_categories": [],
"content_categories": [
"Software/Technology",
"Business Services"
]
}
}
Danh sách các Investigate API URLs Điều tra khác cho miền cisco.com.
Cisco Umbrella là một cơ chế bảo mật dựa trên dịch vụ DNS, cung cấp dịch vụ bảo mật chung ở hình thức tại chổ on-prem hoặc off-prem (trên mây) cho các thiết bị đầu cuối. Umbrella tại chổ sẽ không cần các thiết bị đầu cuối cài đặt bất cứ phần mềm nào vào máy. Nếu so sánh với thiết bị tường lửa, tường lửa phù hợp để chặn những mối đe dọa từ ngoài vào, còn Umbrella thì dùng để chặn những nguy cơ từ bên trong. Các mối đe dọa này không thể bị ngăn chặn bởi những thiết bị ngoại vi bởi vì nó đã ở phía sau của tường lửa.
Umbrella là một giải pháp bảo mật dựa giúp bảo vệ và chống lại các mối đe dọa phát sinh trên Internet. Umbrella là tuyến phòng thủ đầu tiên cho những người dùng có thể đang cố gắng kết nối Internet từ mọi nơi. Một thiết bị kết nối với Internet cần tra cứu DNS (Hệ thống Domain) để dịch tên của trang web hoặc dịch vụ sang địa chỉ IP mà nó cần kết nối. Umbrella xử lý hàng tỷ yêu cầu DNS mỗi ngày, phân tích và tìm hiểu về các hoạt động khác nhau và chặn các yêu cầu đến các điểm đến không mong muốn và độc hại trước khi kết nối được thiết lập. Cisco Umbrella kết hợp các dịch vụ bảo mật sau trong sản phẩm của mình, bất kể người dùng ở đâu:
- Nó chặn phần mềm độc hại, ransomware và các trang web độc hại hoặc lừa đảo.
- Nó có thể được tích hợp với Cisco AMP và các công cụ chống vi-rút khác
- Nó duy trì các danh mục nội dung, danh sách trắng (whitelist) và danh sách đen (blacklist) được xác định tùy chỉnh để tuân thủ bất kỳ chính sách nào của tổ chức.
Trong một vài trường hợp trong mạng doanh nghiệp, bạn phải điều chỉnh chính sách bảo mật cho các thiết bị đầu cuối mà không nằm trong phạm vi quản lý của bạn. Điều này đặt ra vài thách thức mà người thực thi bảo mật phải giải quyết: “Làm thế nào để quản lý bảo mật cho các thiết bị đầu cuối mà bạn không thể quản lý?”
Umbrella xử lý các yêu cầu DNS nhận được từ người dùng hoặc thiết bị trên mạng. Nó không chỉ hoạt động trên HTTP hoặc HTTPS mà còn hỗ trợ các giao thức khác. Giả sử rằng một người dùng muốn truy cập một trang web và đưa ra yêu cầu đối với trang web đó. Điều này dẫn đến một yêu cầu DNS được gửi đến Umbrella. Các bước sau xảy ra:
Bước 1. Umbrella phân tích yêu cầu DNS để kiểm tra xem tên miền (domain) có độc hại hay an toàn hay không.
Bước 2. Umbrella kiểm tra xem có bất kỳ chính sách nào được kích hoạt hay không, chẳng hạn như chính sách lọc nội dung hoặc các tên miền nằm trong danh sách cấm.
Bước 3. Nếu tất cả đều ổn, địa chỉ IP sẽ được gửi đến người dùng yêu cầu. Trong trường hợp của stanford.edu, Umbrella trả về địa chỉ IP chính xác.
Bước 4. Khi một yêu cầu DNS được gửi cho domain.xyz, Umbrella sẽ kiểm tra xem có bất kỳ chính sách nào được kích hoạt hay không hoặc đây có phải là một tên miền độc hại đã biết hay không.
Bước 5. Umbrella phản hồi bằng thông báo “trang bị chặn”, thông báo cho người dùng rằng tên miền độc hại hoặc nằm trong danh sách bị chặn.
Hình Umbrella: Chặn tra cứu tên miền độc hại
Umbrella có thể chặn những kết nối từ phía client ở mức ứng dụng, không cần quan tâm đến kiểu kết nối mạng hay các bảo mật ở lớp biên. Cách hoạt động của Umbrella là nó ngăn ngừa DNS phân giải địa chỉ đích. Nếu một máy client không thể phân giải địa chỉ đích, nó không thể thiết lập kết nối và sẽ không tải về các phần mềm độc hại. Umbrella có thể được dùng để ngăn ngừa các kết nối từ máy client đến các trang web độc hại hoặc những trang web mà chính sách của công ty không cho truy cập. 9.3.2. Umbrella APIs
Các API của Umbrella được thiết kế để cho phép các đối tác công nghệ khả năng gửi các biến cố về bảo mật từ nền tảng/dịch vụ/ứng dụng của họ đến Umbrella để áp đặt một chính sách. Bạn có thể liệt kê một danh sách các tên miền và xóa từng tên miền riêng lẻ ra khỏi danh sách. Tất cả các biến cố nhận được sẽ được phân tách ra thành từng nhóm cho từng khách hàng và có thể sử dụng cho các chính sách tương lai.
Để tích hợp thành công, bạn phải định dạng các sự kiện theo dạng chuẩn. Loại API mà Umbrella hỗ trợ là REST API và tuân theo đầy đủ các nguyên tắc RESTful. API này chỉ sử dụng HTTPS và có thể truy cập ở địa chỉ https://s-platform.api.opendns.com. Tất cả các kết quả trả về ở định dạng JSON và tất cả các cuộc gọi API đều phải xác thực. API loại này sử dụng rất nhiều các câu lệnh truy vấn để truy xuất và lọc tài nguyên.
Umbrella hỗ trợ nhiều API khác nhau cho các chức năng khác nhau:
| API | Mô tả |
| Management API | API này hướng khách hàng quản lý các tổ chức, mạng, thiết bị mạng, người dùng và máy tính chuyển vùng và tích hợp các hành động trong các lĩnh vực đó vào quy trình làm việc. |
| Reporting API | API này dành cho tổ chức bao gồm các điểm cuối sau:
|
| Console Reporting API | API này dành cho các nhà cung cấp dịch vụ được quản lý và quản trị viên đa tổ chức. Nó hiển thị thông tin tóm tắt chỉ có sẵn trong các consoles đó. Console Reporting API có hai điểm cuối: /security-summary: Đây là bản tóm tắt bảo mật, cung cấp tổng số yêu cầu và tổng số yêu cầu bị chặn cho tất cả các tổ chức con. /detail-summary: Đây là bản tóm tắt triển khai, cung cấp trạng thái tổng thể cho tất cả khách hàng, cũng như chi tiết triển khai của từng tổ chức con. |
| Network Device Management API | Danh tính thiết bị mạng (Network device Identity) là bất kỳ thiết bị phần cứng nào có thể định tuyến lưu lượng DNS đến các máy chủ DNS đệ quy của Umbrella. Bước đầu tiên là đăng ký thiết bị với Cisco Umbrella. Khi lưu lượng truy cập từ một thiết bị đến máy chủ DNS, tổ chức mà thiết bị được đăng ký sẽ được xác định và các chính sách cho tổ chức đó có thể được áp dụng cho lưu lượng truy cập. |
| Enforcement API | API này cho phép các tổ chức quản lý danh sách domain bị chặn liên quan đến bảo mật. |
| Investigate API | API RESTful cho phép truy vấn cơ sở dữ liệu DNS Umbrella và hiển thị các sự kiện bảo mật và mối tương quan liên quan đến domain được truy vấn. |
Tất cả các API của Umbrella đều sử dụng xác thực cơ bản HTTP. Giá trị khóa và giá trị bí mật (key and secret values) cần được mã hóa Base64 và được gửi như một phần của header Authorization cơ bản HTTP tiêu chuẩn. Yêu cầu API được gửi qua HTTPS. API yêu cầu thông tin xác thực phải được gửi trong header Authorization. Thông tin xác thực là tên người dùng và mật khẩu, được phân tách bằng dấu hai chấm (:), trong một chuỗi được mã hóa Base64.
Ví dụ:
"Basic ZGV2YXNjOnN0cm9uZ3Bhc3N3b3Jk"
Trong trường hợp này, ZGV2YXNjOnN0cm9uZ3Bhc3N3b3Jk là chuỗi mã hóa Base64 devasc:strongpassword (trong đó devasc là tên người dùng và strongpassword là mật khẩu). Ví dụ cho thấy ba dòng mã thực hiện mã hóa Base64 để gán giá trị vào header Authorization.
>>>""" Generate Base64 encoding using the base64 library """
>>>import base64
>>>encoded =base64.b64encode('devasc:strongpassword'.encode(' UTF-8')).decode('ASCII')
>>>print(encoded)
4. API Quản lý
Management API cho phép khách hàng, nhà cung cấp dịch vụ, nhà cung cấp dịch vụ được quản lý (MSP-managed service providers) và nhà cung cấp dịch vụ bảo mật được quản lý (MSSP-managed security service providers) quản lý các tổ chức, mạng, thiết bị mạng, người dùng và máy tính chuyển vùng và tích hợp các hành động trong quy trình làm việc hàng ngày của họ...
Management API có thể sử dụng điểm cuối ISP và MSSP chuyển ủy quyền được mã hóa Base64 trong tiêu đề.
>>>""" Get Customer details given a customerID """
>>>import requests
>>>url="https://management.api.umbrella.com/v1/serviceproviders/serviceProviderId/customers/customerId"
>>>headers = {
'accept': "application/json",
'authorization': "Basic
ZGV2YXNjOnN0cm9uZ3Bhc3N3b3Jk"
}
>>> response = requests.request("GET", url,
>>> headers=headers)
>>> print(response.text)
Management API bao gồm:
- Đầu cuối ISP và MSSP: API trả về ID nhà cung cấp dịch vụ và ID khách hàng. Các điểm cuối này dành cho nhà cung cấp dịch vụ Internet (ISP), nhà cung cấp dịch vụ được quản lý (MSP) sử dụng giấy phép Master Service, nhà cung cấp dịch vụ bảo mật được quản lý (MSSP) và người dùng consoles đối tác. Để thực hiện các truy vấn này, bạn phải có ID nhà cung cấp dịch vụ (SPId) từ URL của consoles.
- Đầu cuối MSP và đa tổ chức: API tạo khách hàng MSP mới, trả về hồ sơ khách hàng MSP, cập nhật và xóa khách hàng MSP. Điểm cuối này dành cho MSP và consoles của nhiều tổ chức, không dành cho MSP sử dụng MSLA.
- Networks: API trả về hồ sơ mạng và đồng thời có thể xóa một mạng. Lưu ý rằng các tổ chức mẹ không có mạng lưới. Để tạo và quản lý mạng thay mặt cho các tổ chức con, hãy sử dụng điểm cuối của organizations/customerID/networks.
- Máy tính chuyển vùng (Roaming Computers): API trả về các bản ghi và cập nhật của máy tính chuyển vùng hoặc xóa các máy tính chuyển vùng.
- Mạng nội bộ (Internal Networks): API tạo, cập nhật và xóa các mạng nội bộ và trả về các bản ghi mạng nội bộ.
- Domain nội bộ (Internal Domains): API tạo, cập nhật và xóa các domain nội bộ và trả về các bản ghi domain nội bộ.
- Thiết bị ảo (Virtual appliances): API trả về các bản ghi thiết bị ảo (VA), cập nhật hoặc xóa các VA. Lưu ý rằng bạn không thể tạo một thiết bị ảo thông qua API. VA phải được tạo trong hypervisor của bạn và phải được đăng ký danh tính trong Umbrella trước khi API có thể quản lý nó.
- Umbrella sites: API tạo, cập nhật và xóa các trang web và trả về các bản ghi trang web.
- Người dùng (Users): API tạo và xóa người dùng và trả về hồ sơ người dùng.
- Vai trò (Roles): API trả về danh sách các vai trò.
- Danh sách đích (Destination lists): API tạo, đọc, cập nhật và xóa danh sách đích.
Umbrella Enforcement API được thiết kế để cung cấp cho các đối tác công nghệ khả năng gửi các sự kiện bảo mật từ nền tảng / dịch vụ / thiết bị của họ trong môi trường của khách hàng chung tới đám mây Umbrella để thực thi. Với API này, bạn có thể liệt kê các tên miền hoặc xóa các tên miền riêng lẻ khỏi danh sách. API bị hạn chế đối với HTTPS và được lưu trữ tại https://s-platform.api.opendns.com. Khóa khách hàng (customer key) UUID-v4 dùng để xác thực khách hàng đối với API. Một khóa phải được cung cấp với mỗi yêu cầu tới API. Để tạo hoặc lấy khóa khách hàng, bạn phải đăng nhập vào bảng điều khiển và điều hướng đến Policies > Policy Components > Integrations. Dưới đây là các bước liên quan khi khách hàng phát hiện một tên miền độc hại và muốn thêm tên miền đó vào Umbrella:
Bước 1. Khách hàng xác định mã độc hoặc hoạt động độc hại khi người dùng truy cập vào một URL hoặc tên miền cụ thể. Việc phát hiện có thể xảy ra với phần mềm của bên thứ ba hoặc Cisco AMP hoặc bất kỳ cơ chế nào khác mà khách hàng đã có sẵn.
Bước 2. Sự kiện này được gửi đến API thực thi Umbrella thông qua yêu cầu POST.
Bước 3. Cisco Umbrella tuân theo logic và thuật toán thích hợp trước khi thêm tên miền vào danh sách bị chặn. Nó trải qua các bước sau:
1. Umbrella kiểm tra xem tên miền có tồn tại trong danh sách khối toàn cầu của Umbrella theo một trong các danh mục bảo mật hay không.
2. Nó chạy API điều tra nội bộ để quyết định xem tên miền có lành tính hay không.
3. Nó kiểm tra trạng thái của tên miền (nghĩa là, chưa được phân loại hoặc đã phân loại).
4. Nó sẽ kiểm tra xem liệu tên miền đã có trong danh sách cho phép của khách hàng trong tổ chức hay chưa.
Bước 4. Nếu tất cả các lần kiểm tra đều được xác thực, Umbrella sẽ chặn các tên miền trong danh sách đó theo cài đặt bảo mật chính sách Umbrella của khách hàng đó. Ví dụ Mã POST Python để thêm tên miền bằng Enforcement API.
>>>""" Add domain using the Enforcement API """
>>>import json
>>>import requests
>>>url = "https://splatform.api.opendns.com/1.0/events"
>>>querystring = {"customerKey":"XXXXXXX-YYYYZZZZ-YYYY-XXXXXXXXXXXX"}
>>>payload = [
{
"alertTime": "2020-01-01T09:33:21.0Z",
"deviceId": "deadbeaf-e692-4724-ba36-c28132c761de",
"deviceVersion": "13.7a",
"dstDomain": "looksfake.com",
"dstUrl":
"http://looksfake.com/badurl",
"eventTime": "2020-01-01T09:33:21.0Z",
"protocolVersion": "1.0a",
"providerName": "Security Platform"
}
]
>>>headers = {
'Content-Type': "text/plain",
'Accept': "*/*",
'Cache-Control': "no-cache",
'Host': "s-platform.api.opendns.com",
'Accept-Encoding': "gzip, deflate",
'Connection': "keep-alive",
'cache-control': "no-cache"
}
>>>response=requests.request("POST", url, data=json.loads(payload), headers=headers, params=querystring)
>>>print(response.text)
Phần cuối cùng của Enforcement API là lệnh gọi DELETE để xóa tên miền. API giúp bỏ chặn các tên miền đã bị chặn do các sự kiện đã chèn trước đó. Ví dụ bên dưới cho thấy một lệnh Python yêu cầu đơn giản để xóa một tên miền bằng cách sử dụng API thực thi.
""" Delete domain using the Enforcement API """
>>>import requests
>>>url = "https://splatform.api.opendns.com/1.0/domains/looksfake.com"
>>>querystring = {"customerKey":"XXXXXXX-YYYYZZZZ-YYYY-XXXXXXXXXXXX"}
>>>response = requests.request("DELETE", url, headers=headers, params=querystring)
>>>print(response.text)
6. API Điều tra (Investigate API)
Umbrella Investigate API được thiết kế để cung cấp cho các đối tác công nghệ khả năng truy vấn các sự kiện bảo mật từ nền tảng / dịch vụ / thiết bị của họ trong môi trường của khách hàng chung tới đám mây Umbrella cho mục đích điều tra. API điều tra Umbrella cho phép người dùng truy vấn cơ sở dữ liệu Umbrella để xem tên miền có an toàn hay không an toàn. Nó vượt ra ngoài các kết quả DNS truyền thống để hiển thị các sự kiện và mối tương quan bảo mật. Sau đây là một số tác vụ có thể được thực hiện thông qua API REST của Umbrella Investigate:
- Kiểm tra trạng thái bảo mật của tên miền, địa chỉ IP hoặc tập hợp của các tên miền xuất hiện trong nhật ký từ tường lửa, UTM hoặc các điểm ra Internet khác của bạn
- Xác định xem các tên miền có liên quan khác có được truy cập cùng lúc với tên miền hoặc địa chỉ IP mà bạn đang tìm kiếm hay không.
- Tìm bản ghi lịch sử cho tên miền hoặc địa chỉ IP này trong cơ sở dữ liệu DNS để xem những gì đã thay đổi.
- Truy vấn số lượng lớn các tên miền một cách nhanh chóng để tìm hiểu xem chúng có bị cho là độc hại hay không và yêu cầu điều tra thêm.
Investigate API có thể được truy cập thông qua access token và access token có thể được tạo thông qua console Umbrella. Các nhà phát triển và khách hàng có thể sử dụng và truy vấn dữ liệu Umbrella thông qua Investigate API. Dưới đây là một số danh mục tiêu chuẩn:
- Phân loại (Categorization) (hiển thị trạng thái và phân loại tên miền): Danh mục này thường được các nhà phát triển và khách hàng sử dụng làm công cụ phân loại chính để xác định xem tên miền / địa chỉ IP là tốt, xấu hay không xác định.
- Chấm điểm (Scoring): Một số điểm giúp đánh giá rủi ro tiềm ẩn của miền / địa chỉ IP. Ví dụ:
- SecureRank2: Điểm này xác định các tên miền được yêu cầu từ các khác hàng đã bị nhiễm mã độc nhưng không bao giờ được yêu cầu bởi các khách hang chưa bị nhiễm— giả sử rằng những tên miền này có nhiều khả năng là xấu. Điểm từ –100 (đáng ngờ) đến +100 (lành tính).
- Điểm RIP: Điểm danh tiếng IP này xếp hạng một địa chỉ IP dựa trên số lượng hoạt động độc hại được lưu trữ tại địa chỉ đó. Điểm nằm trong khoảng từ –100 (rất đáng ngờ) đến 0.
- Dữ liệu bản ghi WHOIS: Danh mục này bao gồm địa chỉ email được sử dụng để đăng ký tên miền, máy chủ định danh được liên kết, thông tin lịch sử, v.v. Nó có thể được sử dụng để tìm hiểu thêm về lịch sử của tên miền và người đăng ký, bao gồm cả việc địa chỉ email có được sử dụng để đăng ký các tên miền độc hại khác hay không.
- Diễn ra đồng thời (Cooccurrences): Danh mục này mô tả các tên miền khác đã được truy vấn ngay trước hoặc sau một tên miền nhất định và có thể có liên quan. Investigate API thường được sử dụng để khám phá các tên miền khác có thể liên quan đến cuộc tấn công tương tự nhưng được lưu trữ trên các mạng hoàn toàn riêng biệt.
- DNS thụ động: Danh mục này mô tả lịch sử của ánh xạ tên miền-địa chỉ IP. Thông tin này được sử dụng để xem có điều gì đáng ngờ đã xảy ra với tên miền hoặc địa chỉ IP hay không. Ví dụ: bạn có thể thấy rằng địa chỉ IP liên tục thay đổi hoặc nhận thấy rằng địa chỉ IP có nhiều tên miền hơn so với khai báo trước đó.
- Dữ liệu file phần mềm độc hại: Thông tin được thu thập dưới dạng phân tích file phần mềm độc hại và thông báo về mối đe dọa từ Cisco AMP Threat Grid. Loại thông tin này được sử dụng để tìm hiểu xem có bất kỳ file phần mềm độc hại cụ thể nào được liên kết với một tên miền hay không và cũng để truy vấn các hàm băm của file để xem chúng có độc hại hay không.
Bây giờ, hãy xem xét một số ví dụ về Umbrella Investigate API. Nếu bạn truy vấn tên miền tại https://investigate.umbrella.com/domain view/name/cisco.com/view qua giao diện người dùng, bạn sẽ thấy một màn hình như trong hình.
Hình Umbrella Investigate API qua giao diện người dùng cho cisco.com
Như bạn có thể thấy, tên miền cisco.com được phân loại là lành tính và điểm SecureRank là 2. Do đó, cisco.com là một miền an toàn. Bây giờ chúng ta hãy xem xét cùng một hoạt động nhưng thông qua API điều tra. API cần gọi là https://investigate.api.umbrella.com...tion/cisco.com. Một lệnh yêu cầu Python thực hiện lệnh gọi API với khóa API thích hợp:
""" Domains categorization using the Investigate API """
>>>import requests
>>>url ="https://investigate.api.umbrella.com/domains/categorization/cisco.com"
>>>querystring = {"showLabels":""}
>>>headers = {
'authorization': "Bearer deadbeef-24d7-40e1-a5ce-3b064606166f",
'cache-control': "no-cache",
}
>>>response = requests.request("GET", url, headers=headers, params=querystring)
>>>print(response.text)
Có ba giá trị trả về để phân loại:
- Trạng thái (Status): Trạng thái là -1 nếu tên miền được cho là độc hại, 1 nếu tên miền được cho là lành tính hoặc 0 nếu tên miền chưa được phân loại.
- Bảo mật (Security): Trường này cho biết liệu có sự trùng khớp tên miền Umbrella hay không hoặc liệu tên miền này có được liên kết với một tên miền khác hay không.
- Nội dung (Content): Trường này cho biết loại tên miền (ví dụ: Thương mại điện tử / Mua sắm, Dịch vụ kinh doanh).
{
"cisco.com": {
"status": 1,
"security_categories": [],
"content_categories": [
"Software/Technology",
"Business Services"
]
}
}
Danh sách các Investigate API URLs Điều tra khác cho miền cisco.com.
| Danh mục API | API Endpoint URL |
| Bộ phân loại cho một tên miền - Classifiers for a domain | https://investigate.api.umbrella.com/domains/categories/cisco.com.json |
| Số lần đồng xuất hiện cho một miền - Cooccurrences for a domain |
https://investigate.api.umbrella.com/recommendations/name/cisco.com.json |
| Các miền liên quan cho một miền - Related domains for a domain |
https://investigate.api.umbrella.com/links/name/cisco.com.json |
| Thông tin bảo mật cho một miền - Security information for a domain |
https://investigate.api.umbrella.com/security/name/cisco.com |
| Tần suất xuất hiện của một domain - Domain volume |
https://investigate.api.umbrella.com/domains/volume/cisco.com?start=-2days&stop=now&match=component |
| Mẫu Threat Grid cho miền, địa chỉ IP hoặc URL - Threat Grid sample for a domain, an IP address, or a URL |
https://investigate.api.umbrella.com/samples/cisco.com?limit=100&sortby=score |