Kant's IT/Issue on IT&Security

Chrome의 접근성 API를 활용한 보안 버그 탐지

Kant Jo 2024. 11. 19. 15:14

Using Chrome's accessibility APIs to find security bugs

 

Using Chrome's accessibility APIs to find security bugs

Posted by Adrian Taylor, Security Engineer, Chrome Chrome’s user interface (UI) code is complex, and sometimes has b...

security.googleblog.com

 

  • Chrome UI 보안 문제점
    • Chrome의 UI 코드가 복잡해 메모리 손상과 같은 취약점이 발생할 가능성 존재
    • 사용자의 클릭과 동작이 메모리 손상을 유발할 경우, 공격자가 악용할 가능성이 있음
    • 보안 사고의 영향이 불분명한 경우가 많아 분석과 해결이 어려움
  • 접근성 트리를 활용한 자동 버그 탐지
    • Chrome은 스크린 리더점자 장치와 같은 보조 기술을 위해 전체 UI 트리를 노출
    • 이 UI 트리를 퍼징(fuzzing)하여 반자동으로 UI 취약점을 찾아내는 방법을 도입
    • 퍼징 도구가 UI 제어 요소에 반랜덤으로 상호작용하여 잠재적인 충돌을 유발하는지 테스트
  • UI 퍼징의 주요 기술적 과제
    • InProcessFuzzer 프레임워크 활용: 실제 Chrome 환경에서 퍼징 테스트 수행하여 정확성 보장
    • Centipede 도구 사용: 수천 개의 테스트 케이스를 묶어 실행, 초기화 비용 절감
    • 커버리지 기반 퍼징 적용: 새 코드를 탐색하도록 유도하여 잠재적 버그 발견 가능성 증대
    • Chrome UI 상태가 테스트마다 변경되므로 상태가 계속 유지되는 방식으로 설계 필요
  • 진단을 위한 테스트 케이스 안정성 확보
    • 버그가 있는 테스트 케이스가 Chrome 버전 간 안정적으로 재현되도록 구조화
    • 초기에는 순서 기반 선택 방식 사용하였으나 Chrome UI 업데이트에 따라 불안정
    • 이름과 역할 기반 접근법 채택, 역할과 순서를 조합해 안정성 확보
  • 현재 결과 및 향후 계획
    • 초기 버그를 몇 가지 발견했지만, Chrome의 UI 전반을 탐색하기에는 아직 미비
    • ClusterFuzz 인프라에서 몇 시간 동안 실행 중이며 커버리지 대시보드 적용 확장 예정
    • 최종 결과는 미정이지만 UI 코드의 커버리지 확장을 통해 보안 개선을 목표