Last Updated on 12월 8th, 2020, By
 In AppSealing News, 앱실링 블로그

사이버 공격은 사람들이 서로 통신하는데 사용하는 다양한 디바이스의 진화와 더불어 엄청난 양의 개인 및 기업 데이터로 인해 이제 어디에서나 존재하는 강력한 현실이 되었습니다. 이러한 공격은 사이버 범죄 및 그와  관련된 영향을 다루는 비용을 크게 증가시키는 결과를 나았습니다.

사이버 공격의 유형과 공격자가 이를 실행하기 위해 사용하는 다양한 기술을 이해하면 적절한 보안 프레임 워크를 구축하는데 많은 도움이 됩니다. 이와 같은 적극적인 애플리케이션 보안 내재화 접근 방식은 기업의 비즈니스를 사이버 공격 위협으로부터 보호하고, 변함없는 고객 충성도로 비즈니스 수익을 유지하기 위한 필수 요건입니다. 그러나 그 전에 아래와 같은 기본적인 질문을 하는 것이 적절합니다.

 

사이버 공격이란 무엇입니까?

시스코에 따르면 사이버 공격은 “개인이나 조직이 다른 개인이나 조직의 정보 시스템을 위반하려는 악의적이고 의도적인 시도”라고 합니다. 사이버 범죄자들은 기존의 보안 허점을 악용하고, 네트워크의 노드나 에셋을 파괴, 변경, 비활성화 또는 무단 접속하는 등의 하나 이상의 공격 수단을 여러대의 컴퓨터를 사용하여 공격을 수행합니다.

출처: Accenture

2019년에 수행된 액센츄어의 “사이버 범죄 비용(Cost of Cybercrime)” 연구에 따르면 지난 5년간 보안 위반이 67%나 증가했습니다. 이러한 사이버 범죄로 인해 발생하는 위험의 총 규모는 향후 5년 동안 5조 2000억 달러에 이를 것이라고 밝혔습니다. 

범죄자의 동기는 단순히 당신의 재무 세부 정보를 얻는 것에서부터 고객의 중요한 개인 식별 정보(PII)가 포함 된 데이터베이스를 위반하고, 악성 프로그램을 배포하기 위해 인프라를 공격하는 등의 치명적인 행동을 포함하는 것까지 다양합니다. 사이버 공격의 주요 범주와 왜 일률적인 접근 방식이 사이버 공격을 차단하는데 도움이 되지 않은 것인지 살펴볼 것입니다.

사이버 공격자의 분류

사이버 공격의 목적은 항상 악의적이지만 해커는 여러 도구와 기술을 사용하여 공격을 지속할 수 있습니다. 그들의 의도와 최종 목표에 따라 사이버 공격자는 대략 다음과 같이 그룹화될 수 있습니다.

사이버 범죄자

그들은 회사 정보, 고객 데이터 또는 기타 중요한 데이터를 대상으로 다크 웹에서 수익을 창출하려는 개인 또는 그룹입니다. 그들은 정교한 도구와 기술을 사용하고 컴퓨터/모바일 디바이스를 매개로 하여 지능적이고 발견하기 어려운 악의적인 사이버 공격을 수행합니다.

핵티비스트(Hacktivists)

그들은 비재무적인 의제를 전파해야 합니다. 그들은 정치적 의제, 종교 이념, 또는 디지털 부정행위를 통해 알고 싶어하는 어떠한 원인 등과 같이 그들의 신념 체계를 강화하기 위한 목적으로 공격을 수행할 수 있습니다. 그들이 가지고 있는 정치적 신념에 따라, 그들은 여러 범주들 중에서 진보적, 윤리적 또는 명백한 분열주의자로 묘사될 수 있습니다. 

국가가 후원하는 공격자

그들은 출신 국가의 지원을 통해서 특정 국가를 대상으로 사이버 공격을 수행하여 사회, 경제 또는 군사 행정을 불안정하게 만듭니다. 그들은 또한 외로운 늑대 공격(lone wolf attacks)을 자행하여 특정 국가에 대한 충성을 보여줄 수 있습니다.

내부 위협자

그들은 조직의 직원, 계약자, 3rd party 계열사에서 비롯되었으며, 관련 신뢰 요인으로 인해 탐지하고 예방하기가 어렵습니다. 이러한 공격은 악의적이거나 우발적 또는 단순한 과실로 수행될 수 있습니다.

추가로 사이버 공격은 공격의 엔드포인트(end point)에 따라 두 그룹으로 나뉩니다.

    1. 웹 기반 사이버 공격 : 해커가 웹 사이트나 웹 애플리케이션을 대상으로하는 경우
    2. 시스템 기반 사이버 공격 : 공격의 목적이 네트워크의 노드나 시스템을 손상시키는 위한 경우

사이버 공격 유형

피싱

 

피싱은 어디에나 널리 퍼져 있으며 하루가 다르게 빠르게 성장하고 있습니다. 신뢰할 수 있는 엔티티로 가장하여 사용자 자격 증명과 같은 개인 식별 정보(PII)와 신용 카드와 같은 재무 정보 등 잠재적 가치가 있는 모든 정보를 도용하려는 시도입니다. 피싱은 한치의 의심도 받지 않고 세부사항을 탈취하기 위해 목표물을 유혹합니다.

피싱 공격 유형

기본적으로 피싱은 매력적인 메시지나 제안을 통해 인간의 충동을 악용합니다. 공격자는 일반적으로 대규모 그룹을 목표로 피싱 공격을 수행하며, 이 과정에서 적어도 일부 표적이라도 공격의 희생자가 될 가능성을 높힙니다. 피싱 공격의 전형적인 예는 공격자가 개인 또는 시설을 사칭하여 시급한 요청에 대해서 의심하지 않은 대상에게 관련 정보 링크가 포함된 이메일을 보내는 것입니다. 무고한 사용자가 링크를 클릭하면 합법적 인 웹 사이트와 유사한 가짜 웹 사이트로 연결됩니다. 함정인 줄 모르는 사람은 함정에 빠지고 공격자와 개인 정보를 공유하게 되며, 공격자는 표적이 공격을 받았다는 사실을 깨닫기 전에도 사용자를 도용합니다.

출처: Cloudflare

공격을 보다 개인화하고 확실하게 만들기 위해 공격자는 배너, 로고, 일부 저명한 이름, 웹 사이트 주소 등의 제안과 같은 상세한 정보를 포함하는 스피어 피싱(spear phishing) 방법을 사용하여 커뮤니케이션에 대한 신뢰성을 높이고 더 많은 목표물을 유인하여 민감한 정보를 공유합니다. 조직의 경영진이 피싱 시도의 주요 표적인 경우를 웨일링(whaling)이라고 합니다. 성공적인 웨일링 공격은 공격자에게 횡재를 가져올 수 있습니다.

클론 피싱(clone phishing)은 이미 목표와 교환된 합법적인 통신을 이용합니다. 해커는 합법적인 메시지를 복제하지만, 대상을 함정에 빠뜨리기 위한 악의적인 첨부 파일, 잘못된 링크 등의 특정 변경 사항을 삽입합니다. 이 공격은 이전의 합법적인 통신에서 표적에 의해 재조정된 신뢰를 이용하고, 무고한 표적이 악의적인 공격자가 원하는대로 작업을 수행하도록 합니다.

출처: Coolwallet

