GitHub/open-source

7 개의 포스트

github

GitHub 법무팀이 Copilot CLI를 활용해 업무 흐름을 간소화한 방법 (새 탭에서 열림)

GitHub 법무팀은 엔지니어가 아니어도 Copilot CLI를 활용해 반복적인 법무 업무를 자동화하고, 자신의 판단 기준을 반영한 도구를 직접 만들 수 있음을 보여준다. 계약서 작성·검토와 DMCA 통지 분석 같은 업무를 평문 지침, 정책 자료, 템플릿으로 구조화해 일관성과 처리 속도를 높였다. 다만 AI는 법률적 판단을 대체하는 것이 아니라, 사람이 최종 검토하는 의사결정 지원 시스템으로 활용됐다. ## 반복 업무를 AI 도구로 전환한 배경 - 법무팀의 업무에는 유사 계약 검토, 반복적인 법률 질의 응답, 기존 가이드 재활용 등 반복 작업이 많았다. - 구성원들은 전통적인 프로그래밍 경험이 부족했지만, 자신의 업무 방식과 판단 기준은 명확히 알고 있었다. - Copilot CLI에 자연어로 원하는 기능을 설명하고 저장소와 연결하면서, 프롬프트를 일회성으로 사용하는 대신 재사용 가능한 내부 도구로 발전시켰다. - 지침과 자료를 저장소에서 관리해 버전 관리, 일관성 확보, 협업이 가능해졌다. ## `terms-ai`: 계약 작성 스타일 가이드 구축 - Ngandu Kasuku는 데이터·인프라·제품 통합 관련 파트너십 계약이 급증하자 계약 작성 도구 `terms-ai`를 만들었다. - 저장소에 다음 자료를 정리했다. - AI 작업 지침 - 계약 작성 리소스 - 업무 흐름 - 기존에 승인된 계약서 - 평문 중심의 계약 작성 원칙을 내부 스타일 가이드로 만들었다. - 불필요하게 고어체인 법률 용어를 줄임 - 더 명확하고 읽기 쉬운 문장 사용 - 계약 전반에 동일한 문체와 기준 적용 - 기존 파트너와의 과거 계약 및 승인된 문서를 참고해 새 계약서나 부속합의서 초안을 작성할 수 있게 했다. - 민감한 계약서와 내부 정보는 공개 저장소에 포함하지 않고, 접근 제어가 적용된 내부 환경에 보관했다. - 결과적으로 계약 검토와 작성 시간이 약 절반으로 줄었고, 조항의 일관성과 개인의 작성 스타일 반영 수준이 향상됐다. - 핵심은 AI가 단순히 초안을 생성한 것이 아니라, 변호사의 경험과 판단 방식을 도구에 내장했다는 점이다. ## DMCA 통지 분석을 위한 평문 기반 워크플로 - Jesse Geraci는 DMCA 통지를 처리하기 위해 소스 코드를 빠르고 정확하게 분석해야 하는 문제에서 출발했다. - 처음에는 팀원들이 각자 작성하던 일회성 프롬프트를 다음과 같은 반복 가능한 지침으로 정리했다. - DMCA 통지 분류 - 코드 비교 - 라이선스 확인 - 우회 행위 검토 - 분석 결과 보고서 작성 - 전통적인 소스 코드 대신 다음과 같은 평문 파일을 중심으로 워크플로를 구성했다. - 업무 절차 지침 - 정책 및 법률 참고 자료 - 보고서 템플릿 - 변호사가 가진 언어 구성 능력과 법률적 방법론을 구조화된 업무 로직으로 활용했다. - 고객용과 변호사용 분석 모드를 분리했다. - 고객용: 빠른 결과와 에스컬레이션 권고 제공 - 변호사용: 심층 검토와 양측 주장 분석 제공 - 외부 데이터 소스를 연동하면서 팀이 재사용할 수 있는 표준 워크플로로 확장됐다. ## 데스크톱 앱과 재사용 가능한 법무 에이전트 - 초기 평문 워크플로는 이후 사전 정의된 법무 작업을 실행하는 데스크톱 앱으로 발전했다. - 앱 자체를 구축하려면 상당한 코드가 필요했지만, 실제 업무 동작을 바꾸는 지침은 여전히 Markdown과 자연어로 편집할 수 있다. - DMCA 코드 분석을 넘어 다음 업무로 범위가 확대됐다. - 계약서 검토 - NDA 분류 - 위험 평가 - 컴플라이언스 점검 - 답변 초안 작성 - 내부적으로는 다음과 같은 재사용 가능한 스킬과 에이전트로 업무를 나눌 수 있다. - 접수 및 초기 분류 - 플레이북 기준 대조 - 위험 점수 산정 - 증거 검증 - 에스컬레이션 경로 결정 - 보고서 조립 - 기술적 구현이 복잡해져도 법무팀은 읽기 쉬운 Markdown을 통해 AI의 동작과 기준을 직접 통제할 수 있다. ## 인간의 법률 판단을 중심에 둔 AI 활용 - 법무 Copilot은 변호사를 대체하는 시스템이 아니라 구조화된 의사결정 지원 도구다. - AI 활용의 목적은 다음과 같다. - 법률 분석의 일관성 향상 - 판단 과정의 투명성 확보 - 반복 업무의 확장성 강화 - 사람이 중요한 쟁점과 최종 판단에 집중하도록 지원 - 조직은 완벽한 상용 솔루션이나 전문 개발자를 기다리지 않고, 먼저 자신의 방법론·기준·결과 형식을 명확히 정의할 수 있다. 작게는 반복되는 계약 검토나 자료 분류처럼 시간을 가장 많이 빼앗는 업무 하나를 골라, 자연어 지침과 내부 자료를 재사용 가능한 워크플로로 정리하는 것이 현실적인 시작점이다. 단, 민감한 자료에는 접근 제어를 적용하고, AI 결과는 반드시 담당자의 검토와 승인을 거치도록 설계해야 한다.

