SARIF ์ถ๋ ฅ ์์๋ณด๊ธฐ
SARIF๋ ๊ด๋ฒ์ํ ์ ์ ๋ถ์ ๋๊ตฌ์ ์ถ๋ ฅ์ ๋ํ๋ด๋๋ก ์ค๊ณ๋์์ผ๋ฉฐ SARIF ์ฌ์์๋ "์ ํ ์ฌํญ"์ผ๋ก ๊ฐ์ฃผ๋๋ ๋ง์ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์ด ๋ฌธ์์์๋ SARIF v2.1.0.csd1 ์ฌ์์ ํด๋นํ๋ ํ์ ์ ํ sarifv2.1.0
์ ์ฌ์ฉํ ๋ ์์ฑ๋๋ ์ถ๋ ฅ์ ๋ํด ์์ธํ ์ค๋ช
ํฉ๋๋ค. ๋ถ์ ๊ฒฐ๊ณผ์ ๋ํ ํ์ผ ํ์์ ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ถ์์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
SARIF ์ฌ์ ๋ฐ ์คํค๋ง
์ด ๋ฌธ์๋ ์์ธํ SARIF ์ฌ์๊ณผ ํจ๊ป ์ฝ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ์ฌ์ ๋ฐ SARIF ์คํค๋ง์ ๋ํ ์์ธํ ๋ด์ฉ์ SARIF ์ฌ์ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ณ๊ฒฝ ๋ด์ฉ ์ฐธ๊ณ
๋ฒ์ ๊ฐ ๋ณ๊ฒฝ ๋ด์ฉ
CodeQL ๋ฒ์ | ํ์ ์ ํ | ๋ณ๊ฒฝ |
---|---|---|
2.0.0 | sarifv2.1.0 | ์ด ํ์์ ์ฒซ ๋ฒ์งธ ๋ฒ์ ์ ๋๋ค. |
์ถ๋ ฅ์ ํฅํ ๋ณ๊ฒฝ ๋ด์ฉ
์ง์ ๋ ํน์ ํ์ ์ ํ(์: sarifv2.1.0
)์ ๋ํด ์์ฑ๋ ์ถ๋ ฅ์ ํฅํ CodeQL ๋ฆด๋ฆฌ์ค์์ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ์์ฑ๋ SARIF์ ์๋น์์ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ์งํ๊ธฐ ์ํด ๋
ธ๋ ฅํ ๊ฒ์
๋๋ค.
-
ํญ์ ์์ฑ๋๋ ๊ฒ์ผ๋ก ํ์๋ ํ๋๋ ์ ๊ฑฐ๋์ง ์์ต๋๋ค.
-
ํญ์ ์์ฑ๋์ง ์๋ ๊ฒ์ผ๋ก ํ์๋ ํ๋์ ๊ฒฝ์ฐ ํ๋๊ฐ ์์ฑ๋๋ ์ํฉ์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. CodeQL SARIF ์ถ๋ ฅ์ ์๋น์๋ ์ด๋ฌํ ํ๋์ ์กด์ฌ ๋๋ ๋ถ์ฌ์ ๋ํด ๊ฐ๋ ฅํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ํ๋๋ ๋์ผํ ํ์ ์ ํ์ผ๋ก ํฅํ ๋ฆด๋ฆฌ์ค์ ์ถ๊ฐ๋ ์ ์์ต๋๋ค. ์ด๋ฌํ ํ๋๋ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์์ํ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋์ง ์์ผ๋ฉฐ ์๋น์๋ ์๋ก ์ถ๊ฐ๋ ํ๋์ ์กด์ฌ์ ๋ํด ๊ฐ๋ ฅํด์ผ ํฉ๋๋ค.
์ ํ์ ์ธ์ ํ์์ ์ ๋ฒ์ ์ SARIF๋ฅผ ์ง์ํ๊ธฐ ์ํด CodeQL์ ํฅํ ๋ฒ์ ์ ์ถ๊ฐ๋ ์ ์์ต๋๋ค. ๋ช ์์ ์ผ๋ก ๋ฌธ์ํ๋์ง ์๋ ํ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ๋ณด์ฅํ์ง ์์ต๋๋ค.
์์ฑ๋ SARIF ๊ฐ์ฒด
ํน์ ์ํฉ๊ณผ ํจ๊ป ์์ฑ๋ ์ ์๋ ๊ฐ SARIF ๊ตฌ์ฑ ์์์ ๋ํด ์์ธํ ์ค๋ช ํฉ๋๋ค. ์์ฑ๋์ง ์๋ ์์ฑ์ ์๋ตํฉ๋๋ค.
sarifLog
๊ฐ์ฒด
JSON ์์ฑ ์ด๋ฆ | ํญ์ ์์ฑํ์๊ฒ ์ต๋๊น? | ์ฃผ์ |
---|---|---|
$schema | SARIF ์คํค๋ง์ ๋ํ ๋งํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. | |
version | ์ถ๋ ฅ์ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ SARIF์ ๋ฒ์ ์ ๋๋ค. | |
runs | ํ ์ธ์ด์ ๋ํ ๋จ์ผ ์คํ ๊ฐ์ฒด๋ฅผ ํฌํจํ๋ ๋ฐฐ์ด์ ๋๋ค. |
run
๊ฐ์ฒด
JSON ์์ฑ ์ด๋ฆ | ํญ์ ์์ฑํ์๊ฒ ์ต๋๊น? | ์ฃผ์ |
---|---|---|
tool | None | |
artifacts | ๊ฒฐ๊ณผ์์ ์ฐธ์กฐ๋๋ ๋ชจ๋ ํ์ผ์ ๋ํด ํ๋ ์ด์์ ์ํฐํฉํธ ๊ฐ์ฒด๋ฅผ ํฌํจํ๋ ๋ฐฐ์ด์ ๋๋ค. | |
results | None | |
newLineSequences | None | |
columnKind | None | |
properties | ์์ฑ ์ฌ์ ์๋ CodeQL CLI์ ์ ๋ฌ๋ ํ์ ์ง์ ์๋ฅผ ์๋ณํ๋ semmle.formatSpecifier ๊ฐ ํฌํจ๋ฉ๋๋ค. |
tool
๊ฐ์ฒด
JSON ์์ฑ ์ด๋ฆ | ํญ์ ์์ฑํ์๊ฒ ์ต๋๊น? | ์ฃผ์ |
---|---|---|
driver | None |
toolComponent
๊ฐ์ฒด
JSON ์์ฑ ์ด๋ฆ | ํญ์ ์์ฑํ์๊ฒ ์ต๋๊น? | ์ฃผ์ |
---|---|---|
name | CodeQL CLI ๋๊ตฌ์ ์ถ๋ ฅ์ ๋ํด "CodeQL ๋ช
๋ น์ค ๋๊ตฌ ์ฒด์ธ"์ผ๋ก ์ค์ ํฉ๋๋ค. ๋ค๋ฅธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๋ ฅ์ด ์์ฑ๋ ๊ฒฝ์ฐ ๋ค๋ฅธ name ์ด ๋ณด๊ณ ๋๋ฉฐ ํ์์ ์ฌ๊ธฐ์ ์ค๋ช
๋ ๊ฒ๊ณผ ๋ค๋ฅผ ์ ์์ต๋๋ค. | |
organization | "GitHub"๋ก ์ค์ . | |
version | CodeQL ๋ฆด๋ฆฌ์ค ๋ฒ์ (์: "2.0.0")์ผ๋ก ์ค์ ํฉ๋๋ค. | |
rules | ๊ท์น์ ๋ํ๋ด๋ reportingDescriptor ๊ฐ์ฒด์ ๋ฐฐ์ด์
๋๋ค. ์ด ๋ฐฐ์ด์ ์ต์ํ ์ด ๋ถ์ ์ค์ ์คํ๋ ๋ชจ๋ ๊ท์น์ ํฌํจํ์ง๋ง, ์ฌ์ฉํ ์ ์์ง๋ง ์คํ๋์ง ์์ ๊ท์น์ ํฌํจํ ์ ์์ต๋๋ค. ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๋ก ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ defaultConfiguration ์ ์ฐธ์กฐํ์ธ์. |
reportingDescriptor
๊ฐ์ฒด(๊ท์น์ฉ)
reportingDescriptor
๊ฐ์ฒด๋ SARIF ์ฌ์์ ์ฌ๋ฌ ์์น์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. reportingDescriptor
๊ฐ toolComponent
๊ฐ์ฒด์ ๊ท์น ๋ฐฐ์ด์ ํฌํจ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ ์์ฑ์ ๊ฐ์ต๋๋ค.
JSON ์์ฑ ์ด๋ฆ | ํญ์ ์์ฑํ์๊ฒ ์ต๋๊น? | ์ฃผ์ |
---|---|---|
id | ์ผ๋ฐ์ ์ผ๋ก language/rule-name ํ์(์: cpp/unsafe-format-string )์ธ ๊ท์น์ ์ ์ํ๋ ์ฟผ๋ฆฌ์ ์ง์ ๋ @id ์์ฑ์ ํฌํจํฉ๋๋ค. ์กฐ์ง์์ ์ฟผ๋ฆฌ์ @opaqueid ์์ฑ์ ์ ์ํ๋ ๊ฒฝ์ฐ ๋์ ์ฌ์ฉ๋ฉ๋๋ค. | |
name | ์ฟผ๋ฆฌ์ ์ง์ ๋ @id ์์ฑ์ ํฌํจํฉ๋๋ค. ์๋ id ์์ฑ์ ์ฐธ์กฐํ์ธ์. | |
shortDescription | ๊ท์น์ ์ ์ํ๋ ์ฟผ๋ฆฌ์ ์ง์ ๋ @name ์์ฑ์ ํฌํจํฉ๋๋ค. | |
fullDescription | ๊ท์น์ ์ ์ํ๋ ์ฟผ๋ฆฌ์ ์ง์ ๋ @description ์์ฑ์ ํฌํจํฉ๋๋ค. | |
defaultConfiguration | ์ฌ์ฉ๋๋ ์์ฑ ์งํฉ์ด true ๋๋ false๋ก ์ค์ ๋๊ณ ์์ค ์์ฑ ์งํฉ์ด ๊ท์น์ ์ ์ํ๋ ์ฟผ๋ฆฌ์ ์ง์ ๋ @severity ์์ฑ์ ๋ฐ๋ผ ์ค์ ๋ reportingConfiguration ๊ฐ์ฒด์
๋๋ค. @severity ์์ฑ์ด ์ง์ ๋์ง ์์ ๊ฒฝ์ฐ ์๋ต๋ฉ๋๋ค. |
artifact
๊ฐ์ฒด
JSON ์์ฑ ์ด๋ฆ | ํญ์ ์์ฑํ์๊ฒ ์ต๋๊น? | ์ฃผ์ |
---|---|---|
location | artifactLocation ๊ฐ์ฒด์
๋๋ค. | |
index | artifact ๊ฐ์ฒด์ ์ธ๋ฑ์ค์
๋๋ค. | |
contents | --sarif-add-file-contents ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฐ๊ณผ๊ฐ ์์ฑ๋๊ณ SARIF ํ์ผ์ด ์์ฑ๋ ๋ ์์ค ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ contents ์์ฑ์ text ์์ฑ์ด ์ค์ ๋ artifactContent ๊ฐ์ฒด๋ก ์ฑ์์ง๋๋ค. |
artifactLocation
๊ฐ์ฒด
JSON ์์ฑ ์ด๋ฆ | ํญ์ ์์ฑํ์๊ฒ ์ต๋๊น? | ์ฃผ์ |
---|---|---|
uri | None | |
index | None | |
uriBaseId | ํ์ผ์ด ๋ถ์ ์ปดํจํฐ์ ๋ฃจํธ ์๋ณธ ์์น์ ๊ฐ์ ์๋ ค์ง ์ถ์ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ ๊ฒฝ์ฐ ์ด ์์ฑ์ด ์ค์ ๋ฉ๋๋ค. |
result
๊ฐ์ฒด
๊ฒฐ๊ณผ์ ์ปดํผ์ง์
์ CodeQL์ ์ ๊ณต๋ ์ต์
์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฒฐ๊ณผ๋ ๊ณ ์ ํ ๋ฉ์์ง ํ์ ๋ฌธ์์ด ๋ฐ ๊ธฐ๋ณธ ์์น๋ณ๋ก ๊ทธ๋ฃนํ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋์ผํ ๊ธฐ๋ณธ ๋ฉ์์ง๋ฅผ ์ฌ์ฉํ์ฌ ๋์ผํ ์์น์์ ๋ฐ์ํ๋ ๋ ๊ฐ์ ๊ฒฐ๊ณผ๋ ์ถ๋ ฅ์ ํ๋์ ๊ฒฐ๊ณผ๋ก ํ์๋ฉ๋๋ค. ์ด ๋์์ --ungroup-results
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉํ์ง ์์ ์ ์์ผ๋ฉฐ, ์ด ๊ฒฝ์ฐ ๊ฒฐ๊ณผ๊ฐ ๊ทธ๋ฃนํ๋์ง ์์ต๋๋ค.
JSON ์์ฑ ์ด๋ฆ | ํญ์ ์์ฑํ์๊ฒ ์ต๋๊น? | ์ฃผ์ |
---|---|---|
ruleId | reportingDescriptor ๊ฐ์ฒด(๊ท์น์ฉ)์ id ์์ฑ์ ๋ํ ์ค๋ช
์ ์ฐธ์กฐํ์ธ์. | |
ruleIndex | None | |
message | ์ด ์์น์์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ์ค๋ช
ํ๋ ๋ฉ์์ง์
๋๋ค. ์ด ๋ฉ์์ง๋ relatedLocations ์์ฑ์ ์์น๋ฅผ ์ฐธ์กฐํ๋ ๋งํฌ๋ฅผ ํฌํจํ๋ SARIF "์๋ฆฌ ํ์์๊ฐ ์๋ ๋ฉ์์ง"์ผ ์ ์์ต๋๋ค. | |
locations | ํ๋์ location ๊ฐ์ฒด๋ฅผ ํฌํจํ๋ ๋ฐฐ์ด์
๋๋ค. | |
partialFingerprints | ์ด๋ฆ์ด ์ง์ ๋ ์ง๋ฌธ ์ ํ์์ ์ง๋ฌธ๊น์ง ์ฌ์ ์
๋๋ค. ์ฌ๊ธฐ์๋ ์ต์ํ ๊ธฐ๋ณธ ์์น์ ์ปจํ
์คํธ์ ๋ฐ๋ผ ์ง๋ฌธ์ ์ ๊ณตํ๋ primaryLocationLineHash ๊ฐ์ด ํฌํจ๋ฉ๋๋ค. | |
codeFlows | ์ด ๊ฒฐ๊ณผ์ ๋ํ ๊ท์น์ ์ ์ํ๋ ์ฟผ๋ฆฌ๊ฐ @kind path-problem ์ธ ๊ฒฝ์ฐ ์ด ๋ฐฐ์ด์ ํ๋ ์ด์์ codeFlow ๊ฐ์ฒด๋ก ์ฑ์์ง ์ ์์ต๋๋ค. | |
relatedLocations | ์ด ๊ฒฐ๊ณผ์ ๋ํ ๊ท์น์ ์ ์ํ๋ ์ฟผ๋ฆฌ์ ์๋ฆฌ ํ์์ ์ต์ ์ด ์๋ ๋ฉ์์ง๊ฐ ์๋ ๊ฒฝ์ฐ ์ด ๋ฐฐ์ด์ด ์ฑ์์ง๋๋ค. ๊ฐ ๊ณ ์ ํ ์์น๋ ํ ๋ฒ ํฌํจ๋ฉ๋๋ค. | |
suppressions | ๊ฒฐ๊ณผ๊ฐ ํ์๋์ง ์์ผ๋ฉด @kind ์์ฑ์ด IN_SOURCE ๋ก ์ค์ ๋ ํ๋์ suppression ๊ฐ์ฒด๋ฅผ ํฌํจํฉ๋๋ค. ์ด ๊ฒฐ๊ณผ๊ฐ ํ์๋์ง๋ง ํ์๋์ง ์๋ ๊ฒฐ๊ณผ๊ฐ ํ๋ ์ด์ ์๋ ๊ฒฝ์ฐ์๋ ๋น ๋ฐฐ์ด๋ก ์ค์ ๋๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ์ค์ ๋์ง ์์ต๋๋ค. |
location
๊ฐ์ฒด
JSON ์์ฑ ์ด๋ฆ | ํญ์ ์์ฑํ์๊ฒ ์ต๋๊น? | ์ฃผ์ |
---|---|---|
physicalLocation | None | |
id | result ๊ฐ์ฒด์ relatedLocations ๋ฐฐ์ด์ ๋ํ๋๋ location ๊ฐ์ฒด๋ id ์์ฑ์ ํฌํจ๋ ์ ์์ต๋๋ค. | |
message | location ๊ฐ์ฒด๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ message ์์ฑ์ ํฌํจํ ์ ์์ต๋๋ค.- message ์์ฑ์ ํฌํจํ ์ ์๋ result ๊ฐ์ฒด์ relatedLocations ๋ฐฐ์ด์ ๋ํ๋๋ ๊ฒฝ์ฐ- threadFlowLocation.location ์์ฑ์ ๋ํ๋๋ ๊ฒฝ์ฐ |
physicalLocation
๊ฐ์ฒด
JSON ์์ฑ ์ด๋ฆ | ํญ์ ์์ฑํ์๊ฒ ์ต๋๊น? | ์ฃผ์ |
---|---|---|
artifactLocation | None | |
region | ์ฃผ์ด์ง physicalLocation ์ด ํ
์คํธ ํ์ผ(์: ์์ค ์ฝ๋ ํ์ผ)์ ์๋ ๊ฒฝ์ฐ region ์์ฑ์ด ์์ ์ ์์ต๋๋ค. | |
contextRegion | ์ด ์์น์ ์ฐ๊ฒฐ๋ snippet ์ด ์๋ ๊ฒฝ์ฐ ์กด์ฌํ ์ ์์ต๋๋ค. |
region
๊ฐ์ฒด
CodeQL์์ ์์ฑ๋ region
๊ฐ์ฒด์๋ ๋ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค.
-
์ค/์ด ์คํ์ ์์ญ
-
๋ฌธ์ ์คํ์ ๋ฐ ๊ธธ์ด ์์ญ
CodeQL์์ ์์ฑ๋ ๋ชจ๋ ์ง์ญ์ ์ด๋ ํ์์ผ๋ก๋ ์ง์ ํ ์ ์์ผ๋ฉฐ ์๋น์๋ ๋ ํ์์ ๊ฐ๋ ฅํ๊ฒ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
์ค/์ด ์คํ์ ์์ญ์ ๊ฒฝ์ฐ ๋ค์ ์์ฑ์ด ์ค์ ๋ฉ๋๋ค.
JSON ์์ฑ ์ด๋ฆ | ํญ์ ์์ฑํ์๊ฒ ์ต๋๊น? | ์ฃผ์ |
---|---|---|
startLine | None | |
startColumn | ๊ธฐ๋ณธ๊ฐ 1๊ณผ ๊ฐ์ผ๋ฉด ํฌํจ๋์ง ์์ต๋๋ค. | |
endLine | startLine ๊ณผ ๋์ผํ๋ฉด ํฌํจ๋์ง ์์ต๋๋ค. | |
endColumn | None | |
snippet | None |
๋ฌธ์ ์คํ์ ๋ฐ ๊ธธ์ด ์์ญ์ ๊ฒฝ์ฐ ๋ค์ ์์ฑ์ด ์ค์ ๋ฉ๋๋ค.
JSON ์์ฑ ์ด๋ฆ | ํญ์ ์์ฑํ์๊ฒ ์ต๋๊น? | ์ฃผ์ |
---|---|---|
charOffset | startLine , startColumn , endLine , ๋ฐ endColumn ์ด ์ฑ์์ง์ง ์์ ๊ฒฝ์ฐ ์ ๊ณต๋ฉ๋๋ค. | |
charLength | startLine , startColumn , endLine , ๋ฐ endColumn ์ด ์ฑ์์ง์ง ์์ ๊ฒฝ์ฐ ์ ๊ณต๋ฉ๋๋ค. | |
snippet | None |
codeFlow
๊ฐ์ฒด
JSON ์์ฑ ์ด๋ฆ | ํญ์ ์์ฑํ์๊ฒ ์ต๋๊น? | ์ฃผ์ |
---|---|---|
threadFlows | None |
threadFlow
๊ฐ์ฒด
JSON ์์ฑ ์ด๋ฆ | ํญ์ ์์ฑํ์๊ฒ ์ต๋๊น? | ์ฃผ์ |
---|---|---|
locations | None |
threadFlowLocation
๊ฐ์ฒด
JSON ์์ฑ ์ด๋ฆ | ํญ์ ์์ฑํ์๊ฒ ์ต๋๊น? | ์ฃผ์ |
---|---|---|
location | ์์ |