application-security

11 개의 포스트

figma4분 읽기큐레이션 요약

에이전트를 활용해 취약점에 앞서가는 Figma의 방법 | Figma 블로그

Figma는 하나의 보안 정책을 기반으로 AI 에이전트를 코드 작성, 풀 리퀘스트(PR) 리뷰, 과거 코드 감사에 활용한다. 핵심은 단순히 취약점을 많이 찾는 것이 아니라, 정밀도(실제 취약점 비율)와 재현율(실제 취약점 탐지 비율)을 함께 관리해 개발자의 신뢰를 확보하는 것이다. 특히 모든 PR에 적용되는 리뷰 시스템과 사람의 피드백·기존 취약점 재검증을 통해 정책을 지속적으로 개선한다. ## 에이전트 보안의 세 가지 적용 단계 - **코드 생성 단계**: 개발자가 코드를 작성하는 과정에서 취약점을 예방한다. - **PR 리뷰 단계**: 변경된 코드를 검토해 배포 전에 문제를 탐지하고 수정하도록 한다. - **과거 코드 감사 단계**: 오래된 모노레포 전체를 점검해 이미 배포된 취약점을 찾는다. - 세 단계 모두 다음 내용을 포함한 공통 정책을 사용한다. - 신뢰 경계 - 조직이 허용한 위험 - 과거 판단의 선례(precedent) ## 정밀도와 재현율을 함께 측정 - **정밀도(precision)**: - 에이전트가 보고한 결과 중 실제 취약점의 비율이다. - 높을수록 오탐(false positive)이 적다. - **재현율(recall)**: - 실제 존재하는 취약점 중 에이전트가 찾아낸 비율이다. - 높을수록 미탐(false negative)이 적다. - 취약점을 많이 보고하는 것만으로는 충분하지 않다. - 오탐이 많으면 개발자가 도구의 결과를 무시하게 된다. - 반대로 정밀도만 높이고 탐지 범위를 줄이면 중요한 취약점을 놓칠 수 있다. ## PR 리뷰를 먼저 구축한 이유 Figma는 코드 생성이나 전체 저장소 감사보다 개선 주기가 빠른 PR 리뷰부터 만들었다. - **보편성**: 모든 PR이 리뷰 대상이 된다. - **셀프서비스 구조**: 에이전트가 PR에 직접 댓글을 달고, 작성자가 해당 결과에 답변한다. - **양방향 측정**: - 정밀도는 작성자의 thumbs up/down 평가와 설명으로 측정한다. - 재현율은 이미 취약점이 있었던 커밋에 리뷰어를 다시 실행해 놓친 문제를 세는 방식으로 측정한다. - 이렇게 수집한 피드백은 에이전트가 따르는 보안 정책 개선에 반영된다. ## 여러 모델을 병렬로 사용 - Figma는 서로 다른 취약점을 놓치는 모델을 함께 사용한다. - Claude Code의 Opus 4.8, xhigh 노력 수준 - Codex의 GPT-5.6 Sol, high 노력 수준 - 어느 한 모델이라도 문제를 보고하면 결과를 상위 단계로 전달한다. - PR 하나의 리뷰 비용은 중앙값 약 0.50달러이며, 대부분의 PR에는 보고할 문제가 없어 비용이 크게 증가하지 않는다. - Figma는 이 비용이 버그 바운티 지급이나 사용자 피해를 예방하는 효과에 비해 충분히 낮다고 판단한다. ## 실제로 탐지한 취약점 사례 - 복잡한 취약점: - 주입된 샌드박스 객체가 호스트 영역의 `Function` 생성자에 접근할 수 있음을 추론했다. - 이를 통해 데스크톱 클라이언트에서 코드 실행으로 이어지는 경로를 찾아냈다. - 일반적인 접근 제어 취약점: - 송장 조회 API가 호출자가 전달한 송장 ID만 확인하고 소속 조직을 검증하지 않았다. - 인증된 사용자가 ID만 알면 다른 조직의 송장을 읽을 수 있는 IDOR(Insecure Direct Object Reference) 문제였다. - 해결책은 송장 조회 시 인증된 사용자의 조직에 속하는지 함께 확인하는 것이다. ## 초기 도입과 신뢰 확보 - Anthropic이 Claude Code Security Reviewer를 공개한 2025년 8월, Figma는 즉시 도입했다. - 처음에는 개발자 PR 댓글이 아닌 Slack과 Datadog로만 결과를 보내는 shadow mode로 운영했다. - 리뷰어는 두 단계로 동작했다. - 잠재적 취약점 탐색 - 적대적 검토를 통한 오탐 필터링 - 실제 보안 사고를 재현했을 때 근본 원인을 거의 그대로 찾아냈고, 애플리케이션 보안과 인프라 설정 오류 등 여러 영역에도 잘 일반화됐다. - 그러나 첫 주에는 27개 결과 중 4개만 유효해 정밀도가 약 15%에 불과했다. - Figma는 개발자에게 노출하기 위한 기준으로 70% 정밀도를 설정했다. - 10개 중 7개가 유효해야 개발자가 결과를 읽을 것이라는 실용적 기준이다. - 2주간의 관찰 기간 동안 정밀도가 70% 이상이고 심각한 오탐이 없을 때까지 PR 댓글을 보류했다. - 이를 위해 최근 8주간의 PR에 리뷰어를 다시 실행하고, 보안팀이 오탐을 직접 분류했다. - 과거 사례를 기반으로 에이전트가 따라야 할 정책을 작성했다. - 여기서 **선례(precedent)**는 특정 상황에서 어떤 보고가 유효하거나 유효하지 않은지 설명하는 구체적인 사례다. ## 실용적인 결론 AI 보안 에이전트를 도입할 때는 처음부터 모든 개발자에게 결과를 노출하기보다 shadow mode로 운영하며 정밀도를 먼저 확보하는 것이 좋다. 모든 PR에 적용하고, 사람의 결과 평가와 알려진 취약점 재검증을 분리해 수집하면 신뢰성과 탐지력을 함께 개선할 수 있다.

