생일 SQL 주입, 스쿼시 할 수없는 버그

게시일: Mar 17, 2021
작성자: 마티아스 마두, Ph.
사례 연구

생일 SQL 주입, 스쿼시 할 수없는 버그

게시일: Mar 17, 2021
작성자: 마티아스 마두, Ph.
리소스 보기
리소스 보기

이 문서의 버전은 원래 도움말 순 보안에등장. 여기에 업데이트되고 신디케이트되었습니다.

코드에 익숙해야 하는 사이버 보안 역할에 있다면 SQL 주입에 대해 생각해야 할 가능성이 높습니다... 거듭 거듭. 첫 번째 발견 후 몇 주 이내에 다소 간단한 구제 책을 알고 있음에도 불구하고 소프트웨어를 계속 괴롭히고 배포 전에 발견되지 않은 상태로 두면 공격자가 될 수있는 작은 기회를 제공하는 일반적인 취약점입니다.

2020년 12월 13일 SQL 주입의 22번째 생일을 표시하고, 이 취약점이 마실 만큼 충분히 오래되었음에도 불구하고, 우리는 그것을 좋은 것으로 스쿼시하는 대신 우리보다 더 나은 것을 얻을 수 있게 합니다. 올해 8월, Freepik Company는 830만 명의 사용자 계정을 손상시킨 SQL 주입 실수의 희생자가 되었다고 밝혔습니다. 그들 중 많은 사람들이 제 3 자 로그인 (예 : 구글, 페이스 북)을 사용했지만, 몇 백만 명의 암호화되지 않은 암호가 사용자 이름과 함께 노출되었습니다. 슬프게도 그들과 길을 따라 많은 다른 사람에 대 한, 이러한 사건에서 낙진은 거 대 한 두통, 그리고 사용자 기반신뢰를 재건 하는 것은 장기 프로세스.

레거시 문제로 간주되는 이정표를 "축하"하는 동안 잠시 해부합시다. 왜 계속 터지지 않습니다, 왜 여전히 너무 위험 그것은 년 동안 OWASP 상위 10에서 상위 자리에서 이동 하지 않은, 왜 상대적으로 간단한 수정 소프트웨어 개발에 대 한 일반적인 벤치 마크 표준으로 그것을 하지 않습니다?

SQL 주입이 2021년에 여전히 관련이 있는 이유는 무엇입니까?

최근 의 외형 위반에 대한 빠른 눈, FireEye에 파괴적인 사이버 공격,정교의 엄청난 수준을 보여줍니다 : 그것은 매우 조정된 국가 공격이었다 고급 기술의 넓은 배열을 사용하여 FireEye 강도에 대한 사용자 정의 된 것으로 나타났다. 성명에서, 파이어 아이 CEO 케빈 만디아 그녀는 말했다 :

"공격자는 특히 FireEye를 표적으로 삼고 공격하기 위해 세계적 수준의 역량을 조정했습니다. 그들은 운영 보안에 고도로 훈련및 규율과 초점으로 실행 ... 그들은 과거에 우리 또는 우리의 파트너가 목격하지 않는 기술의 새로운 조합을 사용했다."

그것은 어떤 CISO에 대 한 악몽 연료, 그리고 이 같은 파이어 아이에 발생할 수 있는 경우, 그것은 얼마나 취약 한 많은 기업 실제로 관점에 두고.

... 제외 하 고, 그것은 평균 조직에 대 한 더 나쁜 뉴스. FireEye는 지구상에서 가장 유명한 사이버 보안 회사 중 하나이며, 그들에 대한 성공적인 공격은 그들이 조정, 대규모 실행에 있던 모든 것을 던지는 마스터 마인드 수준의 도둑을했다. 많은 기업의 경우, 간단한 버그를 악용하여 수익성 있는 데이터 유출이 가능할 수 있으며, 마스터마인드가 전혀 필요하지 않습니다. 그리고 SQL 주입은 후자의 일반적인 예입니다, 여전히 다크 웹에 빠른 달러를 만들기 위해 찾고 스크립트 키디에 의해 활용되고있다.

2020년 5월, 한 남성이 신용카드 인신매매 및 해킹 범죄 혐의로 기소되어수십만 개의 활성 신용 카드 번호를 저장하는 디지털 미디어로 발견되었습니다. 그는 많은 회사와 수백만 명의 고객을 손상시키는 작업에서 SQL 주입 기술을 사용하여 모든 것을 수확했습니다.

