대용량 코드베이스를 감사 할 때 grep kung-fu를 사용하여 보안 문제를 체크 아웃 할 수있는 라인 목록을 만드는 것이 특히 도움이된다는 것을 알았습니다. 파일명과 라인 수만큼의 malloc에
egrep "malloc\(.*\)" ~/some/source/dir/ -r
상기리스트 모든 통화 : 감싸는 allovation의 크기에 대해 사용 된 값을 허락 사용자 제어 할당에 대한 C의 소스 코드를 감사 예를 들어, 다음을 고려 지정된 디렉토리에서 재귀 적으로. 여기에는 엄청난 양의 오 탐지 (false positive)가 포함되므로 코드 오용에 대한 지식을 사용하여 호출을 제어 할 수없는 경우를 나열하는 사례 목록을 제거하는 다른 grep 문을 작성할 수 있습니다. 내 뜻을 설명하기 위해 하나 만들어 보자.
char *buffer2 = (char *) malloc(DEVMAPPER_BUFFER_SIZE);
위의 라인은 분명히 감쌀 수 없으므로 위양성입니다. 정규식에 다음과 같은 모든 사례를 제거하도록 추가 할 수 있습니다.
이제 목록이 작아 지지만 여전히 가비지 결과가 있습니다.
egrep "malloc\(.*\)" ~/some/source/dir/ -r | egrep "malloc\([ ]*[A-Z_]+\)" -v | egrep "malloc\([ ]*[0-9]+\)" -v | egrep "malloc\(sizeof\(.*\)\)" -v
일반적으로 사용되는 알려진 일반적인 기능의 각각에 대해이 작업을 수행 : 결국, 당신은 정규식 문로 변환하여, 잘못된 것으로 알고 각각의 경우를 가지 치기, 당신은 같은 것을 얻을 수 있습니다 귀하의 언어에 대한 소프트웨어 취약점을 일으키고, 빠른 파이썬/bash 스크립트에 넣고, 수동으로 발생하는 각 호출을 감사하십시오.
다음 링크는 PHP를 감사하는 데 도움이됩니다.
http://pentestlab.org/simple-kung-fu-grep-for-finding-common-web-vulnerabilities-backdoor-shells/