원문 읽기(새 탭에서 열림)
github3분 읽기큐레이션 요약

다음 장: GitHub 버그 바운티 프로그램 개편

GitHub은 버그 바운티 프로그램을 대량 제출보다 고품질·고영향 보안 연구 중심으로 재편한다. 이를 위해 우수 연구자 대상의 영구 VIP 프로그램을 도입하고, 공개 프로그램의 보상 체계와 제출 요건을 변경한다. 새 기준은 2026년 7월 27일 이후 제출된 보고서부터 적용된다. ## 프로그램 개편 배경 - 신규 연구자와 기존 연구자의 제출량 증가로 보고서 처리 대기열이 길어졌다. - 저품질 보고서와 AI로 생성된 보고서가 늘어나면서 중요한 취약점에 집중하기 어려워졌다. - GitHub은 “더 많이 제출할수록 더 많은 보상”이 아니라 “더 나은 취약점을 제출할수록 더 많은 보상”을 제공하는 방향을 택했다. ## 영구 VIP 프로그램 도입 - 지속적으로 고품질·고영향 취약점을 제보한 연구자를 위한 비공개 초대형 프로그램이다. - VIP 연구자에게는 다음 혜택이 제공된다. - 더 높은 보상금 - 더 빠른 응답 - GitHub 보안 엔지니어링 팀과의 긴밀한 협업 - VIP 보상 기준: - Low: **1,000달러** - Medium: **7,500달러** - High: **20,000달러** - Critical: **30,000달러 이상** - 다음 조건 중 하나 이상을 달성하면 VIP 자격을 얻을 수 있다. - Critical 취약점 1건 - High 취약점 2건 - Medium 취약점 4건 - Low 취약점 7건 - 구체적인 자격 기준은 GitHub의 공개 HackerOne 페이지에 게시될 예정이다. ## 공개 버그 바운티 보상 변경 - 공개 프로그램의 보상금은 다음과 같이 고정 금액으로 변경된다. - Low: **250달러** - Medium: **2,000달러** - High: **5,000달러** - Critical: **10,000달러** - 기존의 보상 범위 대신 심각도별 단일 금액을 사용한다. - 고정 금액은 연구자에게 예상 가능한 보상을 제공하고, GitHub의 내부 검토 부담과 불확실성을 줄이기 위한 조치다. - 기대 이상의 연구에는 별도의 재량 보너스가 지급될 수 있다. - 공개 프로그램은 신규 연구자가 탐색하고 실적을 쌓은 뒤 VIP 프로그램으로 진입하는 역할을 계속한다. ## 공개 제출에 신호 요건 적용 - 공개 프로그램에 HackerOne의 신호(signal) 요건이 도입된다. - 아직 충분한 실적이 없는 연구자는 제출 횟수가 제한된다. - HackerOne은 기준 미달 연구자에게 최대 **4회의 초기 제출 기회**를 제공한다. - 이는 신규 연구자를 배제하기 위한 장벽이 아니라, 실제 보안 연구 역량을 확인하고 저노력·AI 생성 보고서를 줄이기 위한 최소 기준이다. ## 유지되는 원칙과 적용 시점 - GitHub은 실제 보안 연구에 대한 신속한 보상과 명확한 커뮤니케이션을 계속 유지한다고 밝혔다. - 변경 시행 전에 제출된 보고서는 기존 보상 체계로 처리된다. - **2026년 7월 27일 이후 제출된 보고서**부터 새로운 보상 및 운영 구조가 적용된다. - 향후에는 응답 속도 개선, 심각도 판정 근거 명확화, 보안 커뮤니티와의 소통 확대도 추진한다. 이번 개편에 참여하려는 연구자는 단순히 보고서 수를 늘리기보다 재현 가능한 검증 절차, 명확한 영향 분석, 높은 심각도의 독창적인 취약점에 집중하는 것이 유리하다. 신규 연구자는 제한된 초기 제출 기회를 활용해 정확하고 완성도 높은 보고서를 제출하는 전략이 중요하다.

원문 읽기(새 탭에서 열림)
gitlab3분 읽기큐레이션 요약

GitLab Duo Security Review, 스캐너가 놓치는 논리 결함 발견

