InfoGrab DocsInfoGrab Docs

보안 코딩 개발 가이드라인

보안 코딩 개발 가이드라인 관련 내용을 설명합니다.

보안 코딩 개발 가이드라인 # 이 문서는 GitLab 코드베이스에서 일반적으로 발견되는 보안 취약점에 대한 설명과 가이드라인을 담고 있습니다. 개발자가 잠재적인 보안 취약점을 조기에 식별하고, 시간이 지남에 따라 릴리즈되는 취약점 수를 줄이는 것을 목표로 합니다. SAST 커버리지 # 이 문서에 나열된 각 취약점에 대해 AppSec은 CI 파이프라인에서 실행되는 semgrep 규칙(또는 RuboCop 규칙) 형태의 SAST 규칙을 보유하는 것을 목표로 합니다. 아래는 모든 기존 가이드라인과 커버리지 상태를 나타내는 표입니다: Guideline Status Rule Regular Expressions ✅ 1 ReDOS ✅ 1, 2, 3 JWT ❌ Pending SSRF ✅ 1, 2 XSS ✅ 1, 2 XXE ✅ 1, 2, 3, 4 Path traversal (Ruby) ✅ 1 Path traversal (Go) ✅ 1 OS command injection (Ruby) ✅ 1 OS command injection (Go) ✅ 1 Insecure TLS ciphers ✅ 1 Archive operations (Ruby) ✅ 1 Archive operations (Go) ✅ 1 URL spoofing ✅ 1 Request Parameter Typing ✅ StrongParams RuboCop Paid tiers for vulnerability mitigation N/A 새 가이드라인 및 규칙 생성 프로세스 # 기존 문서 중 하나에 기여하거나 새로운 취약점 유형에 대한 가이드라인을 추가하고 싶다면 MR을 열어 주세요! 발견된 취약점 사례 링크와 정의된 완화 방법에 사용된 리소스 링크를 포함해 주세요. 질문이 있거나 리뷰가 준비되면 gitlab-com/gl-security/appsec 을 핑해 주세요. 모든 가이드라인에는 지원하는 semgrep 규칙 또는 RuboCop 규칙이 있어야 합니다. 가이드라인을 추가하는 경우 이에 대한 이슈를 열고, 가이드라인 MR에서 해당 이슈에 링크하세요. 또한 위의 “SAST 커버리지” 표에 가이드라인을 추가하세요. 새 semgrep 규칙 생성 # SAST 커스텀 규칙 프로젝트에 추가해야 합니다. 각 규칙에는 rule_name.rb 또는 rule_name.go 로 이름이 설정된 테스트 파일이 있어야 합니다. 각 규칙은 YAML 파일에 명확한 개발자 지침이 담긴 잘 정의된 message 필드를 가져야 합니다. 심각도는 AppSec의 개입이 필요 없는 낮은 심각도 이슈의 경우 INFO 로, AppSec 검토가 필요한 이슈의 경우 WARNING 으로 설정해야 합니다. 봇이 그에 따라 AppSec을 핑합니다. 새 RuboCop 규칙 생성 # RuboCop 개발 문서 를 따르세요. 예시는 gitlab-qa 프로젝트에 규칙을 추가하는 이 머지 리퀘스트 를 참조하세요. cop 자체는 gitlab-security gem 프로젝트 에 위치해야 합니다. 권한 # 설명 # 애플리케이션 권한은 누가 무엇에 접근할 수 있고 어떤 작업을 수