위에서 볼 수 있듯이 피싱은 어떤 방식으로든 스푸핑과 관련이 있습니다. 공격자는 가짜 웹 사이트를 개발하여 실제 웹 사이트로 위장하거나, URL 동형이의어(homegraph)를 생성하여 유사하지만 실제로 악의적인 웹 사이트 URL에서 사용자 클릭을 유발합니다. 경우에 따라 공격자는 HTML 또는 JavaScript를 사용하여 무고한 사용자가 인증된 웹 사이트 URL만 볼 수 있도록 웹 사이트 주소를 스푸핑하여 사용자를 인증된 웹 사이트에서 공격자 제어 웹 사이트로 강제로 리디렉션 시킵니다. 이러한 목표를 달성하기 위해 공격자는 먼저 인증된 웹 사이트를 손상시킨 다음 매끄럽게 공격을 수행하기 때문에, 사용자는 자신이 공격받았다는 사실을 쉽게 인지하지 못합니다. 

피싱 공격의 예

2014년 소니 픽쳐스 엔터테인먼트의 네트워크는 피싱 공격의 대상이 되었습니다. 해커들은 마이클 린튼(Michael Lynton) CEO를 포함한 회사의 많은 직원에게 가짜 이메일을 보내 애플 아이디(Apple ID)를 확인하도록 요청했습니다. 해커들은 이메일의 확인 링크를 통해 직원들을 ioscareteam.net으로 유인하여 사용자 자격 증명을 수집했습니다. 해커들은 이 자격 증명을 직원의 소셜 미디어 자격 증명에 반영하고 소니 네트워크의 로그인 정보를 얻었습니다. 해커들은 이 경로를 통해 악성 코드 와이퍼(Wiper)를 소니 네트워크에 삽입했으며 그 과정에서 많은 문서를 훔쳤다고 합니다. 

 

피싱 공격에 대비하기

피싱 공격에 대처하기 위해서는 이메일 발신자를 항상 확인하고, 필요한 경우에만 첨부 파일을 다운로드하는 것이 좋습니다. 기업의 구성원과 3rd party 공급업체는 보안의 중요성 인지하고 스스로 피싱 덫에 빠지지 않도록 방지하는 방안에 관한 사례 연구 등을 통해서 지속적으로 교육을 받아야 합니다. 금전적인 도움을 요청하는 이메일을 본 순간 사용자는 스스로 자신에게 경고 알람을 촉발하도록 해야 합니다. 기업은 직원들이 신뢰할 수 없는 출처에서 온 이메일을 열지 못하도록 해야 합니다. 

이메일, 첨부 파일 및 의심스러운 출처의 짧은 URL을 모니터링하고, 그것들을 필터링 또는 격리할 수 있는 우수한 격리 이메일 엔진을 구현하면 피싱 공격을 처리하는데 도움이 될 수 있습니다. 기업은 모의 침투 테스트 평가를 수행하여 실제 보안 이슈가 발생하기 전에 취약한 지점을 파악하고 해결할 수 있습니다.

 

멀웨어

멀웨어는 휴대 전화, 데스크탑 또는 서버 등 모든 디바이스의 정상적인 기능을 방해하도록 개발된 애플리케이션입니다. 멀웨어는 일반적으로 스크립트 또는 실행 코드 형식으로 배포되며, 사용자가 멀웨어 소스를 클릭하면, 자신도 모르게 악성코드가 설치됩니다. 이 악의적인 애플리케이션은 해당 디바이스에 대한 공격 거점을 확보하고 공격 기능 – 키 입력 캡쳐, 유해한 소프트웨어 설치, 시스템의 중요 정보 도용, 몸값을 요구하도록 암호화 (랜섬웨어) 등 – 에 따라 모든 것을 추적하기 시작합니다. 

 

멀웨어 공격 유형

멀웨어는 최종 목적에 따라 다양한 형태로 나타납니다. 일부 멀웨어는 자격 증명, 신용 카드 정보 등과 같은 정보에 접근하려는 반면 일부는 순수하게 혼란을 지향합니다. 그들은 컴퓨터에 문제를 발생시키기 위해서 공격을 조직하고, 이를 통해서 시스템을 작동하지 못하도록 합니다. 어떠한 경우에는 사이버 범죄자들은 네트워크의 모든 시스템을 감염시킬 수 있는 정교한 멀웨어를 사용하여 분산 서비스 거부 공격(DDos)을 수행하기도 합니다. 

멀웨어는 다양한 형태로 나타나지만, 가장 일반적인 유형의 악성코드 및 그 유통 방식을 살펴보는 것이 멀웨어를 이해하는데 가장 유용합니다. 

 

랜섬웨어

표적으로부터 돈을 갈취하기 위해 배포되는 특수한 악성코드이며, 가장 널리 알려져 있는 사이버 공격 사례 중 하나입니다. 공격자는 멀웨어를 바이러스로 배포하여 표적 컴퓨터의 하드 드라이브에 액세스합니다. 그런 다음 데이터를 암호화하고 공격자가 요구한 몸값을 지불 할 때까지 사용자가 컴퓨터 및 데이터를 사용할 수 없게 합니다. 대부분 파일 내용을 스스로 해독하는 것은 불가능합니다. 워너크라이(WannaCry)와 메이즈(Maze)가 최근의 대표적인 랜섬웨어로 많은 기업에서 그들의 손상된 컴퓨터와 데이타를 회수하기 위해서 돈을 지불하도록 강요받았습니다. 

바이러스

바이러스는 운영 체제(OS)의 중요한 파일을 포함하여 하드 드라이브의 다른 부분으로 빠르게 확산되어 최대한의 피해를 입히기 위해 만들어진 스스로 전파되는 악성코드입니다. 기존의 소프트웨어 또는 데이터에 자체적으로 삽입되어 파일을 감염시키려는 의도로 확산됩니다. 이것은 애플리케이션을 공격하기 위해 특별히 제작되며 스스로 전파하지 않는 트로이 목마와는 다릅니다. 

매크로 바이러스

이것은 애플리케이션 초기화 과정에 부착(attach)되며, 애플리케이션이 시작할 때 실행됩니다. 멀웨어는 사용자도 모르게 백그라운드에서 명령어를 실행하고, 컴퓨터의 다른 코드에 은밀하게 부착됩니다. 이 악성코드는 일반적으로 마이크로소프트 엑셀 및 워드 프로그램에서 실행됩니다. 

스텔스 바이러스

안티 바이러스 소프트웨어 탐지로부터 자신을 감추기 위해 OS 파일과 시스템 기능을 이어 받습니다. 일반적으로 부트 섹터와 파티션에 자신을 숨겨, 바이러스의 탐지를 피합니다. 이것은 곧 감염된 파일이나 하드디스크 섹터가 탐지가 되지 않음을 의미합니다. 

부트 레코드 바이러스

이것은 부트로더를 감염시키고, 하드 드라이브의 마스터 부트 레코드에 부착합니다. 시스템이 부팅되면 감염자는 부팅 섹터를 검색하여 메모리에 로드하고 하드 디스크의 다른 섹션으로 전파합니다.

트로이 목마

트로이 목마는 좋은 의도를 가진것처럼 지능적으로 위장하여 시스템에 악성코드를 전달하는 메커니즘으로 그리스 신화에서 비롯된 이름입니다. 일반적으로 게임, 소프트웨어 등의 애플리케이션에 숨어있으며, 공격자가 악용하고 광범위한 피해를 입힐 수 있는 백도어를 구축합니다. 그러므로 트로이 목마는 공격자가 추가적인 공격을 하기위해 사용자 디바이스의 기반을 확보하는 진입 메커니즘이라고 할 수 있습니다. 이것은 바이러스처럼 자가 복제하지 않습니다.

