■Translation options
-disable-language <languages>
변환(translation) 단계에서 제외할 언어들을 콜론(:)으로 구분하여 지정합니다.
지원하는 언어 값은 다음과 같습니다:
abap, actionscript, apex, cfml, cobol, configuration, cpp, dart, dotnet, golang, objc, php, python, ruby, swift, vb.
property name: com.fortify.sca.DISabledLanguages
-enable-language <languages>
변환할 언어들을 콜론(:)으로 구분하여 지정합니다.
지원하는 언어는 위의 -disable-language와 동일합니다.
property name: com.fortify.sca.EnabledLanguages
-exclude <file_specifiers>
변환 단계에서 제외할 파일들을 지정합니다. 제외된 파일은 스캔에서도 제외됩니다.
여러 파일 경로는 세미콜론(;-Windows) 또는 콜론(:-Windows 외)으로 구분합니다.
예시: 모든 Test 하위 디렉토리 내의 .java 파일 제외
sourceanalyzer -b MyProject -cp "**/*.jar" "**/*" -exclude "**/Test/*.java"
sourceanalyzer -b my_build_id -exclude "**/*.js" .
property name: com.fortify.sca.exclude
-encoding <encoding_name>
소스 파일의 인코딩 유형을 지정합니다.
서로 다른 인코딩이 혼합된 프로젝트를 스캔할 때 사용하며, 변환 단계에서 지정해야 합니다. 지정된 인코딩은 FVDL 파일로 전파됩니다.
유효한 인코딩 이름은 java.nio.charset.Charset의 이름입니다.
지정하지 않으면 기본적으로 Java의 InputStreamReader의 기본 인코딩을 사용합니다.
예: ActionScript 파서에서는 기본적으로 UTF-8 사용.
인코딩 명: ISO-8859-1, UTF-8, UTF-16BE, UTF-16LE, UTF-16
property name: com.fortify.sca.InputFileEncoding
-nc
컴파일러 명령어 앞에 지정하면, OpenText SAST는 소스 파일을 변환만 하고 실제 컴파일은 수행하지 않습니다.
-noextension-type <file_type>
확장자가 없는 소스 파일의 파일 타입을 지정합니다.
지원되는 파일 타입 예시:
ABAP, ACTIONSCRIPT, APEX, ARCHIVE, ASPNET, BYTECODE, CFML, COBOL, DART, DOCKERFILE, GENERIC, GO, HTML, INI, JAVA, JAVASCRIPT, JSON, JSP, JUPYTER, KOTLIN, MSIL, PHP, PYTHON, RUBY, SCALA, SWIFT, VB, XML, YAML 등.
-disable-compiler-resolution
gradlew 등의 빌드 도구와 동일한 이름을 가진 빌드 스크립트 파일도 소스 파일로 간주하여 변환 단계에 포함합니다.
property name: com.fortify.sca.DisableCompilerName
-project-root
변환 및 분석 단계에서 생성되는 중간 파일들을 저장할 디렉토리를 지정합니다.
OpenText SAST는 이 디렉토리에 중간 데이터를 광범위하게 사용하므로, 가능한 경우 네트워크 드라이브보다 로컬 저장소에 위치하도록 하면 성능이 향상될 수 있습니다.
property name: com.fortify.sca.ProjectRoot
■Analysis options
-b <build_id>
이전 변환(translation) 명령에서 사용한 빌드 ID를 지정합니다.
property name: com.fortify.sca.BuildID
-scan
지정된 빌드 ID에 대해 보안 분석(Security Analysis) 을 수행합니다.
-scan-policy <policy_name> 또는 -sc <policy_name>
분석에 사용할 스캔 정책(scan policy) 을 지정합니다.
사용 가능한 정책 이름은 다음과 같습니다: classic, security, devops
property name: com.fortify.sca.ScanPolicy
-analyzers <analyzer_list>
활성화할 분석기(analyzer)를 콜론(:) 또는 쉼표(,)로 구분하여 지정합니다.
사용 가능한 분석기는 다음과 같습니다:
buffer, content, configuration, controlflow, dataflow, nullptr, semantic, structural
보안 요구사항에 불필요한 분석기를 비활성화할 때 유용합니다.
property name: com.fortify.sca.DefaultAnalyzers
-p <level> 또는 -scan-precision <level>
스캔 정밀도(precision level) 를 설정하여 성능을 조절합니다.
정밀도가 낮을수록 분석 속도는 빨라지며, 설정 가능한 값은 1, 2, 3, 4입니다.
property name: com.fortify.sca.PrecisionLevel
-project-root
변환 및 분석 단계에서 생성된 중간 파일을 저장할 디렉토리를 지정합니다.
이 디렉토리는 성능에 중요한 영향을 줄 수 있으며, 네트워크 드라이브보다 로컬 저장소를 사용하는 것이 권장됩니다.
property name: com.fortify.sca.ProjectRoot
-project-template <file>
스캔 시 사용할 이슈 템플릿 파일을 지정합니다. 이 옵션은 로컬에서 수행되는 스캔에만 영향을 미치며, Fortify Software Security Center로 업로드할 경우 해당 애플리케이션 버전에 설정된 템플릿이 사용됩니다.
property name: com.fortify.sca.ProjectTemplate
-quick
fortify-sca-quickscan.properties 파일을 사용하여 중요하거나 심각한 이슈에 대해 빠르게 분석합니다.
이 방식은 보다 간단한 분석을 수행하며, 기본적으로 Buffer Analyzer 및 Control Flow Analyzer를 비활성화하고 Quick View 필터 세트를 적용합니다.
property name: com.fortify.sca.QuickScanMode
-filter <file>
분석 결과 필터링에 사용할 필터 파일을 지정합니다.
property name: com.fortify.sca.FilterFile
-bin <binary> 또는 -binary-name <binary>
스캔할 소스 파일의 서브셋(일부) 을 지정합니다.
지정한 바이너리 파일에 링크된 소스 파일만 스캔 대상에 포함됩니다.
여러 바이너리를 포함하려면 이 옵션을 여러 번 사용할 수 있습니다.
property name: com.fortify.sca.BinaryName
-disable-default-rule-type <type>
사용자 정의 룰(custom rules) 을 테스트할 때 사용합니다.
기본 Rulepack에서 특정 타입의 룰을 모두 비활성화합니다. 이 옵션은 여러 번 사용할 수 있습니다.
<type> 파라미터는 XML 태그 이름에서 Rule 접미사를 제외한 값입니다.
예: DataflowSourceRule → DataflowSource
특정 캐릭터라이제이션(분류) 룰 섹션도 지정할 수 있습니다:
Characterization:Control flow
Characterization:Issue
Characterization:Generic
※ <type> 파라미터는 대소문자를 구분하지 않습니다.
-no-default-issue-rules
사용자 정의 룰 테스트를 위해 기본 Rulepack 중 이슈를 직접 생성하는 룰을 비활성화합니다.
단, 함수 동작을 분류하는 룰은 여전히 로드됩니다.
해당 옵션은 다음 룰 타입을 비활성화하는 것과 같습니다:
DataflowSink, Semantic, Controlflow, Structural, Configuration, Content, Statistical, Internal, Characterization:Issue
property name: com.fortify.sca.NoDefaultIssueRules
-no-default-rules
기본 Rulepack에서 룰 자체의 로딩을 비활성화합니다.
단, 설명 요소 및 언어 라이브러리는 여전히 처리됩니다.
property name: com.fortify.sca.NoDefaultRules
-no-default-source-rules
기본 Rulepack의 소스(Source) 룰을 비활성화합니다.
※ 단, 캐릭터라이제이션 소스 룰은 비활성화되지 않습니다.
property name: com.fortify.sca.NoDefaultSourceRules
-no-default-sink-rules
기본 Rulepack의 Sink 룰을 비활성화합니다.
※ 캐릭터라이제이션 Sink 룰은 여전히 활성화됩니다.
property name: com.fortify.sca.NoDefaultSinkRules
-rules <file> 또는 <dir>
사용자 정의 Rulepack 파일 또는 디렉토리를 지정합니다.
이 옵션은 여러 번 사용할 수 있으며, 디렉토리를 지정하면 .bin 또는 .xml 확장자를 가진 모든 파일이 포함됩니다.
property name: com.fortify.sca.RulesFile
■Output options
-f <file> | -output-file
분석 결과를 저장할 파일을 지정합니다. 출력 파일을 지정하지 않으면 OpenText SAST는 결과를 터미널에 출력합니다.
<file>
property name: com.fortify.sca.ResultsFile
-format <format>
출력 형식을 제어합니다. 사용 가능한 형식은 fpr, fvdl, fvdl.zip, text, auto입니다. 기본값은 auto이며, 이는 -f 옵션으로 지정된 파일의 확장자에 따라 자동으로 형식을 결정합니다.
FVDL은 XML 파일로, 상세한 OpenText SAST 분석 결과를 포함합니다. 여기에는 취약점 세부 정보, 규칙 설명, 코드 스니펫, 스캔 시 사용된 명령줄 옵션, 스캔 오류 및 경고 등이 포함됩니다.
FPR은 FVDL 파일 외에도 스캔에 사용된 소스 코드, 외부 메타데이터, 사용자 정의 규칙(있는 경우) 등의 추가 정보를 포함한 분석 결과 패키지입니다. .fpr 확장자는 Fortify Audit Workbench와 자동으로 연결됩니다.
참고: 결과 인증을 사용하는 경우 fpr 형식을 반드시 지정해야 합니다. 자세한 내용은 OpenText™ Fortify Audit Workbench 사용자 가이드를 참조하세요.
출력 파일의 크기나 스캔 시간을 줄이기 위해 FPR 또는 FVDL 파일에 포함되는 정보를 일부 제외할 수 있습니다. 자세한 내용은 이 표의 다른 옵션들과 *177쪽 "Optimizing FPR files"*를 참조하세요.
property name: com.fortify.sca.Renderer
-append
-f 옵션으로 지정한 파일에 결과를 덧붙입니다. 결과 FPR 파일에는 이전 스캔과 현재 스캔의 이슈가 모두 포함되며, 빌드 정보 및 프로그램 데이터(소스/싱크 목록 등)도 병합됩니다. 이 옵션을 사용하려면 출력 파일 형식이 fpr 또는 fvdl이어야 합니다.
☑주의: 엔진 데이터(보안 콘텐츠 정보, 명령줄 옵션, 시스템 속성, 경고, 오류 등)는 병합되지 않습니다. 따라서 -append 옵션으로 생성된 결과는 OpenText의 인증 대상이 아닙니다.
이 옵션을 지정하지 않으면 OpenText SAST는 새로 발견된 항목만 추가하고, 이전 결과는 "이전 결과"로 표시합니다. 일반적으로 전체 애플리케이션을 한 번에 분석할 수 없는 경우에만 이 옵션을 사용하세요.
property name: com.fortify.sca.OutputAppend
-build-label <label>
분석 결과에 포함할 프로젝트 라벨을 지정합니다. 이 옵션은 변환(translation) 또는 분석(analysis) 단계에서 사용할 수 있습니다. 이 라벨은 코드 분석에는 사용되지 않습니다.
property name: com.fortify.sca.BuildLabel
-build-project <project_name>
분석 결과에 포함할 프로젝트 이름을 지정합니다. 이 옵션은 변환 또는 분석 단계에서 사용할 수 있습니다. 이 이름은 코드 분석에는 사용되지 않습니다.
property name: com.fortify.sca.BuildProject
-build-version <version>
분석 결과에 포함할 프로젝트 버전을 지정합니다. 이 옵션은 변환 또는 분석 단계에서 사용할 수 있습니다. 이 버전은 코드 분석에는 사용되지 않습니다.
property name: com.fortify.sca.BuildVersion
-disable-source-bundling
소스 파일을 분석 결과 파일에서 제외합니다. 단, 코드 스니펫은 여전히 포함됩니다.
property name: com.fortify.sca.FPRDisableSourceBundling
-fvdl-no-descriptions
분석 결과 파일에서 Fortify 보안 콘텐츠 설명을 제외합니다.
property name: com.fortify.sca.FVDLDisableDescriptions
-fvdl-no-enginedata
엔진 데이터를 분석 결과 파일에서 제외합니다. 엔진 데이터는 보안 콘텐츠 정보, 명령줄 옵션, 시스템 속성, 경고, 오류, OpenText SAST 실행 관련 기타 정보를 포함합니다.
property name: com.fortify.sca.FVDLDisableEngineData
-fvdl-no-progdata
분석 결과 파일에서 프로그램 데이터를 제외합니다. 이 옵션은 Fortify Audit Workbench의 함수 보기에서 태인트 소스 정보를 제거합니다.
property name: com.fortify.sca.FVDLDisableProgramData
-fvdl-no-snippets
분석 결과 파일에서 코드 스니펫을 제외합니다.
property name: com.fortify.sca.FVDLDisableSnippets
■Other options
@<file>
지정된 파일에서 명령줄 옵션을 읽어옵니다. 일반 텍스트 형식의 <file>에는 옵션과 파라미터가 한 줄에 하나씩 포함되어 있어야 합니다.
예를 들어, 아래 명령어를 직접 실행하는 대신:
sourceanalyzer -b my_build_id -source 17 -cp lib.jar Test.java
다음과 같이 실행할 수 있습니다:
sourceanalyzer @optfile.txt
optfile.txt 파일의 내용은 다음과 같이 구성됩니다:
"-b"
"my_build_id"
"-source"
"17"
"-cp"
"lib.jar"
"Test.java"
-h | -? | -help
명령줄 옵션 요약 정보를 출력합니다.
-debug
OpenText SAST 지원 로그 파일에 디버그 정보를 포함합니다. 이 옵션은 고객 지원에서 문제를 해결할 때 유용합니다.
property name: com.fortify.sca.Debug
-debug-verbose
-debug 옵션과 동일하지만, 특히 파싱 오류와 관련된 더 많은 정보를 포함합니다.
property name: com.fortify.sca.DebugVerbose
-debug-mem
OpenText SAST 지원 로그에 성능 관련 정보를 포함합니다.
property name: com.fortify.sca.DebugTrackMem
-verbose
상세 상태 메시지를 콘솔과 OpenText SAST 지원 로그 파일에 출력합니다.
property name: com.fortify.sca.Verbose
-logfile <file>
OpenText SAST가 생성할 로그 파일을 지정합니다. 기본 로그 파일 경로에 대한 내용은 *189쪽 "로그 파일 찾기"*를 참조하세요.
property name: com.fortify.sca.LogFile
-clobber-log
매번 sourceanalyzer 실행 시 로그 파일을 덮어쓰도록 지정합니다. 이 옵션이 없으면, OpenText SAST는 로그 파일에 내용을 덧붙입니다.
property name: com.fortify.sca.ClobberLogFile
-quiet
명령줄에 진행 상태 정보를 출력하지 않도록 설정합니다.
property name: com.fortify.sca.Quiet
-version | -v
OpenText SAST 버전과 함께 포함된 독립 모듈들의 버전을 출력합니다. (기타 모든 기능은 OpenText SAST에 포함되어 있음)
-autoheap
시스템의 물리적 메모리를 기준으로 자동으로 메모리를 할당합니다. 이 설정이 기본값입니다.
-Xmx<size>M | G
OpenText SAST가 사용할 최대 메모리 용량을 수동으로 지정합니다.
참고: OpenText는 이 옵션을 사용하는 대신, 기본값인 -autoheap 설정을 사용하는 것을 권장합니다.
32GB ~ 48GB 사이의 힙 크기는 JVM의 내부 구현 특성상 성능이 저하되므로 권장되지 않습니다.
32GB 이하의 힙은 JVM이 성능을 최적화합니다.
32GB 이상이 필요할 경우, 64GB 이상을 할당해야 효과가 있습니다.
가이드라인: 다른 메모리 집약적 프로세스가 실행되지 않는다는 가정하에, 시스템의 사용 가능한 메모리의 2/3 이상을 초과하지 마세요.
메모리를 실제로 사용 가능한 양보다 많이 할당하면 성능이 저하될 수 있습니다.
■Directives
-clean
모든 OpenText SAST 중간 파일과 빌드 기록을 삭제합니다. 빌드 ID를 지정하면 해당 ID와 관련된 파일과 기록만 삭제됩니다.
-show-binaries
생성되었지만 다른 바이너리의 생성에는 사용되지 않은 모든 객체를 표시합니다. 빌드에 완전히 통합된 경우, 생성된 모든 바이너리를 나열합니다.
-show-build-ids
모든 인식된 빌드 ID 목록을 표시합니다.
-show-build-tree
-bin 옵션과 함께 사용하면 해당 바이너리를 생성하는 데 사용된 모든 파일과, 그 파일들을 생성하는 데 사용된 모든 파일들을 트리 형식으로 표시합니다. -bin 옵션이 없으면 각각의 바이너리에 대해 트리를 표시합니다.
참고: 이 옵션은 매우 많은 정보를 생성할 수 있습니다.
-show-build-warnings
-b 옵션과 함께 사용하여 변환(translation) 단계에서 발생한 오류와 경고를 콘솔에 표시합니다.
참고: Fortify Audit Workbench의 결과 인증(Certification) 탭에서도 이러한 오류와 경고를 확인할 수 있습니다.
-show-files
지정한 빌드 ID에 포함된 파일들을 표시합니다. -bin 옵션을 함께 사용할 경우, 해당 바이너리를 생성하는 데 사용된 소스 파일만 표시됩니다.
-show-loc
-b 옵션과 함께 사용하여 변환된 코드의 총 줄 수(LOC, Lines of Code)를 표시합니다.