업계로서 우리는 항상 개선하고 있지만 SQL 주입은 여전히 중요한 위협이며 레거시 또는 패치가 적용되지 않은 시스템보다 훨씬 더 많은 영향을 미칩니다.

개발자가 살아 유지 하는 이유 (그리고 왜 그들의 잘못)

SQL 주입은 수정이 간단하며 코드를 작성하여 전혀 도입하지 않도록 해야 한다고 계속 말합니다. 대부분의 것들과 마찬가지로, 제대로 하는 방법을 배웠을 때만 쉽습니다.

여기서 휠은 소프트웨어 개발 프로세스에서 흔들리기 시작합니다. 개발자는 동일한 실수를 저지르고 있으며, 이로 인해 코드베이스에 침투하는 SQL 주입과 같은 반복되는 취약점이 있습니다. 그러나, 이것은 놀랄 일이 아닙니다. 대부분의 엔지니어는 보안 코딩에 대해 많은 것을 배우지 않고 학위를 마칠 수 있습니다. 대부분의 실무 교육은 특히 보안이 비즈니스 우선 순위로 간주되지 않는 환경에서 는 부적절합니다.

우리는 개발자에게 보안에 관심을 가지거나 보안을 더 잘 인식할 수 있는 강력한 플랫폼을 제공하지 않습니다. 잘못된 코딩 패턴은 SQL 주입과 같은 버그를 살아 있게 하고 있으며, 개발자 보안 인식에 더 중점을 두어야 하며 더 높은 수준의 안전하고 품질 코드를 작성할 수 있는 시간을 제공해야 합니다. 안전한 코딩 패턴은 작성하는 데 시간이 오래 걸릴 수 있지만, 거기에 소요되는 시간은 나중에 귀중한 효율성을 만듭니다.

SQL 주입 장례식이 있습니까?

장례 비유는 약간 병적이지만 SQL 주입이 좋은 휴식을 취하면 민감한 데이터가 더 안전할 것입니다. 나는 우리가 그것에 도착하기 전에 몇 가지 더 생일을 축하 할 것이라고 매우 확신합니다, 그러나, 예방 보안 및 보안 코딩에 대한 강조에 대한 문화는 단순히 관을 닫을 못을 박기 시작할 만큼 진화하지 않았기 때문에.

Rust와 같은 새롭고 보안이 견고한 언어는 보다 안전한 기능을 활용하여 오랫동안 처리해 온 몇 가지 버그를 근절하는 데 도움을 주고 있지만, 엄청난 양의 레거시 소프트웨어, 오래된 시스템 및 라이브러리가 계속 사용 중이고 잠재적으로 취약해질 것입니다.

개발 프로세스의 보안에 대한 공동 책임(안녕하세요, DevSecOps)은 "쉬운" 악용이 선한 방향으로 종료되는 것을 보고 싶다면 매우 중요합니다. 개발자는 처음부터 여정을 가져와야 하며 더 안전하고 더 나은 코드를 만드는 데 있어 자신의 역할을 책임질 수 있도록 지원되어야 합니다.

개발자는 코드에서 SQL 주입 버그를 수정하는 방법에 대해 어떻게 접근해야 합니까?

SQL 주입을 식별하고 수정하는 방법을 배우고자 하는 개발자를 위한 포괄적인 가이드를 마련했습니다. 자신이 선택한 프로그래밍 언어(심지어 COBOL!)에서 게임화된 도전으로 완성된 이 프로그램은 모든 개발자가 더 안전하고 고품질의 코드를 만드는 데 도움이 되는 훌륭한 기본 학습을 제공합니다.

리소스 보기
리소스 보기

저자

마티아스 마두, Ph.

Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.

더 알고 싶으신가요?

블로그에서 최신 보안 코딩 인사이트에 대해 자세히 알아보세요.

Atlassian의 광범위한 리소스 라이브러리는 안전한 코딩 숙련도를 확보하기 위한 인적 접근 방식을 강화하는 것을 목표로 합니다.

블로그 보기
더 알고 싶으신가요?

개발자 중심 보안에 대한 최신 연구 보기

