보고서 제목 및 소음 데이터만 기반으로 한 보안 버그 보고서 식별

마야나 페레이라

CELA 데이터 과학
Microsoft

Scott Christiansen

고객 보안 및 신뢰
Microsoft

초록 - SBR(보안 버그 보고서) 식별은 소프트웨어 개발 식별은 소프트웨어 개발 수명 주기의 중요한 단계입니다. 감독형 기계 학습 기반 접근 방법에서는 전체 버그 보고서를 학습에 사용할 수 있고 보고서의 레이블에 노이즈가 없는 것으로 가정하는 것이 일반적입니다. 저희가 아는 한 본 연구는 제목만 사용 가능하고 레이블 노이즈가 있는 경우에도 SBR에서 정확한 레이블 예측이 가능하다는 것을 보여주는 첫 번째 연구입니다.

인덱스 용어 - 기계 학습, 잘못된 레이블 지정, 노이즈, 보안 버그 보고서, 버그 리포지토리

9\. 소개

보고된 버그 중에 보안 관련 문제를 파악하는 것은 소프트웨어 개발 팀이 시급하게 해야 할 일입니다. 규정 준수 요구 사항을 충족하고 소프트웨어와 고객 데이터의 무결성을 보장하기 위해서는 이러한 문제를 신속하게 수정해야 하기 때문입니다.

기계 학습 및 AI 도구를 사용하면 소프트웨어 개발을 더 신속하고 민첩하고 정확하게 할 수 있습니다. 여러 연구원들은 보안 버그 [2], [7], [8], [18] 식별 문제에 기계 학습을 적용했습니다. 이전에 발행된 연구에서는 전체 버그 보고서를 기계 학습 모델의 학습 및 채점에 사용할 수 있다고 가정했습니다. 그러나 그렇지 않은 경우도 있습니다. 전체 버그 보고서를 사용하도록 설정할 수 없는 경우가 있습니다. 예를 들어, 버그 보고서에는 암호, PII(개인 식별 정보) 또는 다른 종류의 중요한 데이터가 포함될 수 있습니다. Microsoft도 현재 이러한 상황에 직면하고 있습니다. 따라서 버그 보고서의 제목만 사용할 수 있는 경우와 같이 더 적은 정보를 사용하여 보안 버그 식별을 효과적으로 수행할 수 있는 방법을 확립하는 것이 중요합니다.

또한 버그 리포지토리에는 레이블이 잘못 지정된 항목 [7], 즉 보안과 관련된 것으로 분류된 보안 외 버그 보고서 또는 그 반대의 경우입니다. 개발 팀에 보안 전문 지식이 없는 경우부터 특정 문제의 모호함(예를 들어 보안과 무관한 버그가 간접적으로 악용되어 보안에 영향을 미칠 수 있음)에 이르기까지 잘못된 레이블 지정이 발생하는 이유는 여러 가지입니다. SBR의 잘못된 레이블 지정은 보안 전문가가 많은 비용과 시간을 소비하면서 버그 데이터베이스를 수동으로 검토해야 하는 상황으로 이어지므로 이는 심각한 문제입니다. 노이즈가 다양한 분류자에 어떻게 영향을 미치는지, 그리고 여러 종류의 노이즈에 오염된 데이터 세트가 존재할 때 다양한 기계 학습 기술이 얼마나 효과적인지(또는 취약한지)를 이해하는 것은 소프트웨어 엔지니어링 작업에 자동 분류를 구현하기 위해 해결해야 하는 문제입니다.

예비 작업은 버그 리포지토리가 본질적으로 노이즈가 있으며 고성능 기계 학습 분류자 [7]에 부정적인 영향을 미칠 수 있음을 보여줍니다. 그러나 다양한 수준과 유형의 노이즈가 SBR(보안 버그 보고서) 식별 문제에 대해 다양한 감독형 기계 학습 알고리즘의 성능에 어떤 영향을 미치는지에 관한 체계적이고 정량적인 연구는 없습니다.

이 연구에서는 학습 및 채점에 제목만 사용할 수 있는 경우에도 버그 보고서의 분류를 수행할 수 있음을 보여줍니다. 이와 같은 종류의 연구는 이번이 처음인 것으로 알고 있습니다. 또한 버그 보고서 분류의 노이즈의 영향에 대한 최초의 체계적인 연구를 제공합니다. 클래스 독립적 노이즈에 대한 세 가지 기계 학습 기술(로지스틱 회귀, Naive Bayes 및 AdaBoost)의 효과를 비교 연구합니다.