정적 보안 스캐너는 SQL 인젝션이나 하드코딩된 비밀처럼 알려진 패턴에는 강하지만, 애플리케이션의 권한 모델과 업무 흐름을 이해해야 발견할 수 있는 논리적 취약점에는 한계가 있습니다. GitLab Duo Security Review의 Security Review Flow는 MR의 변경 내용을 주변 코드와 함께 분석해 권한 누락, 정보 노출, 비즈니스 로직 오류, 경쟁 조건 등을 찾아냅니다. 퍼블릭 베타 단계이며, 기존 스캐너와 수동 보안 검토를 보완하는 용도로 설계되었습니다. ## 패턴 기반 스캐너가 놓치는 취약점 - 코드 한 줄만 보면 정상적으로 보이지만, 애플리케이션의 도메인 규칙을 위반하는 문제가 주요 대상입니다. - **접근 제어 및 권한 문제** - 객체 ID만 바꿔 다른 사용자의 데이터를 조회하는 BOLA(Broken Object Level Authorization) - 관리자 전용 기능이나 상태 변경 작업에 대한 권한 검사 누락 - **데이터 노출** - 객체를 직렬화해 반환하는 코드는 문법상 문제가 없어도, 민감한 필드가 포함되면 정보 노출이 발생할 수 있습니다. - 어떤 필드가 민감한지, 어떤 사용자가 받아도 되는지는 도메인 지식이 필요합니다. - **제어 흐름과 업무 로직** - 결제 없이 주문 완료 단계에 접근 - 가격을 결정하는 파라미터를 조작 - 특정 상태에 반복 진입 - 동시 요청으로 상태 검증을 우회하는 경쟁 조건(race condition) ## MR마다 보안 판단을 적용하는 Security Review Flow - GitLab Duo Agent Platform의 기능으로, 코드 변경 시점에 보안 검토를 수행합니다. - 다음 유형의 문제를 탐지하도록 설계되었습니다. - 객체 수준 및 함수 수준 권한 우회 - 상태 변경 작업의 권한 검사 누락 - 정보 노출 및 대량 할당(mass assignment) - 비즈니스 로직 오류 - 상태 기반 워크플로의 경쟁 조건 - 수동 보안 리뷰나 침투 테스트를 대체하지 않고 보완합니다. - 수정 비용이 낮은 MR 단계에서 문제를 발견하는 것이 목적이며, GitLab 애플리케이션 보안팀도 내부 MR에 사용해 왔습니다. ## 변경 내용과 주변 맥락을 함께 분석 - MR의 diff뿐 아니라 다음 정보를 함께 검토합니다. - 원본 파일 - 변경된 코드 - MR 토론 내용 - 관련 코드 - 보안 엔지니어처럼 코드의 의도와 실행 흐름을 추론합니다. - 별도의 검증 단계가 각 발견 사항을 다시 점검해 오탐 가능성을 줄입니다. - 발견 결과는 관련 코드 라인의 diff 스레드와 내부 노트에 표시됩니다. - 퍼블릭 프로젝트에서는 보안 세부 정보가 외부에 노출되지 않도록 내부 노트에만 결과가 기록됩니다. ## 발견 사항과 MR 처리 방식 각 결과에는 다음 정보가 포함됩니다. - 취약점 유형과 CWE(Common Weakness Enumeration) 참조 - 심각도: Critical, High, Medium, Low - 분류 등급 - Tier 1: 악용 가능성이 높은 취약점 - Tier 2: 논리적 결함 - Tier 3: 설계 문제 - 문제에 대한 평이한 설명 - 가능한 경우 제공되는 수정 제안 심각도에 따라 MR 상태도 달라집니다. - Critical 또는 High: `Request changes` - Medium 또는 Low: `Comment` - 취약점이 발견되지 않아도 자동 승인하지 않으며, 최종 승인은 항상 사람이 담당합니다. 발견된 문제는 수정 제안 적용, 오탐으로 기각, 위험 수용 중 하나로 처리할 수 있습니다. 수정 후에는 새 검토를 요청해 변경 사항이 해결되었는지 다시 확인합니다. ## 도입 대상과 비용 - Security Review Flow는 GitLab Ultimate 고객을 위한 퍼블릭 베타 기능입니다. - GitLab.com, Self-Managed, Dedicated 환경에서 사용할 수 있습니다. - GitLab Duo Agent Platform 무료 체험 또는 Ultimate 구독에 포함된 GitLab Credits로 이용할 수 있습니다. - 비용은 diff의 복잡도와 선택한 모델에 따라 달라지므로, 전체 적용 전에 일부 MR에서 시험하는 것이 권장됩니다. - 베타 이후 가격은 변경될 수 있습니다. 실무에서는 기존 SAST·시크릿 스캐너를 계속 사용하면서, 인증·인가와 상태 전이가 복잡한 MR에 Security Review Flow를 추가하는 방식이 적절합니다. 특히 결제, 계정 권한, 개인정보, 멀티테넌트 데이터처럼 업무 규칙 위반의 영향이 큰 변경부터 적용하는 것이 효과적입니다.

원문 읽기(새 탭에서 열림)
github1분 읽기큐레이션 요약

GitHub은 시크릿 스캐닝을 활용해 받은편지함을 0으로 만든 방법

Michael Recachinas는 GitHub의 스태프 보안 엔지니어로, 대규모 취약점 관리와 보안 개발 생명주기 도구를 이끌고 있다. 개발자가 보안상 올바른 선택을 쉽게 할 수 있도록, 대규모 환경에서 작동하는 보안 시스템과 자동화 기술을 구축해 온 전문가다. ### GitHub에서의 역할 - GitHub의 대규모 보안 프로그램을 주도한다. - 주요 업무는 다음과 같다. - 취약점 관리 - 보안 개발 생명주기(SDLC) 도구 - 개발자 중심의 보안 자동화 ### 전문성과 경력 - 대규모 시스템을 설계하고 운영한 경험을 보유하고 있다. - 보안 프로세스를 개발자의 업무 흐름에 자연스럽게 통합하는 데 집중한다. - 조직이 보안을 별도의 부담으로 느끼기보다, 안전한 선택을 쉽게 실행하도록 만드는 것을 목표로 한다. 제공된 내용은 기술 블로그 본문이 아니라 저자 소개에 해당하므로, 특정 기술이나 구현 방법에 대한 추가적인 요약은 어렵다.

원문 읽기(새 탭에서 열림)
github4분 읽기큐레이션 요약

기준을 높이다: 품질, 공동의 책임, 그리고 GitHub 버그 바운티 프로그램의 미래

