Skip to content

Commit

Permalink
Initial fuzzer implementation (#785)
Browse files Browse the repository at this point in the history
* Empty fuzzer implementation (CMake stuff only)
* SecurityBaselineMmiGet and SecurityBaselineMmiSet fuzz targets
* More fuzzing targets #1
* More fuzzing targets #2
* Add crash corpus #1
  • Loading branch information
robertwoj-microsoft authored Nov 5, 2024
1 parent ac99485 commit b2d4e9f
Show file tree
Hide file tree
Showing 395 changed files with 781 additions and 1 deletion.
16 changes: 15 additions & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ option(BUILD_TESTS "Build test collateral" ON)
option(BUILD_MODULETEST "Build the moduletest tool" ON)
option(BUILD_SAMPLES "Build samples" OFF)
option(COVERAGE "Enable code coverage" OFF)
option(BUILD_FUZZER "Build fuzzer" OFF)

if (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
add_compile_options("-Wno-psabi;-fPIC")
Expand Down Expand Up @@ -105,6 +106,19 @@ if (BUILD_TESTS)
set (GTEST_OUTPUT_DIR ${CMAKE_BINARY_DIR}/gtest-output)
endif()

if (BUILD_FUZZER)
if(NOT CMAKE_C_COMPILER_ID STREQUAL "Clang")
message(FATAL_ERROR "Fuzzer requires Clang")
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer-no-link,address,undefined -g -O1 -fno-omit-frame-pointer")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=fuzzer-no-link,address,undefined -g -O1 -fno-omit-frame-pointer")
message(STATUS "Fuzzer: Enabled")
message(STATUS "Modified CXX flags: ${CMAKE_CXX_FLAGS}")
message(STATUS "Modified C flags: ${CMAKE_C_FLAGS}")
add_subdirectory(fuzzer)
else()
message(STATUS "Fuzzer: Disabled")
endif()
add_subdirectory(common)
if (BUILD_ADAPTERS)
add_subdirectory(adapters)
Expand Down Expand Up @@ -163,4 +177,4 @@ set(CPACK_DEBIAN_PACKAGE_NAME ${OsConfigProjectName})
set(CPACK_DEBIAN_PACKAGE_PREDEPENDS "")
set(CPACK_DEBIAN_PACKAGE_SUGGESTS "aziot-identity-service (>= 1.2.0)")

include(CPack)
include(CPack)
16 changes: 16 additions & 0 deletions src/fuzzer/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
cmake_minimum_required(VERSION 3.2)

# Set the project name and version
project(osconfig-fuzzer)

# Specify the C++ standard
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)

find_package(LLVM REQUIRED)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer")

include_directories(${CMAKE_SOURCE_DIR}/common/commonutils)
add_executable(osconfig-fuzzer target.cpp)
target_link_libraries(osconfig-fuzzer PRIVATE mpiclient asb pthread securitybaselinelib)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureALoggingServiceIsEnabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAcceptingSourceRoutedPacketsIsDisabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAllAccountsHavePasswords
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAllBootloadersHavePasswordProtectionEnabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAllEtcPasswdGroupsExistInEtcGroup
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAllRsyslogLogFilesAreOwnedByAdmGroup
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAllRsyslogLogFilesAreOwnedBySyslogUser
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAllTelnetdPackagesUninstalled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAllUsersHomeDirectoriesExist
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAllWirelessInterfacesAreDisabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAllowGroupsIsConfigured
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAllowUsersIsConfigured
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAppropriateCiphersForSsh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAtCronIsRestrictedToAuthorizedUsers
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAuditdInstalled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAuditdServiceIsRunning
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAuthenticationRequiredForSingleUserMode
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAutomountingDisabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureAvahiDaemonServiceIsDisabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureBind9NotInstalled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureBluetoothHiddNotInstalled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureCoreDumpsAreRestricted
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureCronServiceIsEnabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureCupsServiceisDisabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureDccpIsDisabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureDefaultDenyFirewallPolicyIsSet
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureDefaultRootAccountGroupIsGidZero
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureDefaultUmaskForAllUsers
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureDenyGroupsConfigured
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureDenyUsersIsConfigured
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureDisabledInstallationOfCramfsFileSystem
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureDisabledInstallationOfFreevxfsFileSystem
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureDisabledInstallationOfHfsFileSystem
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureDisabledInstallationOfHfsplusFileSystem
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureDisabledInstallationOfJffs2FileSystem
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureDisabledSupportForRds
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureDotDoesNotAppearInRootsPath
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureDovecotCoreNotInstalled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureFilePermissionsForAllRsyslogLogFiles
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureIcmpRedirectsIsDisabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureIgnoringBogusIcmpBroadcastResponses
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureIgnoringIcmpEchoPingsToMulticast
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureInactivePasswordLockPeriod
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureInetdNotInstalled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureIpv6ProtocolIsEnabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureIscDhcpdServerNotInstalled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureIsdnUtilsBaseNotInstalled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureIsdnUtilsKdumpToolsNotInstalled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureKernelCompiledFromApprovedSources
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureKernelSupportForCpuNx
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureLocalLoginWarningBannerIsConfigured
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureLockoutForFailedPasswordAttempts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureLoggerConfigurationFilesAreRestricted
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureLoggingIsConfigured
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureMartianPacketLoggingIsEnabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureMinDaysBetweenPasswordChanges
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureMountingOfUsbStorageDevicesIsDisabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNetworkFileSystemServiceIsDisabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNisNotInstalled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNisServerIsDisabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNoDuplicateGidsExist
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNoDuplicateGroupsExist
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNoDuplicateUidsExist
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNoDuplicateUserNamesExist
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNoLegacyPlusEntriesInEtcGroup
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNoLegacyPlusEntriesInEtcPasswd
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNoLegacyPlusEntriesInEtcShadow
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNoUsersHaveDotForwardFiles
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNoUsersHaveDotNetrcFiles
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNoUsersHaveDotRhostsFiles
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNodevOptionEnabledForAllRemovableMedia
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNodevOptionOnHomePartition
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNodevOptionOnTmpPartition
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNodevOptionOnVarTmpPartition
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNoexecNosuidOptionsEnabledForAllNfsMounts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNoexecOptionEnabledForAllRemovableMedia
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNoexecOptionOnDevShmPartition
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNoexecOptionOnVarTmpPartition
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNonRootAccountsHaveUniqueUidsGreaterThanZero
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNosuidOptionEnabledForAllRemovableMedia
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNosuidOptionOnTmpPartition
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureNosuidOptionOnVarTmpPartition
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureOnlyApprovedMacAlgorithmsAreUsed
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePacketRedirectSendingIsDisabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePasswordCreationRequirements
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePasswordExpiration
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePasswordExpirationWarning
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePasswordHashingAlgorithm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePasswordReuseIsLimited
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnBootloaderConfig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcAnacronTab
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcCronD
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcCronDaily
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcCronHourly
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcCronMonthly
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcCronWeekly
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcGShadow
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcGShadowDash
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcGroup
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcGroupDash
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcHostsAllow
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcHostsDeny
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcIssue
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcIssueNet
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcMotd
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcPasswd
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcPasswdDash
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcShadow
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcShadowDash
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePermissionsOnEtcSshSshdConfig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePortmapServiceIsDisabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePostfixNetworkListeningIsDisabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePostfixPackageIsUninstalled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsurePrelinkIsDisabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureRcprshServiceIsDisabled
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SecurityBaselineMmiGet.auditEnsureReadaheadFedoraNotInstalled
Loading

0 comments on commit b2d4e9f

Please sign in to comment.