몇 가지 간단한 분류자 [5], [6]에 대해 노이즈의 일반적인 영향을 캡처하는 일부 분석 모델이 있지만 이러한 결과는 노이즈가 정확도에 미치는 효과에 대한 엄격한 경계를 제공하지 않으며, 특정 기계 학습 기술에 대해서만 유효합니다. 기계 학습 모델에서 정확한 노이즈 효과 분석은 일반적으로 계산 실험을 실행하는 방법으로 수행됩니다. 이러한 분석은 소프트웨어 측정 데이터 [4]부터 위성 이미지 분류 [13] 및 의료 데이터 [12]에 이르기까지 여러 시나리오에 대해 수행되었습니다. 그러나 이러한 결과는 데이터 세트의 특성과 기반 분류 문제에 대한 높은 종속성으로 인해 특정 문제로 변환할 수 없습니다. 저희가 아는 한, 노이즈가 있는 데이터 세트가 특히 보안 버그 보고서 분류에 미치는 영향 문제에 대해 게시된 결과는 없습니다.

연구 기여:

  • Microsoft는 분류자를 대상으로 보고서의 제목만을 기반으로 한 SBR(보안 버그 보고서) 식별을 학습시켰습니다. 저희가 아는 바로는 이와 같은 종류의 연구는 이번이 처음입니다. 이전의 연구에서는 완전한 버그 보고서를 사용하거나 부가적인 보완 기능으로 버그 보고서를 강화했습니다. 제목만으로 버그를 분류하는 것은 특히 개인 정보 보호 문제로 인해 완전한 버그 보고서를 사용할 수 없는 경우에 유용합니다. 예를 들어 암호 및 기타 중요한 데이터가 포함된 버그 보고서는 악명 높은 사례입니다.

  • Microsoft는 자동 SBR 분류에 사용되는 다양한 기계 학습 모델과 기술의 레이블 노이즈 허용 범위에 관한 최초의 체계적인 연구도 제공합니다. 클래스 의존적 노이즈와 클래스 독립적 노이즈에 대한 세 가지 서로 다른 기계 학습 기술(로지스틱 회귀, Naive Bayes 및 AdaBoost)의 효과를 비교 연구합니다.

이 문서의 나머지 부분은 다음과 같이 제공됩니다. 섹션 II에서는 이 분야의 이전 연구 내용을 일부 소개합니다. 섹션 III에서는 데이터 세트와 데이터의 전처리 방법을 설명합니다. 방법은 섹션 IV에서 설명하며 실험 결과는 섹션 V에서 분석합니다. 마지막으로, 섹션 VI에서 결론과 미래의 연구에 대해 설명합니다.

II. 이전 연구

버그 리포지토리에 대한 기계 학습 응용.

보안 버그 감지 [2], [7], [8], [18], 버그 중복 식별 [3], 버그 심사 [1], [11] 등의 노동 집약적인 작업을 자동화하기 위해 버그 리포지토리에 텍스트 마이닝, 자연어 처리 및 기계 학습을 적용하는 데 대한 방대한 문헌이 있습니다. 이론적으로 ML(기계 학습)과 자연어 처리를 결합하면 버그 데이터베이스를 큐레이팅하기 위해 필요한 수작업을 줄이고, 이러한 작업을 완수하는 데 소요되는 시간을 단축하고, 결과의 신뢰성을 높일 수 있습니다.

[7]에서 작성자는 버그에 대한 설명을 기반으로 SBR의 분류를 자동화하는 자연어 모델을 제안합니다. 작성자는 학습 데이터 세트의 모든 버그 설명에서 어휘를 추출하고 이를 세 가지 단어 목록(관련 단어, 중지 단어 (분류와 무관해 보이는 일반 단어) 및 동의어)으로 수동으로 큐레이팅합니다. 이들은 모두 보안 엔지니어들의 검토를 거친 데이터로 학습된 보안 버그 분류자와, 일반적인 버그 보고자에 의해 레이블이 지정된 데이터로 학습된 분류자의 성능을 비교합니다. 보안 엔지니어가 검토한 데이터로 학습된 경우가 확실히 더 효과적이지만 제안된 모델은 수동으로 추출된 어휘를 기반으로 하므로 사람의 큐레이션에 의존합니다. 또한 다양한 노이즈 수준이 모델에 어떤 영향을 미치는지, 다양한 분류자가 노이즈에 어떻게 응답하는지, 그리고 두 클래스의 노이즈가 성능에 서로 다르게 영향을 미치는지 여부에 대한 분석은 없습니다.

