퍼징은 보안 전문가와 해커가 소프트웨어의 취약점을 찾기 위해 사용하는 기술입니다. 퍼징을 알아야 할 사항은 다음과 같습니다.
소프트웨어 취약점은 사이버 보안에서 중요한 문제입니다. 이를 통해 소프트웨어 제품이 공격을 받을 수 있으며 해당 제품이 다른 보안 네트워크에 연결되면 해커에게 진입점을 제공할 수 있습니다.
모든 전문 소프트웨어 제품은 출시 전에 철저한 테스트를 거칩니다. 불행히도 취약점은 여전히 흔히 발생합니다. 추가 취약점을 찾는 한 가지 방법은 퍼징이라는 소프트웨어 테스트 기술을 사용하는 것입니다.
그렇다면 퍼징은 무엇이고 어떻게 작동하는 걸까요?
퍼징이란 무엇입니까?
퍼징은 무작위 입력을 사용하여 취약점을 찾으려고 시도하는 자동화된 소프트웨어 테스트 기술입니다.
사용자가 요청한 것과 다른 입력을 입력하면 소프트웨어가 예측할 수 없는 동작을 하는 경우가 많습니다. 퍼징은 예상치 못한 입력을 대량으로 입력하고 무슨 일이 일어나는지 기록하는 관행입니다. 그 아이디어는 사용자가 소프트웨어를 모니터링하고 취약점이 있는지 여부를 확인할 수 있다는 것입니다.
퍼징은 소프트웨어 제품을 테스트하고 보안 전문가가 네트워크가 안전한지 확인하는 데 사용됩니다. 또한 퍼징을 연습하여 자신이 사용할 수 있는 취약점을 찾는 해커도 사용합니다.
퍼징으로 발견된 취약점은 매우 다양합니다. 예상치 못한 입력으로 인해 소프트웨어가 단순히 충돌할 수 있습니다. 그러나 개인 정보를 반환하거나 사용자가 제한되지 않은 소프트웨어 부분에 액세스하도록 허용할 수도 있습니다.
퍼징의 장점은 무엇입니까?
퍼징은 소프트웨어 제품의 취약점을 테스트할 수 있는 여러 방법 중 하나이며, 아래과 같은 이유로 인기가 있습니다.
- 퍼징은 완전히 자동화되어 있습니다. 퍼징 프로그램이 설정되면 사람의 입력 없이도 계속해서 취약점을 찾을 수 있습니다.
- 퍼징은 다른 소프트웨어 테스트 기술이 발견하지 못하는 취약점을 발견할 수 있습니다. 이 때문에 수작업 기술과 함께 사용되는 경우가 많습니다.
- 퍼징은 해커가 제로데이 취약점을 찾기 위해 자주 사용합니다 . 해커와 동일한 기술을 사용하면 개발자는 제로데이 취약점을 발견하기 전에 찾을 수 있습니다.
퍼징은 어떻게 작동하나요?
퍼징에 사용되는 도구에는 일반적으로 세 가지 구성 요소가 있습니다. 그들은 종종 시인, 택배, 신탁으로 불립니다.
1. 시인
시인은 프로세스를 시작하고 테스트 케이스 생성을 담당합니다. 테스트 케이스는 잠재적인 입력의 긴 목록입니다.
2. 택배
택배사는 모든 무작위 입력을 대상 소프트웨어에 삽입합니다. (푸저)Fuzzer는 이 작업을 자동으로 수행하도록 설계되어 대량의 입력을 대량으로 테스트할 수 있습니다.
3. 오라클
오라클은 입력으로 인해 소프트웨어가 원래 의도한 것과 다른 작업을 수행하는지 확인합니다. 퍼징이 합법적인 목적으로 수행되는 경우 해당 동작이 복제되고 수정될 수 있습니다. 또는 해커에 의해 퍼징이 수행되고 있는데 예상치 못한 행위가 유용하다면 악의적인 목적으로 사용될 수도 있습니다.
공격자는 퍼징을 어떻게 사용합니까?
퍼징은 소스 코드에 접근하지 않고도 소프트웨어의 취약점을 찾아낼 수 있다는 점에서 해커들 사이에서 널리 사용되는 기술입니다. 퍼징은 자동화되어 있기 때문에 수행하기도 쉽습니다. 해커가 취약점을 발견하면 다음과 같은 공격을 수행할 수 있습니다.광고
DDoS 공격
퍼징을 통해 특정 입력을 처리하는 데 오랜 시간이 걸린다는 사실이 발견되면 이 정보를 사용하여 DDoS 공격을 시작할 수 있습니다. DDoS 공격에는 시스템에 너무 많은 요청을 보내 시스템이 작동을 멈추는 것이 포함됩니다. 퍼징을 사용하면 응답하는 데 가장 많은 시스템 리소스가 필요하도록 요청을 맞춤화할 수 있습니다.
SQL 주입
SQL 주입 공격은 악성 SQL 문이 애플리케이션으로 전송되는 경우입니다. 이러한 문이 적절하게 삭제되지 않으면 공격자가 데이터베이스와 상호 작용할 수 있습니다. 이로 인해 데이터를 훔치거나 수정할 수 있습니다. 퍼징은 대량의 SQL 문을 시도하고 좋은 응답이 나오는지 확인하는 데 효과적인 도구입니다.
버퍼 오버 플로우
버퍼 오버플로 공격은 처리할 수 있는 것보다 더 많은 데이터가 프로그램의 버퍼에 추가되는 경우입니다. 이 시나리오에서는 해커가 해당 프로그램에서 악성 코드를 실행하도록 할 수 있습니다. 이는 데이터를 훔치거나 무단 액세스를 얻는 데 사용될 수 있습니다. 퍼징은 버퍼 오버플로가 발생할 수 있는 입력을 찾는 데 사용됩니다.
퍼징의 유형
퍼징 도구는 테스트 사례가 생성되는 방식과 시스템에 대해 알려진 정도에 따라 분류될 수 있습니다.
퍼징 멍청함 vs 퍼징 똑똑함
멍청한 퍼징은 단순히 대량의 무작위 입력을 추가합니다. 애플리케이션에서 받아들일 가능성이 가장 높은 입력은 선택하지 않습니다. 이렇게 하면 소프트웨어에 대해 전혀 몰라도 구현하기가 더 쉬워집니다. 그러나 대부분의 입력이 거부되므로 매우 비효율적입니다.
스마트 퍼징은 애플리케이션이 받아들일 가능성이 있는 입력을 생성합니다. 이를 위해서는 사용자가 어떤 입력 형식이 허용되는지 이해하고 해당 형식 내에서 많은 양의 입력을 생성해야 합니다. 스마트 퍼징을 구현하려면 더 많은 노력과 제품 지식이 필요하지만 훨씬 더 효율적입니다.
돌연변이 vs 세대
돌연변이 퍼저는 이전에 승인된 입력을 받아 사소한 변경을 수행합니다. 이를 통해 허용되는 형식에 대한 지식 없이도 허용될 수 있는 입력을 생성할 수 있습니다.
세대별 퍼저는 허용되는 형식에 대해 알려진 내용을 기반으로 완전히 새로운 입력을 생성합니다.
화이트박스 vs 블랙박스
블랙박스 퍼징은 테스트 중인 애플리케이션에 대한 정보 없이 사용됩니다. 화이트박스 퍼징에 비해 효율성은 떨어지지만 소스 코드에 접근하지 않고도 모든 애플리케이션에 적용할 수 있습니다. 이로 인해 해커들 사이에서 인기가 높습니다.
화이트박스 퍼징은 테스트 중인 애플리케이션에 대한 정보를 사용하여 허용될 가능성이 가장 높은 입력을 생성하고 취약점을 생성합니다. 블랙박스 퍼징보다 효과적이기 때문에 주로 소프트웨어 개발자가 사용합니다.
퍼징은 제로데이 공격을 방지하는 중요한 도구입니다.
퍼징은 소프트웨어 개발자, 보안 전문가 및 해커가 사용하는 강력한 소프트웨어 테스트 방법입니다. 구현하는 데 최소한의 노력이 필요하며 다른 소프트웨어 테스트 기술에서는 찾을 수 없는 취약점을 찾을 수 있습니다.
제로데이 취약점을 발견하는 데 자주 사용되기 때문에 보안 관점에서 특히 중요합니다. 이러한 취약점은 보안 전문가가 발견하여 수정할 수도 있고, 해커가 발견하여 악용할 수도 있습니다.