github

초보자를 위한 GitHub: GitHub 필수 기능 마스터를 위한 로드맵 (새 탭에서 열림)

GitHub는 코드 저장소를 넘어, 버전 관리와 협업을 배우고 오픈소스에 참여하기 위한 개발자의 기반이다. 이 글은 Git과 GitHub의 기본 개념부터 계정 보안, 저장소 생성, Markdown, 브랜치와 풀 리퀘스트를 활용한 협업 흐름까지 초보자가 익혀야 할 내용을 단계적으로 설명한다. 핵심은 변경 사항을 Git으로 관리하고, GitHub에서 브랜치와 풀 리퀘스트를 통해 안전하게 공유·검토·통합하는 것이다. ## 버전 관리와 Git의 기본 개념 - 버전 관리는 파일의 변경 내용을 시간순으로 기록해 무엇이 언제, 왜 바뀌었는지 확인하고 이전 상태로 되돌릴 수 있게 한다. - Git은 가장 널리 사용되는 버전 관리 시스템이다. - Git의 작업 영역은 다음 세 가지로 나뉜다. - **Working directory**: 실제 파일을 수정하는 공간 - **Staging area**: 다음 커밋에 포함할 변경 사항을 검토하고 준비하는 공간 - **Local repository**: 커밋된 변경 이력이 저장되는 공간 - 기본 흐름은 `git status`로 상태를 확인하고, `git add`로 변경 사항을 스테이징한 뒤, `git commit`으로 기록을 저장하는 방식이다. - “코드를 push한다”는 말은 로컬에 만든 커밋을 GitHub의 원격 저장소에 업로드한다는 뜻이다. ## GitHub 계정 보안과 프로필 관리 - GitHub 계정은 개발자 정체성과 포트폴리오 역할을 하므로 보안을 강화해야 한다. - **Settings → Password and authentication**에서 2단계 인증(2FA)을 활성화하면 비밀번호가 유출돼도 추가 인증 없이는 계정에 접근하기 어렵다. - 2FA 복구 코드는 기기를 잃어버렸을 때 계정에 다시 로그인할 수 있는 중요한 수단이므로 비밀번호 관리자에 안전하게 보관해야 한다. - 사용자 이름과 동일한 이름의 공개 저장소를 만들고 README를 추가하면, 해당 README가 GitHub 프로필에 표시된다. - 프로필 README에는 기술, 프로젝트, 관심 분야 등을 작성해 개발자 포트폴리오로 활용할 수 있다. ## 자주 사용하는 Git 명령어 - `git config --global user.name "..."`: 커밋에 기록할 사용자 이름 설정 - `git init`: 현재 폴더를 Git 저장소로 초기화 - `git clone <url>`: 원격 저장소를 로컬로 복제 - `git status`: 변경 사항과 스테이징 상태 확인 - `git add .`: 모든 변경 사항을 스테이징 - `git commit -m "message"`: 스테이징된 변경 사항을 커밋 - `git switch -c <branch>`: 새 브랜치를 만들고 해당 브랜치로 이동 - `git push`: 로컬 커밋을 GitHub에 업로드 - `git pull`: GitHub의 최신 변경 사항을 내려받고 병합 - `git merge <branch>`: 다른 브랜치의 변경 사항을 현재 브랜치에 통합 ## 첫 번째 GitHub 저장소 만들기 - 저장소(repository)는 프로젝트 파일과 변경 이력을 관리하고 여러 사람이 함께 작업하는 프로젝트의 중심 공간이다. - GitHub 대시보드에서 **New**를 선택한 뒤 저장소 이름과 공개·비공개 여부를 지정해 만들 수 있다. - README를 함께 생성하면 방문자가 프로젝트를 처음 이해하는 안내문 역할을 한다. - 필요에 따라 다음 항목도 추가할 수 있다. - **`.gitignore`**: 운영체제 파일, 의존성 폴더, 임시 빌드 결과물처럼 추적할 필요가 없는 파일을 Git에서 제외 - **라이선스**: 다른 사람이 코드를 어떤 조건으로 사용·수정·배포할 수 있는지 명시 - `.gitignore`를 사용하면 저장소에 실제 소스 코드와 중요한 파일만 남겨 프로젝트를 깔끔하게 유지할 수 있다. ## Markdown으로 문서 작성하기 - Markdown은 일반 텍스트에 간단한 기호를 추가해 제목, 목록, 링크, 코드 블록 등을 표현하는 가벼운 문서 형식이다. - GitHub의 README, 이슈, 풀 리퀘스트, 댓글 등 대부분의 텍스트 작성 영역에서 사용된다. - 일부 HTML 태그와 함께 사용해 문서를 읽기 쉽고 구조적으로 만들 수 있다. - 좋은 Markdown 문서는 프로젝트의 목적과 사용 방법을 빠르게 전달해 저장소의 접근성을 높인다. ## GitHub Flow를 이용한 협업 - GitHub Flow는 공유 프로젝트에 변경 사항을 안전하게 반영하기 위한 반복적인 작업 절차다. - 일반적인 순서는 다음과 같다. 1. 저장소를 로컬에 `clone` 2. 작업용 브랜치 생성 3. 코드나 문서 수정 4. 변경 사항 커밋 5. GitHub에 `push` 6. 풀 리퀘스트 생성 7. 검토와 승인 후 병합 - 기능별로 브랜치를 분리하면 기존 코드에 직접 영향을 주지 않고 독립적으로 작업할 수 있다. - 풀 리퀘스트를 통해 동료가 변경 내용을 검토하고, 테스트 결과나 새로운 동작을 확인한 뒤 병합할 수 있다. - 예를 들어 공유 AI 프롬프트를 수정할 때도 별도 브랜치에서 변경하고, 풀 리퀘스트로 결과를 검토한 후 병합하면 팀 전체가 개선된 프롬프트를 사용할 수 있다. 처음에는 모든 Git 명령어를 외우기보다 `status → add → commit → push` 흐름과 브랜치·풀 리퀘스트 과정을 반복해 익히는 것이 좋다. 또한 2FA를 설정하고, README와 `.gitignore`를 갖춘 저장소를 만들어 작은 프로젝트부터 GitHub Flow를 연습하면 협업과 오픈소스 참여로 자연스럽게 확장할 수 있다.

