보안 권고(security advisory)
보안 권고(security advisory)
보안 취약점 관련 정보를 알리는 방법을 소개할게요. pub은 Dart와 Flutter 패키지의 보안 권고를 게시하는 데 GitHub Advisory Database를 사용해요. 패키지에 취약점이 있다는 경고가 어떻게 뜨고, 어떻게 대처하거나 무시할 수 있는지 살펴볼게요.
본문
보안 권고(security advisory)는 보안 취약점에 대한 정보를 알리는 수단이에요. pub은 Dart와 Flutter 패키지의 보안 권고를 게시하기 위해 GitHub Advisory Database를 사용해요.
여러분의 GitHub 저장소에 권고를 만들려면, GitHub의 저장소 보안 권고 만들기 문서에 나와 있는 대로 GitHub의 보안 권고 보고 메커니즘을 사용하세요. 먼저 초안(draft) 보안 권고를 만들면, GitHub가 이를 검토한 뒤 중앙 권고 데이터베이스에 반영해요.
pub 클라이언트에서의 보안 권고
pub 클라이언트는 의존성 해석(dependency resolution) 시점에 보안 권고를 표시해요. 예를 들어 dart pub get을 실행하면 다음과 같은 출력이 나와요.
$ dart pub get
Resolving dependencies...
http 0.13.0 (affected by advisory: [^0], 1.2.0 available)
Got dependencies!
Dependencies are affected by security advisories:
[^0]: https://github.com/advisories/GHSA-4rgh-jx4f-qfcq
해석 과정에서 권고가 확인되면, Dart 팀은 그 링크를 방문해 권고 내용을 검토할 것을 권해요. 취약점이 여러분의 패키지에 영향을 준다고 판단되면, 영향을 받지 않는 버전의 의존 패키지로 업그레이드하는 걸 강력히 고려하세요.
보안 권고 무시하기
보안 권고가 여러분의 애플리케이션과 관련이 없다면, 권고 식별자를 패키지 pubspec.yaml의 ignored_advisories 목록에 추가해서 경고를 숨길 수 있어요. 예를 들어 다음은 GHSA 식별자 GHSA-4rgh-jx4f-qfcq 권고를 무시해요.
name: myapp
dependencies:
foo: ^1.0.0
ignored_advisories:
- GHSA-4rgh-jx4f-qfcq
ignored_advisories 목록은 루트 패키지에만 영향을 줘요. 의존 패키지에서 무시한 권고는 여러분 패키지의 의존성 해석에는 아무 효과가 없어요.
더 알아보기
- GitHub Advisory Database — Dart·Flutter 패키지 보안 권고가 게시되는 곳.
- ignored_advisories 필드 — pubspec에서 보안 권고를 무시하는 방법.