광범위한 리소스 라이브러리에는 개발자 중심의 보안 코딩을 시작하는 데 도움이 되는 백서부터 웨비나까지 유용한 리소스가 가득합니다. 지금 살펴보세요.

리소스 허브

생일 SQL 주입, 스쿼시 할 수없는 버그

게시일: Mar 17, 2021
마티아스 마두, Ph.

이 문서의 버전은 원래 도움말 순 보안에등장. 여기에 업데이트되고 신디케이트되었습니다.

코드에 익숙해야 하는 사이버 보안 역할에 있다면 SQL 주입에 대해 생각해야 할 가능성이 높습니다... 거듭 거듭. 첫 번째 발견 후 몇 주 이내에 다소 간단한 구제 책을 알고 있음에도 불구하고 소프트웨어를 계속 괴롭히고 배포 전에 발견되지 않은 상태로 두면 공격자가 될 수있는 작은 기회를 제공하는 일반적인 취약점입니다.

2020년 12월 13일 SQL 주입의 22번째 생일을 표시하고, 이 취약점이 마실 만큼 충분히 오래되었음에도 불구하고, 우리는 그것을 좋은 것으로 스쿼시하는 대신 우리보다 더 나은 것을 얻을 수 있게 합니다. 올해 8월, Freepik Company는 830만 명의 사용자 계정을 손상시킨 SQL 주입 실수의 희생자가 되었다고 밝혔습니다. 그들 중 많은 사람들이 제 3 자 로그인 (예 : 구글, 페이스 북)을 사용했지만, 몇 백만 명의 암호화되지 않은 암호가 사용자 이름과 함께 노출되었습니다. 슬프게도 그들과 길을 따라 많은 다른 사람에 대 한, 이러한 사건에서 낙진은 거 대 한 두통, 그리고 사용자 기반신뢰를 재건 하는 것은 장기 프로세스.

레거시 문제로 간주되는 이정표를 "축하"하는 동안 잠시 해부합시다. 왜 계속 터지지 않습니다, 왜 여전히 너무 위험 그것은 년 동안 OWASP 상위 10에서 상위 자리에서 이동 하지 않은, 왜 상대적으로 간단한 수정 소프트웨어 개발에 대 한 일반적인 벤치 마크 표준으로 그것을 하지 않습니다?

SQL 주입이 2021년에 여전히 관련이 있는 이유는 무엇입니까?

최근 의 외형 위반에 대한 빠른 눈, FireEye에 파괴적인 사이버 공격,정교의 엄청난 수준을 보여줍니다 : 그것은 매우 조정된 국가 공격이었다 고급 기술의 넓은 배열을 사용하여 FireEye 강도에 대한 사용자 정의 된 것으로 나타났다. 성명에서, 파이어 아이 CEO 케빈 만디아 그녀는 말했다 :

"공격자는 특히 FireEye를 표적으로 삼고 공격하기 위해 세계적 수준의 역량을 조정했습니다. 그들은 운영 보안에 고도로 훈련및 규율과 초점으로 실행 ... 그들은 과거에 우리 또는 우리의 파트너가 목격하지 않는 기술의 새로운 조합을 사용했다."

그것은 어떤 CISO에 대 한 악몽 연료, 그리고 이 같은 파이어 아이에 발생할 수 있는 경우, 그것은 얼마나 취약 한 많은 기업 실제로 관점에 두고.

... 제외 하 고, 그것은 평균 조직에 대 한 더 나쁜 뉴스. FireEye는 지구상에서 가장 유명한 사이버 보안 회사 중 하나이며, 그들에 대한 성공적인 공격은 그들이 조정, 대규모 실행에 있던 모든 것을 던지는 마스터 마인드 수준의 도둑을했다. 많은 기업의 경우, 간단한 버그를 악용하여 수익성 있는 데이터 유출이 가능할 수 있으며, 마스터마인드가 전혀 필요하지 않습니다. 그리고 SQL 주입은 후자의 일반적인 예입니다, 여전히 다크 웹에 빠른 달러를 만들기 위해 찾고 스크립트 키디에 의해 활용되고있다.

