일반적인 보안 취약점 유형 및 해결 방법
게시 됨: 2022-07-11Microsoft Exchange Server의 취약점은 미국의 60,000개 이상의 민간 기업에 영향을 미치는 일련의 대규모 사이버 공격에 기여했습니다. 그리고 불과 한 달 전, 항공우주 회사인 Bombardier는 타사 파일 전송 앱의 취약점으로 인해 직원 및 공급업체의 데이터가 유출되었습니다.
IT 시스템을 해커의 레이더에 포착할 수 있는 보안 취약성 유형이 많이 있습니다. 잘못된 코딩 방식부터 결함이 있는 외부 구성 요소에 이르기까지 이유가 무엇이든 많은 회사에서 결국 노출됩니다. 이 문제를 완화하기 위해 기업은 자체 소프트웨어 및 네트워크를 평가하고 외부 공급업체 구성 요소의 보안 위험을 평가하는 QA 및 테스트 서비스의 이점을 누릴 수 있습니다.
그렇다면 현재 어떤 보안 취약성 유형이 시스템을 사이버 위협에 노출시킬 수 있습니까? 취약점은 어떻게 나타납니까? 그리고 어떻게 완화할 수 있습니까?
소프트웨어 취약점이란 무엇이며 어디에서 발생합니까?
보안 취약성은 우발적인 노출, 의도적인 공격 또는 새 구성 요소와의 충돌로 인해 침입 또는 데이터 손실의 위험을 확대하는 의도하지 않은 시스템 또는 구성 요소 특성입니다. 이러한 취약점은 설계 결함, 구현 버그, 잘못된 구성 등이 될 수 있습니다.
더 진행하기 전에 취약점, 익스플로잇 및 위협의 차이점을 명확히 합시다.
- 외부인의 노력 없이 시스템에 취약점이 존재
- 익스플로잇은 침입자가 기존 시스템 약점을 사용하여 공격을 시작하는 방식입니다.
- 위협은 하나 이상의 익스플로잇이 취약점을 사용하여 시스템에 침투하는 실제 사건입니다.
보안 전문가는 소프트웨어 패치, 하드웨어 교체 및 시스템 재구성을 사용하여 발견 시 취약점을 제거할 수 있습니다. 최종 사용자에게 보안 관행을 교육하고 모든 구성 요소를 최신 상태로 유지하면 취약성을 예방하고 최소화할 수 있습니다. 또한 보안 팀은 시스템이 발전함에 따라 새로운 약점이 나타난다는 점을 염두에 두어야 합니다. 따라서 기업은 소프트웨어, 하드웨어 및 네트워크에서 새로운 취약점을 체계적으로 검색하고 발견 및 악용되기 전에 수정해야 합니다.
미국 정부의 NVD(National Vulnerability Database)가 2022년 1분기에 8,000개 이상의 새로운 항목을 게시함에 따라 새로운 보안 취약점이 계속 빠르게 등장하고 있습니다. 이러한 빠른 속도로 인해 많은 기업이 따라가지 못하고 몇 년 동안 공개된 취약점을 노출하여 시스템. 소프트웨어 취약성에 대한 연구에 따르면 2020년에 발생한 공격의 75%는 2년 이상 된 익스플로잇을 악용한 반면 18%는 2013년에 보고된 취약점에 의존했습니다!
보안 취약점은 소프트웨어와 네트워크에 어떻게 침투합니까?
연구에 따르면 소프트웨어 공급업체에서 개발한 응용 프로그램의 75%가 OWASP(Open Web Application Security Project) 상위 10개 표준을 준수하지 않습니다. 이러한 표준은 공개적으로 사용 가능합니다. 그렇다면 왜 많은 사람들이 여전히 안전한 애플리케이션을 생성하지 못하는 것일까요? 주요 이유는 다음과 같습니다.
취약한 타사 코드 및 기타 구성 요소. 타사 구성 요소를 재사용하는 것이 일반적인 방법입니다. 이렇게 하면 개발 프로세스의 속도가 크게 빨라지기 때문입니다. 그러나 사용자는 이러한 부분의 보안을 가볍게 여기는 경향이 있으며 철저한 평가 없이 배포하는 경우가 많습니다. 안전성을 평가하지 않고 스택 오버플로와 같은 소스에서 코드를 복사하여 붙여넣는 경우에도 동일하게 적용됩니다.
안전하지 않은 코딩 관행. 최근 연구에 따르면 보안은 대부분의 개발자에게 관심 대상이 아닙니다. 1,200명의 개발자들의 태도를 조사한 실험에서 연구원들은 14%만이 코드를 작성할 때 보안을 우선순위로 생각한다는 결론을 내렸습니다. 또한 많은 조직에서 개발자에게 촉박한 마감 시간에 빠르게 코드를 생성할 것을 요구하므로 철저한 보안 평가를 위한 여지가 없고 코드 취약성이 발생합니다.
빠르게 변화하는 사이버 공격 환경. 공격자는 애플리케이션의 보안을 침해하는 새로운 방법을 끊임없이 발견하고 있습니다. 따라서 이전에는 내성이 있는 것으로 간주되었던 부품이 오늘날에는 취약해질 수 있습니다. IT 팀이 취약성에 대해 애플리케이션과 네트워크를 체계적으로 평가하지 않고 모든 소프트웨어를 최신 상태로 유지하지 않는다면 약점이 나타나기 시작하는 것은 시간 문제일 뿐입니다.
보안 취약점 유형 분류
신뢰할 수 있고 상세한 보안 취약점 목록을 제공하는 OWASP 및 CWE의 두 가지 플랫폼이 있습니다. 그들은 새로운 약점을 포함하도록 목록을 업데이트합니다. 두 리소스 모두 프로그래머, 테스터 및 엔지니어를 교육하는 데 사용할 수 있습니다.
OWASP는 비영리 글로벌 커뮤니티이며 정기적으로 OWASP 상위 10개 소프트웨어 취약점 목록을 게시합니다. CWE(Common Weakness Enumeration)는 전용 커뮤니티에서 개발한 소프트웨어 및 하드웨어 취약성의 조합이며 25개 항목을 포함합니다.
다음은 이 기사에서 강조하고자 하는 가장 눈에 띄는 보안 취약점 18가지를 도메인별로 정렬한 것입니다. 이는 클라우드, IoT 기반 구성 및 모바일 앱과 같은 모든 IT 시스템에서 나타날 수 있습니다.
1. 강력한 암호화 방식의 부재
암호화가 사이버 공격을 막지는 못하더라도 스토리지 플랫폼이 침해되더라도 민감한 데이터가 안전하게 유지되도록 하는 것이 중요합니다. 공격자는 암호화된 데이터를 해독할 때까지 오용할 수 없습니다. 이는 침해된 비즈니스에 영향을 받는 당사자에게 알리고 신원 도용 대책을 준비하는 등 필요한 조치를 취할 수 있는 시간을 제공합니다.
연구에 따르면 많은 회사에서 USB 스틱, 랩톱 및 데스크톱의 데이터를 암호화할 즉각적인 계획이 없습니다. 데이터 보호 규정에 대해 말하자면 GDPR은 암호화를 명시적으로 요구하지 않지만 데이터 안전을 위한 "적절한 기술 및 조직적 조치"로 설명합니다.
IBM은 데이터 유출 비용 보고서에서 암호화가 데이터 유출의 평균 비용을 줄일 수 있는 가장 영향력 있는 요인 중 하나라고 지적했습니다.
2. 민감한 데이터 노출
부주의한 직원이 공개 데이터베이스나 웹사이트에 데이터를 업로드하면 인적 오류로 인해 데이터가 노출될 수 있습니다. 그러나 이러한 보안 취약점 유형은 실제로 권한이 없는 직원이 중요한 데이터에 액세스하고 조작할 수 있도록 허용하는 내부 프로세스에 의해 지원될 수도 있습니다.
사이버 보안 회사인 Egress는 미국 조직의 83%가 이메일, 파일 공유, 공동 작업 소프트웨어 및 메시징 앱을 통해 실수로 민감한 데이터를 노출했다는 조사를 수행했습니다.
3. 불충분한 수송층 보호
이러한 유형의 취약점은 클라이언트와 서버 응용 프로그램 간의 정보 교환을 다룹니다. 이러한 정보에는 사용자 자격 증명 및 신용 카드 세부 정보를 비롯한 민감한 데이터가 포함될 수 있습니다. 데이터 전송이 안전하지 않으면 통신이 가로채어질 수 있으며 약한 알고리즘을 사용하면 공격자가 데이터에 액세스하여 암호화를 해독할 수 있습니다.
4. 잘못 구성된 시스템 구성 요소 및 위험한 상호 작용
구성 요소와 구성 요소 간의 상호 작용을 잘못 구성하는 것은 우리가 자주 접하는 또 다른 보안 문제입니다. 예를 들어, IT 시스템을 설정하는 동안 관리자가 제조업체의 기본 설정을 무시하고 디렉토리 목록을 비활성화하는 것을 잊어버려 시스템이 노출됩니다. 또 다른 예는 외부 장치에 대한 액세스를 제한하는 것을 잊은 것입니다.
상호 작용에 대해 말하자면, 애플리케이션이 제로 트러스트 접근 방식을 채택하고 모든 입력이 검증되고 합법적인 것으로 입증되기 전에 위험한 것으로 간주하는 것이 좋습니다. 이렇게 하면 공격자가 애플리케이션에 신뢰할 수 없는 데이터를 주입하는 사이트 간 스크립팅과 같은 공격을 방지하는 데 도움이 됩니다.
이 측면은 특히 클라우드 기반 솔루션과 관련이 있습니다. 한 연구에 따르면 서버 구성 오류로 인해 2년 동안 200건의 클라우드 침해가 발생했습니다. 또 다른 연구에 따르면 클라우드 보안 침해의 약 70%가 잘못된 아키텍처에서 시작됩니다. 예를 들어, 잘못 구성된 AWS 스토리지 버킷은 2019년 미국에서 750,000개의 출생 증명서 애플리케이션을 노출했습니다.
5. 약한 서버 측 제어
이 보안 취약성 유형은 일부 사용자의 브라우저가 해당 사용자 모르게 서버에 무단 작업을 실행하는 사이트 간 요청 위조와 같이 잘못된 인증에서 공격을 가능하게 하는 잘못된 보안 구성에 이르기까지 서버 측에서 잘못될 수 있는 모든 것을 나타냅니다.
예를 들어, 데이터베이스 서버의 잘못된 구성으로 인해 기본 웹 검색을 통해 데이터에 액세스할 수 있습니다. 그리고 관리자 자격 증명이 포함되어 있으면 침입자가 시스템의 나머지 부분에 액세스할 수 있습니다.
6. 원격 코드 실행
즉, 시스템에서 제공하는 소프트웨어 보안 취약점으로 인해 침입자가 인터넷을 통해 장치에서 악성 코드를 실행할 수 있습니다. 예를 들어 직원이 타사 웹사이트의 이메일 링크를 클릭하면 이 설정 뒤에 있는 해커가 피해자의 컴퓨터에 맬웨어를 주입하고 여기에서 제어 권한을 가집니다. 외부인은 민감한 데이터에 액세스하거나 기계를 잠그고 몸값을 요구할 수 있습니다.
7. 알려진 OS 기반 취약점
모든 운영 체제에는 소프트웨어 취약점 목록이 있습니다. 일부 목록은 모든 사람이 볼 수 있도록 온라인에 게시됩니다. 예를 들어 다음은 상위 10개의 Windows 10 OS 약점 목록이고 여기에 해당하는 OS X 목록이 있습니다. 이러한 점을 검토하고 공격 가능성을 최소화하기 위해 해결하는 것은 보안 팀의 몫입니다.
8. 바이러스 검사 없이 스크립트 실행
이것은 특정 웹 브라우저에 존재하는 일반적인 보안 취약점 유형입니다. 예를 들어, Safari는 명시적인 사용자 권한 없이 "신뢰할 수 있는" 스크립트를 실행할 수 있습니다. 해커는 "안전한" 스크립트와 혼동될 수 있는 악성 코드를 실행하여 이 약점을 악용하는 경향이 있습니다. 운 좋게도 종종 이 "기능"을 비활성화할 수 있습니다.
9. 약한 자격 증명
침입자는 사용자의 자격 증명을 무차별 대입하여 액세스할 수 있습니다. 이것은 암호 "123456"만 2,300만 명이 넘는 사람들이 사용하는 경우에 특히 쉽습니다. 이것은 일반적이고 해킹하기 쉬운 "admin", "password", "qwerty"와 같은 암호에 추가됩니다.
이러한 유형의 소프트웨어 취약성은 인간이 만든 것으로 간주되지만 기업은 직원이 더 강력한 옵션을 선택하고 자격 증명을 충분히 자주 변경하도록 강제하는 조치를 구현할 수 있습니다. 시스템 보안에서 약한 자격 증명이 수행하는 역할을 고려할 때 이는 매우 중요합니다. 통계에 따르면 보안 침해의 80%는 약한 암호로 인해 발생했으며 61%의 사용자는 여러 서비스에 대해 하나의 보안 문구를 사용하는 경향이 있습니다.
10. 알려진 취약점이 있는 구성 요소 사용
라이브러리, API, 데이터 세트 및 프레임워크와 같은 타사 구성 요소를 배포하면 시스템을 가동하고 실행하는 데 필요한 노력을 크게 줄일 수 있습니다. 그러나 취약점을 유발할 수도 있습니다. 중요한 데이터에 액세스하기 위해 백도어를 열어 두지 않도록 이러한 구성 요소를 부지런히 평가하고 평가하는 것이 중요합니다.
타사 이미지를 다운로드하여 사용하는 것조차 위험할 수 있습니다. 2021년에는 다운로드량이 2천만 건인 30개의 Docker Hub 이미지가 배포되어 크립토마이닝 악성코드를 유포했습니다.
11. 불안전한 디자인
이것은 2021년 OWASP에 등장한 비교적 새로운 보안 취약점 유형입니다. 조직은 초기부터 취약점을 제거하기 위해 보안 설계 패턴, 위협 모델링 및 참조 아키텍처를 요구합니다.
보안 설계는 위협을 지속적으로 평가하고 코드의 견고성을 보장하는 방법론입니다. 알려진 공격 방법에 대한 체계적인 테스트를 권장합니다. 보안을 추가 기능이나 있으면 좋은 기능이 아니라 소프트웨어 개발의 필수 부분으로 간주합니다.
12. API의 보안 버그
API(응용 프로그래밍 인터페이스)를 사용하면 소프트웨어 구성 요소가 IT 시스템의 필수 부분인 서로 상호 작용할 수 있습니다. 그러나 보안 조치가 취약한 API는 인증 오류, 코드 삽입 허용 및 기타 악의적인 관행과 같은 여러 허점을 열 수 있습니다.
예를 들어, 클라이언트 측에 의존하여 정보를 사용자에게 제공하기 전에 필터링하는 무모하게 구축된 API는 데이터를 노출하여 쉽게 얻을 수 있습니다. 민감한 데이터는 서버 측에서 필터링해야 합니다. 다음은 이 보안 취약점 유형의 또 다른 예입니다. API가 수신 요청 수를 제한하지 않는 경우 서비스 거부(DoS) 공격의 기회를 열 수 있습니다.
다음은 고려해야 할 상위 10가지 API 관련 보안 취약점의 OWASP 목록입니다. 안전하지 않은 API는 지난 몇 년 동안 많은 공격의 문을 열었습니다. 악의적인 행위자가 플랫폼의 인증 없는 API를 사용하여 7억 사용자의 데이터를 다운로드한 LinkedIn에서 한 가지 악명 높은 예가 있습니다. 침입자는 유사한 API 위반을 사용하여 130만 클럽하우스 사용자에 대한 정보를 검색하여 해커 포럼에 게시했습니다.
13. 부적절한 인증
약한 인증 수단을 통해 해커는 "비밀번호 찾기" 옵션을 악용하여 계정을 재설정하거나 계정 탈취 공격을 시작할 수 있습니다. 인증 질문이 사용자의 생년월일이나 애완 동물 이름과 같은 것일 때 침입자를 돕습니다. 소셜 미디어 덕분에 공개적으로 사용할 수 있는 정보이기 때문입니다. 다단계 인증 프로세스를 따르면 보안이 강화됩니다. 슬프게도 연구에 따르면 미국 기업의 26%만이 이 강력한 인증 방법을 사용합니다.
14. 불충분한 모니터링 및 로그
로그는 시스템 이벤트, 네트워크 활동 및 사용자 작업에 대한 데이터를 저장합니다. 보안 팀은 로그를 모니터링하여 최근에 발생한 모든 활동을 관찰하고 의심스러운 이벤트를 식별할 수 있습니다. 로그를 체계적으로 검토하지 않으면 소프트웨어 취약점과 악의적인 활동이 감지되지 않는 정보 격차가 발생합니다.
15. 슈퍼유저 권한
사용자가 액세스할 수 있는 데이터가 적을수록 손상될 경우 계정이 입을 수 있는 피해가 줄어듭니다. 그러나 일부 기업은 여전히 수퍼유저 권한을 좌우로 부주의하게 부여하고 일상 업무를 수행하는 데 필요한 직원의 액세스를 제한하지 않습니다. 침입자가 관리자 수준 계정을 보유하고 있는 경우 안티바이러스 소프트웨어 및 방화벽을 비활성화하고 유해한 앱을 설치하고 파일 소유권을 탈취하는 등의 작업을 수행할 수 있습니다.
연구에 따르면 데이터 침해의 74%는 권한 있는 자격 증명의 남용으로 시작됩니다.
16. 오래된 소프트웨어
대부분의 기업은 시기 적절한 소프트웨어 업데이트가 보안 시스템의 핵심이라는 것을 알고 있습니다. 그러나 실제로 이 관행을 따르는 사람은 소수에 불과합니다. Cybernews는 소프트웨어 업데이트 빈도를 조사한 최근 연구에 대해 보고합니다. 이 연구는 18개월 동안 수행되었으며 조사한 웹 사이트의 95%가 실제로 알려진 취약점이 있는 오래된 소프트웨어에서 실행되고 있음을 발견했습니다. 연구팀은 또한 평균적인 소프트웨어 제품이 최신 패치보다 일반적으로 4년 뒤처진다는 사실을 발견했습니다.
또한 Kaspersky는 오래된 소프트웨어를 실행하는 기업이 침해 사고가 발생할 경우 47% 더 많은 비용이 발생할 가능성이 있다고 판단했습니다.
예를 들어 메리어트 호텔 체인에는 패치되지 않은 소프트웨어로 인한 보안 침해로 인해 5억 개의 데이터 레코드가 손상되었습니다.
17. 소스 코드의 취약점
코드 취약점은 소프트웨어 개발 중에 서서히 나타납니다. 예를 들어, 프로그램은 암호화 없이 민감한 데이터를 전송하거나 실제로 무작위가 아닌 무작위 문자열을 사용할 수 있습니다. 이러한 오류는 종종 소프트웨어 테스트 단계에서 포착됩니다.
최근 Secure Code Warrior 설문조사에 따르면 참여 개발자의 86%가 코드를 작성할 때 애플리케이션 보안을 최우선 순위로 보지 않는다고 인정했으며 36%는 이를 촉박한 마감일 때문이라고 답했습니다. 설문 조사는 또한 응답자의 33%가 코드를 취약하게 만드는 요소를 이해하지 못하는 것으로 나타났습니다.

