cloud-report
Version:
Collects and analyzes cloud resources
57 lines (56 loc) • 2.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = require("../../../types");
const base_1 = require("../../base");
class RDPPortOpenToWorldAnalyzer extends base_1.BaseAnalyzer {
analyze(params, fullReport) {
const allSecurityGroups = params.security_groups;
if (!allSecurityGroups) {
return undefined;
}
const rdp_port_open_to_world = { type: types_1.CheckAnalysisType.Security };
rdp_port_open_to_world.what = "Is RDP port open to world?";
rdp_port_open_to_world.why = "We should always restrict RDP port only intended parties to access";
rdp_port_open_to_world.recommendation = "Recommended to restrict RDP port in security groups to specific IPs";
rdp_port_open_to_world.benchmark = ['all'];
const allRegionsAnalysis = {};
for (const region in allSecurityGroups) {
const regionSecurityGroups = allSecurityGroups[region];
allRegionsAnalysis[region] = [];
for (const securityGroup of regionSecurityGroups) {
if (securityGroup.GroupName === "default") {
continue;
}
const securityGroupAnalysis = {};
securityGroupAnalysis.resource = securityGroup;
securityGroupAnalysis.resourceSummary = {
name: "SecurityGroup",
value: `${securityGroup.GroupName} | ${securityGroup.GroupId}`,
};
if (this.isRDPOpenToWorld(securityGroup)) {
securityGroupAnalysis.severity = types_1.SeverityStatus.Failure;
securityGroupAnalysis.message = "RDP Port is open to entire world";
securityGroupAnalysis.action = "Restrict RDP port";
}
else {
securityGroupAnalysis.severity = types_1.SeverityStatus.Good;
securityGroupAnalysis.message = "RDP port is not open to entire world";
}
allRegionsAnalysis[region].push(securityGroupAnalysis);
}
}
rdp_port_open_to_world.regions = allRegionsAnalysis;
return { rdp_port_open_to_world };
}
isRDPOpenToWorld(securityGroup) {
if (!securityGroup) {
return false;
}
return securityGroup.IpPermissions.some((rule) => {
return rule.FromPort === 3389 && rule.IpRanges.some((ipRange) => {
return ipRange.CidrIp === "0.0.0.0/0";
});
});
}
}
exports.RDPPortOpenToWorldAnalyzer = RDPPortOpenToWorldAnalyzer;