웜은 바이러스 및 트로이 목마와 달리 표적 디바이스에서 네트워크의 다른 노드로 확산되도록 설계된 특수한 악성코드로, 특정 지역화된 공격에 사용됩니다. 이러한 프로그램은 일반적으로 전자 메일 첨부 파일을 통해 확산되며 사용자가 첨부 파일을 열때 활성화됩니다. 첨부 파일 등으로 위장되어 연락처에 전자 메일을 보내면서 신속하게 확산될 수 있을만큼 강력하며 순식간에 다른 컴퓨터로 전파될 수 있습니다. 이것은 공격자의 개입없이도 스스로 전파되며, 피해자가 그 위험성을 잘 인식하지 못하기에 더욱 위험하다고 할 수 있습니다.

멀웨어 공격의 예

출처: The New York Times

세계적인 자동차 주요 메이커인 혼다는 2020년 6월 악성 코드에 감염되어 직원들이 네트워크에 접근하지 못하게 되어 이메일과 데이터에 대한 액세스를 할 수 없게 되었습니다. 공격의 영향력이 예상보다 심각했으며,  혼다는 다른 국가의 공장에서도 생산을 중단해야 했습니다. 보안 분석가들은 해커들이 사용하는 사이버 무기가 경쟁국이 적을 공격하기 위해 사용하는 것과 유사하다고 우려합니다. 해커는 이전에 일본 기업의 데이터를 훔치거나 통신망을 교란시키기 위해 공격했었지만, 이와 같이 기업의 생산 라인을 폐쇄하도록 강요하는 것은 해커에게는 매우 큰 파괴적인 성공이라고 할 수 있습니다. 

멀웨어 공격에 대비하기

멀웨어 공격에 대비하는 가장 좋은 방법은 안티 바이러스 소프트웨어를 설치하여 모든 시스템 소프트웨어를 최신 상태로 유지하고 신뢰할 수 있는 스토어에서 합법적인 소프트웨어 또는 애플리케이션만을  다운로드 하는 것입니다. “클릭하기 전에 생각하십시오.”라는 황금률 규칙을 따르면, 멀웨어 공격으로부터 디바이스를 보호하는데 도움이 됩니다.

구독 기반의 인기있는 안티 바이러스 소프트웨어를 사용하면 유해한 의도를 가진 의심스러운 활동이나 파일을 탐지하는데 도움이 됩니다. 항상 완벽한 것은 아니지만 업데이트된 안티 바이러스 소프트웨어는 멀웨어 공격에 대한 첫번째 방어선 역할을 수행합니다. 또한 잠재적인 위험이 있는 악성코드 설치를 줄이는데 도움이 됩니다. 

웹 사이트, 모바일 애플리케이션 등과 같은 비즈니스 중심의 디지털 자산에 대한 계획된 보안 감사는 자산에 대해서 보안 취약점이 없는지 확인하고, 보안 허점을 탐지하여 이를 악용하는 것을 방지하는데 도움을 줍니다. 이러한 평가 수행을 필수 활동으로 간주하면 멀웨어의 위협으로부터 귀하의 고객과 직원 및 이해 관계자를 보호하고, 그들로부터 비즈니스에 대한 신뢰를 유지할 수 있습니다.

SQL 인젝션 (SQLi)

SQL(Structured Query Language)은 데이터베이스와 통신하기 위한 프로그래밍 언어입니다. 서버는 클라이언트와 데이터베이스 사이에서 데이터를 읽고 갱신하기 위해서 SQL을 사용합니다. 공격자는 종종 악의적인 SQL 문을 사용하여 원하지 않거나 예기치 않은 작업을 수행하도록 시스템을 속입니다. 공격자는 SQL 인젝션(SQLi; SQL injection) 방법을 사용하여 데이터베이스로부터 고객의 PII에 직접 액세스하고, 데이터베이스에 업데이트 할 수 있습니다. 이 사이버 공격은 OWASP Top 10 애플리케이션 보안 위험 목록에서 두드러지게 나타나며, 금전적인 대가가 매우 크기 때문에 대부분의 공격자가 선호하는 해킹 방법입니다. 

SQLi는 알려진 SQL 취약점을 악용하며, 주로 서버가 악성코드를 실행하도록 합니다. 애플리케이션의 일반적인 유효성 검사를 통과하면, 공격자는 검색 상자와 같은 사용자 인터페이스 기능을 이용하여 사용자 이름이나 비밀번호와 같은 중요한 개인 정보를 데이터베이스에서 직접 덤프함으로써 모든 보안 수단을 우회합니다.

 

출처: Avi Networks

성공된 SQLi 공격의 결과는 아래와 같습니다.

  • 사용자 이름 및 비밀번호 없이 사용자 인증 과정을 우회
  • 데이터베이스의 데이터 변경/추가/삭제 및 데이터 무결성 저하
  • 수 많은 고객 데이터 검색
  • 애플리케이션 관리자 또는 루트 접근 권한 얻기
  • OS 셸 및 원격 명령 실행

SQLi는 멀웨어 및 피싱 공격과 달리 웹 애플리케이션과 데이터베이스 아키텍처의 클라이언트-서버 모델 작동 방식에 대한 깊은 이해를 필요로 합니다. 공격자는 적절한 벡터를 사용하여 공격을 시작하기 전에 수개월 동안 시스템의 동작을 예리하게 관찰합니다. SQLi는 웹 애플리케이션내에 동적 SQL의 사용으로 인해 발생하는 취약점을 악용합니다. 이것은 PHP 및 ASP 애플리케이션(예전의 관련된 기능 인터페이스가 널리 보급되었음)에서 흔히 볼 수 있습니다.

SQLi 공격 유형

다양한 SQL 인젝션 공격이 존재합니다. 이 공격이 성공하게 되면, 애플리케이션에 대한 손상이 나타나게 될 것이며, 더불어 애플리케이션을 향한 공격자의 집념도 엿볼 수가 있을 것입니다. 

검증되지 않은 입력

공격자가 사용자 입력 문자에 대해서 제대로 검증처리를 수행하지 않은 취약점을 이용하여 공격하는 유형입니다. 이 경우 공격자는 예상되는 데이터베이스 동작이 아닌 모든 고객 데이터의 전체 목록을 검색할 수 있는 문자 조합을 입력하여 공격합니다. 이렇게 얻은 데이타는 공격자가 다크웹에서 판매할 수 있습니다. 

블라인드 SQL 인젝션

이것은 데이터베이스에서 정보를 직접 검색하지 않으며 공격자가 공격을 지속시키기 위해서 인식하는 요소에 따라서 조금씩 다른 형식을 나타냅니다. HTTP 응답의 GET 문자열 쿼리, 검색 쿼리를 기반으로 정보를 검색하는데 소요되는 시간, 데이터베이스에 일련의 참/거짓 질문을 요청하는 행위 등은 공격자가 데이터베이스 구성을 가늠하는데 도움이 됩니다. 이것은 고급 SQLi 공격 기술이며 웹 페이지가 사용자 데이터(또는 오류페이지)를 직접 표시하지 않을 때 사용됩니다. 블라인드 SQLi를 사용하여 공격자는 정찰을 수행하고 민감한 정보를 얻고 데이터베이스 내용을 변경합니다. 일반적으로 SQL sleep() 함수를 사용하여 지정된 기간 동안 데이터베이스를 휴면 상태로 유지하고 해당 기간 동안 응답을 지연하도록 명령합니다.

2차 SQL 인젝션

이러한 유형의 공격은 공격자가 악의적인 SQL 쿼리를 만들어 취득한 데이터베이스에 저장된 사용자 제출 데이터를 사용합니다. 이들은 관리자 트리거 작업과 같은 2차 시스템 동작을 사용하여 공격자가 데이터베이스를 트리거(trigger)하고 제어할 수 있도록 합니다.