github

이번 주에 모든 GitHub 유지 관리자가 활성화해야 할 6가지 보안 설정 (새 탭에서 열림)

Joseph은 사이버보안과 AI 분야에서 개발자들이 안전한 소프트웨어를 만들도록 돕는 전문가다. 오픈소스 게임, 영상, 강연을 통해 보안 지식을 실용적으로 전달하며, 전 세계 개발자와 청중에게 큰 영향력을 미치고 있다. ### 사이버보안 및 AI 분야의 전문성 - 개발자가 보안을 고려해 소프트웨어를 구축할 수 있도록 콘텐츠와 소프트웨어를 개발한다. - 사이버보안과 AI를 결합한 실용적인 지식을 전달하는 인물로 소개된다. ### 오픈소스 보안 교육 - 오픈소스 게임 `gh.io/scg`를 제작했다. - 이 게임은 10,000명 이상의 개발자가 미래에도 활용 가능한 보안 역량을 익히는 데 기여했다. ### 대중적인 보안 콘텐츠 - Joseph의 영상 콘텐츠는 누적 280만 회 이상의 조회수를 기록했다. - 복잡한 보안 주제를 쉽게 설명하고, 개발자가 바로 적용할 수 있는 실용적인 조언을 제공한다. - 콘텐츠는 전 세계 audience를 대상으로 한다. ### 국제적인 강연 활동 - 최근 4년간 25개국에서 총 79회의 강연을 진행했다. - 전문적인 통찰력과 활기찬 무대 진행으로 청중의 관심을 끌었다. 개발자라면 Joseph의 오픈소스 게임이나 영상을 활용해 보안 개념을 실습 중심으로 익히고, 강연을 통해 최신 보안 동향과 적용 방법을 접할 수 있다.