GitHub는 버그 바운티 프로그램을 유지하되, 제출량 증가와 검증되지 않은 보고서 확산에 대응해 심사 기준을 강화하겠다고 밝혔다. AI·스캐너 사용 자체는 환영하지만, 연구자가 실제 영향을 재현하고 검증할 책임이 있다는 점을 강조한다. 또한 사용자가 악성 콘텐츠를 직접 선택·실행하는 경우에는 GitHub의 보안 경계를 우회한 취약점이 아니라 공유 책임 영역으로 보는 원칙을 설명한다. ## 제출량 증가와 품질 문제 - AI와 새로운 보안 도구로 보안 연구 진입 장벽이 낮아지면서 업계 전반의 버그 바운티 제출량이 크게 증가했다. - 정당한 취약점이 늘어난 긍정적 효과도 있지만, 다음과 같은 저품질 보고서도 급증했다. - 실제 동작하는 개념 증명(PoC)이 없음 - 검증되지 않은 이론적 공격 시나리오 - GitHub가 이미 공개한 부적격 항목에 해당 - 보안 영향이 구체적으로 입증되지 않음 - GitHub는 프로그램을 중단하는 대신 제출 품질을 높이는 방향으로 대응한다. ## 강력한 취약점 보고서의 조건 - **작동하는 PoC와 실제 보안 영향** - 단순히 “이론적으로 가능하다”고 설명하는 데 그치지 않아야 한다. - 공격자가 실제로 무엇을 할 수 있는지 재현해야 한다. - 보안 경계를 넘을 수 있다는 사실과 구체적인 결과를 보여줘야 한다. - **범위와 부적격 항목 확인** - 제출 전에 GitHub의 버그 바운티 범위와 부적격 목록을 검토해야 한다. - DMARC/SPF/DKIM 설정 문제, 사용자 열거, 공격 경로가 입증되지 않은 보안 헤더 누락 등은 부적격 사례다. - 이런 보고서는 “해당 없음(Not Applicable)”으로 종료될 수 있으며 HackerOne Signal과 평판에 영향을 줄 수 있다. - **제출 전 직접 검증** - 스캐너, 정적 분석 도구, AI가 발견한 결과라도 사람이 재현하고 확인해야 한다. - 검증되지 않은 오탐은 트리아지 리소스를 낭비하는 잡음에 불과하다. ## AI 활용은 허용되지만 책임은 연구자에게 있음 - GitHub는 AI를 보안 연구에 사용하는 것을 금지하지 않는다. - AI는 공격 표면을 탐색하고 후보 취약점을 찾는 생산성 도구로 활용될 수 있다. - 다만 AI가 생성한 결과도 다음 조건을 충족해야 한다. - 실제 환경에서 검증 - 재현 가능성 확인 - 작동하는 PoC 제공 - 구체적인 보안 영향 설명 - AI뿐 아니라 스캐너와 정적 분석 도구의 결과에도 동일한 기준이 적용된다. - 도구가 아니라 결과물의 정확성과 품질이 평가 대상이며, 보고서의 정확성에 대한 최종 책임은 연구자에게 있다. ## 간결하고 구조화된 보고서 작성 강한 보고서는 다음 세 요소를 포함해야 한다. - **짧은 문제 요약** - **명확한 재현 절차와 증거** - 스크린샷 - HTTP 요청 - 터미널 출력 등 - **영향 설명** - 공격자가 실제로 달성할 수 있는 결과를 구체적으로 기술 반대로 긴 이론적 서술, 이미 알려진 배경의 반복, AI가 생성한 불필요한 문장은 핵심 취약점을 묻히게 해 처리 속도를 늦춘다. ## GitHub의 공유 책임 보안 모델 GitHub는 악성 콘텐츠를 탐지하고 처리하기 위해 자동 스캐닝과 수동 검토 등 다양한 방어 체계를 운영한다. 그러나 모든 콘텐츠를 사전에 신뢰할 수 있는 것은 아니므로, 사용자와 GitHub가 보안을 함께 책임지는 공유 책임 모델을 적용한다. 사용자에게 기대되는 책임은 다음과 같다. - 신뢰할 저장소, 이슈, 코드를 신중하게 선택 - 코드·스크립트·워크플로 등 실행 가능한 콘텐츠를 실행하기 전 검토 - 저장소를 클론하는 행위가 해당 코드에 대한 신뢰를 선택하는 것임을 이해 - 토큰, 자격 증명, 로컬 보안 설정을 안전하게 관리 사용자가 악성 저장소를 직접 클론하거나, 악성 파일을 열거나, 신뢰하지 않는 코드를 AI 도구에 분석하도록 제공해야만 문제가 발생한다면, 이는 대체로 GitHub의 보안 통제를 우회한 사례로 간주되지 않는다. ## 공유 책임 영역의 대표 사례 - 사용자가 직접 AI 도구에 제공한 콘텐츠를 이용한 프롬프트 인젝션 - 사용자가 체크아웃한 저장소에서 Git 훅이나 필터가 코드 실행 - 사용자가 클론한 저장소에 포함된 악성 콘텐츠 - 사용자가 제공한 신뢰할 수 없는 입력을 처리하는 LLM의 예기치 않은 출력 이러한 연구도 가치가 있지만, 실제 보안 통제를 우회해 사용자가 악성 콘텐츠를 적극적으로 신뢰하지 않아도 피해가 발생하는지 입증해야 의미 있는 취약점 보고서가 된다. 실무적으로는 AI나 자동화 도구를 적극 활용하되, 제출 전 반드시 수동 재현과 영향 검증을 수행하는 것이 좋다. 보고서는 “요약-재현 절차-실제 영향” 중심으로 간결하게 작성하고, GitHub의 범위·부적격 목록과 사용자 신뢰가 전제된 보안 모델을 먼저 확인해야 한다.

원문 읽기(새 탭에서 열림)
cloudflare원문

위험한 조합: 작은 신 (새 탭에서 열림)

