จัดการฟีเจอร์และการแจ้งเตือนการรักษาความปลอดภัยขั้นสูงของ GitHub
เมื่อตั้งค่าการรักษาความปลอดภัยสําหรับโครงการของคุณแล้วสิ่งที่คุณต้องทําคือตรวจสอบและจัดการคุณสมบัติและการแจ้งเตือน GitHub Advanced Security สําหรับโครงการของคุณ
ในหน่วยนี้ คุณจะได้เรียนรู้วิธีใช้ ภาพรวมความปลอดภัย เพื่อตรวจสอบความเสี่ยงด้านความปลอดภัยในโครงการของคุณ นอกจากนี้ คุณยังจะได้เรียนรู้วิธีใช้ปลายทาง GitHub Advanced Security เพื่อจัดการคุณลักษณะด้านความปลอดภัยและการแจ้งเตือน
ใช้ภาพรวมการรักษาความปลอดภัย
ภาพรวมความปลอดภัยพร้อมใช้งานในแท็บ ความปลอดภัยและคุณภาพ สําหรับองค์กรและที่เก็บ คุณสามารถใช้เพื่อรับมุมมองระดับสูงของเสถียรภาพการรักษาความปลอดภัยขององค์กรของคุณ หรือระบุที่เก็บที่ต้องให้ความสนใจ
- ระดับองค์กร: แสดงข้อมูลความปลอดภัยแบบรวมและเฉพาะที่เก็บสําหรับที่เก็บที่องค์กรเป็นเจ้าของ ข้อมูลยังสามารถกรองได้ตามคุณสมบัติความปลอดภัย
- ระดับทีม: แสดงข้อมูลความปลอดภัยเฉพาะที่เก็บสําหรับที่เก็บที่ทีมมีสิทธิ์ของผู้ดูแลระบบ
- ระดับที่เก็บ: แสดงคุณลักษณะด้านความปลอดภัยที่เปิดใช้งานสําหรับที่เก็บ และมีตัวเลือกในการกําหนดค่าคุณลักษณะที่พร้อมใช้งานซึ่งไม่ได้เปิดใช้งานอยู่ในขณะนี้
ด้วยอินเทอร์เฟซแบบโต้ตอบและความสามารถในการกรอง Security Overview รองรับการวิเคราะห์ความปลอดภัยทั้งแบบกว้างและแบบกําหนดเป้าหมาย
ตัวอย่างเช่น คุณสามารถใช้เพื่อ:
- ตรวจสอบการนําคุณลักษณะด้านความปลอดภัยไปใช้ทั่วทั้งองค์กรของคุณ
- ติดตามการนําไปใช้โดยแต่ละทีมในระหว่างการเปิดตัว GitHub Advanced Security
- ตรวจสอบการแจ้งเตือนของชนิดหรือความรุนแรงที่เฉพาะเจาะจงในที่เก็บทั้งหมด
ใช้ปลายทาง GitHub Advanced Security
ตารางต่อไปนี้สรุปตําแหน่งข้อมูล API ที่พร้อมใช้งานสําหรับคุณลักษณะ GitHub Advanced Security แต่ละรายการ
| คุณลักษณะของ | จุดสิ้นสุด | เอกสารประกอบ |
|---|---|---|
| การสแกนโค้ด | ดึงและอัปเดตการแจ้งเตือนการสแกนโค้ด สร้างรายงานอัตโนมัติสําหรับองค์กร อัปโหลดผลการวิเคราะห์ CodeQL แบบออฟไลน์ |
API การสแกนโค้ด |
| การสแกนข้อมูลลับ | เปิดหรือปิดใช้งานการสแกนข้อมูลลับสําหรับที่เก็บ ดึงและอัปเดตการแจ้งเตือนการสแกนลับ |
API ที่เก็บ API การสแกนลับ |
| ตรวจทานการขึ้นต่อกัน | เปิดหรือปิดการแจ้งเตือนการขึ้นต่อกันและกราฟการขึ้นต่อกัน เปิดหรือปิดใช้งานการแก้ไขความปลอดภัย ดูข้อมูลการขึ้นต่อกัน |
API ที่เก็บ API กราฟคิวแอล |
กําหนดค่า GITHUB_TOKEN สิทธิ์
หากคุณใช้ GitHub Actions เพื่อทําให้เวิร์กโฟลว์การรักษาความปลอดภัยเป็นแบบอัตโนมัติ สิ่งสําคัญคือต้องกําหนดค่าสิทธิ์ที่มอบให้กับที่ใช้GITHUB_TOKENสําหรับการเรียก API ที่รับรองความถูกต้อง
ตารางต่อไปนี้สรุปสิทธิ์เริ่มต้น
| ขอบเขต | การเข้าถึงเริ่มต้น (อนุญาต) | การเข้าถึงเริ่มต้น (จํากัด) | การเข้าถึงสูงสุดจากที่เก็บแบบแยก |
|---|---|---|---|
| การดําเนินการ | อ่าน/เขียน | ไม่มีใคร | อ่าน |
| ตรวจ สอบ | อ่าน/เขียน | ไม่มีใคร | อ่าน |
| เนื้อหา | อ่าน/เขียน | อ่าน | อ่าน |
| การปรับใช้ | อ่าน/เขียน | ไม่มีใคร | อ่าน |
| id-token | อ่าน/เขียน | ไม่มีใคร | อ่าน |
| ปัญหา | อ่าน/เขียน | ไม่มีใคร | อ่าน |
| เมตาดาต้า | อ่าน | อ่าน | อ่าน |
| แพ คเกจ | อ่าน/เขียน | ไม่มีใคร | อ่าน |
| pull-requests (คําขอดึงข้อมูล) | อ่าน/เขียน | ไม่มีใคร | อ่าน |
| ที่เก็บ-โครงการ | อ่าน/เขียน | ไม่มีใคร | อ่าน |
| security-events (เหตุการณ์การรักษาความปลอดภัย) | อ่าน/เขียน | ไม่มีใคร | อ่าน |
| สถานะ | อ่าน/เขียน | ไม่มีใคร | อ่าน |
คุณสามารถปรับเปลี่ยนสิทธิ์ที่ GITHUB_TOKEN มอบให้ในแฟ้มเวิร์กโฟลว์แต่ละแฟ้มได้
- ถ้าสิทธิ์เริ่มต้นมี ข้อจํากัด คุณอาจต้องเพิ่มสิทธิ์เพื่อให้เวิร์กโฟลว์สามารถดําเนินการให้เสร็จสมบูรณ์ได้
- ถ้าสิทธิ์เริ่มต้นเป็น สิทธิ์อนุญาต คุณควรลบสิทธิ์ที่ไม่จําเป็นออก
แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย ให้สิทธิ์ ขั้นต่ํา ที่จําเป็นเสมอ
คุณยังสามารถใช้คีย์เพื่อ permissions กําหนดค่าสิทธิ์สําหรับเวิร์กโฟลว์ทั้งหมดหรือแต่ละงาน เมื่อ permissions ระบุสิทธิ์ที่ไม่ระบุทั้งหมดจะถูกตั้งค่าเป็น ไม่มียกเว้นขอบเขต ข้อมูลเมตา ซึ่งจะได้รับการเข้าถึง การอ่าน เสมอ
name: Create issue on commit
on:
- push
jobs:
create_commit:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Create issue using REST API
run: |
curl --request POST \
--url http(s)://[hostname]/api/v3/repos/${{ github.repository }}/issues \
--header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
--header 'content-type: application/json' \
--data '{
"title": "Automated issue for commit: ${{ github.sha }}",
"body": "This issue was automatically created by the GitHub Action workflow **${{ github.workflow }}**.\n\nThe commit hash was: _${{ github.sha }}_."
}' \
--fail
ในตัวอย่างก่อนหน้านี้ การเข้าถึงการเขียนจะได้รับสิทธิ์ให้กับขอบเขต ปัญหา สําหรับงานเดียว
คุณยังสามารถใช้คีย์เพื่อเพิ่ม permissions หรือลบสิทธิ์การอ่านสําหรับเวิร์กโฟลว์ที่ทริกเกอร์จากที่เก็บแบบแยก โดยทั่วไปจะไม่สามารถให้สิทธิ์ในการเขียนได้ เว้นแต่จะเปิดใช้งานตัวเลือก ส่งโทเค็นการเขียนไปยังเวิร์กโฟลว์จากคําขอดึงข้อมูลในการตั้งค่า GitHub Actions
มุมมองการตรวจหา การแก้ไข และการป้องกัน
ภาพรวมความปลอดภัยจัดระเบียบข้อมูลเชิงลึกเป็นมุมมองหลักสามมุมมอง
| ทิวทัศน์ | วัตถุประสงค์ |
|---|---|
| การตรวจจับ | ตรวจสอบตําแหน่งที่ค้นพบช่องโหว่ ความลับ และความเสี่ยงในการพึ่งพา |
| การแก้ไข | ติดตามวิธีแก้ไข จัดลําดับความสําคัญ และแก้ไขการแจ้งเตือนในที่เก็บต่างๆ |
| การป้องกัน | วัดวิธีป้องกันช่องโหว่ก่อนที่จะไปถึงสาขาที่ได้รับการป้องกัน |
มุมมอง การป้องกัน ช่วยให้องค์กรประเมินว่าการควบคุมความปลอดภัยสามารถหยุดการเปลี่ยนแปลงที่มีความเสี่ยงได้อย่างมีประสิทธิภาพเพียงใดก่อนที่จะรวมเข้าด้วยกัน
ตัวอย่างเช่น:
- แก้ไขช่องโหว่ระหว่างการตรวจสอบคําขอดึงข้อมูล
- ผลการสแกนโค้ดได้รับการแก้ไขก่อนการผสาน
- กิจกรรมการแก้ไข Copilot Autofix
- เหตุการณ์การป้องกันการผลักดันการสแกนลับ
- ป้องกันความเสี่ยงจากการพึ่งพา
การตีความการแจ้งเตือนในคุณลักษณะด้านความปลอดภัย
ภาพรวมความปลอดภัยจะรวบรวมข้อมูลจากคุณลักษณะด้านความปลอดภัยของ GitHub หลายรายการเพื่อช่วยให้ทีมเข้าใจความเสี่ยงขององค์กร
แหล่งที่มาของการแจ้งเตือนทั่วไป ได้แก่
- การแจ้งเตือนการสแกนโค้ด: ช่องโหว่และรูปแบบการเข้ารหัสที่ไม่ปลอดภัยที่ตรวจพบโดย CodeQL หรือสแกนเนอร์ของบริษัทอื่น
- การแจ้งเตือนการสแกนลับ: ข้อมูลเข้าสู่ระบบ คีย์ API และโทเค็นที่เปิดเผย
- การแจ้งเตือน Dependabot: การพึ่งพาที่มีช่องโหว่และความเสี่ยงของแพ็คเกจ
- การตรวจสอบการพึ่งพา: ความเสี่ยงที่เกิดจากการเปลี่ยนแปลงการพึ่งพาในคําขอดึงข้อมูล
ทีมสามารถกรองการแจ้งเตือนตาม:
- ความร้ายแรง
- คลังเก็บ
- ชนิดฟีเจอร์
- ช่วงระยะเวลา
- ความเป็นเจ้าของทีม
- สถานะการแจ้งเตือน
ตัวกรองเหล่านี้รองรับทั้งการวิเคราะห์ทั่วทั้งองค์กรและการตรวจสอบที่มุ่งเน้น
การติดตามการแก้ไขและข้อมูลเชิงลึกเกี่ยวกับการแก้ไขอัตโนมัติ
ภาพรวมความปลอดภัยยังช่วยตรวจสอบความคืบหน้าการแก้ไขอีกด้วย
ทีมรักษาความปลอดภัยสามารถติดตาม:
- แก้ไขการแจ้งเตือนคําขอดึงข้อมูลก่อนการผสาน
- แนวโน้มการแก้ไข
- คําขอดึงข้อมูลที่สร้างขึ้นโดย Copilot Autofix
- การตรวจสอบความถูกต้องและอัตราการรวมเสร็จสมบูรณ์
- ที่เก็บที่มีการแจ้งเตือนที่ยังไม่ได้รับการแก้ไขที่เกิดซ้ํา
ข้อมูลเชิงลึกเหล่านี้ช่วยให้องค์กรระบุปัญหาคอขวด จัดลําดับความสําคัญของที่เก็บที่มีความเสี่ยงสูง และวัดประสิทธิภาพการแก้ไข
การมองเห็นเหตุการณ์บายพาสและสัญญาณการกํากับดูแล
ภาพรวมความปลอดภัยยังแสดงเมตริกการกํากับดูแลและนโยบายทั่วทั้งองค์กร
ตัวอย่างเช่น:
- เหตุการณ์บายพาสการป้องกันแบบพุช
- กิจกรรมการบังคับใช้การป้องกันสาขา
- แจ้งเตือนแนวโน้มการเลิกจ้าง
- กิจกรรมบันทึกการตรวจสอบ
- การนํานโยบายไปใช้และเมตริกความคุ้มครอง
เมตริกเหล่านี้ช่วยให้ผู้ดูแลระบบเข้าใจสิ่งต่อไปนี้
- ที่ที่ผู้ใช้ข้ามการป้องกัน
- นโยบายต้องมีการปรับแต่งหรือไม่
- มีการบังคับใช้การควบคุมความปลอดภัยอย่างสม่ําเสมอหรือไม่
เมื่อรวมกับบันทึกการตรวจสอบ ชุดกฎ และนโยบายการป้องกันสาขา ข้อมูลเชิงลึกเหล่านี้จะสนับสนุนการรายงานการปฏิบัติตามข้อกําหนด
บทบาทและความรับผิดชอบด้านความปลอดภัย
การนํา GitHub Advanced Security มาใช้ที่ประสบความสําเร็จจําเป็นต้องมีความเป็นเจ้าของที่ชัดเจนในทีมพัฒนา ความปลอดภัย และการดูแลระบบ
บทบาทต่างๆ โต้ตอบกับคุณสมบัติ GitHub Advanced Security ตลอดการพัฒนาซอฟต์แวร์และวงจรชีวิตการตอบสนองต่อเหตุการณ์
| ความรับผิดชอบ | นักพัฒนา | วิศวกรรักษาความปลอดภัย | ที่เก็บ / ผู้ดูแลระบบองค์กร |
|---|---|---|---|
| ตรวจสอบและแก้ไขการแจ้งเตือนการสแกนโค้ด | ใช่ | ใช่ | ไม่ใช่ |
| ตรวจสอบการแจ้งเตือนการสแกนลับ | ใช่ | ใช่ | ใช่ |
| อัปเดตการขึ้นต่อกันที่มีช่องโหว่ | ใช่ | ใช่ | ไม่ใช่ |
| ตรวจสอบคําขอดึงข้อมูลการแก้ไขอัตโนมัติของ Copilot | ใช่ | ใช่ | ไม่ใช่ |
| คัดแยกและจัดลําดับความสําคัญของการแจ้งเตือนด้านความปลอดภัย | ไม่ใช่ | ใช่ | ใช่ |
| กําหนดค่านโยบายความปลอดภัยและชุดกฎ | ไม่ใช่ | ใช่ | ใช่ |
| จัดการนโยบายการป้องกันสาขาและเวิร์กโฟลว์ | ไม่ใช่ | ไม่ใช่ | ใช่ |
| แดชบอร์ดภาพรวมการตรวจสอบความปลอดภัย | ไม่ใช่ | ใช่ | ใช่ |
| ตรวจสอบบันทึกการตรวจสอบและสัญญาณการกํากับดูแล | ไม่ใช่ | ใช่ | ใช่ |
| กําหนดการตั้งค่าความปลอดภัยของที่เก็บและองค์กร | ไม่ใช่ | ไม่ใช่ | ใช่ |
| ประสานงานเวิร์กโฟลว์การตอบสนองต่อเหตุการณ์ | ไม่ใช่ | ใช่ | ใช่ |
| อนุมัติข้อยกเว้นหรือการเลิกจ้างนโยบาย | ไม่ใช่ | ใช่ | ใช่ |
ตัวอย่างการเป็นเจ้าของเวิร์กโฟลว์
เวิร์กโฟลว์ GitHub Advanced Security ทั่วไปเกี่ยวข้องกับหลายบทบาทที่ทํางานร่วมกัน
- นักพัฒนาจะได้รับการแจ้งเตือนการสแกนโค้ดในคําขอดึงข้อมูล
- วิศวกรรักษาความปลอดภัยจะตรวจสอบความรุนแรงของการแจ้งเตือนและแนะนําแนวทางการแก้ไข
- Copilot Autofix เสนอการอัปเดตคําขอดึงข้อมูล
- นักพัฒนาจะตรวจสอบการแก้ไขและอัปเดตโค้ดหากจําเป็น
- ผู้ดูแลระบบที่เก็บบังคับใช้การป้องกันสาขาและการตรวจสอบที่จําเป็นก่อนการรวม
- ทีมรักษาความปลอดภัยจะตรวจสอบบันทึกการตรวจสอบและแนวโน้มการแก้ไขผ่านภาพรวมการรักษาความปลอดภัย
การกําหนดความรับผิดชอบอย่างชัดเจนช่วยให้องค์กรปรับขนาดการนํา GitHub Advanced Security ไปใช้ในขณะที่ยังคงรักษาการกํากับดูแล ความรับผิดชอบ และความสอดคล้องในการดําเนินงาน