31 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
# Ignore Ansibilized templates.
 | 
						|
saferegex='\{\{.+\}\}|secrets\['
 | 
						|
# Ignore comments
 | 
						|
saferegex="$saferegex"'|^[a-z,A-Z,0-9,_,-,/,.]+:\s*;|^[a-z,A-Z,0-9,_,-,/,.]+:\s*#|^[a-z,A-Z,0-9,_,-,/,.]+:\s*//|\s+[/]?[*][/]?\s+'
 | 
						|
# AniNIX Constructs
 | 
						|
saferegex="$saferegex"'|password.aninix.net|aur.list'
 | 
						|
# Web constructs
 | 
						|
saferegex="$saferegex"'|.css:|.html:|.md:|htdocs|htpasswd'
 | 
						|
# Ignore template text to set policy
 | 
						|
saferegex="$saferegex"'|_LENGTH|Set new|attempt|pwdchange'
 | 
						|
# haveibeenpwned is referenced in comments
 | 
						|
saferegex="$saferegex"'|haveibeenpwned'
 | 
						|
# Unset variables.
 | 
						|
saferegex="$saferegex"'|\s+=\s*$|\s+yes$|\s+no$'
 | 
						|
# Ignore LDAP attributes
 | 
						|
saferegex="$saferegex"'|pwpolicies|pwdLastSuccess|pwdAttribute|pwdMaxAge|pwdExpireWarning|pwdInHistory|pwdCheckQuality|pwdMaxFailure|pwdLockout|pwdLockoutDuration|pwdGraceAuthNLimit|pwdFailureCountInterval|pwdMustChange|pwdMinLength|pwdAllowUserChange|pwdSafeModify|pwdChangedTime|pwdPolicy|last changed their password on|/root/.ldappass'
 | 
						|
# Ignore IRC Modules
 | 
						|
saferegex="$saferegex"'|m_password_hash.so|/quote ns identify|SELECT|password_attribute|SET PASS|SASET PASS'
 | 
						|
# Ignore SSH known hosts
 | 
						|
saferegex="$saferegex""|ssh_known_hosts:|"
 | 
						|
 | 
						|
git ls-files roles/*/{files,templates} | xargs grep -irE 'secret|password|pw|passphrase|pass=' | grep -vE "$saferegex"
 | 
						|
if [ $? -ne 1 ]; then
 | 
						|
    echo
 | 
						|
    echo If these are false positives, you need to add the signature to the whitelist in $0.
 | 
						|
    echo Otherwise, convert any files above to templates and encode the passphrase into your vault.
 | 
						|
    exit 1;
 | 
						|
fi
 |