보안 사고는 종종 단일한 대규모 공격이 아니라, 미세한 설정 오류와 비정상 신호들이 결합된 '독성 조합(Toxic Combinations)'을 통해 발생합니다. 개별적으로는 무해해 보이는 디버그 플래그 노출이나 관리자 페이지 접근 시도가 봇 트래픽 및 비정상적인 맥락과 결합될 때 시스템 침해나 데이터 유출의 결정적인 징후가 됩니다. 클라우드플레어는 이러한 개별 신호들을 통합 분석하여 단순한 요청 차단을 넘어 공격자의 의도와 잠재적 위협을 식별하는 새로운 보안 프레임워크를 제시합니다. ### 독성 조합의 정의와 식별 맥락 기본적인 보안 장비(WAF, API 보호 등)가 개별 요청의 위험도를 평가한다면, 독성 조합 탐지는 여러 신호 사이의 관계와 맥락을 분석합니다. * **봇 신호 분석:** 공격의 자동화 여부를 판단하기 위해 봇 점수(Bot Score)를 활용하며, 낮은 점수의 트래픽이 민감한 경로를 탐색하는지 확인합니다. * **민감 경로 결합:** `/admin`, `/debug`, `/metrics`, `/wp-admin` 등 관리자 권한이나 내부 정보가 노출될 수 있는 경로에 대한 요청을 집중 감시합니다. * **통계적 이상 징후:** 평소와 다른 지리적 접속(Geo jump), 동일한 행위를 반복하는 분산 IP(Rate-limit evasion), 예상치 못한 HTTP 상태 코드 발생 등을 분석합니다. * **설정 오류 식별:** 인증 헤더가 누락되었거나 세션 쿠키가 없는 상태에서 민감한 데이터에 접근하는 시도를 탐지합니다. ### 공격 단계별 분석 및 데이터 현황 클라우드플레어는 24시간 동안의 데이터를 분석하여 실제 공격이 이루어지는 과정을 세 단계로 구분했습니다. * **광범위한 탐색(Probing):** 분석 대상 호스트의 약 11%에서 관리자 페이지 접근 시도가 관찰되었으며, 이는 주로 워드프레스(WordPress) 환경에 집중되었습니다. * **독성 조합 필터링:** 탐색 시도 중 봇 신호와 특정 경로 접근이 결합된 사례를 추출한 결과, 워드프레스 제외 시 약 0.25%의 호스트가 실제 위험에 노출된 것으로 나타났습니다. * **도달 가능성 검증(Reachable):** 단순한 `200 OK` 응답이 실제 성공인지 확인하기 위해 리다이렉션이나 오설정으로 인한 허위 양성(False Positive)을 제거하여 실제 취약한 호스트를 선별합니다. ### 주요 위협 시나리오와 취약점 작은 신호들이 모여 형성되는 대표적인 보안 위협은 다음과 같습니다. * **관리자 엔드포인트 노출:** `/wp-admin`이나 서버 대시보드 스캔을 통해 무차별 대입 공격을 수행하거나, 특정 소프트웨어 버전의 CVE 취약점을 노린 타겟팅 공격으로 이어집니다. * **디버그 플래그 오용:** URL에 `?debug=true`와 같은 파라미터를 추가하여 기술 스택 정보, 환경 변수, 데이터베이스 쿼리 세부 내용을 탈취하려는 시도입니다. * **권한 및 접근 제어 위협:** 인증 헤더가 없는 상태에서 높은 ID 변동성(High ID churn)을 보이는 요청은 IDOR(부적절한 직접 객체 참조)를 통한 데이터 유출 가능성을 시사합니다. ### 보안 강화를 위한 실무 권장사항 * **통합 모니터링:** Cloudflare WAF와 봇 관리 기능을 결합하여 자동화된 스캐닝을 차단하고, Log Explorer를 통해 민감한 경로에 대한 비정상적인 성공 응답을 주기적으로 쿼리해야 합니다. * **디버그 모드 관리:** 운영 환경에서 불필요한 디버그 플래그가 활성화되어 있지 않은지 점검하고, 노출된 관리자 페이지에는 Zero Trust 인증이나 IP 화이트리스팅을 적용하십시오. * **맥락 기반 대응:** 단일 요청 차단에 그치지 않고, 특정 IP나 봇이 수행하는 일련의 행위 패턴을 분석하여 공격의 '의도'를 파악하는 방어 전략을 수립해야 합니다.

gitlab원문

AI는 취약점을 감지할 수 있지만, 누가 위험을 관리하는가? (새 탭에서 열림)

AI의 발전으로 취약점 탐지 및 수정 제안의 자동화가 가속화되고 있으나, 실제 기업 보안의 핵심은 탐지 그 이상인 거버넌스와 위험 관리에 있습니다. 소프트웨어가 AI에 의해 조립되고 의존성이 복잡해지는 현대적 환경에서 단순한 코드 분석만으로는 보안 책임을 다할 수 없으며, 정책 집행과 가시성을 제공하는 통합 플랫폼의 역할이 더욱 중요해지고 있습니다. 결국 AI를 통한 생산성 향상의 성패는 기술 자체보다 이를 안전하게 통제하고 신뢰할 수 있는 거버넌스 체계를 구축하느냐에 달려 있습니다. **AI 신뢰를 뒷받침하는 거버넌스 체계** * AI 시스템(예: Claude Code Security)은 취약점을 식별하고 수정을 제안하는 데 뛰어나지만, 이는 분석일 뿐 책임(Accountability)의 영역은 아닙니다. * 기업의 보안 정책이나 허용 가능한 위험 수준을 정의하는 것은 인간의 영역이며, AI 에이전트가 작동할 경계와 가드레일을 직접 설정해야 합니다. * AI에게 더 많은 자율성을 부여할수록 직무 분리, 감사 추적, 일관된 통제와 같은 강력한 거버넌스가 AI 개발 환경의 신뢰를 지탱하는 기초가 됩니다. **코드 이상의 맥락(Context) 파악의 중요성** * 거대언어모델(LLM)은 개별 코드를 격리된 상태에서 평가하지만, 보안 플랫폼은 해당 코드가 비즈니스에 미치는 영향도와 인프라 간의 상호작용 등 전체 맥락을 이해합니다. * 취약점이 실제 운영 환경에서 실행 가능한 경로에 있는지(Reachable), 혹은 외부 API 및 환경 설정에 의해 실제로 악용될 수 있는지 판단하여 보안 소음을 줄입니다. * 누가 변경을 수행했는지와 애플리케이션의 중요도를 결합한 맥락 정보가 있어야만 개발 속도를 늦추지 않고 효과적인 위험 우선순위 선정이 가능합니다. **동적 위험에 대응하는 지속적 보증** * 소프트웨어 위험은 의존성 변화와 환경 진화에 따라 끊임없이 변하므로, 배포 시점의 일회성 스캔만으로는 안전을 보장할 수 없습니다. * 개발 워크플로에 보안 제어를 직접 삽입하여 빌드, 테스트, 배포 전 과정에서 실시간으로 위험을 평가하는 지속적인 보증(Continuous Assurance) 체계가 필요합니다. * AI 생성 코드와 오픈 소스 라이브러리가 혼재된 복잡한 공급망을 관리하기 위해서는 전체 소프트웨어 수명 주기를 통합적으로 관리하는 오케스트레이션이 필수적입니다. AI 보조 도구는 개발 속도를 획기적으로 높여주지만, 기업은 이를 안전하게 확장하기 위해 거버넌스 중심의 접근 방식을 택해야 합니다. 단순히 똑똑한 AI 어시스턴트를 도입하는 것에 그치지 않고, GitLab과 같은 통합 플랫폼을 통해 정책 집행과 보안 스캔, 감사 기능을 개발 워크플로에 내재화함으로써 AI 시대에 걸맞은 보안 신뢰를 구축할 것을 권장합니다.

