AI 백과반도체·딥테크새로 배울 개념 1

제어 흐름 공격

Control-Flow Attack

프로그램이 코드를 실행하는 순서를 공격자가 몰래 바꾸는 보안 공격이에요.

어떤 개념인가요

제어 흐름 공격은 프로그램이 다음에 어느 코드를 실행할지 정하는 정보를 공격자가 조작하는 방법이에요. 함수가 끝나고 돌아갈 복귀 주소나 점프할 목표 주소를 공격자가 원하는 메모리 위치로 덮어쓰면, 프로그램은 의도하지 않은 코드를 실행하게 돼요.

이런 공격은 메모리 관리가 허술한 프로그램에서 주로 노려 왔어요. 칩 설계와 소프트웨어가 복잡해지면서 보안 설계자들은 이를 막는 하드웨어와 소프트웨어 기능을 함께 넣기 시작했어요.

작동 원리

함수를 호출하면 프로그램은 작업이 끝난 뒤 돌아갈 위치를 메모리에 저장해 둬요. 공격자가 버퍼 범위를 넘쳐 쓰는 방식 등으로 이 복귀 주소를 자신이 준비한 주소로 바꾸면, 함수가 끝날 때 공격 코드로 점프해요.

현대의 방어 기법은 복귀 주소가 바뀌었는지 검사하거나, 점프 목표를 허용된 위치로만 제한하는 방식으로 이를 막아요. 기사에서 소개한 Arm의 보안 기능도 이런 공격 흐름을 끊기 위해 설계됐어요.

어디에 쓰이나요

제어 흐름 공격 방어는 운영체제, 임베디드 기기, 칩 수준의 보안 기능으로 적용돼요. 자율주행이나 산업 로봇처럼 명령 실행의 무결성이 중요한 장치에서 특히 필요해요.

적용 조건은 보호 기능을 켰을 때 성능 비용이 생길 수 있고, 소프트웨어가 이를 지원하도록 빌드되어야 한다는 점이에요. 기능만 켠다고 모든 취약점이 사라지지는 않아요.

한계와 오해

이 공격 하나를 막는다고 보안이 완성되지는 않아요. 다른 방식의 메모리 취약점이나 설정 실수가 남아 있으면 공격자는 경로를 바꿔 침투할 수 있어요.

흔한 오해는 보안 기능이 있으면 프로그램을 믿어도 된다는 생각이에요. 방어 기능은 위험을 줄이는 장치일 뿐이라서, 취약한 코드를 고치고 정기적으로 검증하는 과정이 함께 필요해요.

예를 들면

택배 기사가 배송 주소표의 다음 목적지를 몰래 고쳐 써서, 물건이 엉뚱한 집으로 가는 상황과 비슷해요.

왜 알아둘 만한가요

AI 칩과 엣지 기기가 많아지면서 연산 장치 안의 작은 취약점도 서비스 전체를 위험하게 만들 수 있어요. 이 공격의 원리를 알아야 보안 기능이 무엇을 막는지 제대로 이해할 수 있어요.

출처와 더 읽기

이렇게도 불러요제어 흐름 탈취, Control Flow Attack

LastAI에서 직접 보기

백과 문서는 AI가 쓰고, 개념이 맞는지 다시 살펴본 뒤 올렸어요. 값·순위처럼 금방 바뀌는 내용은 적지 않았어요. 틀린 곳이 있으면 알려 주세요. 틀린 곳 알리기마지막으로 고친 날

마이