SQLi 공격의 예

출처: ICO

2015년 영국의 ICO(Information Commissioner’s Office)는 통신 회사인 TalkTalk에 고객 데이터를 보호하지 못했다는 이유로 £400,000의 벌금을 부과 했습니다. 해커들은 회사의 고객 데이터베이스에 침입하여 이름, 주소, 생년월일, 전화 번호, 이메일 주소 및 은행 계좌 정보와 같은 개인 식별 정보를 포함한 156,959명의 고객 데이터를 훔쳤습니다. ICO는 조사 후 해커가 SQL 인젝션 기술을 사용하여 TalkTalk 데이터를 손상시켰다는 결론을 내렸습니다. TalkTalk이 사용중인 데이터베이스에 이미 알려진 버그가 있었지만, 보안팀이 데이터베이스를 최신 릴리스로 업데이트 하지 않아서 공격의 빌미를 제공하였다고 밝혔습니다. 

SQLi 공격에 대비하기

SQLi 공격을 방지하려면 강력한 코딩 방법이 필요합니다. 개발자는 쿼리에서 가능한 한 동적 SQL을 사용을 피해야 합니다. 사용자가 제공한 입력을 SQL 문에 직접 배치하면 공격자가 데이터베이스에서 직접 정보를 검색할 수 있습니다. 저장 프로시저(stored procedure)와 매개변수가 있는 쿼리를 사용하는 것이 일반적으로 더 안전합니다. 

사용자 입력을 삭제하는 것도 SQLi를 방지하기 위해 권장되는 방법입니다. 사용자가 입력한 데이터는 예상되는 데이터 타입과 일치하도록 동적으로 검증되어야 합니다. 사용자 입력을 저장하기 전에 문자를 적절하게 필터링 해야 합니다.

최소한의 권한만으로 적절하게 데이터베이스를 구성하면 공격자가 데이터베이스 액세스 권한을 확보하더라도 피해를 최소한으로 줄일 수 있습니다. 웹 페이지에 데이터베이스 구성 정보를 표시하는 대신 데이터베이스 오류가 발생한 경우 사용자 지정 404 페이지가 표시되어야 합니다.

암호와 같은 민감한 데이터는 일반 텍스트 형식보다 암호화 후 해시된 형식으로 저장 하십시오. 공격자가 데이터를 유출하더라도 이미 변형되어 해시된 암호를 해독할 수 없으므로 손상을 최대한 피할 수 있습니다.

정기적으로 데이터베이스를 업데이트하고 오류를 패치하는 것은 데이터베이스를 안전하게 유지하고 오류를 최소화할 수 있는 가장 좋은 방법입니다. 데이터베이스 패치를 적용하지 않으면 장기적으로 비용이 많이들 수 있습니다.

웹 애플리케이션 방화벽을 사용하여 주요 데이터베이스를 구성하면 공개된 앱에 대한 보호를 제공하고 SQLi 시도를 식별하는데 도움이 됩니다.

서비스 거부/분산 서비스 거부 공격 (DoS/DDoS 공격)

가해자는 서비스 거부(DoS) 공격을 통해 인터넷에 연결된 호스트의 서비스를 중단시켜 의도된 사용자가 디지털 자산에 접근할 수 없도록 만들려고 합니다. 이 공격은 호스트 서버가 처리할 수 있는 것보다 훨씬 많은 요청을 범람시켜, 결국은 호스트 서버의 크래시를 발생시킵니다. 이로 인해 일반 사용자의 합법적인 요청을 처리할 수 ​​없게 되고 리소스와 대역폭이 소모됩니다. 이러한 공격 요청의 출처가 여러 손상된 컴퓨터(봇넷)에서 동시에 발생하는 것을 분산 서비스 거부(DDoS) 공격이라고 합니다.

DoS/DDoS 공격이 랜섬웨어 및 피싱 공격처럼 공격자에게 직접적인 이점을 제공하지는 않지만, 정상적인 사용자의 요청이 거부되는 것만으로도 공격자가 이러한 공격을 가하기에 충분합니다. 기업 자원에 대한 DoS 공격을 수행하는 것이 공격자 측면에서 훨씬 더 효과적이며 고객 충성도 및 해당 서비스 브랜드에 대한 고객 신뢰에 직접적인 영향을 미칩니다. 경우에 따라 공격자는 DDoS를 다른 기술과 결합하여 더 큰 공격을 수행하며, DDoS 공격은 시스템을 네트워크로부터 오프라인으로 전환하는 전조라고 할 수 있습니다.

DoS/DDoS 공격 유형

TCP SYN 플러딩 공격

출처: Imperva

이것은 TCP(전송 제어 프로토콜) 세션 초기화 핸드셰이크 수행 동안에 버퍼 크기의 취약점을 사용하여 여러 연결 요청을 만들어 시스템에 과부하를 일으키는 공격을 말합니다. 공격자의 시스템은 대상 시스템의 요청에 고의로 응답하지 않고, 시스템을 여러 요청으로 범람시킵니다. 이로 인해 대상 시스템이 시간 초과되어 다른 사용자의 합법적인 요청을 받을 수 없게 됩니다 . 

티어드롭(teardrop) 공격

출처: ResearchGate

이러한 유형의 공격은 조각난 정보 패킷을 대상 시스템으로 보내는 행위를 포함합니다. 이 공격은 TCP/IP 조각난 패킷 조립 버그(이전 OS 버전에서 발견됨)를 이용하여 대상 시스템에서 조각난 패킷이 서로 겹치도록 만듭니다. 시스템이 조각난 패킷을 재구성하려고 하지만 실패하고 크래시가 발생합니다. 티어드롭 공격은 일반적으로 거대한 페이로드를 사용합니다.

UDP 플러딩 공격

출처: Cloudflare

이것은 대상 시스템의 랜덤 포트를 범람시켜 UDP(사용자 데이터그램 프로토콜) 패킷을 처리하고 응답하는 능력을 압도하는 행위를 포함합니다. 경우에 따라 서버에 연결된 방화벽이 UDP 플러딩으로 인해 과부하되어 시스템이 종료됩니다.

스머프 공격

출처: Imperva

여기에는 압도적인 트래픽으로 대상을 포화시키기 위한 IP 스푸핑(원래 IP 숨기기)이 포함되며 스푸핑된 대상 IP에서 발생하는 ICMP 에코 요청을 이용하여 공격하는 것을 포함합니다. 이 요청은 지정된 범위의 모든 IP 주소로 이동하며 모든 응답은 시간이 지남에 따라 네트워크를 압도하는 수준으로 트래픽이 증가되어 희생자의 시스템은 더 이상 동작이 불가능할 정도로 느려지게 됩니다.

죽음의 핑(ping of death) 공격

출처: Cloudflare

이것은 허용된 크기인 65,535 바이트를 초과하는 IP 패킷 공격을 처리하기 위한 패치를 하지 않은 시스템을 대상으로 핑 공격하는 것을 말합니다. 공격자는 패킷을 조각화한 다음 대상 시스템에서 재조립합니다. 그렇게 하는 동안, 시스템은 버퍼 오버플로우 및 크래시를 경험할 수 있습니다. 

봇넷

바로 여기가, 공격자의 악성 코드에 감염된 여러 시스템이 DDoS 공격을 수행하는 곳이라고 할 수 있습니다. 이러한 좀비 시스템은 대역폭과 처리 능력을 압도하여 대상 시스템을 불안정하게 만드는 임무를 수행합니다. 봇넷을 통한 공격은 서로 다른 지리적 위치에서 시작되므로 공격의 출처를 추적하는 것이 사실상 불가능 합니다. 