github

내 일을 자동화했더니 (더 나은 리더가 되었다) (새 탭에서 열림)

Ashley Willis는 GitHub의 개발자 관계 부문을 이끄는 수석 디렉터로, 오픈소스와 개발자 커뮤니티를 중심으로 활동하고 있습니다. 기술을 더 인간적으로 만들고, 기여자를 지원하며, 소외된 목소리를 대변하는 리더십을 강조합니다. 또한 접근성과 회복력 있는 팀 구축을 통해 실제 사용자에게 도움이 되는 도구와 환경을 만드는 데 집중합니다. ### 개발자 관계와 오픈소스 리더십 - GitHub에서 개발자 관계(Developer Relations) 조직을 이끕니다. - 오픈소스 생태계와 커뮤니티에 대한 깊은 관심을 바탕으로 활동합니다. - 개발자의 참여와 기여를 촉진하는 환경을 만드는 데 주력합니다. ### 커뮤니티와 기여자 지원 - 기술을 사용하는 사람들의 경험을 중심에 둔 활동을 펼칩니다. - 오픈소스 기여자를 지원하고, 다양한 개발자들의 목소리를 확대합니다. - 기술 커뮤니티가 더 포용적이고 지속 가능하게 성장하도록 돕습니다. ### 포용성, 접근성, 팀의 회복력 - 소외되거나 충분히 대표되지 못한 집단의 목소리를 강조합니다. - 누구나 사용할 수 있는 접근성 높은 도구와 공간을 만드는 데 관심을 둡니다. - 변화와 어려움에 대응할 수 있는 회복력 있는 팀 문화를 구축합니다. ### 기술을 더 인간적으로 만들기 - 리더십과 기술 옹호 활동을 사람 중심의 관점에서 결합합니다. - 단순히 기능적인 도구를 넘어, 실제 사용자의 필요를 충족하는 기술을 지향합니다. - 개발자와 커뮤니티를 배려하는 태도를 기술 조직 운영의 핵심 가치로 삼습니다. 결국 이 글은 Ashley Willis를 기술 전문성뿐 아니라 사람, 커뮤니티, 포용성을 중시하는 개발자 관계 리더로 소개합니다. 기술 조직은 제품 개발과 함께 기여자 지원, 접근성, 다양한 목소리의 반영도 함께 고려해야 한다는 점을 시사합니다.