Zou et. al [18]은 버그 보고서의 텍스트가 아닌 필드(예: 메타 기능, 시간, 심각도 및 우선 순위) 및 버그 보고서의 텍스트 콘텐츠(텍스트 기능, 즉 요약 필드의 텍스트)를 포함하는 버그 보고서에 포함된 여러 유형의 정보를 사용합니다. 이러한 특성에 따라 자연어 처리 및 기계 학습 기술을 통해 SBR을 자동으로 식별하는 모델을 구축합니다. [8]에서 작성자들은 비슷한 분석을 수행하지만, 그 외에 감독형 및 자율 기계 학습 기술의 성능을 비교하고 모델을 학습시키는 데 얼마만큼의 데이터가 필요한지를 연구합니다.

[2]에서 작성자들도 설명을 기반으로 SBR 또는 NSBR(보안 외 버그 보고서)로 버그를 분류하기 위한 다양한 기계 학습 기술을 살펴봅니다. 이들은 TFIDF를 기반으로 한 데이터 처리와 모델 학습을 위한 파이프라인을 제안합니다. 이들은 제안된 파이프라인을 단어 모음 및 Naive Bayes 기반 모델과 비교합니다. Wijayasekara et al. [16] 또한 텍스트 마이닝 기술을 사용하여 빈번한 단어를 기반으로 각 버그 보고서의 특성 벡터를 생성해서 HIB(Hidden Impact Bug)를 식별했습니다. Yang et al. [17]은 TF(용어 빈도) 및 Naive Bayes의 도움으로 영향이 큰 버그 보고서(예: SBR)를 식별합니다. [9]에서 작성자들은 버그의 심각도를 예측하는 모델을 제안합니다.

레이블 노이즈

레이블 노이즈가 있는 데이터 세트를 다루는 문제는 폭넓게 연구되었습니다. Frenay와 Verleysen은 다양한 유형의 노이즈가 있는 레이블을 구분하기 위해 [6]에서 레이블 노이즈 분류를 제안합니다. 작성자는 실제 클래스 및 인스턴스 특성의 값과는 별개로 발생하는 레이블 노이즈, 실제 레이블에만 의존하는 레이블 노이즈, 잘못된 레이블 지정 가능성도 특성 값에 의존하는 레이블 노이즈의 세 가지 노이즈 유형을 제안합니다. Microsoft는 작업에서 처음 두 가지 유형의 노이즈를 연구합니다. 이론적 관점에서 레이블 노이즈는 일반적으로 몇 가지 특정 사례 [14]을(를) 제외하고 모델의 성능 [10]을(를) 감소시킵니다. 일반적으로 효과적인 방법은 과잉 맞춤 방지를 사용하여 레이블 노이즈 [15]을(를) 처리합니다. 분류의 노이즈 효과에 대한 연구는 위성 이미지 분류 [13], 소프트웨어 품질 분류 [4] 및 의료 분야 분류 [12]과(와) 같은 많은 영역에서 수행되었습니다. 저희가 아는 한, SBR 분류 문제에서 노이즈가 있는 레이블의 효과에 대한 정확한 정량화를 연구한 공개된 자료는 없습니다. 이 시나리오에서는 노이즈 수준, 노이즈 유형 및 성능 저하 간의 정확한 관계가 설정되지 않았습니다. 또한 노이즈가 있는 상태에서 다양한 분류자의 동작 방식을 이해하는 것도 도움이 됩니다. 더 일반적으로 보면, 소프트웨어 버그 보고서 맥락에서 노이즈가 있는 데이터 세트가 다양한 기계 학습 알고리즘의 성능에 미치는 영향을 체계적으로 연구한 작업은 없습니다.

III. 데이터 세트 설명

데이터 세트는 1,073,149개의 버그 제목으로 구성되며 이 중에서 552,073개는 SBR에, 521,076개는 NSBR에 해당합니다. 데이터는 2015, 2016, 2017 및 2018년에 걸쳐 Microsoft의 다양한 팀에서 수집되었습니다. 모든 레이블은 서명 기반 버그 확인 시스템 또는 사람의 레이블 지정을 통해 수집되었습니다. 데이터 세트의 버그 제목은 약 10자로 구성된 매우 짧은 텍스트로, 문제의 개요를 나타냅니다.