DDoS 공격의 예

출처: Cloudflare

2018년 2월 해커들은 대규모 DDoS 공격에서 인기있는 코드 호스팅 사이트 GitHub를 표적으로 삼았습니다. 이것은 지금까지 알려진 가장 큰 DDoS 공격으로 간주됩니다. 짧은 기간 동안 지속되었지만 최고조에 이르렀을 때 GitHub 네트워크는 초당 1억 2,690만 개의 패킷 교환 속도로 초당 1.3 테라바이트의 데이터를 수신했습니다. 봇넷 공격이 아니라 맴캐시드 공격이었기 때문에 공격자들은 맴캐시드 서버에 스푸핑된 요청을 보냈고 결국 공격 강도를 50,000배로 증폭 시켰습니다. 전 세계 수천 명의 코더가 참여하는 고급 네트워크인 GitHub는 10분 이내에 공격을 감지하고 즉시 수정 경로를 시작했습니다. 전체 프로세스는 20분 밖에 걸리지 않았지만 공격 규모로 인해 최악의 DDoS 공격으로 남아있습니다. 

 DoS/DDoS 공격에 대비하기

공격자를 추적하고 공격의 출처를 아는 것이 사실상 불가능하기 때문에 DDoS와 싸우는 것은 매우 어렵습니다. DoS/DDoS 공격은 발생 후 조치를 취하는 것보다 예방하는 것이 가장 효과적이기 때문에 보안 및 네트워크 감시 도구를 사용하여 트래픽을 모니터링하면 일반적으로 DDoS 공격과 싸우는데 도움이 됩니다.

또한 의심스러운 네트워크 활동을 모니터링하는 것이 도움이 됩니다. 예를 들어, 비정상적인 웹 트래픽 피크는 경보를 발생시켜야 합니다. 웹 관리자는 인터넷 패킷이 자신의 진짜 IP 주소로 올바르게 추적되는 수신 필터링 방법을 사용할 수 있습니다. 스푸핑된 IP 주소를 차단하고 알려진 악성 소스에서 들어오는 트래픽을 차단하면 DDoS 공격을 방지할 수 있습니다.

사이버 범죄자가 취약점을 악용하지 않도록 사용되지 않는 서버 포트를 닫는 것이 좋습니다. 또한 라우터 수준에서 IP 지향 브로드 캐스트를 비활성화하는 것이 도움이 될 수 있습니다. SYN 패킷을 처리하도록 방화벽을 구성하고 최대 크기에 대해 조각난 페이로드를 모니터링하여 PoD 공격을 방지합니다.

유료 보안 호스팅 솔루션은 항상 도움이됩니다. AWS와 같은 클라우드 인프라에서 호스팅되는 전용 가상 사설 서버는 안정적이고 확장 가능한 호스팅 솔루션을 제공하여 DDoS 공격을 막을 수 있습니다. 프록시 주소의 사용은 DDoS 공격에 대응하는 유효한 방법입니다. 

크로스 사이트 스크립팅(XSS)

출처: Cloudflare

XSS는 OWASP Top 10 애플리케이션 보안 위험에서 두드러진 위협으로 특정됩니다. 공격자가 웹 사이트 자체를 공격하지 않고 웹 사이트에 직접 코드 또는 악성 스크립트를 삽입하는 공격 유형 중 하나입니다. 공격자는 JavaScript, Flash, Ajax 등으로 스크립트를 작성합니다.

사용자가 손상된 웹 사이트를 방문할 때 마다 클라이언트의 브라우저가 스크립트를 실행합니다. 웹 브라우저는 신뢰할 수 있는 소스에서 제공되는 이러한 스크립트를 악성으로 인식하지 못하므로 브라우저에서 해당 스크립트가 성공적으로 실행되고, 브라우저가 보유한 쿠키, 세션 토큰 및 기타 민감한 정보가 캡처됩니다.  이것은 웹 사이트의 평판을 손상시킬 뿐만 아니라 (공격자가 웹 사이트 자체를 훼손할 수도 있기 때문에) 사용자 자격 증명, 신용 카드 정보, 쿠키 등과 같이 사용자가 통신하는 모든 정보를 가로채기도 합니다. 더욱 심각한 점은 웹 사이트 관리자나 사용자는 악성 코드에 대한 단서를 전혀 가지고 있지 않아, 즉시 대응하지 않을 경우 막대한 피해로 이어진다는 것입니다. 

XSS 공격 유형

반사형 XSS 또는 비지속형 XSS 공격

출처: Medium

이러한 유형의 공격은 애플리케이션이 HTTP 요청에서 데이터를 수신하지만 안전하지 않은 방식으로 응답을 포함할 때 발생합니다. 공격자는 악성 스크립트를 URL에 포함된 쿼리로 전달하거나, 링크로 게시하거나 이메일(피싱)을 이용하여 사용자에게 보냅니다. 사용자가 링크를 클릭하면 스크립트가 실행됩니다. 쿼리에 비정상 입력 값이 있기 때문에, 악성 스크립트는 대상 시스템의 브라우저가 로딩되고 있는 웹 페이지에 삽입되고, 이후 브라우저에 의해 실행됩니다. 공격자는 개인 데이터를 수신합니다. 정교하게 설계된 공격의 경우 공격자는 애플리케이션내에서 일반 사용자처럼 모든 작업을 수행하고 다른 사용자와의 상호 작용을 시작할 수도 있습니다. 계속해서 감염된 사용자로부터 오는 요청을 받은 사용자들이 늘어날 수 있기 때문에 이후에도 피해는 늘어나게 됩니다. 

지속형 XSS 공격

출처: Medium

이 공격은 적절한 유효성 검사를 수행하지 않고 취약한 서버 자체에 사용자 입력을 저장할 때 발생합니다. 반사 형 XSS 공격과 달리, 사용자는 취약한 웹 애플리케이션을 방문하는 것만으로도 공격을 받습니다. 감염된 웹 사이트를 방문하는 사용자는 어떠한 액션을 수행하지 않아도, 이미 저장된 입력을 받아 로컬 브라우저에서 악성 스크립트를 실행하게 됩니다. 비록 이러한 유형의 공격이 덜 널리 퍼져 있지만 비지속적인 XSS 공격보다 더 파괴적입니다.

DOM 기반 XSS 공격

출처: Medium

이것은 웹 애플리케이션이 적절한 삭제없이 DOM(문서 객체 모델)에 데이터를 쓰는 경우에 발생합니다. 공격자가 제공하는 페이로드가 아니라 애플리케이션 자체에서 제공하는 클라이언트 측 스크립트의 취약점으로 인해 발생합니다. 공격자는 DOM의 여러 개체를 사용하여 XSS 공격을 만들 수 있습니다. 취약한 클라이언트 측 스크립트는 공격자가 삽입한 악성 스크립트를 대상 브라우저로 전달합니다.

XSS 공격의 예

가장 유명한 XSS 공격 중 하나는 미국 보안 연구원이자 해커인 Samy Kamkar의 이름을 딴 Samy 웜을 통해 수행되었으며, 이것은 마이스페이스를 통해 감염 및 전파되도록 설계되었습니다. 해커의 의도는 아니었기 때문에 네트워크에 큰 해를 끼치지는 않았지만, 소셜 네트워크를 빠르게 감염 시켰습니다. 해커는 2005년 10월 4일에 이 서비스를 시작했으며 백만개 이상의 마이스페이스 사용자 계정에서 이 서비스를 실행하기까지 20시간이 걸리지 않았습니다. 사용자가 이 페이로드를 실행하자마자 프로필 페이지에 “하지만 무엇보다 Samy는 내 영웅입니다”라는 메시지가 표시되었고, 친구 요청을 Kamkar에게 보냈습니다. 마이스페이스는 곧 취약점을 수정하였고, Kamkar을 경찰에 신고했습니다.

 