github

GitHub 소유 저장소에 대한 무단 접근 조사 (새 탭에서 열림)

Alexis Wales는 GitHub의 최고정보보호책임자(CISO)로서 플랫폼과 제품, 오픈소스 커뮤니티의 보안을 담당한다. 20년간 국방부와 CISA 등에서 국가 및 민간 부문의 핵심 네트워크를 방어해 왔으며, 공공·민간 협력을 통해 기술 보안 문제를 해결하는 데 주력하고 있다. 그녀의 목표는 전 세계 1억 5천만 명 이상의 개발자가 GitHub에서 안전하게 소프트웨어를 개발하고 배포하도록 지원하는 것이다. ### GitHub의 보안 리더십 - GitHub의 보안 전문가 팀을 이끈다. - GitHub 플랫폼과 제품의 보안을 강화한다. - 오픈소스 생태계와 커뮤니티를 보호한다. - 개발자들이 안전하게 소프트웨어를 만들고 배포할 수 있도록 지원한다. ### 국가 핵심 네트워크 방어 경험 - 약 20년 동안 국가 및 민간 부문의 중요 네트워크를 보호해 왔다. - 미국 국방부에서 보안 업무를 수행했다. - 국토안보부 산하 CISA에서도 근무하며 사이버 보안과 핵심 인프라 보호 경험을 쌓았다. ### 공공·민간 협력에 대한 관점 - 국가 기관과 민간 기업이 협력해야 가장 어려운 보안 위협에 효과적으로 대응할 수 있다고 본다. - 이러한 협력에 대한 관심은 국가 및 민간 네트워크를 방어한 경험에서 비롯되었다. - 일상적으로 사용하는 기술을 위협하는 보안 문제를 공동으로 해결하는 것을 중시한다. 실용적으로는 GitHub와 같은 개발 플랫폼의 보안을 강화하려면 기술적 방어뿐 아니라 공공기관, 기업, 오픈소스 커뮤니티 간의 지속적인 정보 공유와 협력이 필요하다는 점을 시사한다.

github

git push 파이프라인 보안 강화: 치명적인 원격 코드 실행 취약점 대응 (새 탭에서 열림)