gitlab원문

업데이트된 GitLab 보안 대시 (새 탭에서 열림)

업데이트된 GitLab 보안 대시보드는 수많은 취약점 데이터 속에서 단순한 탐지를 넘어 실제적인 복구 우선순위를 설정하고 위험을 관리하는 데 초점을 맞춥니다. 팀은 취약점의 연령 분포, 복구 속도, 프로젝트별 위험 점수(Risk Score)를 시각화하여 가장 시급한 보안 위협에 집중할 수 있으며, 이를 통해 조직 전반의 보안 태세를 정량적으로 측정하고 개선할 수 있습니다. ## 탐지를 넘어선 복구 중심의 통찰력 애플리케이션 보안 팀의 핵심 과제는 단순히 취약점을 찾는 것이 아니라, 방대한 데이터 중에서 어떤 것이 실제적인 위험을 초래하는지 파악하는 것입니다. GitLab 보안 대시보드는 여러 프로젝트와 그룹, 사업 단위에 흩어진 보안 데이터를 하나의 뷰로 통합하여 제공합니다. * 단순한 취약점 개수 나열이 아닌, 데이터에 문맥(Context)을 부여하여 팀이 가장 큰 위험에 노출된 지점을 즉각 파악하도록 돕습니다. * 18.6 버전에서 도입된 시계열 취약점 분석 기능을 바탕으로, 18.9 버전에서는 심각도, 상태, 스캐너 종류 및 프로젝트별로 데이터를 세분화할 수 있는 필터와 차트가 대폭 강화되었습니다. * 복구 속도(Remediation Velocity)와 취약점 연령 분포 등의 지표를 통해 보안 프로그램의 실질적인 효과를 측정할 수 있습니다. ## 리스크 점수를 활용한 우선순위 결정 모든 취약점이 동일한 수준의 위험을 갖지 않으므로, 데이터에 기반한 정밀한 위험 평가 모델을 도입했습니다. * **리스크 점수(Risk Score):** 취약점의 노출 기간, EPSS(Exploit Prediction Scoring System), KEV(Known Exploited Vulnerability) 점수 및 관련 저장소의 보안 상태를 종합하여 계산됩니다. * 보안 팀은 이 점수를 통해 프로덕션 시스템에 가장 큰 위협이 되는 요소를 식별하고 리소스를 집중 투입할 수 있습니다. * 특정 팀이나 프로젝트에서 정책에 따른 복구가 지연되는 지점을 파악하여, 추가적인 교육이나 지원이 필요한 영역을 데이터로 증명할 수 있습니다. ## 개발자와 경영진을 위한 통합 워크플로우 보안 대시보드는 보안 전문가뿐만 아니라 경영진과 개발자 모두에게 일관된 보안 가시성을 제공하여 협업을 효율화합니다. * **경영진 보고 최적화:** 외부 대시보드나 스프레드시트 작업 없이도 취약점 백로그 감소 추세, CWE 유형별 개선 현황, 전반적인 리스크 점수 변화를 시각화하여 투자 대비 보안 성과를 증명할 수 있습니다. * **개발자 생산성 향상:** 개발자는 도구를 전환하거나 데이터를 내보낼 필요 없이 GitLab 내에서 활성 프로젝트의 치명적인 취약점을 즉시 확인하고 조치할 수 있습니다. * **수동 보고 절차 간소화:** 모든 추적 작업이 GitLab 플랫폼 내에서 통합 관리되므로 수동 보고서 작성에 드는 시간을 줄이고 실제 복구 작업에 더 많은 시간을 할애할 수 있습니다. 조직은 업데이트된 보안 대시보드를 활용하여 보안 부채를 체계적으로 줄이고, 단순히 취약점을 발견하는 수준을 넘어 보안 사고 발생 가능성을 실질적으로 낮추는 데이터 중심의 DevSecOps 환경을 구축할 것을 권장합니다.

meta원문

대규모 환경의 Rust (새 탭에서 열림)

