
확장 가능한 Azure 보안 도구 - 문서
확장 가능한 Azure 보안 도구(이하 E.A.S.T)는 Azure 및 일부 Azure AD 보안 제어를 평가하기 위한 도구입니다. EAST의 주요 사용 사례는 Azure 평가에서 평가를 위한 보안 데이터 수집입니다. 이 정보(JSON 콘텐츠)는 다양한 보고 도구에서 사용될 수 있으며, 이를 통해 데이터를 추가로 상호 연관시키고 조사합니다.
이 도구는 MIT 라이선스에 따라 라이선스가 부여됩니다.


목차
v 0.5
miGeneral.js입니다.query.js를 참조하세요.v 0.4
미리보기 브랜치 도입
변경 사항:
설치 시 이제 종속성과 관련하여 Azure Cloud Shell의 업데이트된 버전 사용을 고려합니다(Cloud Shell에는 이제 Node.JS v16 버전이 설치됨).
권고에 따른 Databricks 클러스터 유형 확인
Content.json은 이제 키 및 콘텐츠 기반 정렬을 갖습니다. 이를 통해 git diff HEAD^1¹을 사용하여 델타 검사를 수행할 수 있습니다. content.json의 결과 순서가 미리 결정되어 있기 때문입니다.

¹ ⚠️ 주의 사항: content.json의 델타를 확인하려면 content.json을
.gitignore에서 "unignore"해야 하며, 이로 인해 구성된 업스트림에 결과가 노출될 수 있습니다.이 기능을 주의해서 사용하고, 이 기능을 사용하는 브랜치에 대해 공개 업스트림이 설정되어 있지 않은지 확인하세요.
더 큰 데이터 세트에서 발생할 수 있는 경합 상태를 피하기 위한 프로그래밍 패턴 변경. 이는 주로 for await 스타일 루프에서 var 대신 let을 사용하는 변경입니다.
⚠️ 현재 도구 상태는 베타입니다.
exec()를 사용합니다. 모든 경로를 검토하지는 않았지만, 셸코드 실행을 달성하는 것이 간단하다고 생각합니다. 이 도구는 적대적 입력을 가정하지 않으므로, 실행 인수를 검토하지 않고 명령줄에 붙여넣지 않는 것이 좋습니다.코드 양을 줄이기 위해 작동 및 미적 목적으로 다음 종속성을 사용합니다 (이 훌륭한 패키지의 유지 관리자에게 감사드립니다).
| package | aesthetics | operation | license |
|---|---|---|---|
| axios | ✅ | MIT | |
| yargs | ✅ | MIT | |
| jsonwebtoken | ✅ | MIT | |
| chalk | ✅ | MIT | |
| js-beautify | ✅ | MIT |
도구 실행을 위한 기타 종속성: Azure Cloud Shell에서 실행하려는 경우 Azure CLI를 설치할 필요가 없습니다.
Azure Cloud Shell (BASH) 또는 해당 Linux 배포판 / WSL
| 요구 사항 | 설명 | 설치 |
|---|---|---|
| ✅ AZ CLI | AZCLI 사용 | curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash |
| ✅ Node.js 런타임 14 | EAST용 Node.js 런타임 | NVM으로 설치 |
EAST는 기본, 고급, 복합의 세 가지 제어 범주를 제공합니다.
머신이 읽을 수 있는 제어는 유형(기본/고급/복합)에 관계없이 다음과 같습니다.```json { "name": "fn-sql-2079", "resource": "/subscriptions/6193053b-408b-44d0-b20f-4e29b9b67394/resourcegroups/rg-fn-2079/providers/microsoft.web/sites/fn-sql-2079", "controlId": "managedIdentity", "isHealthy": true, "id": "/subscriptions/6193053b-408b-44d0-b20f-4e29b9b67394/resourcegroups/rg-fn-2079/providers/microsoft.web/sites/fn-sql-2079", "Description": "\r\n Ensure The Service calls downstream resources with managed identity", "metadata": { "principalId": { "type": "SystemAssigned", "tenantId": "033794f5-7c9d-4e98-923d-7b49114b7ac3", "principalId": "cb073f1e-03bc-440e-874d-5ed3ce6df7f8" }, "roles": [{ "role": [{ "properties": { "roleDefinitionId": "/subscriptions/6193053b-408b-44d0-b20f-4e29b9b67394/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", "principalId": "cb073f1e-03bc-440e-874d-5ed3ce6df7f8", "scope": "/subscriptions/6193053b-408b-44d0-b20f-4e29b9b67394/resourceGroups/RG-FN-2079", "createdOn": "2021-12-27T06:03:09.7052113Z", "updatedOn": "2021-12-27T06:03:09.7052113Z", "createdBy": "4257db31-3f22-4c0f-bd57-26cbbd4f5851", "updatedBy": "4257db31-3f22-4c0f-bd57-26cbbd4f5851" }, "id": "/subscriptions/6193053b-408b-44d0-b20f-4e29b9b67394/resourceGroups/RG-FN-2079/providers/Microsoft.Authorization/roleAssignments/ada69f21-790e-4386-9f47-c9b8a8c15674", "type": "Microsoft.Authorization/roleAssignments", "name": "ada69f21-790e-4386-9f47-c9b8a8c15674", "RoleName": "Contributor" }] }] }, "category": "Access" },
### Basic
기본 제어는 초기 ARM 개체에 대한 간단한 "켜기/끄기" 불리언 설정(즉, 해당 서비스의 설정)을 확인하는 것을 포함합니다.
**예시: Azure Container Registry adminUser**
[acr_adminUser](https://github.com/jsa2/east/blob/public/providers/microsoft.containerregistry/functions/acr_adminUser.js)
Portal|EAST
-|-
 | ``if (item.properties?.adminUserEnabled == false ){returnObject.isHealthy = true }``
### Advanced