GitHub의 보안 책임자(CISO)인 알렉시스 웨일즈(Alexis Wales)는 1억 5천만 명 이상의 개발자가 안전하게 소프트웨어를 구축하고 배포할 수 있도록 플랫폼과 오픈소스 커뮤니티 보호를 진두지휘하고 있습니다. 그녀는 미국 국방부와 국토안보부(CISA) 등에서 쌓은 20년의 전문 경험을 바탕으로 국가적 수준의 네트워크 방어 역량을 GitHub의 보안 전략에 녹여내고 있습니다. 특히 공공과 민간 부문의 긴밀한 협력을 통해 현대 기술 생태계를 위협하는 복잡한 보안 난제들을 해결하는 것을 핵심 사명으로 삼고 있습니다. **GitHub 보안 리더십과 커뮤니티 보호** * GitHub의 CISO로서 플랫폼 및 제품 전반의 보안을 책임지는 전문가 팀을 이끌며, 글로벌 오픈소스 생태계의 안전성을 강화하는 데 집중함. * 전 세계 1억 5천만 명 이상의 개발자가 GitHub 환경 내에서 보안 사고 걱정 없이 코드를 작성하고 배포할 수 있도록 지원하는 보안 프레임워크 구축. **국가 안보 기반의 풍부한 전문 경력** * 미국 국방부(DoD)와 국토안보부 산하 사이버보안 및 기간시설 안보국(CISA)에서 20년간 근무하며 국가 핵심 네트워크와 민간 영역의 방어 업무를 수행함. * 공공 영역에서의 대규모 네트워크 방어 경험을 민간 테크 기업에 접목하여, 일상적으로 사용하는 기술들에 대한 고도화된 위협 대응 역량을 확보함. **민관 협력을 통한 보안 혁신** * 공공 부문과 민간 부문 사이의 경계를 허무는 협업이 보안 위협 해결의 핵심이라고 강조하며, 이를 위한 파트너십 강화에 주력함. * 개별 기업의 보안을 넘어 기술 생태계 전체를 보호하기 위해 부문 간 지식 공유와 공동 대응 체계를 구축하는 데 열정을 쏟고 있음. 알렉시스 웨일즈의 사례는 현대 소프트웨어 공급망 보안이 단순히 기술적인 방어에 그치는 것이 아니라, 정부 기관의 풍부한 방어 경험과 민간 플랫폼의 기술력이 결합될 때 비로소 완성될 수 있음을 잘 보여줍니다.

github

GitHub Security Lab의 오픈 소스 (새 탭에서 열림)