A. 데이터 전처리. 각 버그 제목을 공백으로 구문 분석하여 토큰 목록을 생성합니다. 각 토큰 목록을 다음과 같이 처리합니다.

  • 파일 경로인 토큰을 모두 제거합니다.

  • { , (, ), -, }, {, [, ], } 기호가 있는 토큰을 분할합니다.

  • 중지 단어, 숫자만으로 구성된 토큰, 전체 코퍼스에서 5번 미만으로 나타난 토큰을 제거합니다.

IV. 방법론

기계 학습 모델 학습 프로세스는 데이터를 특성 벡터로 인코딩하고 감독형 기계 학습 분류자를 학습시키는 두 가지 주요 단계로 구성됩니다.

A. 특성 벡터와 기계 학습 기술

첫 번째 부분에서는 [2]에 사용된 것과 같이 TF-IDF(Term Frequency Inverse Document Frequency) 알고리즘을 사용하여 데이터를 특성 벡터로 인코딩합니다. TF-IDF는 TF(용어 빈도)와 IDF(역 문서 빈도)에 가중치를 적용하는 정보 검색 기술입니다. 각 단어나 용어에는 각각의 TF 및 IDF 점수가 있습니다. TF IDF 알고리즘은 문서에 표시되는 횟수를 기준으로 해당 단어에 중요도를 할당합니다. 더 중요한 점은 데이터 세트의 제목 컬렉션 전체에 걸쳐 해당 키워드가 얼마나 관련성이 있는지를 확인한다는 것입니다. Microsoft는 NB(Naive Bayes), AdaBoost(승격된 의사 결정 트리) 및 LR(로지스틱 회귀)의 세 가지 분류 기술을 학습하고 비교했습니다. 이러한 기술을 선택한 이유는 문헌의 전체 보고서를 기반으로 한 보안 버그 보고서 식별 관련 작업에 효과적인 것으로 확인되었기 때문입니다. 이러한 결과는 이 세 가지 분류자가 지원 벡터 시스템과 임의 포리스트보다 성능이 우수한 것으로 나타난 예비 분석에서도 확인되었습니다. 실험에서는 인코딩 및 모델 학습을 위해 scikit-learn 라이브러리를 활용합니다.

B. 노이즈 유형

이 작업에서 연구된 노이즈는 학습 데이터의 클래스 레이블에 있는 노이즈를 나타냅니다. 이러한 노이즈가 있는 경우 학습 프로세스와 그 결과 모델은 잘못된 레이블이 있는 예제로 인해 손상됩니다. 클래스 정보에 적용되는 다양한 노이즈 수준의 영향을 분석합니다. 레이블 노이즈의 유형은 이전에 문헌에서 다양한 용어를 사용하여 논의되었습니다. 이 작업에서는 분류자에 있는 두 개의 서로 다른 레이블 노이즈의 효과를 분석합니다. 하나는 무작위로 인스턴스를 선택하여 레이블을 바꾸는 방식으로 발생시킨 클래스 독립적인 레이블 노이즈, 다른 하나는 클래스마다 노이즈가 있을 가능성이 다른 클래스 의존적 노이즈입니다.

a) 클래스 독립적 노이즈: 클래스 독립적 소음은 인스턴스의 실제 클래스와 독립적으로 발생하는 노이즈를 나타냅니다. 이 유형의 노이즈에서 pbr의 잘못된 레이블 지정 확률은 데이터 세트의 모든 인스턴스에 대해 동일합니다. 데이터 세트의 각 레이블을 pbr의 확률로 무작위로 뒤집어 데이터 세트에 클래스 독립적인 노이즈를 유발합니다.

b) 클래스 종속 노이즈: 클래스 종속 노이즈는 인스턴스의 실제 클래스에 종속된 노이즈를 나타냅니다. 이 유형의 노이즈에서 클래스 SBR에 대한 잘못된 레이블 지정 확률은 psbr이고, NSBR 클래스에 대한 잘못된 레이블 지정 확률은 pnsbr입니다. 실제 레이블이 SBR인 데이터 세트의 각 항목을 psbr 확률로 뒤집어 데이터 세트에 클래스 종속 노이즈를 도입합니다. 마찬가지로, NSBR 인스턴스의 클래스 레이블을 pnsbr 확률로 뒤집습니다.

c) 단일 클래스 노이즈: 단일 클래스 노이즈는 클래스 종속 노이즈(pnsbr = 0 및 psbr> 0)의 특수한 경우입니다. 클래스 독립적 노이즈의 경우 psbr = pnsbr = pbr입니다.

C. 노이즈 생성

실험을 통해 SBR 분류자 학습에서 다양한 유형과 수준의 노이즈가 미치는 영향을 조사합니다. 이 실험에서는 데이터 세트의 25%를 테스트 데이터로 설정하고, 10%를 유효성 검사 데이터, 65%를 학습 데이터로 설정합니다.