XSS 공격에 대비하기

위에 나열된 XSS 공격을 방지하려면 클라이언트와 서버 측 모두에서 적절한 보안 조치가 필요합니다. 페이스북 및 구글과 같은 인기있는 애플리케이션이 이 공격의 희생양이 되면서 XSS 공격을 방지하고 애플리케이션을 안전하게 유지하는 방법을 이해하는 것이 더욱 중요해졌습니다.

내장된 데이터 삭제, 유효성 검사 및 필터링 기능과 같은 시큐어 코딩 방법을 사용하는 것이 중요합니다. 사용자 입력 데이터를 필터링하면 최종 사용자에게 렌더링하기 전에 사용자 입력의 키 문자가 삭제됩니다. HTML 및 JS 코드를 필터링하고 특수 문자를 해당 HTML 또는 URL 인코딩된 문자열로 변환하면 공격자에게 공격의 기회를 박탈시키는데 도움이 됩니다.

코드베이스의 변경 사항을 수동으로 테스트하고 보안 테스트 도구의 도움을 받아, 반사형 또는 저장형 XSS를 찾고, 웹 사이트를 활성화하기 전에 식별된 취약점을 수정하는 것이 중요합니다. 웹 애플리케이션 취약성 스캔 도구를 정기적으로 사용하면 개발자가 애플리케이션의 문제점을 식별하고 효과적으로 수정하여 애플리케이션 보안 손상을 방지하는데 도움이 될 수 있습니다. 

중간자(MiTM; Man-in-the-Middle) 공격

출처: Imperva

중간자 공격은 해커가 클라이언트와 서버 간의 통신을 엿듣는 경우 발생합니다. 공격자가 두 통신 시스템 사이를 불법적으로 엿듣기 때문에, 이러한 이름이 붙었습니다. 클라이언트와 서버 간의 통신이 이루어지면 비공개 정보인 세션 ID가 생성됩니다. 하지만 중간자 공격의 경우 침입자는 세션 ID를 캡쳐하고 합법적인 리소스로 가장한 후 정상적인 사용자를 대신하여 서버와의 세션을 계속하여 가로 챌 수 (예를들어 XSS 공격을 통해) 있습니다. 침입자는 서버에 있는 승인되지 않은 정보 세트에 액세스하고 혼란을 일으킬 수 있습니다. 이 공격은 IP 및 DNS 스푸핑, 릴레이 공격 및 세션 하이재킹과 같은 다양한 유형으로 시도됩니다.

중간자 공격 유형

로그 액세스 포인트(Rogue AP)

출처: Shellvoide

로그 AP는 네트워크에서 허가되지 않은 노드이지만, 여전히 작동 중입니다. 이러한 개방형 무선 AP를 사용하여 공격자는 주변 장치에 대한 액세스를 시도할 수 있습니다. 일반적으로 암호화나 인증 없이 사용이 가능하기 때문에, 근접한 최대한의 디바이스가 연결될 수 있습니다. 따라서 공격자는 손쉽게 접속한 디바이스의 네트워크 데이터를 손상시킬 수 있습니다.

주소 결정 프로토콜(ARP; Address Resolution Protocol)

출처: Ionos

ARP는 시스템 IP 주소를 LAN의 물리적 MAC(미디어 액세스 프로토콜) 주소로 연결하는 것을 의미합니다. 두 호스트는 ARP를 참조하여 IP 주소를 MAC 주소로 매핑하여 서로 통신합니다. 공격자는 ARP 스푸핑을 사용하여 가짜/스푸핑된 ARP 메시지를 보냅니다. 이로 인해 MAC 주소가 네트워크에 있는 합법적인 컴퓨터의 주소와 매핑됩니다. 이로 인해 공격자는 원래 시스템용으로 의도된 정보를 얻고, 전송 중에 데이터를 가로 채서 수정합니다.

멀티캐스트 DNS(mDNS; multicast DNS) 공격

여기서 DNS 쿼리는 동일한 브로드캐스트 도메인에 있는 네트워크의 모든 디바이스로 전송됩니다. 스누퍼는 ARP 스푸핑과 마찬가지로 LAN에서 mDNS 스푸핑 공격을 수행합니다. 공격자는 이 프로토콜의 단순한 작업을 이용하여 가짜 데이터를 요청하고, 신뢰할 수 있는 네트워크것처럼 위장하여 시스템에 연결합니다. 피해자의 시스템은 공격자의 기기를 신뢰할 수 있는 네트워크로 표시하며, 이 네트워크를 통해 디바이스를 제어할 수 있게 됩니다. 

공격자는 여러 기술을 사용하여 중간자 공격을 수행합니다. 여기에는 공격자가 패킷 캡처 도구를 사용하고 의도하지 않은 네트워크 패킷을 검사하는 스니핑이 포함됩니다. 또한 공격자는 패킷 인젝션을 사용하여 악성 패킷 데이터를 네트워크 스트림에 삽입하고 합법적인 데이터 패킷과 혼합하여 인식을 회피합니다.

세션 하이재킹

출처: Netsparker

세션 하이재킹은 널리 퍼진 중간자 공격 유형입니다. XSS를 통해 공격자는 사용자 세션 토큰에 대한 액세스 권한을 얻고 정상적인 사용자의 활동처럼 가장합니다. 해커가 세션 토큰에 액세스하면 애플리케이션에 대한 사용자의 완전한 액세스 권한을 갖게 됩니다.

이름에서 알 수 있듯이 SSL 스트리핑은 ARP 또는 DNS 스푸핑을 허용하기 위해 HTTPS에서 보안 계층을 스트리핑하는 것을 포함합니다. 공격자는 패킷을 가로 채서 보안 HTTP 요청을 비보안 HTTP 요청으로 변경하여 민감한 정보를 암호화되지 않은 일반 텍스트 정보로 전달합니다.

중간자 공격의 예

출처: WeLiveSecurity

2019년 4월 인터넷 보안 회사 ESET은 ASUS 네트워크에서 Plead 악성 코드에 의한 중간자 공격을 발견했습니다. 연구원들은 Plead 백도어가 ASUS WebStorage와의 통신을 위해 개발된 윈도우 기반 프로세스인  “AsusWSPanel.exe”를 사용하여 생성되었다고 언급했습니다. 연구원들은 라우터의 관리자 패널이 보안이 쉽게 침해될 수 있는 인터넷을 통해서 액세스할 수 있었기 때문에, 악성 코드가 중간자 공격과 손상된 라우터를 통해서 확산되었다고 추측했습니다. 이러한 시나리오상에서 ASUS WebStorage 소프트웨어가 보낸 HTTP 요청에는 해커가 삽입한 손상된 PNG 이미지 파일을 다운로드하는 악성 링크가 포함되어 사용자는 자신도 모르게 악성코드가 삽입된 이미지 파일을 다운로드 하게 되었습니다. 이 Plead 페이로드에는 운영 체제의 시작 메뉴에 등록되는 윈도우 바이너리도 포함되어 있습니다. ESET 연구원은 회사가 클라이언트 터미널을 보호하기 위해서는 중간자 공격 방지 업데이트를 적용해야 한다고 결론 지었습니다.

중간자 공격 대비하기 