WhatsApp은 최근 30억 명 이상의 사용자들을 멀웨어 위협으로부터 보호하기 위해 미디어 처리 라이브러리를 Rust 언어로 재구축하여 성공적으로 배포했습니다. 이는 글로벌 규모의 서비스에서 Rust가 프로덕션 환경에 적합함을 증명한 사례로, 특히 메모리 안전성이 취약한 C/C++ 기반의 미디어 파싱 라이브러리에서 발생할 수 있는 보안 취약점을 근본적으로 해결하는 데 중점을 두었습니다. 결과적으로 WhatsApp은 성능과 메모리 효율성을 동시에 개선하면서도 사용자 보안을 한층 더 강화하는 성과를 거두었습니다. **미디어 보안의 취약점과 대응의 역사** - 이미지나 영상처럼 무해해 보이는 파일도 운영체제의 취약점을 공격하는 악성 코드를 포함할 수 있으며, 2015년 안드로이드의 'Stagefright' 취약점이 대표적인 사례입니다. - 당시 WhatsApp은 OS 라이브러리의 패치를 기다리는 대신, 자체 개발한 C++ 기반의 미디어 일관성 검사 라이브러리인 'wamedia'를 통해 표준을 준수하지 않는 파일을 사전에 차단하는 방식을 택했습니다. - 하지만 미디어 체크 로직 자체가 신뢰할 수 없는 입력을 자동으로 처리하기 때문에, 이 라이브러리 자체의 메모리 안전성을 확보하는 것이 보안의 핵심 과제로 떠올랐습니다. **Rust를 통한 대규모 현대화 및 성능 개선** - WhatsApp은 점진적인 수정 대신 기존 C++ 버전과 병행하여 Rust 버전의 라이브러리를 새롭게 개발했습니다. - 두 언어 간의 호환성을 보장하기 위해 '디퍼런셜 퍼징(Differential Fuzzing)'과 광범위한 통합 테스트를 거쳐 안전성을 검증했습니다. - 기존 160,000줄의 C++ 코드를 90,000줄의 Rust 코드로 대체했으며, 결과적으로 이전보다 더 우수한 성능과 낮은 런타임 메모리 사용량을 기록했습니다. - 안드로이드, iOS, 웹, 웨어러블 등 다양한 플랫폼 지원을 위한 빌드 시스템 구축과 바이너리 크기 최적화라는 기술적 난관을 극복하고 글로벌 배포를 완료했습니다. **다층 방어 체계 'Kaleidoscope'의 구축** - Rust로 작성된 이 라이브러리들은 'Kaleidoscope'라 불리는 종합 보안 체크 시스템의 핵심 구성 요소입니다. - 단순히 파일 구조의 결함을 찾는 것을 넘어, PDF 내의 스크립트 요소나 임베디드 파일, 확장자를 위조한 MIME 타입 변조 등을 감지합니다. - 실행 파일이나 앱 설치 파일과 같은 위험한 파일 형식을 식별하여 사용자 인터페이스(UX) 차원에서 특별 관리함으로써 비공식 클라이언트나 악성 첨부파일로부터 사용자를 보호합니다. **메모리 안전 언어 중심의 보안 로드맵** - WhatsApp의 분석에 따르면 심각도가 높은 취약점의 대부분은 C/C++의 메모리 관리 문제에서 발생하며, 이를 해결하기 위해 새로운 코드 작성 시 메모리 안전 언어(Memory Safe Language)를 기본으로 선택하고 있습니다. - 불필요한 공격 표면을 최소화하고, 기존 C/C++ 코드에 대해서는 강화된 메모리 할당자와 보안 버퍼 API를 적용하는 등 보안 보증 투자를 병행하고 있습니다. - 이번 Rust 도입의 성공을 바탕으로 향후 더 많은 영역에 Rust 채택을 가속화하여 내부 방어 체계를 지속적으로 강화할 계획입니다. **결론 및 제언** WhatsApp의 사례는 보안이 중요한 클라이언트 사이드 애플리케이션에서 Rust가 단순한 대안을 넘어 최고의 선택지가 될 수 있음을 보여줍니다. 특히 외부에서 유입되는 미가공 데이터를 파싱해야 하는 시스템이라면, 메모리 안전성이 보장되는 Rust로의 전환을 통해 보안 사고의 근본 원인을 제거하고 운영 효율성을 높이는 전략을 적극 검토할 필요가 있습니다.

meta원문

AI가 기본적으로 안전한 모바일 프레임워크 채택을 어떻게 변화시키고 있는가 (새 탭에서 열림)

Meta는 잠재적으로 위험한 OS 및 서드파티 기능을 안전한 기본값(Secure-by-default)으로 래핑하는 프레임워크를 통해 개발자의 속도를 유지하면서도 보안을 강화하고 있습니다. 이러한 프레임워크는 기존 API와 유사한 구조를 가져가고 공개된 안정적 API를 기반으로 설계되어 개발자의 마찰을 최소화하고 채택률을 극대화합니다. 특히 생성형 AI와 자동화 기술을 결합함으로써 대규모 코드베이스 전반에 걸쳐 취약한 패턴을 식별하고 보안 프레임워크로의 전환을 가속화하고 있습니다. ### 기본 보안 프레임워크의 설계 원칙 * **기존 API와의 유사성 유지**: 보안 API를 기존의 익숙한 API와 유사하게 설계하여 개발자의 인지적 부담을 줄이고, 불안전한 코드에서 안전한 코드로의 자동 변환을 용이하게 합니다. * **공개 및 안정적 API 기반 구축**: OS 제조사나 서드파티의 비공개 API 대신 공개된 안정적 API 위에 프레임워크를 빌드하여, OS 업데이트 시 발생할 수 있는 호환성 문제와 유지보수 위험을 방지합니다. * **범용적 사용성 확보**: 특정 보안 사례에만 국한되지 않고 다양한 앱과 OS 버전에서 폭넓게 사용할 수 있도록 소규모 라이브러리 형태로 설계하여 배포와 유지보수의 효율성을 높입니다. ### SecureLinkLauncher(SLL)를 통한 인텐트 하이재킹 방지 * **인텐트 유출 차단**: Android의 인텐트 시스템을 통해 민감한 정보가 외부로 유출되는 '인텐트 하이재킹' 취약점을 해결하기 위해 개발되었습니다. * **의미론적 API 래핑**: `startActivity()`나 `startActivityForResult()` 같은 표준 Android API를 `launchInternalActivity()`와 같은 보안 API로 래핑하여, 내부적으로 보안 검증 절차를 거친 후 안전하게 인텐트를 전송합니다. * **범위 검증(Scope Verification) 강제**: 인텐트가 타겟팅하는 패키지를 명확히 제한함으로써, 악성 앱이 동일한 인텐트 필터를 사용하여 민감한 데이터를 가로채는 것을 원천적으로 방지합니다. ### AI 및 자동화를 활용한 보안 채택 가속화 * **취약 패턴 자동 식별**: 생성형 AI 도구를 활용하여 방대한 코드베이스 내에서 보안에 취약한 API 사용 패턴을 실시간으로 감지합니다. * **코드 마이그레이션 자동화**: AI가 안전하지 않은 API 호출을 적절한 보안 프레임워크 호출로 자동 교체하거나 수정 제안을 제공하여 대규모 코드 전환 비용을 절감합니다. * **일관된 보안 규정 준수**: 자동화된 모니터링을 통해 개발 초기 단계부터 보안 프레임워크 사용을 강제함으로써 전체 에코시스템의 보안 수준을 상향 평준화합니다. 보안을 위해 개발자 경험(DX)을 희생하는 대신, 기존 개발 워크플로우에 자연스럽게 스며드는 도구를 제공하는 것이 핵심입니다. 특히 대규모 조직일수록 AI를 활용한 자동 마이그레이션 전략을 병행하여 보안 프레임워크의 도입 장벽을 낮추고 코드의 안전성을 지속적으로 유지할 것을 권장합니다.