다양한 수준의 pbr, psbr 및 pnsbr에 대해 학습 및 유효성 검사 데이터 세트에 노이즈를 추가합니다. 테스트 데이터 세트는 수정하지 않습니다. 사용되는 다양한 노이즈 수준은 P = {0.05 × i|0 < i < 10}입니다.

클래스 독립적 노이즈 실험에서 pbr ∈ P에 대해 다음을 수행합니다.

  • 학습 및 유효성 검사 데이터 세트에 대한 노이즈를 생성합니다.

  • 학습 데이터 세트(노이즈 포함)를 사용하여 로지스틱 회귀, Naive Bayes 및 AdaBoost 모델을 학습시킵니다. * 유효성 검사 데이터 세트(노이즈 포함)를 사용하여 모델을 조정합니다.

  • 테스트 데이터 세트(노이즈 없음)를 사용하여 모델을 테스트합니다.

클래스 종속 노이즈 실험에서 psbr ∈ P 및 pnsbr ∈ P의 모든 psbr 및 pnsbr:조합에 대해 다음을 수행합니다.

  • 학습 및 유효성 검사 데이터 세트에 대한 노이즈를 생성합니다.

  • 학습 데이터 세트(노이즈 포함)를 사용하여 로지스틱 회귀, Naive Bayes 및 AdaBoost 모델을 학습시킵니다.

  • 유효성 검사 데이터 세트(노이즈 포함)를 사용하여 모델을 조정합니다.

  • 테스트 데이터 세트(노이즈 없음)를 사용하여 모델을 테스트합니다.

V. 실험 결과

이 섹션에서는 섹션 IV에 설명된 방법에 따라 수행된 실험의 결과를 분석합니다.

a) 학습 데이터 세트에 노이즈가 없는 모델 성능: 이 문서에서 기여하는 부분 중 하나는 버그의 제목을 의사 결정을 위한 유일한 데이터로 사용하여 보안 버그를 식별하는 기계 학습 모델을 제안하는 것입니다. 이를 통해 개발 팀이 중요한 데이터의 존재로 인해 버그 보고서를 완전히 공유하지 않으려는 경우에도 기계 학습 모델의 학습을 수행할 수 있습니다. 버그 제목만 사용하여 학습하는 경우 세 가지 기계 학습 모델의 성능을 비교합니다.

로지스틱 회귀 모델은 가장 우수한 분류자입니다. AUC 값이 0.9826으로 가장 높은 분류자이며, FPR 값 0.0735에 대한 회수는 0.9353입니다. Naive Bayes 분류자의 성능은 로지스틱 회귀 분류자보다 약간 낮습니다. AUC는 0.9779, FPR 0.0769에 대해 회수는 0.9189입니다. AdaBoost 분류자는 앞에서 언급한 두 분류자에 비해 성능이 떨어집니다. AUC는 0.9143, FPR 0.0774에 대해 회수는 0.7018입니다. ROC 곡선(AUC) 아래 영역은 TPR 대 FPR 관계의 단일 값으로 요약하므로 여러 모델의 성능을 비교하는 데 적합한 메트릭입니다. 후속 분석에서는 비교 분석을 AUC 값으로 제한합니다.

Table I

A. 클래스 노이즈: 단일 클래스

모든 버그가 기본적으로 클래스 NSBR에 할당되고, 버그 리포지토리를 검토하는 보안 전문가가 있는 경우에만 클래스 SBR에 할당되는 시나리오를 생각해볼 수 있습니다. 이 시나리오는 pnsbr = 0 및 < 0 psbr< 0.5라고 가정하는 단일 클래스 실험 설정에 표시됩니다.

Table II

표 II에서는 세 가지 분류자 모두 AUC에서 매우 작은 영향이 관찰됩니다. psbr = 0으로 학습된 모델의 AUC-ROC와 psbr = 0.25인 AUC-ROC의 차이는 로지스틱 회귀는 0.003, Naive Bayes는 0.006, AdaBoost는 0.006입니다. psbr = 0.50의 경우 세 가지 모델에 대해 측정된 AUC는 psbr = 0으로 학습된 모델과 비교 시 로지스틱 회귀는 0.007, Naive Bayes는 0.011, AdaBoost는 0.010 차이가 납니다. 단일 클래스 노이즈가 있는 상태로 학습된 로지스틱 회귀 분류자는 AUC의 메트릭에서 변동이 가장 작습니다. 즉, Naive Bayes 및 AdaBoost 분류자와 비교할 때 더 효과적으로 동작합니다.