중간자 공격을 예방하는 것이 발생 후 대응하는 것보다 훨씬 더 효과적이고 최선의 방법입니다. AP에 강력한 WAP(Wi-Fi Protected Access) 암호화를 구현하는 것은 모든 사람이 임의로 네트워크에 가입하여 무차별 대입 공격을 수행할 수 없기 때문에, 중간자 공격을 방지하는 확실한 방법이라고 할 수 있습니다. 

가상 사설망(VPN)은 네트워크에서 중요한 정보를 교환하는데 암호화를 적용하기 위해서 선호되는 방법입니다. 이로 인해 공격자가 네트워크 통신을 해독하기 어렵고 사용자의 실제 위치를 숨길 수 있습니다. 

HTTPS의 보안 계층은 침입자가 클라이언트와 서버 사이에서 발생하는 통신을 변조하는 것을 방지합니다. 모든 네트워크 통신에 대해 HTTP 대안없이 HTTPS 연결만 구현하면 공격자가 패킷 스니핑을 사용할 수 없습니다.

RSA와 같은 공개키쌍 기반 인증 프로토콜은 정의된 공개-개인 암호화 및 복호화 프로세스를 통해 두 호스트간에 발생하는 통신을 보호하는데도 도움이 될 수 있습니다.

제로 데이 공격

취약점은 소프트웨어 또는 호스팅된 애플리케이션이나 하드웨어의 결함으로 인해 발생할 수 있습니다. 일반적으로 테스트팀의 관심에서 벗어난(발견되지 않은) 버그이므로 개발팀은 이에 대해 알지 못합니다. 알려진 결함이 있는 경우 프로덕션 환경에 공개하기 전까지는 개발팀은 결함 수정을 위한 패치를 만들 수가 없습니다. 이로 인해 공격자가 악용할 수 있는 취약점이 열립니다. 그 이름은 취약점 탐지 시점과 공격 가능성 사이에 제로 데이 간격이 있다는 사실에서 유래되었습니다. 

웹 애플리케이션의 개방형 취약점은 기술팀이 취약점의 존재를 인식하기 전에 공격이 발생할 수 있는 가능성을 열어줍니다. 대부분의 경우 취약점은 위협 ​​행위자가 공격을 수행한 후에만 ​​개발자가 버그를 알게되기 때문에 수개월 동안 탐지되지 않을 수 있습니다. 결과적으로 이러한 증상은 고객의 정보 손실 또는 자격 증명 도용으로 나타납니다. 그런 이후에야 개발자는 취약점에 대한 패치를 개발하고 추가 손상을 방지하기 위해서 노력합니다. 

제로 데이 공격의 예

출처: Proofpoint

2017년 4월 초 주로 마이크로소프트 워드 사용자를 대상으로 한 대규모 제로 데이 공격이 호주에서 발생하였습니다. 그것은 트로이 드리덱스Trojan Dridex)를 운반하는 대규모 이메일 캠페인의 일부였습니다. 사용자가 이메일에서 다량의 매크로가 포함된 워드 문서를 다운로드하여 열었을 때, 그들은 드리덱스 봇넷을 설치하였고, 사용자는 뱅킹 트로이 목마의 희생자가 되었습니다. 이 악성 코드는 감염된 워드 파일이 “편집 사용” 기능이 켜진 상태에서 열렸을 때 만 실행되었는데, 대부분의 사용자가 다운로드한 문서에는 부주의하게도 편집 권한을 부여했기 때문에 확산이 멈추지 않았습니다. 마이크로소프트는 곧 보안 문제를 인식하고, 2017년 4월 11일에 관련 패치를 발표했습니다.

제로 데이 공격 유형

공격자는 수백만 줄의 코드를 살펴보고 리버스 엔지니어링 도구와 기술을 사용하여 애플리케이션의 취약성을 조사한 후 버그 또는 안전하지 않은 코드를 공개합니다. 일단 알려지면 공격자는 이 정보를 사용하여 추가 공격을 전파하거나 다크넷에서 민감한 정보를 판매할 수 있습니다.

사이버 범죄자들은 마이크로소프트 윈도우에서 실행되는 PLC(Programmable Logic Controllers)의 제로 데이 취약점을 악용하는 Stuxnet과 같은 웜을 사용하여 이란 및 인도네시아와 같은 다양한 국가의 제조 산업에서 사용되는 컴퓨터를 표적으로 삼았습니다. 이로 인해 우라늄 농축 과정에 필수적인 이란 핵 시설의 원심분리기가 중단되기도 하였습니다. 

또한 공격자는 애플리케이션의 제로 데이 취약점과 여러 공격 방법을 결합하여 오랫동안 악영향을 미치도록 할 수 있습니다. 사이버 범죄자들은 ​​스푸핑, 피싱 등과 같은 기술을 사용하여 사용자가 제로 데이에 웹 사이트를 방문하도록 유도하고, 해커는 취약점을 이용하여 웹 사이트를 방문할 때 악성 코드를 피해자의 시스템에 이식할 수 있습니다.

제로 데이 공격에 대비하기

제로 데이 취약점을 공격자가 부적절하게 사용하기 전에 탐지하는 것이 중요합니다. 취약성 검사 및 보안 감사는 제로 데이 취약점을 탐지하는데 큰 도움이 될 수 있습니다. 실제 공격 테스트 케이스 시나리오를 시뮬레이션하여 애플리케이션을 더욱 강력하고 버그 없이 만들 수 있습니다.

기존 벤치 마크에 대한 상호 코드 리뷰(peer code review)는 이전에 알려지지 않은 소프트웨어 취약점을 찾는데 도움이 될 수 있습니다. 이렇게 하면 코드를 안전하게 필터링하고 보다 신속하게 애플리케이션을 업데이트 하는데 도움이 됩니다.

버그/취약점 코드 감지를 위한 엄격한 테스트는 제로 데이 공격으로 인한 침입을 방지하기 위한 필수 사항입니다. 애자일 소프트웨어 개발을 채택함에 따라 반복하는 주기가 더 짧고 구체화 되었습니다. 계획된 테스트는 개발팀이 고객과 합의된 기한 내에 제품의 품질을 보장하는데 도움이 될 수 있습니다.

패치 관리를 정의된 관행으로 도입하여 패치로 코드베이스를 정기적으로 업데이트하면 제로 데이 공격의 위험을 줄일 수 있습니다. 패치를 적용하여 버그를 수정하고, 패치 후 신속한 애플리케이션 배포를 지원하는 잘 정의된 프로세스는 애플리케이션을 안전하고 강력한 최신 상태로 유지하는데 반드시 필요합니다.

사이버 공격에 대응하는 방법

예방이 치료보다 낫습니다. 이 격언은 현재의 보안 위협을 처리하는데 있어 사실임을 입증합니다. 손상이 발생한 후 사후 분석을 수행하는 것보다 보안 이슈 발생을 방지하는 것이 비용이 적게 드는 경우가 많습니다. 그러나 사이버 공격이 발생한 상황을 감안할 때 상황을 신속하게 평가하고 피해를 최소화하기 위한 즉각적인 조치를 취하기 위해 관련된 구성원의 역할과 책임을 포함하는 단계별 프로토콜을 마련해야 합니다.

