Сегодня в России очень модной стала тема SOC и SIEM. Все их строят и пишут. Вы знали, что в России уже около десятка собственных систем мониторинга событий безопасности (SIEM)? Эту цифру перевалило и число коммерческих SOCов, предлагающих свои услуги заказчикам, которые попадут под требования 187-ФЗ о безопасности критической информационной инфраструктуры и вынуждены будут оперативно отдавать данные об инцидентах в ГосСОПКУ. Но какую бы цель не преследовали создатели SIEM и SOC, и на каком бы уровне зрелости они не находились, они все равно сталкиваются с базовой задачей — сбора событий безопасности и журналов регистрации от разрозненных средств защиты информации.
Согласно данным компании Canalys (а она единственная кто продолжает оценивать российский рынок решений по ИБ), лидером отечественного рынка продолжает оставаться компания Cisco. Поэтому вполне разумно предположить, что одной из первых задач, которая должна стоять перед разработчиками SIEM/SOC, — это интеграция с решениями нашей компании. Но вокруг такой интеграции бытует множество мифов и заблуждений, которые можно описать диалогом, который у меня недавно случился с одним из отечественных производителей SIEM:
— А почему вы не интегрируетесь с решениями Cisco?
— Так у вас уже все проприетарное?
— Нет, это не так!
— Да? А мне говорили, что у вас закрытые API и доступ к ним стоит денег.
— Нет, и это не так!
Поэтому я решил сегодня вкратце описать те API, которые существуют у компании Cisco, и с помощью которых можно подключиться к ее решениям по кибербезопасности. Их можно разделить на несколько типов:
- API, позволяющие получать доступ к событиям безопасности, логам, контексту, которые собираются решениями Cisco в защищаемой сети предприятия.
- API, позволяющие получать доступ к облачным сервисам по безопасности Cisco для проверки подозрительных файлов, доменов, IP-адресов и т.п.
- API, позволяющие управлять решениями Cisco из внешних систем.
- API, позволяющие обогащать решения Cisco данными об угрозах, полученных из внешних источников.
К первому типу API относятся:
- eStreamer API. API, позволяющий отправлять события безопасности с многофункциональной платформы безопасности Firepower в свой SIEM.
- Host Input API. API, позволяющий собирать информацию об уязвимостях и другую информацию об узлах в сети. Именно его использует тот же MaxPatrol от Positive Technologies для передачи Firepower информации об уязвимостях, операционных системах и приложений на сканируемых узлах, которая затем коррелируется с данными об угрозах, которые собираются подсистемой обнаружения вторжений NGIPS или системой борьбы с вредоносным кодом AMP на платформе Firepower.
- JDBC Database Access API. API, который позволяет делать запросы к базе данных Firepower из различных приложений.
- pxGrid. Это целый framework, позволящий обменивать контекстом безопасности (кто, куда, как, откуда, с помощью чего получал доступ) между системой контроля сетевого доступа Cisco ISE и внешними решениями (SIEM, MDM, МСЭ, NAC, IRP, UEBA, CASB, IAM, VM и др.). С помощью этого API можно получать информацию о событиях доступа пользователя и устройств сразу из сетевой инфраструктуры Cisco (коммутаторов, маршрутизаторов, точек доступа и т.п.).
- MDM API. Позволяет MDM-решениям третьих фирм (например, Airwatch, MaaS360, Meraki, SAP, XenMobile, Symantec, MobileIron, Good, Intune и т.п.) получать информацию о статусе мобильного устройства от ISE.
- AnyConnect Network Visibility Module Collection. С помощью данного API защитный клиент AnyConnect предоставляет данные IPFIX для их корреляции со средствами сетевого анализа трафика (например, Cisco Stealthwatch).
- AMP for Endpoints API. API, который позволяет отдавать события безопасности, связанные с вредоносным кодом, обнаруживаемым средством защиты Cisco AMP (Advance Malware Protection), решениям третьих фирм или иным решениям Cisco (например, Cisco Cognitive Threat Analytics). В качестве таких событий, могут выступать уязвимые компьютеры, траектория устройства (сетевая активность), коммуникации с внутренними или внешними узлами, заражения и т.п.
- ESA REST API. Позволяет собирать статистику событий безопасности и E-mail Security Appliance.
- Stealthwatch Data Exporter SDK. Позволяет забирать события о сетевых потоках из системы мониторинга сетевого трафика Cisco Stealthwatch и использовать их в своих собственных целях.
Давайте посмотрим пример работы с API для AMP for Endpoints, решением, которое ставится на персональные и мобильные устройства под управлением Windows, Linux, iOS, Android, MacOS, и которое защищает от широкого спектра угроз. Допустим мы хотим получить события безопасности, произошедшие в последнее время. Для этого используется запрос «GET /v1/events», который имеет множество дополнительных опций, позволяющих делать выборки по конкретному узлу или группе узлов, хешу интересующего файла, типу события, времени и т.п. Например, нас могут заинтересовать события по конкретному узлу и тогда запрос через AMP for Endpoints API будет выглядеть так:
GET /v1/events?connector_guid[]=af73d9d5-ddc5-4c93-9c6d-d5e6b5c5eb01&limit=1
Ответ же будет следующим:
{
"version": "v1.2.0",
"metadata": {
"links": {
"self": "https://api.amp.cisco.com/v1/events?connector_guid[]=af73d9d5-ddc5-4c93-9c6d-d5e6b5c5eb01&limit=1",
"next": "https://api.amp.cisco.com/v1/events?connector_guid%5B%5D=af73d9d5-ddc5-4c93-9c6d-d5e6b5c5eb01&limit=1&offset=1"
},
"results": {
"total": 41,
"current_item_count": 1,
"index": 0,
"items_per_page": 1
}
},
"data": [
{
"id": 6455442249407791000,
"timestamp": 1503024774,
"timestamp_nanoseconds": 98000000,
"date": "2017-08-18T02:52:54+00:00",
"event_type": "Threat Detected",
"event_type_id": 1090519054,
"detection": "benign_qa_testware7",
"detection_id": "6455442249407791109",
"group_guids": [
"b077d6bc-bbdf-42f7-8838-a06053fbd98a"
],
"computer": {
"connector_guid": "af73d9d5-ddc5-4c93-9c6d-d5e6b5c5eb01",
"hostname": "WIN-S1AC1PI6L5L",
"external_ip": "10.200.65.31",
"user": "johndoe@WIN-S1AC1PI6L5L",
"active": true,
"network_addresses": [
{
"ip": "10.0.2.15",
"mac": "08:00:27:85:28:61"
}
],
"links": {
"computer": "https://api.amp.cisco.com/v1/computers/af73d9d5-ddc5-4c93-9c6d-d5e6b5c5eb01",
"trajectory": "https://api.amp.cisco.com/v1/computers/af73d9d5-ddc5-4c93-9c6d-d5e6b5c5eb01/trajectory",
"group": "https://api.amp.cisco.com/v1/groups/b077d6bc-bbdf-42f7-8838-a06053fbd98a"
}
},
"file": {
"disposition": "Unknown",
"file_name": ".zip",
"file_path": "\\?\C:\Users\johndoe\Downloads\.zip",
"identity": {
"sha256": "f8a6a244138cb1e2f044f63f3dc42beeb555da892bbd7a121274498cbdfc9ad5",
"sha1": "20eeee16345e0c1283f7b500126350cb938b8570",
"md5": "6853839cde69359049ae6f7bd3ae86d7"
},
"archived_file": {
"disposition": "Malicious",
"identity": {
"sha256": "46679a50632d05b99683a14b91a69ce908de1673fbb71e9cd325e5685fcd7e49"
}
},
"parent": {
"process_id": 3416,
"disposition": "Clean",
"file_name": "explorer.exe",
"identity": {
"sha256": "80ef843fa78c33b511394a9c7535a9cbace1deb2270e86ee4ad2faffa5b1e7d2",
"sha1": "ea97227d34b8526055a543ade7d18587a927f6a3",
"md5": "15bc38a7492befe831966adb477cf76f"
}
}
}
}
]
}
Ко второму типу API относятся:
- Threat Grid API. Позволяет направлять подозрительные файлы для анализа в песочницу Threat Grid и получать вердикты об их статусе (“чистый” или вредоносный). В условиях, когда антивирусы перестают эффективно распознавать современные угрозы, интеграция с песочницей (а их в мире не так уж и много) становится обязательным элементов современной системы защиты. Кстати, одним из вариантов ответа на полученный на анализ файл является получение автоматически сгенерированной сигнатуры для Snort. Учитывая, что практически все отечественные системы обнаружения атак в основе своей построены на Snort, эта возможность будет очень полезной для многих применений.
- OpenDNS Investigate API. Позволяет делать запросы к облачному сервису OpenDNS при проведении расследований, в т.ч. для анализа вредоносности доменов.
- OpenDNS Umbrella API. Позволяет реализовывать пользовательские политики контроля доступа в Интернет, блокируя специфические домены, отсутствующие в базе OpenDNS.
В качестве примера API второго типа посмотрим как используется Threat Grid API. Допустим мы хотим проверить статус ранее загруженного для анализа файла. Такой запрос может выглядеть следующим образом:
https://panacea.threatgrid.com/api/v2/search/submissions?q=23aea7cf60fca3c6527c2b5255c6036f2dc414f8368196e198df091cf03dd95f&api_key=llgtslnd5cvb14h4p8m6e6s27f&before=2017-02-28&limit=1
а ответ:
{
"api_version": 2,
"id": 7589645,
"data": {
"index": 0,
"total": 3,
"took": 416,
"timed_out": false,
"items_per_page": 1,
"current_item_count": 1,
"items": [
{
"item": {
"properties": {
"metadata": null
},
"tags": [
"Kovter"
],
"vm_runtime": 300,
"md5": "f3247e81cc3474559d0e14e2f15837d0",
"private": false,
"organization_id": 1,
"state": "succ",
"login": "adminharry",
"sha1": "bfafd7f2cd9adff7782f4854bc712bf134ad56f6",
"sample": "9b7ad0711262b31219ea1d41119868d8",
"filename": "23aea7cf60fca3c6527c2b5255c6036f2dc414f8368196e198df091cf03dd95f",
"analysis": {
"metadata": {
"malware_desc": [
{
"sha1": "bfafd7f2cd9adff7782f4854bc712bf134ad56f6",
"magic": "PE32 executable (GUI) Intel 80386 (stripped to external PDB), for MS Windows",
"filename": "23aea7cf60fca3c6527c2b5255c6036f2dc414f8368196e198df091cf03dd95f.exe",
"size": 369566,
"sha256": "23aea7cf60fca3c6527c2b5255c6036f2dc414f8368196e198df091cf03dd95f",
"type": "exe",
"md5": "f3247e81cc3474559d0e14e2f15837d0"
}
],
"sandcastle_env": {
"controlsubject": "winxp-x86-intel-2017.01.17",
"vm": "winxp-x86",
"vm_id": "9b7ad0711262b31219ea1d41119868d8",
"sample_executed": 1487231873,
"analysis_end": "2017-02-16T08:03:48Z",
"analysis_start": "2017-02-16T07:57:01Z",
"run_time": 300,
"sandcastle": "3.4.36.10823.577ea7a-1",
"current_os": "2600.xpsp.080413-2111"
},
"general_details": {
"report_created": "2017-02-16T08:03:57Z",
"sandbox_version": "pilot-d",
"sandbox_id": "car-work-074"
}
},
"behaviors": [
{
"name": "excessive-suspicious-activity",
"threat": 90
},
{
"name": "pe-encrypted-section",
"threat": 9
},
{
"name": "process-check-virtualbox",
"threat": 90
},
{
"name": "memory-execute-readwrite",
"threat": 25
},
{
"name": "registry-autorun-key-bat-file",
"threat": 95
},
{
"name": "ie-proxy-disabled",
"threat": 49
},
{
"name": "malware-kovter-registry",
"threat": 95
},
{
"name": "registry-large-data-entry",
"threat": 40
},
{
"name": "service-dll-registration",
"threat": 25
},
{
"name": "files-created-batch",
"threat": 25
},
{
"name": "file-handler-registration",
"threat": 85
},
{
"name": "antivirus-service-flagged-artifact",
"threat": 95
},
{
"name": "registry-detection-productid",
"threat": 42
},
{
"name": "registry-script-detected",
"threat": 25
},
{
"name": "registry-ie-zone-settings-modified",
"threat": 49
},
{
"name": "modified-file-in-user-dir",
"threat": 56
},
{
"name": "registry-modified-rootcerts",
"threat": 36
},
{
"name": "registry-detection-bios",
"threat": 42
},
{
"name": "mshta-in-registry",
"threat": 95
},
{
"name": "registry-autorun-key-modified",
"threat": 48
}
],
"threat_score": 95
},
"status": "job_done",
"submitted_at": "2017-02-16T07:57:00Z",
"sha256": "23aea7cf60fca3c6527c2b5255c6036f2dc414f8368196e198df091cf03dd95f"
},
"score": 0.7660416,
"matches": null
}
]
}
}
Мы видим, что Threat Grid API возвращает нам значение уровня угрозы (threat) по стобалльной шкале для различных типов поведения файла (Threat Grid может оценивать до 800 различных параметров в зависимости от загруженного файла). Итоговое значение (threat_score) равно 95, что означает, что анализируемый файл является вредоносным.
Можно привести пример работы с еще одним API, позволяющим оценивать безопасность доменов, информацию о которых мы можем получать от МСЭ, почтовых шлюзов, прокси, средств контроля доступа в Интернет и т.п. С помощью OpenDNS Investigate API мы можем сформулировать запрос на проверку интересующего нас домена:
curl --include
--header "Authorization: Bearer %YourToken%"
https://investigate.api.opendns.com/security/name/{name}.json
А в ответе мы получим значения различных параметров, по которым OpenDNS оценивает безопасность доменов, IP-адресов, автономных систем и т.п.:
{
"dga_score": 38.301771886101335,
"perplexity": 0.4540313302593146,
"entropy": 2.5216406363433186,
"securerank2": -1.3135141095601992,
"pagerank": 0.0262532,
"asn_score": -29.75810625887133,
"prefix_score": -64.9070502788884,
"rip_score": -75.64720536038982,
"popularity": 25.335450495507196,
"fastflux": false,
"geodiversity": [
[
"UA",
0.24074075
],
[ "IN",
0.018518519
]
],
"geodiversity_normalized": [
[ "AP",
0.3761535390278368
],
[ "US",
0.0005015965168831449
]
],
"tld_geodiversity": [],
"geoscore": 0,
"ks_test": 0,
"found": true
}
К третьему типу API относятся:
- Remediation API. Позволяет решениям третьих фирм управлять многофункциональной защитной платформой Cisco Firepower.
- FirePOWER 9300 (SSP) REST API. Позволяет выстраивать конфигурационные сервисные цепочки.
- Read/Write REST API for Firepower. Позволяет выполнять различные операции над объектами, с которыми работает Firepower.
- Management API for ASA. Обеспечение управления Cisco ASA из решений третьих фирм, аудита политик ИБ и т.п.
- CloudLock Enterprise API. Позволяет управлять платформой облачного контроля доступа Cisco CloudLock и формирования отчетов на основании полученной из CloudLock информации.
- CloudLock Development API. Позволяет управлять облачными микро-сервисами.
- pxGrid. API, который позволяет не только отдавать контекстную информацию, но и управлять сетевым доступом, блокируя через Cisco ISE пользователей и устройства на уровне коммутаторов, маршрутизаторов, точек доступа и т.п.
- AMP for Endpoints API. Позволяет управлять черными списками приложений на AMP for Endpoints, переносить компьютеры из одной группы в другую и т.п.
К четвертому типу относятся
- Threat Intelligence Director. Решение, которое позволяет многофункциональной платформе безопасности Cisco Firepower получать и коррелировать данные об угрозах (Threat Intelligence) не только от подразделения Cisco Talos, но и от внешних TI-платформ, поддерживающих протоколы и стандарты STIX и TAXII.
- AMP Cloud-based API. API, который позволяет не только отдавать события безопасности, связанные с вредоносным кодом, но и получать доступ к внешним сервисам Threat Intelligence. Например, Cisco AMP for Endpoint может не только отправлять подозрительные файлы в облачную или локальную песочницу Cisco AMP Threat Grid, но и, например, в Virus Total.
Возникает закономерный вопрос: а как получить доступ к этим API? Все очень просто. В Cisco существует специальная программа Cisco Security Technical Alliance Program, которая состоит из двух больших разделов:
- DevNet. Это платформа, состоящая из двух частей. “Песочница” (DevNet Sandbox) обеспечивает доступ к программному и аппаратному обеспечению, физическому и виртуальному, для быстрой разработки и тестирования соответствующих решений. Работа с DevNet бесплатна и обеспечивается с любого устройства, подключенного к Интернет. Вторым компонентом DevNet является обучающая лаборатория (DevNet Learning Labs), которая предоставляет доступ к обучающему контенту, примерам кода, имеющим отношение к интеграции с решениями Cisco. Обучающая лаборатория также бесплатна и доступна для всех желающих. Большинство из упомянутых выше API представлены в DevNet, но есть и отдельные, более детальные разделы на сайте Cisco, погружающие вас с особенности программирования для решений Cisco по безопасности (для доступа к некоторым из них требуется иметь доступ к соответствующим продуктам или сервисам).
- Cisco Solution Partner Program (SPP). Если DevNet — это платформа, построенная по принципу самообслуживания, с помощью которой вы разрабатываете и тестируете свои интеграционные решения, то SPP — это уже следующий шаг, который подразумевает более формальные отношения с Cisco. Речь идет о независимом тестировании разработанного интеграционного решения, получении статуса технологического партнера и включении его решений в соответствующий каталог на сайте Cisco, к которому имеют доступ миллионы компаний по всему миру.
Для того, чтобы интегрировать свои SIEMы и SOCи с решениями Cisco достаточно просто зарегистрироваться на DevNet и, получив примеры кода, доработать свои решения, оснастив их соответствующими компонентами и программными вызовами через API. В принципе, уже этого достаточно для того, чтобы взаимодействовать с решениями Cisco по безопасности. Это полностью бесплатно (исключая оплату труда ваших программистов). Если же ваша задача выйти на международный рынок, продемонстрировать свои продукты широкой аудитории, доказать серьезные намерения по интеграции с Cisco, являющейся мировым лидером на рынке кибербезопасности, то необходимы определенные инвестиции и вступление в программу SPP. Именно по этому пути пошли такие компании как Check Point, ThreatQuotient, Anomali, Symantec и т.п.
Надеюсь, после такого краткого экскурса уже ни о кого не останется сомнений в том, что решения Cisco открыты как никто для интеграции с внешними продуктами и сервисами по безопасности. В этом направлении компания движется уже несколько лет, подтверждая ранее выдвинутый лозунг, которому следует подразделение Cisco по кибербезопасности, — «Open. Simple. Automation» (Открытость. Простота. Автоматизация).
Автор: Алексей Лукацкий