B. 클래스 노이즈: 클래스 독립적

세 분류자의 성능을 비교하여 클래스 독립적 노이즈에 의해 학습 세트가 손상되는 경우를 살펴봅니다. 학습 데이터의 다양한 pbr 수준으로 학습된 각 모델에 대해 AUC를 측정합니다.

Table III

표 III에서는 실험의 모든 노이즈 증가에 대한 AUC-ROC의 감소를 관찰합니다. 노이즈 없는 데이터로 학습된 모델에서 측정된 AUC-ROC를 pbr = 0.25의 클래스 독립 노이즈가 있는 상태에서 학습된 모델의 AUC-ROC와 비교한 차이는 로지스틱 회귀의 경우 0.011, Naive Bayes의 경우 0.008, AdaBoost의 경우 0.0038입니다. 노이즈 레벨이 40% 미만인 경우 Naive Bayes 및 AdaBoost 분류자의 레이블 노이즈는 AUC에 크게 영향을 미치지 않습니다. 반면 로지스틱 회귀 분류자의 경우 30%를 초과하는 레이블 노이즈에 대해 AUC 측정값이 영향을 받습니다.

AUC Variation Impact

그림 1. 클래스 독립적 노이즈의 AUC-ROC 변형. 노이즈 수준 pbr = 0.5에서 분류자는 무작위 분류자, 즉 AUC≈0.5와 비슷하게 작동합니다. 그러나 노이즈 수준이 낮은 경우(pbr ≤ 0.30) 로지스틱 회귀 학습자는 다른 두 모델에 비해 더 나은 성능을 제공함을 볼 수 있습니다. 그러나 0.35 ≤ pbr ≤ 0.45의 경우 Naive Bayes 학습자가 더 나은 AUC-ROC 메트릭을 제공합니다.

C. 클래스 노이즈: 클래스 종속

실험의 최종 집합에서는 서로 다른 클래스에 서로 다른 노이즈 수준(예: psbr ≠ pnsbr)이 포함된 시나리오를 고려합니다. 학습 데이터에서 psbr과 pnsbr을 0.05씩 독립적, 체계적으로 늘리고 세 분류자의 동작 변화를 관찰합니다.

Logistic RegressionNaive BayesAdaBoost

표 IV, V, VI은 각 클래스에서 다양한 수준의 노이즈 증가에 따른 AUC의 변형을 보여줍니다(표 IV는 로지스틱 회귀, 표 V는 Naive Bayes, 표 VI은 AdaBoost). 모든 분류자에서, 두 클래스가 모두 30%를 초과하는 노이즈 수준을 포함하는 경우 AUC 메트릭에 영향을 미침을 볼 수 있습니다. Naive Bayes의 동작이 가장 효과적입니다. 음수 클래스에 포함된 노이즈가 있는 레이블이 30% 이하인 경우 양수 클래스에서 레이블의 50%를 뒤집더라도 AUC에 대한 영향은 매우 작습니다. 이 경우 AUC는 0.03 하락합니다. AdaBoost는 세 분류자 중에서 가장 효과적으로 동작합니다. AUC의 큰 변화는 두 클래스에서 모두 노이즈 수준이 45%를 초과하는 경우에만 발생합니다. 이 경우 AUC의 하락이 0.02를 초과하기 시작합니다.

D. 원래 데이터 집합의 잔차 노이즈가 있는 경우

데이터 세트의 레이블은 서명 기반의 자동화된 시스템과 인간 전문가에 의해 지정되었습니다. 또한 모든 버그 보고서는 인간 전문가에 의해 추가 검토와 마감을 거쳤습니다. 데이터 세트의 노이즈 양은 최소한이며 통계적으로 중요한 의미를 갖지 않을 것으로 예상하지만 잔여 노이즈의 존재가 연구 결론을 무효화하지는 않습니다. 실제로 설명을 위해 원래 데이터 집합이 모든 항목에 대해 0 < p < 1/2 독립적이고 동일하게 분산된(i.i.d)와 같은 클래스 독립적 노이즈에 의해 손상되었다고 가정합니다.