사이버 공격 상황을 완벽하게 파악하고 조치를 취하기 위해 다음 단계 중 일부 또는 전부를 보증해야 합니다.

  • 보안 이슈가 실제인지 아니면 단지 공포감 인지를 평가합니다. 일부 공격은 사소하고 즉시 패치될 수 있는 반면 다른 공격은 조직의 IT 인프라에 다양한 영향을 미칠 수 있을 만큼 충분히 클 수 있습니다. 공격이 진짜라면 (데이터에 액세스 할 수 있고 손상되지 않은 경우) 즉시 데이터 백업을 수행하십시오. 데이터 중복성(두 세트의 동일한 데이터)을 유지하는 것은 이러한 상황에서 큰 도움이 될 수 있습니다.
  • 공격 유형에 따라 맞춤형 사이버 사고 계획을 구현합니다.
  • 통신 프로토콜의 일부로 경영진과 관리자들에게 알립니다. 사실을 있는 그대로 제시하고 공격의 영향, 피해를 제어하기 위해 계획된 활동 및 향후 이러한 공격을 방지하기 위한 조치에 대해 알려줍니다.
  • 공격자의 가능한 디지털 흔적(digital footprint)을 찾아내어 공격 내용과 함께 법적 당국에 알립니다.
  • 어떤 경우에는 내부자에 의한 공격이 원인일 수 있습니다. 이 경우 조사를 시작하고 가해자에 대해 적절한 조치를 취하는 것이 현명합니다. 
  • DoS 공격의 경우 대기 서버를 활성화하여 웹 사이트 트래픽을 리디렉션 하도록 조치합니다. 그런 다음 서비스 불가능한 서버를 정상적으로 재시작할 수 있도록 노력합니다. 
  • 사내팀은 대규모 사이버 공격을 처리하는데 여러움을 겪을 수 있습니다. 이러한 경우 사이버 보안 전문가를 묶어 피해를 객관적으로 평가하고, 공격 방식을 이해하여 원인이 되는 취약점을 찾기위해 집중하는 환경을 만드는 것에 주저하지 않아야 합니다. 향후 유사한 공격을 예방할 수 있는 개선 조치를 시행합니다.
  • 최대한 주의를 기울이고 웹 애플리케이션 방화벽 및 기타 보안 시스템을 적극적으로 모니터링하여 부적합한 활동에 대비합니다. 광범위하고 복잡한 공격으로 안전하게 보호하기 위해 앱실링(AppSealing)과 같은 포괄적인 보안 솔루션에 장기적으로 투자하는 것이 좋습니다.

위의 단계를 채택하는 것은 사이버 공격의 영향을 줄이고 향후 사이버 공격을 방지하기 위한 보안 이니셔티브 및 모범 사례에 대해서 면밀히 조사 및 학습하여 적절한 방법을 선택할 수 있는 좋은 출발점이 될 수 있습니다.

사이버 공격을 예방하기 위한 모범 사례

복잡한 보안 위협과 새롭게 등장하는 공격 기술에 직면한 현실에서 시스템/웹 애플리케이션이 강력하게 구성되어 있다고 하더라도, 완벽히 안전하다고 할 수는 없습니다. 하지만 이러한 현실이 강력한 사이버 공격 발생시에 첫 번째 방어선 역할을 할 수 있는 사이버 보안 모범 사례 심화 연구를 방해해서는 안됩니다.

다양한 사이버 공격에 대한 섹션에서 관찰한 내용을 바탕으로 사이버 공격을 방지하기 위한 관행, 기술 및 정책을 살펴 보겠습니다.

  • 직원의 온라인 활동, 방문하는 웹 사이트, 공개된 첨부 파일 등을 추적하는 포괄적인 바이러스 백신 솔루션을 사용하여 악성코드의 공격을 막습니다.
  • 강력한 방화벽을 설치하고 적절하게 구성하여 직원을 위한 안전한 온라인 환경을 제공합니다. 3rd party 방화벽(기본 내부 방화벽과 함께)은 비즈니스에 필요한 추가 보안 안전 장치를 제공합니다. 이메일 격리 엔진은 스팸/피싱 출처로부터 직원에게 전달하기 전에 감지하는데 도움이 됩니다.
  • 네트워크를 정기적으로 모니터링하고 의심스러운 활동을 즉시 조사하여 예상치 못한 사고를 방지합니다. 앱실링(AppSealing)과 같은 포괄적인 보안 제품군에 투자하면 사이버 공격을 예방하는 것과 예방 가능한 사이버 공격으로 인해 입은 손실을 후회하는 것 사이의 커다란 간극을 메울 수 있습니다. 
  • 자세한 사이버 보안 정책 문서를 준비하고 가능한 한 이것을 준수합니다.
  • 온라인 상태에서 안전하게 행동하는 방법에 대해 직원 및 공급 업체를 포함한 모든 이해 관계자를 교육하고, 안전한 브라우징 관행 및 보안 정책을 인식하도록 합니다.
  • 조직의 관행으로 정기적인 데이터 백업(클라우드 데이터 포함)을 예약하고 백업된 데이터를 별도의 서버에 저장합니다. 이러한 습관은 랜섬웨어 공격을 포함한 사이버 공격이 발생한 경우 중요한 데이터의 손실로부터 자유로울 수 있습니다. 
  • 특히 회사 네트워크의 데이터에 액세스하는 여러 디바이스에서 보안 침해를 방지하기 위해 강력하고 안전한 비밀번호 관행을 시행합니다. 강력한 비밀번호는 여전히 조직 전체에 사이버 보안을 적용하는 가장 기본적인 방법 중 하나입니다.
  • 보안 전문가와 협력하고 VAPT(취약성 평가 및 모의 침투 테스트)를 수행하여 애플리케이션의 보안 취약점을 식별하고 애플리케이션이 악성 코드/XSS 공격의 원인이 되지 않도록 교정 조치를 취합니다.

요컨대, 사전 예방적 접근 방식을 채택하는 것이 현재의 보안 위협 시나리오를 처리하는 유일하고 지속 가능한 방법입니다. 이 접근 방식은 기업의 네트워크 및 애플리케이션 보안 요구 사항을 모두 해결하는 강력한 보안 아키텍처 구축을 동반합니다. 

결론

사이버 공격은 진화하는 위협 환경과 함께 항상 우리 주변에 도사리고 있습니다. 더 많은 사람들이 온라인으로 이동하고, 여러 가지 방법으로 디지털 애플리케이션에 액세스함에 따라, 사이버 공격의 복잡성, 대담성 및 피해를 입히는 능력은 증가할 것으로 예상됩니다. 따라서 기업은 보안 위협을 효과적으로 처리하기 위해 사전 예방적 접근 방식을 채택하기 위해 앱실링과 같은 보안 솔루션에 투자하는 것이 필수적입니다. 이는 특히 경쟁 업체가 보안 문제에 시달릴 때 브랜드 이미지를 보호하고 고객 충성도를 보장하며 데이터 무결성을 유지하는 데 큰 도움이 됩니다. 사이버 공격에 대한 이해는 사이버 공격을 물리치고 앞서 나갈 수 있는 보안 조치를 채택할 수 있는 확실한 첫 단계입니다.

 

How people and organizations can keep themselves safe from being compromised by cyber criminials.

University of North Dakota

Dustin Hong
Dustin Hong
Dustin은 잉카엔트웍스의 앱실링 비즈니스 개발을 이끌고 있습니다. 그는 사이버 보안, IT, 컨텐츠 및 애플리케이션 보안 분야의 소프트웨어 개발과 혁신에 많은 관심을 가지고 있습니다. 또한 사이버 보안 세계에서 주요 사건의 대상, 이유 및 방법에 대해 다양한 사람들에게 공유하고 토론하는 것을 좋아합니다. 업계 동향 및 모범 사례에 대한 그의 견해는 기사, 백서에 실려있으며, 여러 보안 행사에서 유사 주제로 발표를 하였습니다.

Leave a Comment

Code Obfuscation