GitHub Security Lab은 오픈 소스 AI 프레임워크인 **Taskflow Agent**와 웹 보안 감사용 taskflow를 활용해 80건 이상의 취약점을 발견했으며, 그중 상당수는 인증 우회와 민감 정보 노출처럼 영향도가 높은 취약점이었다고 설명합니다. 이 방식은 대형 단일 프롬프트 대신 여러 단계의 작업을 YAML로 정의하고, LLM의 분석 결과를 데이터베이스로 전달해 반복적·구조적인 보안 감사를 수행합니다. 프레임워크와 taskflow는 공개되어 있어 GitHub Copilot 사용자는 자신의 저장소에서도 실행할 수 있습니다. ## 오픈 소스 AI 보안 감사의 성과 - 새로운 taskflow는 웹 애플리케이션 취약점 탐색에 특화되어 있습니다. - 지금까지 80건 이상의 취약점을 보고했으며, 작성 시점에 약 20건이 공개되었습니다. - 발견된 취약점의 상당수는 다음과 같은 고위험 유형입니다. - 인증 또는 권한 우회 - 다른 사용자로 로그인할 수 있는 문제 - 다른 사용자의 비공개 데이터에 접근하는 정보 노출 - 글에서 제시한 사례로는 다음이 언급됩니다. - 전자상거래 애플리케이션의 장바구니에서 개인식별정보(PII) 접근 - 채팅 애플리케이션에서 어떤 비밀번호를 사용해도 로그인 가능한 문제 - 연구자들은 기존에 악용 가능성이 불분명한 후보를 검증하는 데 쓰던 시간을 줄이고, 실제 결과를 수동 검증하고 보고하는 데 더 집중할 수 있게 되었다고 설명합니다. ## 자신의 저장소에서 실행하는 방법 - `GitHubSecurityLab/seclab-taskflows` 저장소에서 Codespace를 시작합니다. - 초기화가 끝난 뒤 다음 명령을 실행합니다. ```bash ./scripts/audit/run_audit.sh myorg/myrepo ``` - 중간 규모 저장소에서는 실행에 한두 시간이 걸릴 수 있습니다. - 완료되면 SQLite 뷰어가 열리고, `audit_results` 테이블에서 `has_vulnerability` 열이 체크된 행을 확인합니다. - 실행에는 GitHub Copilot 라이선스가 필요하며, 프리미엄 모델 요청 할당량을 많이 사용할 수 있습니다. - LLM 결과는 비결정적이므로 같은 코드베이스를 여러 번 검사하는 것이 권장됩니다. - 서로 다른 모델을 사용하면 결과가 달라질 수 있습니다. - 예시로 GPT 5.2와 Claude Opus 4.6을 각각 사용할 수 있습니다. - 비공개 저장소도 지원하지만, Codespace 설정을 수정해 접근 권한을 별도로 부여해야 합니다. ## Taskflow의 구조 - Taskflow는 LLM에 수행시킬 작업 목록을 YAML로 정의한 파일입니다. - `seclab-taskflow-agent`가 다음 기능을 담당합니다. - 작업을 순차적으로 실행 - 앞선 작업의 결과를 다음 작업에 전달 - 여러 구성 요소에 같은 작업을 비동기적으로 반복 실행 - 템플릿 프롬프트에 구성 요소별 정보를 삽입 - 저장소 감사는 일반적으로 다음 단계로 나뉩니다. - 저장소를 기능별 구성 요소로 분할 - 각 구성 요소의 진입점, 신뢰할 수 없는 입력, 요구 권한, 역할 등을 분석 - 분석 결과를 `repo_context.db` 같은 데이터베이스에 저장 - 저장된 컨텍스트를 사용해 취약점 후보를 생성 - 후보별로 세부 검증을 수행 - 현재는 각 구성 요소에 대해 일반적인 보안 문제를 제안하는 작업과, 제안된 문제를 정밀하게 검증하는 작업이 사용됩니다. - 특정 취약점 유형에 집중하는 별도의 taskflow도 추가할 수 있습니다. ## 하나의 거대한 프롬프트 대신 여러 작업을 사용하는 이유 - LLM의 컨텍스트 창에는 한계가 있습니다. - 복잡한 작업을 하나의 프롬프트에 모두 넣으면 일부 단계가 누락되거나 제대로 수행되지 않을 수 있습니다. - 작업을 분리하면 다음과 같은 장점이 있습니다. - 각 단계의 결과를 개별적으로 확인 가능 - 실패하거나 잘못된 단계를 디버깅하기 쉬움 - 이전 분석 결과를 후속 작업의 컨텍스트로 재사용 가능 - 여러 코드 구성 요소에 동일한 분석을 일관되게 적용 가능 - 더 큰 컨텍스트 창을 지원하는 모델에서도, 작업 흐름을 통제하고 검증하기 위해 taskflow 방식이 유용하다고 설명합니다. ## 일반 보안 코드 감사에서의 과제 - 초기에는 CodeQL 경고 분류처럼 범위와 판단 기준이 명확한 작업에 Taskflow Agent를 사용했습니다. - 이후 특정 경고에 한정하지 않고 일반적인 취약점까지 찾는 방식으로 확장했습니다. - LLM에 더 많은 자유를 주면 다음 문제가 커집니다. - 환각 - 오탐 - 검증하기 어려운 취약점 보고 - CodeQL 경고 분류가 효과적이었던 이유는 지시와 판정 기준이 엄격하고, 각 단계에서 결과가 요구사항을 충족하는지 확인할 수 있었기 때문입니다. - 따라서 목표는 LLM이 다양한 취약점을 자유롭게 탐색하게 하면서도 taskflow 설계와 프롬프트 엔지니어링으로 환각과 오탐을 통제하는 것입니다. ## 실용적인 권장 사항 실제 프로젝트에 적용할 때는 한 번의 실행 결과를 확정적인 보안 보고서로 취급하지 말고, 여러 모델과 반복 실행으로 후보를 수집한 뒤 사람이 재현 가능성과 악용 가능성을 검증하는 것이 좋습니다. 또한 저장소 전체를 한 번에 분석하기보다 기능별 구성 요소와 단계별 taskflow로 나누면 결과를 추적하고 수정하기 쉽습니다.