이 가이드는 엔지니어링 시스템 개선을 위한 전략과 측정 항목을 추천하는 GitHub의 ESSP(엔지니어링 시스템 성공 플레이북)에서 영감을 받았습니다.
Copilot을 출시하려면 목표를 정의하고, 이에 따라 출시를 계획하고, 직원에게 목표를 명확하게 전달하는 것이 좋습니다. GitHub Copilot을 사용하여 회사의 엔지니어링 목표 달성을(를) 참조하세요.
1. 성공을 가로막는 주요 장애 요인들을 파악합니다.
ESSP에서 권장하는 첫 번째 단계는 회사의 개선을 방해하는 장애물을 명확히 이해하는 것입니다. 현재 기준, 원하는 미래 상태, 진행을 방해하는 장벽을 이해하게 되면 발생하는 변화의 방향이 목표 지향적이고 효과적이라는 것을 확신할 수 있습니다.
개발 팀은 종종 새로운 기능을 제공하고 애플리케이션을 원활하게 실행하기 위해 속도와 기능에 집중합니다. 시간이 지남에 따라 다음과 같은 작은 문제가 누적 될 수 있습니다.
- 고정되지 않은 상태로 유지되는 알려진 보안 약점
- 이전 소프트웨어 구성 요소의 잠재적 결함에 대한 의존성
- 검색된 문제 해결 지연
이로 인해 보안 부채가 발생하며, 문제의 중요한 적체를 초래합니다.
보안 부채는 실제 위험을 수반합니다. 해결되지 않는 시간이 길어질수록 더 크고 비용이 많이 듭니다. 대규모 보안 부채는 시스템을 공격에 취약하게 만들고, 중요한 데이터를 노출하며, 고객 신뢰를 침식합니다.
문제는 안전하고 안정적인 소프트웨어 환경을 유지 관리하여 신속한 개발의 균형을 맞추는 것입니다.
2. 옵션을 평가합니다.
다음 단계에서는 1단계에서 확인된 장벽을 해결하기 위한 솔루션을 평가하고 합의해야 합니다. 이 가이드에서는 GitHub Copilot이 사용자가 인지하는 목표 달성에 어떠한 영향을 미칠 수 있는지 중점적으로 살펴보겠습니다. 새 도구를 성공적으로 출시하려면 문화권 및 프로세스를 변경해야 합니다.
파일럿 그룹을 사용하여 새로운 도구 및 프로세스의 평가판을 실행하여 피드백을 수집하고 성공을 측정합니다. 평가판 중에 사용할 학습 리소스 및 메트릭에 대해서는 3. 변경 사항 구현 및 주의할 메트릭 섹션을 참조하세요.
<a href="https://github.com/enterprise/contact?ref_product=copilot&ref_type=engagement&ref_style=button" target="_blank" class="btn btn-primary mt-3 mr-3 no-underline">
<span>영업팀에 문의하기</span><svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-link-external" aria-label="link external icon" role="img"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a>
어떻게 Copilot가 도움이 될 수 있는지
Copilot 는 보안 고려 사항을 개발 수명 주기에 직접 통합합니다. 이를 통해 개발자는 프로젝트를 최신 상태로 유지하고 잠재적 취약성을 사전에 식별하여 해결할 수 있습니다.
Copilot 는 소프트웨어 개발 수명 주기 내내 보안 취약성을 줄입니다.
개발 중
Copilot 코드를 작성할 때 검토합니다. 일반적인 보안 결함에 대한 이해를 사용하여 악용에 취약할 수 있는 영역에 플래그를 지정합니다. 이 실시간 분석은 표준 개발 또는 초기 보안 검토 중에 누락될 수 있는 숨겨진 취약성을 노출합니다.
문제를 식별할 때 Copilot 취약성을 해결하기 위해 코드 변경을 제안합니다. 이렇게 하면 약점을 조기에 해결하고 보안 부채가 누적되는 것을 방지할 수 있습니다.
지속적인 유지 관리
Copilot는 GitHub의 코드 검색 기능과 통합되어 기존 코드베이스를 안전하게 유지합니다. 코드 검색에서 보안 경고를 Copilot Autofix 식별할 때 이를 분석하고 대상 권장 사항을 제공하여 해결합니다.
이러한 제안된 수정 사항은 취약성을 조사하고 문제를 해결하는 방법을 결정하는 데 걸리는 시간을 줄입니다. 이렇게 하면 보안 경고를 보다 효율적으로 해결하고 지속적인 보안 문제를 방지할 수 있습니다.
문화적 고려 사항
GitHub Copilot의 출시와 함께 목표 달성에 방해가 될 수 있는 사회적 및 문화적 요인을 해결하십시오.
다음 예시는 ESSP의 ‘안티 패턴’ 섹션에서 발췌한 내용입니다.
- 팀은 보안 부채를 무시하거나 연기할 수 있습니다. 이렇게 하면 비효율적이고 취약한 시스템이 지속될 수 있습니다. 이는 기능에 대한 마감일 중심의 초점이나 보안 부채의 장기적인 영향에 대한 교육 부족으로 인해 발생할 수 있습니다.
- 팀은 간단한 문제에 대해 지나치게 복잡한 솔루션을 빌드 할 수 있습니다. 이렇게 하면 코드를 유지 관리하기가 더 어려워지고 보안 문제를 감지하기가 더 어려워집니다. 이는 불필요하게 미래에 대비하려는 욕구 또는 복잡성을 통해 가치를 추가해야 한다는 압력으로 인해 발생할 수 있습니다.
3. 변경 내용 구현
장벽을 극복하기 위한 올바른 방법을 확인한 경우 식별한 솔루션의 크기를 조정합니다. 새 도구 또는 프로세스의 성공적인 롤아웃을 위해 롤아웃의 각 부분에 소유권을 할당하고, 목표에 대해 투명하게 전달하고, 효과적인 교육을 제공하고, 결과를 측정합니다.
이 섹션에서는 개발자를 위한 예시 시나리오와 모범 사례, 그리고 관련 리소스를 안내합니다. 이 섹션에서는 직원들이 목표와 일치하는 방식으로 Copilot을(를) 사용할 수 있도록 커뮤니케이션 및 교육 세션을 계획 할 수 있습니다.
-
[코드의 보안 취약성 분석](#analyze-your-code-for-security-vulnerabilities) -
[경고에 Copilot Autofix 사용 code scanning](#use-copilot-autofix-for-code-scanning-alerts) -
[개발자를 위한 모범 사례](#best-practices-for-developers) -
[개발자를 위한 리소스](#resources-for-developers)
코드의 보안 취약성 분석
코드베이스 Copilot 의 크기에 따라 코드를 작성하는 동안 전체 프로젝트를 분석하지 못할 수 있습니다. 컨텍스트 제약 조건 때문입니다. 그러나 안전하지 않은 코드 사례에 대한 특정 파일을 분석하도록 요청할 수 있습니다.
-
분석할 파일을 Visual Studio Code에서 엽니다.
-
Copilot 채팅에서 질문하십시오: `Analyze this code for potential security vulnerabilities and suggest fixes`채팅 변수를
#file사용하여 프롬프트에 파일의 콘텐츠를 구체적으로 포함할 수 있습니다. 프롬프트 파일과 맞춤형 지침을 사용하여 Copilot의 응답 생성을 안내할 수도 있습니다. -
Copilot 채팅 코드를 분석하고, 보안 취약성을 식별하고, 수정을 제안합니다. -
제안된 변경 사항을 검토한 후 적절히 반영해 주시기 바랍니다.
프롬프트의 다른 예:
Are there any security vulnerabilities in my code? If so, can you explain them and suggest fixes?Does this code follow secure code best practices? If not, what specific improvements can I make?What are the potential security risks in this code if it were deployed to production? How can I mitigate them?
경고에 Copilot Autofix 사용 code scanning
Copilot Autofix는 GitHub Code Security의 일부로, code scanning 경고에 대한 잠재적 수정을 제안합니다. 에 대한 GitHub Code Security라이선스가 있는 공용 리포지토리 및 리포지토리에서 사용할 수 있습니다.
리포지토리에서 코드 검사를 실행하면 잠재적인 문제가 code scanning 경고로 표시됩니다. 다음 단계에 따라 경고를 해결합니다.
- GitHub 경고를 엽니다.
-
**수정 생성**을 클릭합니다. Copilot이 경고를 해결할 수 있는 경우, 이 메시지가 표시됩니다. -
Copilot Autofix 는 잠재적인 수정 사항을 생성하고 경고의 코드 변경 내용을 표시합니다. 이 코드 변경 내용을 새 분기 또는 기존 분기로 커밋할 수 있습니다. - 코드를 테스트합니다. 그런 다음 끌어오기 요청을 열어 변경 내용을 주 분기로 이동합니다.
- 변경 내용을 주 분기 code scanning 로 이동하고 수정 사항을 확인하면 경고가 자동으로 닫힙니다.
개발자를 위한 모범 사례
개발자는 다음을 수행해야 합니다.
-
**정기적으로 사용하여 Copilot 채팅 취약성에 대한 코드 조각을 분석합니다**. 변경 내용을 커밋하기 전에 코드에서 보안 문제를 확인하는 습관을 만듭니다. -
**경고에 Copilot Autofix 사용합니다code scanning**. 경고가 표시되면 첫 번째 단계로 Copilot Autofix을(를) 사용하여 신속하게 해결하세요. -
**에 명확하고 구체적인 프롬프트를 Copilot 채팅제공합니다**. 요청이 더 자세할수록 Copilot가 코드를 분석하고 관련 수정 사항을 제안할 수 있습니다. 예를 들어 프로그래밍 언어 및 특정 관련 영역을 포함합니다. -
**기존 보안 도구와 결합 Copilot 합니다**. 전용 보안 스캐너 및 사례를 대체하는 것이 아니라 보안 분석의 추가 계층으로 사용합니다 Copilot .
개발자는 다음을 수행해서는 안 됩니다.
-
**'의 보안 제안을 자동으로 수락 Copilot합니다**. 항상 제안된 코드 변경 내용을 검토하고 테스트하여 적절하고 효과적인지 확인합니다. -
**포괄적인 보안 감사에 Copilot 만 의존합니다**. Copilot 는 유용한 도구이지만 철저한 보안 검토 및 침투 테스트를 대체해서는 안됩니다. -
**경고를 무시 code scanning 합니다**. 보안 부채가 누적되는 것을 방지하기 위해 사소한 것처럼 보일지라도 모든 경고를 즉시 해결합니다. -
**안전한 코딩 사례를 학습하지 않도록 핑계로 사용합니다Copilot**. 자신과 팀에게 보안 모범 사례를 계속 교육합니다. -
**모든 취약성을 포착할 것이라고 가정 Copilot합니다**. 보안은 지속적인 프로세스이며 항상 경계가 필요합니다. -
**보안 정책을 우회하는 데 사용합니다Copilot**. 조직의 보안 프로토콜을 준수합니다. Copilot을(를) 도구로 사용하여 이를 우회하지 않고 향상시킵니다.
개발자를 위한 리소스
- GitHub Copilot Chat
-
[AUTOTITLE](/copilot/copilot-chat-cookbook/security-analysis/finding-existing-vulnerabilities-in-code) -
[ GitHub Skills - 시작하기 GitHub Copilot](https://github.com/skills/getting-started-with-github-copilot)
감시해야 할 메트릭
새 도구의 평가판을 평가하고 전체 롤아웃이 일관된 개선을 제공하고 있는지 확인하려면 결과를 모니터링하고 필요한 경우 조정합니다. 품질, 속도 및 개발자 행복의 주요 영역과 이러한 영역이 함께 모여 비즈니스 결과에 기여하는 방법을 고려하는 것이 좋습니다.
다음은 특정 목표에 대한 Copilot의 영향을 평가하는 데 사용할 수 있는 몇 가지 지표입니다.
-
**보안 부채 비율** 보안 개요를 사용하여 시간이 지남에 따라 경고 수가 감소하는지 확인합니다. -
**보안 문제를 해결할 시간입니다**. 보안 개요를 사용하여 보안 문제를 수정하는 시간이 시간이 지남에 따라 떨어지는지 확인합니다. [AUTOTITLE](/code-security/security-overview/assessing-code-security-risk)을(를) 참조하세요.