18. SQL 주입
이 보안 취약점 유형은 SQL(Structured Query Language)로 구동되는 웹사이트 및 애플리케이션과 관련이 있습니다. 이를 통해 공격자는 사용자가 제공한 SQL 문을 변경하고 인터프리터를 속여 의도하지 않은 명령을 실행하고 데이터베이스에 대한 액세스 권한을 부여할 수 있습니다. 이러한 방식으로 침입자는 민감한 필드를 교체/삭제/수정하여 민감한 데이터를 조작할 수 있습니다.
이것은 이미 2019년에 소프트웨어 앱에 대한 공격의 65% 이상을 차지한 다소 오래된 취약점입니다.
시스템별 보안 취약점 유형 및 이러한 소프트웨어 취약점을 방지하는 방법
일반적인 보안 취약점을 강조한 후 애플리케이션 및 시스템별 취약점으로 이동하여 이러한 취약점으로부터 시스템을 보호하는 방법을 알아보겠습니다.
구름
Azure, AWS, GCP 또는 기타 클라우드 공급자와 관계없이 클라우드에 가능한 보안 취약성 유형의 광범위한 목록이 있습니다. 클라우드 전문가인 Alexey Zhadov는 이러한 취약점을 계층으로 나누고 예방 방법에 대한 팁을 제공합니다.
시스템 계층 취약점
소프트웨어가 실행되는 클라우드 서비스가 무엇이든 항상 내부에 운영 체제가 있습니다. 리소스의 제어판에만 액세스할 수 있는 경우에도 마찬가지입니다. 모든 운영 체제에는 "구멍"과 "백도어"가 있습니다. OS 개발자는 이러한 약점을 끊임없이 찾고 기반을 커버하려고 노력합니다. 그렇기 때문에 소프트웨어를 최신 상태로 유지하고 알려진 문제에 대한 사이버 보안 분야의 최신 개발 정보를 확인하는 것이 중요합니다.
네트워크 계층 취약점
모든 클라우드 리소스는 클라우드 네트워크에서 실행됩니다. 그리고 이를 통해 외부에서 리소스에 연결할 수 있습니다. 보안 팀은 네트워크 구성이 적절한지 확인해야 합니다. 배포할 계획이 없는 포트를 열지 말고 알고 있는 IP와 솔루션에 연결할 것으로 예상되는 네트워크의 화이트리스트를 사용하십시오. 알려진 IP가 아닌 다른 곳에서 RDP/SSH 포트에 대한 직접 연결을 열 때는 주의하십시오.
구성 계층 취약점
클라우드는 사용자의 요구 사항과 목표에 따라 적절하게 구성되어야 하며 이 구성은 항상 최신 상태로 유지되어야 합니다. 구성 관리 정책 및 절차를 설정하고 의심스러운 활동을 모니터링합니다.
인적 요인 취약성
클라우드 솔루션에 액세스할 수 있는 최종 사용자와 관리자를 잊지 마십시오. 계정 하이재킹은 모든 IT 시스템에서 가장 흔한 약점 중 하나입니다. 침입자가 누군가의 계정 자격 증명에 액세스하면 계정 권한 내에서 자유롭게 시스템에 진입하고 조작할 수 있으며 해킹된 사용자로부터 알림을 받을 때까지 누구도 막을 수 없습니다. 다음은 클라우드 애플리케이션에서 가장 일반적인 유형의 보안 취약점 목록입니다.
- 잘못 구성된 네트워크 및 방화벽
- 잘못 구성된 클라우드 스토리지
- 안전하지 않은 API
- 열악한 액세스 관리
- 계정 도용
- 악의적인 내부자
- 시스템 취약점
- 공유 테넌시 취약점
- 네트워크에 가입하려는 사용자 및 장치에 대한 다단계 인증 부족
Alexey는 기업이 클라우드 시스템을 보호하기 위해 구현할 수 있는 몇 가지 간단한 규칙을 권장합니다.
- 운영 체제를 최신 상태로 유지
- 네트워크 보호
- 배스천 서버를 사용하여 폐쇄된 경계에 액세스
- 네트워크 보안 그룹 및 액세스 제어 목록 구성
- 불필요한 포트에 대한 액세스 제한
- 가능한 경우 모니터링 및 로깅 구성
- 모든 사용자에 대한 다중 요소 액세스 제어 구현
- 방화벽 및 DDoS 보호 사용
- 클라우드 도구를 사용하여 Azure Security Center와 같은 보안 표준 준수 여부 확인
웹 애플리케이션
Alexey는 웹 애플리케이션을 괴롭히는 소프트웨어 보안 문제에 대해서도 언급했습니다. 이러한 취약점을 악용하여 공격자는 응용 프로그램과 조직 전체에 심각한 피해를 줄 수 있습니다. 다음은 웹 앱 보안 취약점으로 인한 가장 일반적인 웹 앱 공격입니다.
- SQL 주입
- 교차 사이트 스크립팅
- 경로 순회
- 원격 명령 실행
사이버 범죄자가 이러한 공격을 성공적으로 실행하면 맬웨어를 심고 사용자 계정을 손상시키고 제한된 정보에 액세스하는 등의 작업을 수행할 수 있습니다. 그렇다면 소프트웨어의 취약점을 테스트하는 방법은 무엇입니까? Alexey는 웹 애플리케이션 보안 테스트를 수행하여 다음 매개변수를 평가할 것을 권장합니다.
- 입력 유효성 검사. 응용 프로그램은 입력을 어떻게 처리하고 악성 항목을 찾아 차단할 수 있습니까?
- 서버 구성. 강력한 암호화 방법을 사용합니까?
- 인증 관리. 어떤 유형의 승인이 시행됩니까? 사용자가 약한 암호를 선택할 수 있습니까?
- 권한 부여 옵션. 앱이 권한 상승으로부터 스스로를 보호할 수 있습니까?
- 비즈니스 논리. 사용자가 잘못된 데이터를 삽입할 수 있습니까? 인증 단계를 건너뛸 수 있습니까? 사용자가 앱과 데이터의 무결성을 손상시킬 수 있습니까?
모바일 애플리케이션
모바일 앱 보안에 대해 말할 때 응용 프로그램과 함께 장치 자체에서 제공하는 보안 취약점 유형을 무시할 수 없습니다. 클라우드 및 모바일 전문가인 Alexey Zhadov도 모바일 앱에 영향을 미치는 일반적인 문제를 공유했습니다.
- 약한 서버 측 제어
- 안전하지 않은 데이터 저장
- 불충분한 전송 계층 보호
- 의도하지 않은 데이터 유출
- 잘못된 권한 부여 및 인증
- 열악한 암호화
- 클라이언트 측 주입
- 신뢰할 수 없는 입력
- 부적절한 세션 처리
- 바이너리 보호 부족
- 부적절한 OS 사용
- 안전하지 않은 트래픽 및 API 호출
- 코드 변조 및 탈옥 장치
- 부적절한 로깅 및 모니터링
- 보안 구성 오류
모바일 애플리케이션을 보호하기 위해 Alexey는 기업이 앱 디자인 및 유지 관리에서 구현할 수 있는 몇 가지 간단한 방법을 권장합니다.
오픈 소스 코드 평가: 대부분의 모바일 애플리케이션은 누구나 사용할 수 있는 오픈 소스 타사 라이브러리를 사용합니다. 이는 개발 프로세스를 간소화하지만 잠재적인 침입자에 대한 백도어를 엽니다. 따라서 앱에 통합하기 전에 소프트웨어 보안 취약점에 대해 타사 코드를 엄격하게 테스트해야 합니다.
강력한 암호화 방식: 전송하는 동안 데이터를 암호화하고 해독합니다. 강력한 데이터 암호화 기술, 소스 코드, 사용자 정보 및 로그인 자격 증명과 같은 애플리케이션 데이터를 통해 앱 스토리지가 보호됩니다. 데이터가 암호화되면 해커가 원본 콘텐츠에 액세스하더라도 해석할 수 없습니다.
코드 서명 인증서: 개발자는 모바일 애플리케이션에 서명하여 사이버 공격으로부터 보호하고 사용자 신뢰를 얻을 수 있습니다. 이러한 서명은 앱에 서명한 후 코드가 해석되거나 변경되지 않았는지 확인합니다. 보안 팀은 적당한 가격의 여러 코드 서명 인증서 옵션을 찾을 수 있습니다. 이 방법은 비용 효율적이고 신뢰할 수 있습니다.
데이터 캐시 보호: 캐시된 데이터에는 앱 성능을 개선하기 위해 더 빨리 다시 열 수 있도록 앱에서 검색된 정보가 포함됩니다. 데이터 캐시는 일반적으로 사용자 장치에 추가 보안 조치 없이 저장됩니다. 암호를 생성하고 응용 프로그램을 잠그는 것이 더 안전한 방법입니다. 또한 Alexey는 캐시된 데이터를 자주 지우고 보안 네트워크 연결을 사용하여 로그인할 것을 권장합니다.
안전한 데이터 저장: 각 애플리케이션에는 침입자가 오용할 수 있는 데이터가 포함되어 있습니다. 여기에는 사용자 및 앱 개발자의 정보가 모두 포함됩니다. 따라서 이 데이터를 로컬 저장 장치에 의존하지 않고 안전한 클라우드 저장소에 안전하게 저장하는 것이 필수적입니다.
인증 및 권한 부여 기술: 데이터 도난을 방지하기 위해 다단계 인증을 설정하는 것이 필수적입니다. 여기에는 사용자 ID, 비밀번호, PIN, OTP 등이 포함됩니다. 인증된 사용자의 역할과 권한을 확인하려면 항상 서버 측에서 권한 부여가 이루어져야 합니다.
데이터 삭제 및 장치 잠금: 이 기능은 주로 개인, 금융, 건강 정보 등과 같은 기밀 데이터가 포함된 애플리케이션에서 사용됩니다. 사용자 측에서 여러 번의 로그인 시도 실패 후 원격 데이터가 삭제되는 보안 계층이며, 응용 프로그램이 자동으로 잠깁니다. 또한 사용자가 비밀번호에 대문자, 특수 문자, 알파벳, 숫자 등의 일련 번호를 선택하는 것을 금지합니다.
리버스 엔지니어링 대응: 해커는 리버스 엔지니어링을 사용하여 애플리케이션의 기능을 변경합니다. 해커는 앱의 소스 코드에 액세스하여 인증 프로세스를 우회하고 위치를 위조하고 데이터를 훔칠 수 있습니다. 런타임 보안을 시행하는 것은 리버스 엔지니어링에 대응하는 데 가장 중요합니다. 침입자가 앱의 동작에 영향을 미치도록 코드 구조를 변경하여 앱의 내부 기능을 수정하는 것을 방지합니다.
IoT 솔루션
보안 관점에서 IoT 솔루션을 독특하게 만드는 것은 모든 장치의 기능이 사용 요구 사항에 의해 제한된다는 것입니다. IoT 장치를 취약하게 만드는 추가 용량, 메모리 또는 전력을 소비하는 멋진 보안 기능을 구현할 여지가 없습니다.
IoT 전문가인 Yahor Paloika는 연결된 장치에서 다음과 같은 보안 취약점 유형을 강조합니다.
- 하드 코딩된 자격 증명. IoT 장치에는 관리자가 때때로 변경하는 것을 잊어버리는 하드 코딩된 암호가 함께 제공되므로 해커가 이러한 잘 알려진 자격 증명을 사용하여 시스템에 쉽게 침투할 수 있습니다.
- 보호되지 않는 네트워크. 일부 네트워크는 강력한 인증을 시행하지 않아 침입자가 장치를 추가하고 데이터 흐름을 변경하도록 설정을 재구성하고 데이터를 가로채고 자체 데이터를 주입하여 센서 판독값을 모방할 수 있습니다.
- 약한 업데이트 관리. 많은 IoT 장치는 독립적으로 작동하며 업데이트를 수행하기 위해 사람의 간섭에 의존하지 않습니다. 이 경우 업데이트 관리 시스템은 자동 업데이트가 암호화된 채널을 통해 도착하고 확인된 소스에서 발생하며 손상되지 않았는지 확인하는 책임이 있습니다. 이러한 시스템이 약한 경우 침입자가 업데이트된 소프트웨어 및 펌웨어를 손상시켜 장치의 동작을 변경할 수 있습니다.
- 오래된 코드 모듈. 더 이상 사용되지 않는 오래된 모듈을 제거하는 것을 잊어버리면 해커는 소프트웨어 보안 문제를 탐색하고 시스템에 침투할 허점을 찾을 수 있는 충분한 시간을 갖게 됩니다. 연결된 장치의 기능에 속하지 않는 모든 모듈은 제거해야 합니다.
- 데이터 보호. IoT 네트워크 내부에서 유통되는 모든 데이터는 암호화되어야 하며, 승인된 사용자만 액세스할 수 있습니다.
IoT 시스템에 대한 해킹은 치명적인 영향을 미칠 수 있습니다. 예를 들어, 한 실험에서 연구원 팀은 Jeep Cherokee의 IoT 장치 소프트웨어에 침투하여 Jeep의 엔터테인먼트 시스템을 통해 악성 명령을 보낼 수 있습니다. 그들은 에어컨을 조작하고 온도를 낮추고 앞유리를 켰고, 나중에는 운전자를 공포에 떨게 하여 브레이크를 해제했습니다. 다행히도 실험에 불과했습니다. 다음은 IoT 시스템을 보호하기 위해 Yahor가 권장하는 몇 가지 팁입니다.
- TLS(Transport Layer Security)와 같은 기존의 보안 집약적인 암호화 프로토콜을 사용하여 IoT 네트워크에서 통신을 지원하고 내장된 보안의 부족을 보완합니다.
- 필요한 암호화 및 보안 수준을 제공하는 최신 통합 키 및 인증서 관리 하위 시스템이 있습니다. 또한 Yahor는 최소한 6개월에 한 번 키와 인증서를 업데이트할 것을 권장합니다.
- 강력한 비밀번호를 생성하고 체계적으로 변경할 수 있는 안정적인 비밀번호 관리 시스템 구축
- 합법적인 소스의 보안 업데이트만 통과하도록 허용하고 손상된 변경을 강제하려는 시도를 차단하는 업데이트 관리 시스템을 구현합니다.
AI 솔루션
이 기사에서 언급한 나머지 시스템과 인공 지능(AI) 및 기계 학습(ML) 솔루션을 상당히 차별화하는 한 가지 측면이 있습니다. 이러한 모델은 종종 예측을 수행하도록 훈련되며 이 훈련 프로세스는 몇 가지를 도입합니다. 보안 취약점의 유형. AI 전문가인 Maksym Bochok은 가장 인기 있는 약점을 다음과 같이 강조했습니다.
- 공격자는 훈련 데이터 세트를 조작하고 모델이 가짜 규칙을 학습하고 잘못된 예측을 하도록 강제할 수 있습니다.
- ML 엔지니어는 온라인에서 찾은 기존의 사전 훈련된 모델을 선택할 수 있으며 이러한 모델은 이미 악성일 수 있습니다. 예를 들어 트로이 목마 바이러스 또는 기타 맬웨어가 포함될 수 있습니다.
- 침입자는 알고리즘 자체를 파악하고 코드, 가중치 및 기타 매개변수를 조정하여 모델의 동작을 수정할 수 있습니다.
또한 AI는 종종 IoT 및 클라우드와 같은 다른 기술과 결합되어 해당 시스템에서 도입된 보안 취약성 유형에 취약합니다.
AI 시스템을 보호하기 위해 전문가는 다음을 권장합니다.
- 사전 훈련된 모델 및 외부 데이터 세트를 사용할 때 악성 코드가 포함되어 있지 않은지 확인하십시오.
- 원하는 출력에 대해 알고리즘을 체계적으로 테스트하여 아무도 일치 규칙을 변경하거나 편향을 도입하지 않았는지 확인하십시오.
- 데이터 드리프트(입력 데이터의 변경) 모니터링
- 침입자가 잠재적으로 위험한 데이터를 삽입하여 모델을 원하는 출력으로 왜곡할 수 있으므로 이상값 감지
- 훈련 데이터 세트에서 가능한 이상값 검색
- Counterfit과 같은 일반적인 AI 보안 평가 도구를 사용합니다. 알고리즘이 안정적이고 강력하다는 것을 보장하는 데 도움이 됩니다.
- 기존 데이터 보호 도구의 이점을 활용하고 저장 및 사용 시 기밀 데이터를 보호합니다. 한 가지 예는 외부 방화벽 역할을 할 수 있는 Imperva 도구입니다.
마지막 메모에
성공적인 비즈니스라면 누군가 몸값을 요구하거나 평판을 손상시키기 위해 시스템에 침투하려고 시도할 가능성이 높습니다. 해커가 지속적으로 악용할 허점을 찾고 있기 때문에 IT 팀은 위험을 줄이기 위해 노력하고 있습니다. 이 경쟁에서 이기려면 시스템 상태를 평가하고 개선 방법에 대한 권장 사항을 제공하는 숙련된 보안 및 테스트 회사에 문의하십시오.
그 동안 다양한 보안 취약점 유형이 애플리케이션을 노출하는 것을 방지하려면 시스템 구성에 주의를 기울이고 모든 소프트웨어가 최신 상태인지 확인하고 직원에게 보안 관행을 교육하십시오.
기존 시스템의 보안이 의심스럽습니까? 아니면 보안을 염두에 두고 애플리케이션을 구축하고 싶으십니까? ITRex 팀을 중단하십시오! 당사의 보안 전문가가 하드웨어 및 소프트웨어의 취약점을 테스트하고 개선 사항을 제안합니다.
2022년 7월 6일 https://itrexgroup.com에 원래 게시되었습니다.
