in src/common/asb/Asb.c [4203:4989]
int AsbMmiGet(const char* componentName, const char* objectName, char** payload, int* payloadSizeBytes, unsigned int maxPayloadSizeBytes, OsConfigLogHandle log)
{
JSON_Value* jsonValue = NULL;
char* serializedValue = NULL;
PerfClock perfClock = {{0, 0}, {0, 0}};
int status = 0;
char* result = NULL;
if ((NULL == componentName) || (NULL == objectName) || (NULL == payload) || (NULL == payloadSizeBytes))
{
OsConfigLogError(log, "AsbMmiGet(%s, %s, %p, %p) called with invalid arguments", componentName, objectName, payload, payloadSizeBytes);
status = EINVAL;
return status;
}
*payload = NULL;
*payloadSizeBytes = 0;
StartPerfClock(&perfClock, GetPerfLog());
if (0 != strcmp(componentName, g_securityBaselineComponentName))
{
OsConfigLogError(log, "AsbMmiGet called for an unsupported component name (%s)", componentName);
status = EINVAL;
}
else
{
if (0 == strcmp(objectName, g_auditEnsureLoggingLevelObject))
{
result = AuditEnsureLoggingLevel(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcIssueObject))
{
result = AuditEnsurePermissionsOnEtcIssue(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcIssueNetObject))
{
result = AuditEnsurePermissionsOnEtcIssueNet(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcHostsAllowObject))
{
result = AuditEnsurePermissionsOnEtcHostsAllow(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcHostsDenyObject))
{
result = AuditEnsurePermissionsOnEtcHostsDeny(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcSshSshdConfigObject))
{
result = AuditEnsurePermissionsOnEtcSshSshdConfig(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcShadowObject))
{
result = AuditEnsurePermissionsOnEtcShadow(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcShadowDashObject))
{
result = AuditEnsurePermissionsOnEtcShadowDash(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcGShadowObject))
{
result = AuditEnsurePermissionsOnEtcGShadow(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcGShadowDashObject))
{
result = AuditEnsurePermissionsOnEtcGShadowDash(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcPasswdObject))
{
result = AuditEnsurePermissionsOnEtcPasswd(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcPasswdDashObject))
{
result = AuditEnsurePermissionsOnEtcPasswdDash(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcGroupObject))
{
result = AuditEnsurePermissionsOnEtcGroup(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcGroupDashObject))
{
result = AuditEnsurePermissionsOnEtcGroupDash(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcAnacronTabObject))
{
result = AuditEnsurePermissionsOnEtcAnacronTab(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcCronDObject))
{
result = AuditEnsurePermissionsOnEtcCronD(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcCronDailyObject))
{
result = AuditEnsurePermissionsOnEtcCronDaily(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcCronHourlyObject))
{
result = AuditEnsurePermissionsOnEtcCronHourly(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcCronMonthlyObject))
{
result = AuditEnsurePermissionsOnEtcCronMonthly(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcCronWeeklyObject))
{
result = AuditEnsurePermissionsOnEtcCronWeekly(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnEtcMotdObject))
{
result = AuditEnsurePermissionsOnEtcMotd(log);
}
else if (0 == strcmp(objectName, g_auditEnsureKernelSupportForCpuNxObject))
{
result = AuditEnsureKernelSupportForCpuNx(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNodevOptionOnHomePartitionObject))
{
result = AuditEnsureNodevOptionOnHomePartition(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNodevOptionOnTmpPartitionObject))
{
result = AuditEnsureNodevOptionOnTmpPartition(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNodevOptionOnVarTmpPartitionObject))
{
result = AuditEnsureNodevOptionOnVarTmpPartition(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNosuidOptionOnTmpPartitionObject))
{
result = AuditEnsureNosuidOptionOnTmpPartition(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNosuidOptionOnVarTmpPartitionObject))
{
result = AuditEnsureNosuidOptionOnVarTmpPartition(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNoexecOptionOnVarTmpPartitionObject))
{
result = AuditEnsureNoexecOptionOnVarTmpPartition(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNoexecOptionOnDevShmPartitionObject))
{
result = AuditEnsureNoexecOptionOnDevShmPartition(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNodevOptionEnabledForAllRemovableMediaObject))
{
result = AuditEnsureNodevOptionEnabledForAllRemovableMedia(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNoexecOptionEnabledForAllRemovableMediaObject))
{
result = AuditEnsureNoexecOptionEnabledForAllRemovableMedia(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNosuidOptionEnabledForAllRemovableMediaObject))
{
result = AuditEnsureNosuidOptionEnabledForAllRemovableMedia(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNoexecNosuidOptionsEnabledForAllNfsMountsObject))
{
result = AuditEnsureNoexecNosuidOptionsEnabledForAllNfsMounts(log);
}
else if (0 == strcmp(objectName, g_auditEnsureInetdNotInstalledObject))
{
result = AuditEnsureInetdNotInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureXinetdNotInstalledObject))
{
result = AuditEnsureXinetdNotInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAllTelnetdPackagesUninstalledObject))
{
result = AuditEnsureAllTelnetdPackagesUninstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureRshServerNotInstalledObject))
{
result = AuditEnsureRshServerNotInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNisNotInstalledObject))
{
result = AuditEnsureNisNotInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureTftpdNotInstalledObject))
{
result = AuditEnsureTftpdNotInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureReadaheadFedoraNotInstalledObject))
{
result = AuditEnsureReadaheadFedoraNotInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureBluetoothHiddNotInstalledObject))
{
result = AuditEnsureBluetoothHiddNotInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureIsdnUtilsBaseNotInstalledObject))
{
result = AuditEnsureIsdnUtilsBaseNotInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureIsdnUtilsKdumpToolsNotInstalledObject))
{
result = AuditEnsureIsdnUtilsKdumpToolsNotInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureIscDhcpdServerNotInstalledObject))
{
result = AuditEnsureIscDhcpdServerNotInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSendmailNotInstalledObject))
{
result = AuditEnsureSendmailNotInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSldapdNotInstalledObject))
{
result = AuditEnsureSldapdNotInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureBind9NotInstalledObject))
{
result = AuditEnsureBind9NotInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureDovecotCoreNotInstalledObject))
{
result = AuditEnsureDovecotCoreNotInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAuditdInstalledObject))
{
result = AuditEnsureAuditdInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAllEtcPasswdGroupsExistInEtcGroupObject))
{
result = AuditEnsureAllEtcPasswdGroupsExistInEtcGroup(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNoDuplicateUidsExistObject))
{
result = AuditEnsureNoDuplicateUidsExist(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNoDuplicateGidsExistObject))
{
result = AuditEnsureNoDuplicateGidsExist(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNoDuplicateUserNamesExistObject))
{
result = AuditEnsureNoDuplicateUserNamesExist(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNoDuplicateGroupsExistObject))
{
result = AuditEnsureNoDuplicateGroupsExist(log);
}
else if (0 == strcmp(objectName, g_auditEnsureShadowGroupIsEmptyObject))
{
result = AuditEnsureShadowGroupIsEmpty(log);
}
else if (0 == strcmp(objectName, g_auditEnsureRootGroupExistsObject))
{
result = AuditEnsureRootGroupExists(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAllAccountsHavePasswordsObject))
{
result = AuditEnsureAllAccountsHavePasswords(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNonRootAccountsHaveUniqueUidsGreaterThanZeroObject))
{
result = AuditEnsureNonRootAccountsHaveUniqueUidsGreaterThanZero(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNoLegacyPlusEntriesInEtcPasswdObject))
{
result = AuditEnsureNoLegacyPlusEntriesInEtcPasswd(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNoLegacyPlusEntriesInEtcShadowObject))
{
result = AuditEnsureNoLegacyPlusEntriesInEtcShadow(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNoLegacyPlusEntriesInEtcGroupObject))
{
result = AuditEnsureNoLegacyPlusEntriesInEtcGroup(log);
}
else if (0 == strcmp(objectName, g_auditEnsureDefaultRootAccountGroupIsGidZeroObject))
{
result = AuditEnsureDefaultRootAccountGroupIsGidZero(log);
}
else if (0 == strcmp(objectName, g_auditEnsureRootIsOnlyUidZeroAccountObject))
{
result = AuditEnsureRootIsOnlyUidZeroAccount(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAllUsersHomeDirectoriesExistObject))
{
result = AuditEnsureAllUsersHomeDirectoriesExist(log);
}
else if (0 == strcmp(objectName, g_auditEnsureUsersOwnTheirHomeDirectoriesObject))
{
result = AuditEnsureUsersOwnTheirHomeDirectories(log);
}
else if (0 == strcmp(objectName, g_auditEnsureRestrictedUserHomeDirectoriesObject))
{
result = AuditEnsureRestrictedUserHomeDirectories(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePasswordHashingAlgorithmObject))
{
result = AuditEnsurePasswordHashingAlgorithm(log);
}
else if (0 == strcmp(objectName, g_auditEnsureMinDaysBetweenPasswordChangesObject))
{
result = AuditEnsureMinDaysBetweenPasswordChanges(log);
}
else if (0 == strcmp(objectName, g_auditEnsureInactivePasswordLockPeriodObject))
{
result = AuditEnsureInactivePasswordLockPeriod(log);
}
else if (0 == strcmp(objectName, g_auditMaxDaysBetweenPasswordChangesObject))
{
result = AuditEnsureMaxDaysBetweenPasswordChanges(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePasswordExpirationObject))
{
result = AuditEnsurePasswordExpiration(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePasswordExpirationWarningObject))
{
result = AuditEnsurePasswordExpirationWarning(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSystemAccountsAreNonLoginObject))
{
result = AuditEnsureSystemAccountsAreNonLogin(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAuthenticationRequiredForSingleUserModeObject))
{
result = AuditEnsureAuthenticationRequiredForSingleUserMode(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePrelinkIsDisabledObject))
{
result = AuditEnsurePrelinkIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureTalkClientIsNotInstalledObject))
{
result = AuditEnsureTalkClientIsNotInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureDotDoesNotAppearInRootsPathObject))
{
result = AuditEnsureDotDoesNotAppearInRootsPath(log);
}
else if (0 == strcmp(objectName, g_auditEnsureCronServiceIsEnabledObject))
{
result = AuditEnsureCronServiceIsEnabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureRemoteLoginWarningBannerIsConfiguredObject))
{
result = AuditEnsureRemoteLoginWarningBannerIsConfigured(log);
}
else if (0 == strcmp(objectName, g_auditEnsureLocalLoginWarningBannerIsConfiguredObject))
{
result = AuditEnsureLocalLoginWarningBannerIsConfigured(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAuditdServiceIsRunningObject))
{
result = AuditEnsureAuditdServiceIsRunning(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSuRestrictedToRootGroupObject))
{
result = AuditEnsureSuRestrictedToRootGroup(log);
}
else if (0 == strcmp(objectName, g_auditEnsureDefaultUmaskForAllUsersObject))
{
result = AuditEnsureDefaultUmaskForAllUsers(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAutomountingDisabledObject))
{
result = AuditEnsureAutomountingDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureKernelCompiledFromApprovedSourcesObject))
{
result = AuditEnsureKernelCompiledFromApprovedSources(log);
}
else if (0 == strcmp(objectName, g_auditEnsureDefaultDenyFirewallPolicyIsSetObject))
{
result = AuditEnsureDefaultDenyFirewallPolicyIsSet(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePacketRedirectSendingIsDisabledObject))
{
result = AuditEnsurePacketRedirectSendingIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureIcmpRedirectsIsDisabledObject))
{
result = AuditEnsureIcmpRedirectsIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSourceRoutedPacketsIsDisabledObject))
{
result = AuditEnsureSourceRoutedPacketsIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAcceptingSourceRoutedPacketsIsDisabledObject))
{
result = AuditEnsureAcceptingSourceRoutedPacketsIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureIgnoringBogusIcmpBroadcastResponsesObject))
{
result = AuditEnsureIgnoringBogusIcmpBroadcastResponses(log);
}
else if (0 == strcmp(objectName, g_auditEnsureIgnoringIcmpEchoPingsToMulticastObject))
{
result = AuditEnsureIgnoringIcmpEchoPingsToMulticast(log);
}
else if (0 == strcmp(objectName, g_auditEnsureMartianPacketLoggingIsEnabledObject))
{
result = AuditEnsureMartianPacketLoggingIsEnabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureReversePathSourceValidationIsEnabledObject))
{
result = AuditEnsureReversePathSourceValidationIsEnabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureTcpSynCookiesAreEnabledObject))
{
result = AuditEnsureTcpSynCookiesAreEnabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSystemNotActingAsNetworkSnifferObject))
{
result = AuditEnsureSystemNotActingAsNetworkSniffer(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAllWirelessInterfacesAreDisabledObject))
{
result = AuditEnsureAllWirelessInterfacesAreDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureIpv6ProtocolIsEnabledObject))
{
result = AuditEnsureIpv6ProtocolIsEnabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureDccpIsDisabledObject))
{
result = AuditEnsureDccpIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSctpIsDisabledObject))
{
result = AuditEnsureSctpIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureDisabledSupportForRdsObject))
{
result = AuditEnsureDisabledSupportForRds(log);
}
else if (0 == strcmp(objectName, g_auditEnsureTipcIsDisabledObject))
{
result = AuditEnsureTipcIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureZeroconfNetworkingIsDisabledObject))
{
result = AuditEnsureZeroconfNetworkingIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePermissionsOnBootloaderConfigObject))
{
result = AuditEnsurePermissionsOnBootloaderConfig(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePasswordReuseIsLimitedObject))
{
result = AuditEnsurePasswordReuseIsLimited(log);
}
else if (0 == strcmp(objectName, g_auditEnsureMountingOfUsbStorageDevicesIsDisabledObject))
{
result = AuditEnsureMountingOfUsbStorageDevicesIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureCoreDumpsAreRestrictedObject))
{
result = AuditEnsureCoreDumpsAreRestricted(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePasswordCreationRequirementsObject))
{
result = AuditEnsurePasswordCreationRequirements(log);
}
else if (0 == strcmp(objectName, g_auditEnsureLockoutForFailedPasswordAttemptsObject))
{
result = AuditEnsureLockoutForFailedPasswordAttempts(log);
}
else if (0 == strcmp(objectName, g_auditEnsureDisabledInstallationOfCramfsFileSystemObject))
{
result = AuditEnsureDisabledInstallationOfCramfsFileSystem(log);
}
else if (0 == strcmp(objectName, g_auditEnsureDisabledInstallationOfFreevxfsFileSystemObject))
{
result = AuditEnsureDisabledInstallationOfFreevxfsFileSystem(log);
}
else if (0 == strcmp(objectName, g_auditEnsureDisabledInstallationOfHfsFileSystemObject))
{
result = AuditEnsureDisabledInstallationOfHfsFileSystem(log);
}
else if (0 == strcmp(objectName, g_auditEnsureDisabledInstallationOfHfsplusFileSystemObject))
{
result = AuditEnsureDisabledInstallationOfHfsplusFileSystem(log);
}
else if (0 == strcmp(objectName, g_auditEnsureDisabledInstallationOfJffs2FileSystemObject))
{
result = AuditEnsureDisabledInstallationOfJffs2FileSystem(log);
}
else if (0 == strcmp(objectName, g_auditEnsureVirtualMemoryRandomizationIsEnabledObject))
{
result = AuditEnsureVirtualMemoryRandomizationIsEnabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAllBootloadersHavePasswordProtectionEnabledObject))
{
result = AuditEnsureAllBootloadersHavePasswordProtectionEnabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureLoggingIsConfiguredObject))
{
result = AuditEnsureLoggingIsConfigured(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSyslogPackageIsInstalledObject))
{
result = AuditEnsureSyslogPackageIsInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSystemdJournaldServicePersistsLogMessagesObject))
{
result = AuditEnsureSystemdJournaldServicePersistsLogMessages(log);
}
else if (0 == strcmp(objectName, g_auditEnsureALoggingServiceIsEnabledObject))
{
result = AuditEnsureALoggingServiceIsEnabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureFilePermissionsForAllRsyslogLogFilesObject))
{
result = AuditEnsureFilePermissionsForAllRsyslogLogFiles(log);
}
else if (0 == strcmp(objectName, g_auditEnsureLoggerConfigurationFilesAreRestrictedObject))
{
result = AuditEnsureLoggerConfigurationFilesAreRestricted(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAllRsyslogLogFilesAreOwnedByAdmGroupObject))
{
result = AuditEnsureAllRsyslogLogFilesAreOwnedByAdmGroup(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAllRsyslogLogFilesAreOwnedBySyslogUserObject))
{
result = AuditEnsureAllRsyslogLogFilesAreOwnedBySyslogUser(log);
}
else if (0 == strcmp(objectName, g_auditEnsureRsyslogNotAcceptingRemoteMessagesObject))
{
result = AuditEnsureRsyslogNotAcceptingRemoteMessages(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSyslogRotaterServiceIsEnabledObject))
{
result = AuditEnsureSyslogRotaterServiceIsEnabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureTelnetServiceIsDisabledObject))
{
result = AuditEnsureTelnetServiceIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureRcprshServiceIsDisabledObject))
{
result = AuditEnsureRcprshServiceIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureTftpServiceisDisabledObject))
{
result = AuditEnsureTftpServiceisDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAtCronIsRestrictedToAuthorizedUsersObject))
{
result = AuditEnsureAtCronIsRestrictedToAuthorizedUsers(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSshPortIsConfiguredObject))
{
result = AuditEnsureSshPortIsConfigured(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSshBestPracticeProtocolObject))
{
result = AuditEnsureSshBestPracticeProtocol(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSshBestPracticeIgnoreRhostsObject))
{
result = AuditEnsureSshBestPracticeIgnoreRhosts(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSshLogLevelIsSetObject))
{
result = AuditEnsureSshLogLevelIsSet(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSshMaxAuthTriesIsSetObject))
{
result = AuditEnsureSshMaxAuthTriesIsSet(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAllowUsersIsConfiguredObject))
{
result = AuditEnsureAllowUsersIsConfigured(log);
}
else if (0 == strcmp(objectName, g_auditEnsureDenyUsersIsConfiguredObject))
{
result = AuditEnsureDenyUsersIsConfigured(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAllowGroupsIsConfiguredObject))
{
result = AuditEnsureAllowGroupsIsConfigured(log);
}
else if (0 == strcmp(objectName, g_auditEnsureDenyGroupsConfiguredObject))
{
result = AuditEnsureDenyGroupsConfigured(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSshHostbasedAuthenticationIsDisabledObject))
{
result = AuditEnsureSshHostbasedAuthenticationIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSshPermitRootLoginIsDisabledObject))
{
result = AuditEnsureSshPermitRootLoginIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSshPermitEmptyPasswordsIsDisabledObject))
{
result = AuditEnsureSshPermitEmptyPasswordsIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSshClientIntervalCountMaxIsConfiguredObject))
{
result = AuditEnsureSshClientIntervalCountMaxIsConfigured(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSshClientAliveIntervalIsConfiguredObject))
{
result = AuditEnsureSshClientAliveIntervalIsConfigured(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSshLoginGraceTimeIsSetObject))
{
result = AuditEnsureSshLoginGraceTimeIsSet(log);
}
else if (0 == strcmp(objectName, g_auditEnsureOnlyApprovedMacAlgorithmsAreUsedObject))
{
result = AuditEnsureOnlyApprovedMacAlgorithmsAreUsed(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSshWarningBannerIsEnabledObject))
{
result = AuditEnsureSshWarningBannerIsEnabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureUsersCannotSetSshEnvironmentOptionsObject))
{
result = AuditEnsureUsersCannotSetSshEnvironmentOptions(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAppropriateCiphersForSshObject))
{
result = AuditEnsureAppropriateCiphersForSsh(log);
}
else if (0 == strcmp(objectName, g_auditEnsureAvahiDaemonServiceIsDisabledObject))
{
result = AuditEnsureAvahiDaemonServiceIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureCupsServiceisDisabledObject))
{
result = AuditEnsureCupsServiceisDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePostfixPackageIsUninstalledObject))
{
result = AuditEnsurePostfixPackageIsUninstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePostfixNetworkListeningIsDisabledObject))
{
result = AuditEnsurePostfixNetworkListeningIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureRpcgssdServiceIsDisabledObject))
{
result = AuditEnsureRpcgssdServiceIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureRpcidmapdServiceIsDisabledObject))
{
result = AuditEnsureRpcidmapdServiceIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsurePortmapServiceIsDisabledObject))
{
result = AuditEnsurePortmapServiceIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNetworkFileSystemServiceIsDisabledObject))
{
result = AuditEnsureNetworkFileSystemServiceIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureRpcsvcgssdServiceIsDisabledObject))
{
result = AuditEnsureRpcsvcgssdServiceIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSnmpServerIsDisabledObject))
{
result = AuditEnsureSnmpServerIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureRsynServiceIsDisabledObject))
{
result = AuditEnsureRsynServiceIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNisServerIsDisabledObject))
{
result = AuditEnsureNisServerIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureRshClientNotInstalledObject))
{
result = AuditEnsureRshClientNotInstalled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureSmbWithSambaIsDisabledObject))
{
result = AuditEnsureSmbWithSambaIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureUsersDotFilesArentGroupOrWorldWritableObject))
{
result = AuditEnsureUsersDotFilesArentGroupOrWorldWritable(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNoUsersHaveDotForwardFilesObject))
{
result = AuditEnsureNoUsersHaveDotForwardFiles(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNoUsersHaveDotNetrcFilesObject))
{
result = AuditEnsureNoUsersHaveDotNetrcFiles(log);
}
else if (0 == strcmp(objectName, g_auditEnsureNoUsersHaveDotRhostsFilesObject))
{
result = AuditEnsureNoUsersHaveDotRhostsFiles(log);
}
else if (0 == strcmp(objectName, g_auditEnsureRloginServiceIsDisabledObject))
{
result = AuditEnsureRloginServiceIsDisabled(log);
}
else if (0 == strcmp(objectName, g_auditEnsureUnnecessaryAccountsAreRemovedObject))
{
result = AuditEnsureUnnecessaryAccountsAreRemoved(log);
}
else
{
OsConfigLogError(log, "AsbMmiGet called for an unsupported object (%s)", objectName);
status = EINVAL;
}
}
if (0 == status)
{
if ((NULL == result) || (NULL == (jsonValue = json_value_init_string(result))))
{
OsConfigLogError(log, "AsbMmiGet(%s, %s): audit failure without a valid reason", componentName, objectName);
FREE_MEMORY(result);
if (NULL == (result = DuplicateString(g_fail)))
{
OsConfigLogError(log, "AsbMmiGet: DuplicateString failed");
status = ENOMEM;
}
}
if (NULL != result)
{
if ((NULL == jsonValue) && (NULL == (jsonValue = json_value_init_string(result))))
{
OsConfigLogError(log, "AsbMmiGet(%s, %s): json_value_init_string(%s) failed", componentName, objectName, result);
status = ENOMEM;
}
else if (NULL == (serializedValue = json_serialize_to_string(jsonValue)))
{
OsConfigLogError(log, "AsbMmiGet(%s, %s): json_serialize_to_string(%s) failed", componentName, objectName, result);
status = ENOMEM;
}
else
{
*payloadSizeBytes = (int)strlen(serializedValue);
if ((maxPayloadSizeBytes > 0) && ((unsigned)*payloadSizeBytes > maxPayloadSizeBytes))
{
OsConfigLogInfo(log, "MmiGet(%s, %s) insufficient max size (%d bytes) vs actual size (%d bytes), report will be truncated",
componentName, objectName, maxPayloadSizeBytes, *payloadSizeBytes);
*payloadSizeBytes = maxPayloadSizeBytes;
}
if (NULL != (*payload = (char*)malloc(*payloadSizeBytes + 1)))
{
memset(*payload, 0, *payloadSizeBytes + 1);
memcpy(*payload, serializedValue, *payloadSizeBytes);
}
else
{
OsConfigLogError(log, "AsbMmiGet: failed to allocate %d bytes", *payloadSizeBytes + 1);
*payloadSizeBytes = 0;
status = ENOMEM;
}
}
}
}
OsConfigLogInfo(log, "AsbMmiGet(%s, %s, %.*s, %d) returning %d", componentName, objectName, *payloadSizeBytes, *payload, *payloadSizeBytes, status);
if (NULL != serializedValue)
{
json_free_serialized_string(serializedValue);
}
if (NULL != jsonValue)
{
json_value_free(jsonValue);
}
FREE_MEMORY(result);
if (0 == StopPerfClock(&perfClock, GetPerfLog()))
{
LogPerfClock(&perfClock, componentName, objectName, status, g_maxAuditTime, GetPerfLog());
// For telemetry:
OsConfigLogCritical(log, "TargetName: '%s', ComponentName: '%s', 'ObjectName:'%s', ObjectResult:'%s (%d)', Reason: '%.*s', Microseconds: %ld",
g_prettyName, componentName, objectName, strerror(status), status, *payloadSizeBytes, *payload, GetPerfClockTime(&perfClock, log));
}
return status;
}