원래의 노이즈 위에 클래스 독립적 노이즈를 pbr i.i.d의 확률로 추가할 경우 항목당 결과 노이즈는 p∗ = p(1 − pbr )+(1 − p)pbr이 됩니다. 0 < p,pbr< 1/2의 경우 레이블당 실제 노이즈 p∗는 데이터 세트 p br에 인위적으로 추가하는 노이즈보다 엄격히 큽 수있습니다 . 따라서 처음부터 노이즈가 전혀 없는 데이터 세트(p = 0)를 사용하여 학습했다면 분류자의 성능은 더욱 뛰어날 것입니다. 요약하면, 실제 데이터 세트에 잔여 노이즈가 존재한다는 것은 분류자의 노이즈에 대한 복원력이 여기 나온 결과보다 우수하다는 것을 의미합니다. 또한 데이터 세트의 잔여 노이즈가 통계적으로 유의미한 경우 엄격히 0.5 미만인 노이즈 수준에 대한 분류자의 AUC는 0.5(어림짐작)가 됩니다. 결과에서는 그러한 동작이 나타나지 않습니다.

VI. 결론 및 향후 연구

이 문서가 기여하는 요소는 두 가지입니다.

첫째, 오로지 버그 보고서의 제목만을 기반으로 하는 보안 버그 보고서 분류가 가능하다는 것을 보여주었습니다. 이는 특히 개인 정보 보호 제약으로 인해 전체 버그 보고서를 사용할 수 없는 시나리오에서 유의미합니다. 예를 들어 버그 보고서에는 암호, 암호화 키와 같은 개인 정보가 포함되어 분류자 학습에 사용할 수 없었습니다. 연구 결과는 보고서 제목만 사용할 수 있는 경우에도 높은 정확도로 SBR 식별을 수행할 수 있음을 보여줍니다. TF-IDF와 로지스틱 회귀의 조합을 활용하는 분류 모델의 성능은 AUC 0.9831입니다.

둘째, 레이블이 잘못 지정된 학습 및 유효성 검사 데이터의 영향을 분석했습니다. 다양한 노이즈 유형과 노이즈 수준에 대한 효과 측면에서 잘 알려진 3개의 기계 학습 분류 기술(Naive Bayes, 로지스틱 회귀, AdaBoost)을 비교했습니다. 세 분류자 모두 단일 클래스 노이즈에 대해서는 효과적입니다. 학습 데이터의 노이즈는 결과 분류자에 큰 영향을 미치지 않습니다. 노이즈 수준 50%에 대해 AUC 감소는 매우 작습니다(0.01). 노이즈가 두 클래스 모두에 존재하고 클래스 독립적인 경우, Naive Bayes와 AdaBoost 모델에서 AUC는 노이즈 수준이 40%를 초과하는 데이터 세트로 학습된 경우에만 크게 변화합니다.

마지막으로, 클래스 종속 노이즈는 두 클래스 모두에 35%를 초과하는 노이즈가 있는 경우에만 AUC에 큰 영향을 미칩니다. AdaBoost의 효과가 가장 우수합니다. 음수 클래스에 포함된 노이즈가 있는 레이블이 45% 이하인 경우 양수 클래스의 레이블 50%에 노이즈가 있더라도 AUC에 대한 영향은 매우 작습니다. 이 경우 AUC 하락은 0.03 미만입니다. 저희가 아는 한 이 연구는 보안 버그 보고서 식별에서 노이즈가 있는 데이터 세트에 미치는 효과에 대한 최초의 체계적인 연구입니다.

향후 연구

이 문서에서는 보안 버그 식별을 위한 기계 학습 분류자의 성능에 대한 노이즈의 영향을 살펴보는 체계적인 연구를 시작했습니다. 이 연구에 이어 몇 가지 흥미로운 후속 연구가 있으며, 여기에는 보안 버그의 심각도 수준 판단에서 노이즈가 있는 데이터 세트의 영향 조사, 학습된 모델의 노이즈에 대한 복원력에 클래스의 불균형이 미치는 영향 이해, 데이터 세트에 적대적으로 유입된 노이즈의 영향 이해가 포함됩니다.

REFERENCES

[1] 존 안빅, 린든 히우, 게일 C 머피. 누가 이 버그를 수정해야 하는가? 28회 국제 소프트웨어 엔지니어링 컨퍼런스 회의록, 361–370페이지. ACM, 2006.

[2] Diksha Behl, Sahil Handa 및 Anuja Arora. Naive Bayes 및 tf-idf를 사용한 보안 버그 식별 및 분석을 위한 버그 마이닝 도구. 최적화, 안정성 및 정보 기술(ICROIT) , 2014 국제 컨퍼런스, 294–299페이지. IEEE, 2014.

