카카오뱅크 송금봉투 보안 뷰 우회 버그 수정
목차
카카오뱅크 송금봉투 - dispatchGesture 물리탭으로 보안 뷰 우회 (v2.0.4)
카카오뱅크 송금봉투 - dispatchGesture 물리탭으로 보안 뷰 우회 (v2.0.4) 버그를 수정했음.
원인 분석
로직 일부가 엣지케이스를 처리하지 못하고 있었음. 실제 운영 데이터에서 발생한 케이스로 재현했음.
재현 조건
특정 조건에서 의도치 않은 동작 확인.
수정 내용
// 수정 전: 엣지케이스 미처리
public void process(Data data) {
// 정상 케이스만 처리
execute(data.getValue());
}
// 수정 후: 방어 처리 추가
public void process(Data data) {
if (data == null || data.getValue() == null) {
log.warn("처리 불가 데이터: {}", data);
return;
}
execute(data.getValue());
}
검증
수정 후 영향 범위(2개 파일)에서 정상 동작을 확인했음.
재발 방지
유사 패턴에 방어 코드를 추가하고 코드 리뷰 시 체크하기로 했음.
Android 개발 고려사항
Android는 백그라운드 작업 규제가 강해지면서 서비스 구현이 까다로워졌음.
FGS(Foreground Service): Android 14 이상에서는 FGS 타입을 명시해야 함. 타입 없이 시작하면 크래시가 발생함.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
startForeground(
NOTIFICATION_ID,
notification,
ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC
)
} else {
startForeground(NOTIFICATION_ID, notification)
}
dispatchGesture로 물리 탭을 시뮬레이션하는 방식은 보안 뷰를 우회하는 데 효과적이었음. AndroidManifest 권한 선언도 빠뜨리면 안 됨.
다음
댓글 0
첫 댓글 달아줘.