@@ -7,6 +7,7 @@ import Azure_CIS_131_61 from '../rules/azure-cis-1.3.1-6.1'
77import Azure_CIS_131_62 from '../rules/azure-cis-1.3.1-6.2'
88import Azure_CIS_131_63 from '../rules/azure-cis-1.3.1-6.3'
99import Azure_CIS_131_64 from '../rules/azure-cis-1.3.1-6.4'
10+ import Azure_CIS_131_65 from '../rules/azure-cis-1.3.1-6.5'
1011import Azure_CIS_131_66 from '../rules/azure-cis-1.3.1-6.6'
1112import { initRuleEngine } from '../../../utils/test'
1213
@@ -38,9 +39,18 @@ export interface QueryazureSqlServer {
3839 firewallRules ?: FirewallRules [ ]
3940}
4041
42+ export interface VirtualNetwork {
43+ id : string
44+ }
45+
46+ export interface QueryazureResourceGroup {
47+ id : string
48+ virtualNetworks ?: VirtualNetwork [ ]
49+ }
4150export interface CIS6xQueryResponse {
4251 queryazureNetworkSecurityGroup ?: QueryazureNetworkSecurityGroup [ ]
4352 queryazureSqlServer ?: QueryazureSqlServer [ ]
53+ queryazureResourceGroup ?: QueryazureResourceGroup [ ]
4454}
4555
4656describe ( 'CIS Microsoft Azure Foundations: 1.3.1' , ( ) => {
@@ -373,6 +383,56 @@ describe('CIS Microsoft Azure Foundations: 1.3.1', () => {
373383 } )
374384 } )
375385
386+ describe ( 'Azure CIS 6.5 Ensure that Network Watcher is Enabled' , ( ) => {
387+ const getTestRuleFixture = (
388+ enabled : boolean ,
389+ ) : CIS6xQueryResponse => {
390+ return {
391+ queryazureResourceGroup : [
392+ {
393+ id : cuid ( ) ,
394+ virtualNetworks : enabled ? [
395+ {
396+ id : cuid ( ) ,
397+ } ,
398+ ] : undefined ,
399+ } ,
400+ ] ,
401+ }
402+ }
403+
404+ const testRule = async (
405+ data : CIS6xQueryResponse ,
406+ expectedResult : Result
407+ ) : Promise < void > => {
408+ // Act
409+ const [ processedRule ] = await rulesEngine . processRule (
410+ Azure_CIS_131_65 as Rule ,
411+ { ...data }
412+ )
413+
414+ // Asserts
415+ expect ( processedRule . result ) . toBe ( expectedResult )
416+ }
417+
418+ test ( 'No Security Issue when Network Watcher is enabled' , async ( ) => {
419+ const data : CIS6xQueryResponse = getTestRuleFixture (
420+ true ,
421+ )
422+
423+ await testRule ( data , Result . PASS )
424+ } )
425+
426+ test ( 'Security Issue when Network Watcher is disabled' , async ( ) => {
427+ const data : CIS6xQueryResponse = getTestRuleFixture (
428+ false ,
429+ )
430+
431+ await testRule ( data , Result . FAIL )
432+ } )
433+ } )
434+
435+
376436 describe ( 'Azure CIS 6.6 Ensure that UDP Services are restricted from the Internet' , ( ) => {
377437 const getTestRuleFixture = (
378438 access ?: string ,
0 commit comments