[3] 니콜라스 베텐부르크, 라훌 프렘라지, 토마스 짐머만, 김성훈. 중복된 버그 보고서는 정말 유해한가? 소프트웨어 유지 관리, 2008. ICSM 2008. IEEE 국제 컨퍼런스, 337–345페이지. IEEE, 2008.

[4] 안드레스 폴레코, 타기 M 코시고프타어, 제이슨 반 헐스, 로프턴 불라드. 저품질 데이터에 대해 효과적인 학습자 식별. 정보 재사용 및 통합, 2008. IRI 2008. IEEE 국제 컨퍼런스, 190–195페이지. IEEE, 2008.

[5] Benoıt Frenay.' 기계 학습의 불확실성 및 레이블 노이즈. PhD 학위 논문, Catholic University of Louvain, Louvain-la-Neuve, Belgium, 2013.

[6] 베노이트 프레네이와 미셸 벌리슨. 레이블 노이즈가 존재하는 상황에서의 분류: 설문. IEEE 신경망 및 학습 시스템의 트랜잭션, 25(5):845–869, 2014.

[7] 마이클 게직, 피트 로텔라, 타오 시. 텍스트 마이닝을 통한 보안 버그 보고서 식별: 산업 사례 연구. MSR(마이닝 소프트웨어 리포지토리), 2010 7회 IEEE 워킹 컨퍼런스, 11-20페이지 IEEE, 2010.

[8] 카테리나 Goseva-Popstojanova 제이콥 아요. 감독형 및 자율 분류를 사용하여 텍스트 마이닝을 통해 보안 관련 버그 보고서 식별. 2018 소프트웨어 QRS(품질, 안정성 및 보안)에 대한 IEEE 국제 컨퍼런스, 344–355페이지, 2018.

[9] 아메드 람칸피, 세르주 데마이어, 에마누엘 기가, 바트 괴탈스. 보고된 버그의 심각도 예측. MSR(마이닝 소프트웨어 리포지토리), 2010 7회 IEEE 워킹 컨퍼런스, 1–10페이지. IEEE, 2010.

[10] 나레쉬 만와니와 PS 새스트리. 위험 최소화에서 노이즈 내성 사이버네틱스에 관한 IEEE 트랜잭션, 43(3):1146–1151, 2013.

[11] G 머피와 D 쿠브라닉. 텍스트 분류를 사용한 자동 버그 심사 소프트웨어 엔지니어링 & 지식 엔지니어링에 대한 제16회 국제 회의의 절차. Citeseer, 2004.

[12] 미콜라 페체니즈키, 알렉세이 심발, 세포 푸로넨, 올렉산드르 페체니즈키. 의료 분야의 클래스 노이즈 및 감독형 학습: 특성 추출의 효과. null, 708–713페이지 IEEE, 2006.

[13] 샬롯 펠레티에, 실비아 발레로, 조르디 Inglada, 니콜라스 챔피언, 클레어 마레 시크레, 제라드 데디우.' 위성 이미지 시계열과 토지 커버 매핑에 대한 분류 성능에 대한 교육 클래스 레이블 소음의 효과. Remote Sensing, 9(2):173, 2017.

[14] PS Sastry, GD Nagendra 및 Naresh Manwani. 반공간 노이즈 내성 학습을 위한 연속 동작 학습 자동화 팀. 시스템, 인간 및 사이버네틱스에 관한 IEEE 트랜잭션, 파트 B(사이버네틱스) , 40(1):19–28, 2010.

[15] Choh-Man 텅. 노이즈 처리 기술 비교. FLAIRS 컨퍼런스, 269–273페이지, 2001.

[16] 두미두 위자야세카라, 밀로스 매닉, 마일스 맥퀸. 텍스트 마이닝 버그 데이터베이스를 통한 취약성 식별 및 분류. Industrial Electronics Society, IECON 2014-40회 연간 IEEE 컨퍼런스, 3612–3618페이지. IEEE, 2014.

[17] Xinli Yang, David Lo, Qiao Huang, Xin Xia, Jianling Sun. 불균형 학습 전략을 활용하여 영향이 큰 버그 보고서 자동 식별 COMPSAC(컴퓨터 소프트웨어 및 애플리케이션 컨퍼런스), 2016 IEEE 40회 연례, 볼륨 1, 227 – 232페이지. IEEE, 2016.

[18] 데칭주, 지준 덩, 젠리, 하이진. 다중 형식 특성 분석을 통한 보안 버그 보고서 자동 식별. 정보 보안 및 개인 정보에 대한 오스트레일리아 컨퍼런스, 619–633페이지. Springer, 2018.