figma3분 읽기큐레이션 요약

서버 측 샌드박싱

서버 측 샌드박싱은 악성 입력을 처리하는 애플리케이션의 취약점이 전체 인프라로 확산되는 것을 막는 방어 계층이다. 이미지·데이터 처리 라이브러리처럼 메모리 안전성이 낮고 취약점이 반복적으로 발견되는 소프트웨어를 완전히 제거하거나 재작성하기는 현실적으로 어렵기 때문에, VM·컨테이너·seccomp 등을 이용해 실행 환경과 접근 가능한 자원을 제한해야 한다. 중요한 것은 특정 기술 하나를 선택하는 것이 아니라 보안성, 운영 복잡도, 성능, 격리 수준 사이의 트레이드오프를 workload 특성에 맞게 평가하는 것이다. ## 사용자 입력을 처리할 때 발생하는 위험 - 이미지 처리, 파싱, 압축, 썸네일 생성은 SaaS 애플리케이션에서 흔히 필요한 작업이다. - 이러한 기능은 C++ 같은 메모리 비안전 언어로 작성된 라이브러리에 의존하는 경우가 많다. - 해당 라이브러리는 원래 악의적인 입력을 처리하도록 설계되지 않았으며, 메모리 손상 취약점이 반복적으로 발견되어 왔다. - 대표적인 사례가 2016년 ImageMagick에서 발견된 **ImageTragick**이다. - 사용자가 제공한 이미지를 서버에서 처리하는 서비스가 원격 코드 실행 공격에 노출될 수 있었다. - 모든 버그와 취약점을 사전에 제거하는 것은 사실상 불가능하므로, 취약점이 발생하더라도 피해 범위를 제한하는 방어책이 필요하다. ## 서버 측 샌드박싱의 역할 - 샌드박싱은 애플리케이션이나 작업을 제한된 환경에서 실행하는 **workload isolation** 기법이다. - 공격자가 취약한 작업을 장악하더라도 다음과 같은 접근을 제한하는 것이 목표다. - 다른 작업의 사용자 데이터 - 운영 환경의 내부 서비스 - 파일 시스템과 네트워크 자원 - 추가 시스템으로의 lateral movement - Figma는 C++로 작성된 서버 측 렌더링 시스템인 RenderServer와 사용자 생성 그래픽 데이터를 처리하는 서드파티 라이브러리를 사용한다. - 이러한 작업을 인프라 내부에서 직접 실행하면 단 하나의 심각한 버그가 다른 사용자 데이터나 운영 시스템 침해로 이어질 수 있다. - 모든 unsafe 코드를 메모리 안전 언어로 다시 작성하고 정적 분석으로 정확성을 증명하는 방법도 있지만, 비용과 시간이 크며 완벽한 보안을 보장하지도 않는다. - 따라서 취약점 예방과 함께, 취약점이 악용되었을 때 영향 범위를 줄이는 격리 전략을 병행한다. ## VM, 컨테이너, seccomp - 글에서는 서버 측 샌드박싱의 대표적인 구현 방식으로 다음 세 가지를 소개한다. - **가상 머신(VM)**: 하이퍼바이저 위에서 각 게스트 운영체제를 실행한다. 인프라와 작업 사이에 하이퍼바이저 및 게스트 OS 계층이 존재한다. - **컨테이너**: 호스트 운영체제의 기능과 커널을 공유하면서 컨테이너 엔진을 통해 작업을 분리한다. VM보다 가볍게 실행할 수 있지만 격리 특성이 다르다. - **seccomp**: 프로세스가 호출할 수 있는 시스템 콜을 제한하는 Linux 보안 기능이다. - 각 방식은 격리 강도, 실행 비용, 성능, 시작 시간, 운영 편의성, 설정 복잡도 등에서 서로 다른 특성을 가진다. - 실제 환경에서는 단일 기술만 사용하기보다 workload의 신뢰 수준과 필요한 권한에 따라 여러 샌드박싱 primitive를 조합할 수 있다. ## 샌드박싱 선택 시 고려할 점 - 샌드박싱은 보안 취약점을 없애는 기술이 아니라, 취약점이 발생했을 때 공격의 범위와 피해를 제한하는 방어 계층이다. - 선택 과정에서는 다음을 함께 검토해야 한다. - 처리 대상이 사용자 입력인지, 내부에서 신뢰할 수 있는 데이터인지 - 작업이 필요한 파일·네트워크·시스템 콜의 범위 - 강한 격리에 필요한 성능 및 비용 - 샌드박스의 생성·폐기와 패치·모니터링 운영 부담 - 샌드박스 자체의 탈출 가능성과 호스트에 미치는 영향 - 샌드박싱 기술은 과거보다 안정적이고 실용적으로 발전했지만, 여전히 보안 연구와 운영 경험이 중요한 분야다. 악성 입력을 처리하는 기능은 메모리 안전 언어로의 전환만으로 보호하려 하기보다, 최소 권한과 강한 실행 격리를 함께 적용하는 것이 현실적이다. 특히 사용자 데이터를 다루는 고위험 작업은 VM이나 컨테이너 격리를 검토하고, 불필요한 시스템 콜은 seccomp로 추가 제한하는 접근이 유용하다.

원문 읽기(새 탭에서 열림)