2020년 5월, 한 남성이 신용카드 인신매매 및 해킹 범죄 혐의로 기소되어수십만 개의 활성 신용 카드 번호를 저장하는 디지털 미디어로 발견되었습니다. 그는 많은 회사와 수백만 명의 고객을 손상시키는 작업에서 SQL 주입 기술을 사용하여 모든 것을 수확했습니다.

업계로서 우리는 항상 개선하고 있지만 SQL 주입은 여전히 중요한 위협이며 레거시 또는 패치가 적용되지 않은 시스템보다 훨씬 더 많은 영향을 미칩니다.

개발자가 살아 유지 하는 이유 (그리고 왜 그들의 잘못)

SQL 주입은 수정이 간단하며 코드를 작성하여 전혀 도입하지 않도록 해야 한다고 계속 말합니다. 대부분의 것들과 마찬가지로, 제대로 하는 방법을 배웠을 때만 쉽습니다.

여기서 휠은 소프트웨어 개발 프로세스에서 흔들리기 시작합니다. 개발자는 동일한 실수를 저지르고 있으며, 이로 인해 코드베이스에 침투하는 SQL 주입과 같은 반복되는 취약점이 있습니다. 그러나, 이것은 놀랄 일이 아닙니다. 대부분의 엔지니어는 보안 코딩에 대해 많은 것을 배우지 않고 학위를 마칠 수 있습니다. 대부분의 실무 교육은 특히 보안이 비즈니스 우선 순위로 간주되지 않는 환경에서 는 부적절합니다.

우리는 개발자에게 보안에 관심을 가지거나 보안을 더 잘 인식할 수 있는 강력한 플랫폼을 제공하지 않습니다. 잘못된 코딩 패턴은 SQL 주입과 같은 버그를 살아 있게 하고 있으며, 개발자 보안 인식에 더 중점을 두어야 하며 더 높은 수준의 안전하고 품질 코드를 작성할 수 있는 시간을 제공해야 합니다. 안전한 코딩 패턴은 작성하는 데 시간이 오래 걸릴 수 있지만, 거기에 소요되는 시간은 나중에 귀중한 효율성을 만듭니다.

SQL 주입 장례식이 있습니까?

장례 비유는 약간 병적이지만 SQL 주입이 좋은 휴식을 취하면 민감한 데이터가 더 안전할 것입니다. 나는 우리가 그것에 도착하기 전에 몇 가지 더 생일을 축하 할 것이라고 매우 확신합니다, 그러나, 예방 보안 및 보안 코딩에 대한 강조에 대한 문화는 단순히 관을 닫을 못을 박기 시작할 만큼 진화하지 않았기 때문에.

Rust와 같은 새롭고 보안이 견고한 언어는 보다 안전한 기능을 활용하여 오랫동안 처리해 온 몇 가지 버그를 근절하는 데 도움을 주고 있지만, 엄청난 양의 레거시 소프트웨어, 오래된 시스템 및 라이브러리가 계속 사용 중이고 잠재적으로 취약해질 것입니다.

개발 프로세스의 보안에 대한 공동 책임(안녕하세요, DevSecOps)은 "쉬운" 악용이 선한 방향으로 종료되는 것을 보고 싶다면 매우 중요합니다. 개발자는 처음부터 여정을 가져와야 하며 더 안전하고 더 나은 코드를 만드는 데 있어 자신의 역할을 책임질 수 있도록 지원되어야 합니다.

개발자는 코드에서 SQL 주입 버그를 수정하는 방법에 대해 어떻게 접근해야 합니까?

SQL 주입을 식별하고 수정하는 방법을 배우고자 하는 개발자를 위한 포괄적인 가이드를 마련했습니다. 자신이 선택한 프로그래밍 언어(심지어 COBOL!)에서 게임화된 도전으로 완성된 이 프로그램은 모든 개발자가 더 안전하고 고품질의 코드를 만드는 데 도움이 되는 훌륭한 기본 학습을 제공합니다.

우리는 당신에게 우리의 제품 및 / 또는 관련 보안 코딩 주제에 대한 정보를 보낼 수있는 귀하의 허가를 바랍니다. 우리는 항상 최대한의주의를 기울여 귀하의 개인 정보를 취급 할 것이며 마케팅 목적으로 다른 회사에 판매하지 않을 것입니다.

양식을 제출하려면 '분석' 쿠키를 활성화하세요. 완료되면 언제든지 다시 비활성화할 수 있습니다.