본문으로 건너뛰기

인공지능이 사이버 보안에 끼치는 영향

· 약 27분
Dongmin Yu

What AI Can do in Cybersecurity

인공지능은 사이버 보안에서 점점 더 중요한 역할을 하고 있습니다. 그러나 해커들도 이점을 얻을 수 있습니다. 조직은 최신 AI 기반 도구를 활용하여 위협을 더 잘 감지하고 시스템과 데이터 자원을 보호할 수 있습니다. 그러나 사이버 범죄자들도 더 정교한 공격을 할 수 있는 기술을 사용할 수 있습니다. AI 기반 보안 제품의 글로벌 시장은 2030년까지 1338억 달러에 이를 것으로 추정되며, 작년에는 149억 달러였습니다. 해커들도 이점을 얻고 있습니다: AI가 생성한 피싱 이메일은 수동으로 작성된 피싱 이메일보다 열리는 비율이 높습니다. AI는 사이버 보안에서 많은 이점과 응용 분야를 제공합니다. 빠르게 진화하는 사이버 공격과 빠르게 증가하는 장치들이 오늘날 발생하고 있기 때문에, AI와 머신러닝은 사이버 범죄자들과 계속해서 발전하고, 위협 감지를 자동화하며, 전통적인 소프트웨어 기반 또는 수동 기술보다 효과적으로 응답할 수 있도록 도와줍니다. AI는 새로운 위협 감지에 사용될 수 있습니다. 전통적인 소프트웨어 시스템은 매주 생성되는 새로운 악성 코드의 양에 따라 유지하기 어렵기 때문에 AI가 정말 도움이 될 수 있는 영역입니다. 복잡한 알고리즘을 사용하여 AI 시스템은 악성 코드 감지, 패턴 인식을 실행하고, 시스템에 들어가기 전에 맬웨어나 랜섬웨어 공격의 아주 작은 행위도 감지하는데 훈련되어 있습니다. AI는 자연어 처리를 통해 우수한 예측 지능을 제공하며 스스로 사이버 위협에 대한 기사, 뉴스 및 연구를 스크랩하여 데이터를 정리합니다. 이를 통해 새로운 이상 현상, 사이버 공격 및 예방 전략에 대한 정보를 제공할 수 있습니다. 물론 AI의 발전과 함께 보안 분야에서도 계속해서 새로운 방법들이 연구되고 개발되고 있습니다. 현재까지의 연구 결과와 의견들은 AI가 사이버 보안에서 중요한 역할을 하고 있으며 앞으로도 계속해서 중요한 역할을 할 것으로 예상됩니다.

References

(1) AI has bigger role in cybersecurity, but hackers may benefit the most (2) Artificial Intelligence in Cybersecurity | IEEE CS - IEEE Computer Society (3) The Impact of AI on Cybersecurity | IEEE Computer Society

AI는 사이버 보안에서 미래에도 중요한 역할을 할 것으로 예상됩니다. AI는 조직이 공격자들이 움직일 수 있는 것보다 빠르게 응답할 뿐만 아니라 이들의 움직임을 예측하고 미리 행동할 수 있도록 지원하는 힘의 배가 될 수 있습니다. AI 기술과 도구는 초기 단계의 채택에 있습니다. 글로벌 시장은 2021년부터 2025년 사이에 190억 달러가 증가할 것으로 예상됩니다. AI의 적응적 학습 및 새로운 패턴 감지 능력은 검출, 격리 및 응답을 가속화하여 SOC 분석가의 부담을 줄이고 더 적극적으로 행동할 수 있도록 도와줍니다. 추가로, 조직이 결국 AI 주도의 사이버 범죄의 발전에 대비할 수 있도록 도와줍니다. AI는 사이버 보안 분야에서 계속해서 중요한 역할을 할 것으로 예상되며, 새로운 위협에 대응하고 조직의 보안을 강화하는데 도움이 될 것입니다.

References

(1) The future of cybersecurity and AI | Deloitte Insights (2) Artificial Intelligence: The Future Of Cybersecurity? - Forbes (3) The Role of Artificial Intelligence in Cybersecurity (4) Understanding the role of AI in Cyber Security: current applications and future trends

패스워드는 오랫동안 불안전하다고 알려져 왔습니다. 악의적인 행위자들이 패스워드 기반의 보안 프로토콜을 자주 우회하기 때문입니다. 그러나 보안 문제만이 패스워드 기반 인증의 유일한 단점은 아닙니다. 관리하는데 비용이 많이 들고 부담스럽습니다. 사용자들은 자주 패스워드를 잊어버리기 때문에 패스워드를 재설정해야 하며, 이로 인해 UX가 나빠집니다. MFA (Multi-Factor Authentication)와 생체 인증과 같은 새로운 기술들이 이들을 대체할 수 있습니다. 예를 들어, Microsoft는 최근에 Microsoft 계정에서 패스워드를 완전히 제거할 수 있는 기능을 출시했습니다. Microsoft Authenticator 앱, Windows Hello, 보안 키 또는 전화 또는 이메일로 전송된 인증 코드를 사용하여 Microsoft Outlook, Microsoft OneDrive, Microsoft Family Safety 등 좋아하는 앱과 서비스에 로그인할 수 있습니다. 생체 인증은 MFA의 미래입니다. 패스워드를 훔치기는 쉽습니다. 그러나 MFA에 사용되는 전화기나 다른 장치를 훔치기는 쉽지 않습니다. 스마트폰 외에도 MFA에 사용되는 장치에는 보안 키가 포함됩니다. 보안 키는 사용자가 컴퓨터의 USB 포트에 연결할 수 있는 휴대용 장치입니다. 따라서 패스워드 기반의 인증 방식이 완벽하게 사라지고 대체될 가능성이 있습니다. MFA와 생체 인증과 같은 새로운 기술들이 이들을 대체할 수 있습니다.

References

(1) Biometric Authentication: The Key to a Passwordless Future? | Blog - Juniper Research (2) The passwordless future with Microsoft - Microsoft Security Blog (3) MFA and Biometrics as a Remedy for the Weakness of Passwords (4) The Future of Multi-Factor Biometric Authentication | PHONEXIA

MFA나 보안 키, 생체 인증과 같은 기술들은 관리나 개발 비용이 만만치 않습니다. 그러나 이러한 기술들은 사용자 경험을 향상시키기 위해 계속 발전하고 있습니다. 예를 들어, Microsoft는 최근에 패스워드 없이 Microsoft 계정에 로그인할 수 있는 기능을 출시했습니다. 이를 통해 사용자는 Microsoft Authenticator 앱, Windows Hello, 보안 키 또는 전화 또는 이메일로 전송된 인증 코드를 사용하여 Microsoft Outlook, Microsoft OneDrive, Microsoft Family Safety 등 좋아하는 앱과 서비스에 로그인할 수 있습니다. 또한, 일부 시스템에서는 관리자가 패스워드 없는 인증을 구현하고 사용자에게 단일 로그인 기능을 제공할 수 있습니다. 사용자 경험을 향상시키기 위한 새로운 아이디어들이 계속 제안되고 있습니다. 예를 들어, 사용자 인증 및 액세스 관리 솔루션의 Top 10 목록에서는 MFA 옵션, 적응형 인증, 유연성, 가시성 수준, 사용자 경험 및 가격 등의 주요 기능을 비교합니다. 따라서 MFA나 보안 키, 생체 인증과 같은 기술들은 사용자 경험을 향상시키기 위해 계속 발전하고 있습니다.

References

(1) 6 Steps to Improve User Experience: Embracing Your End-Users - OutSystems (2) The Top 10 User Authentication And Access Management Solutions In 2023 - Expert Insights (3) Authentication and Digital Media: Improving the User Experience - Parks Associates

사용자 경험을 향상시키기 위한 새로운 아이디어들은 계속 제안되고 있습니다. 예를 들어, OutSystems의 블로그 게시물에서는 사용자 경험을 향상시키기 위한 6가지 팁을 제공합니다.

  1. 사용자 중심의 제품 개발: 제품을 인간을 위해, 특히 그 제품을 사용할 인간을 위해 개발해야 합니다.
  2. 사용자와의 대화: 사용자와의 대화를 통해 그들이 원하는 것이 무엇인지 파악하고 그들의 기대를 충족시키세요.
  3. 사용자 테스트: 사용자 테스트를 통해 제품이 얼마나 직관적인지, 사용하기 쉬운지, 그리고 사용자가 제품을 사용하여 원하는 작업을 수행하는 데 얼마나 쉬운지 확인하세요.
  4. 디자인: 디자인은 제품의 맛을 더하는 양념이 아니라 레시피의 시작부터 필요한 밀가루입니다.
  5. 성능: 성능은 사용자 경험에 중요한 요소입니다. 제품이 빠르게 로드되고 반응성이 좋아야 합니다.
  6. 지속적인 개선: 사용자 경험은 한 번에 완성되는 것이 아닙니다. 지속적으로 개선해야 합니다. (2) 6 Steps to Improve User Experience: Embracing Your End-Users - OutSystems (3) Authentication and Digital Media: Improving the User Experience - Parks Associates 인공지능과 코드 생성 기능이 빠르게 성장함에 따라 프로그래밍의 미래에 대한 다양한 의견이 있습니다. 일부 사람들은 인공지능이 프로그래밍을 더 쉽게 접근할 수 있는 범용적인 기초 능력으로 만들어 줄 것이라고 생각합니다. 예를 들어, GitHub Copilot와 같은 도구는 개발자들이 코드를 자동으로 생성하고 완성하는 데 도움을 줍니다. 다른 사람들은 인공지능이 프로그래밍을 더 어렵게 만들 수도 있다고 생각합니다. 예를 들어, 인공지능이 생성한 코드는 읽기 어렵고 이해하기 어려울 수 있습니다. 그러나 인공지능과 코드 생성 기능의 발전은 프로그래밍의 미래에 큰 영향을 미칠 것으로 예상됩니다. 예를 들어, GitHub Copilot X는 채팅 및 음성 인터페이스를 지원하고 pull request를 지원하며 문서에서 질문에 답변하고 OpenAI의 GPT-4를 채택하여 개발자 경험을 개인화하는 등의 기능을 제공합니다. 따라서 인공지능과 코드 생성 기능의 발전은 프로그래밍의 미래에 큰 영향을 미칠 것으로 예상됩니다.

References

(1) GitHub Copilot X: The AI-powered developer experience (2) 5 AI Tools That Can Generate Code To Help Programmers - Forbes (3) What is the Future of Coding? (4) GitHub Copilot: AI-based Code Generation and the Future of Software Engineering ...

GitHub Copilot의 런칭 시기에, 일부 사람들은 코드가 기계학습에 이용되는 것에 대해 우려를 표했습니다. GitHub Copilot는 클라우드 기반 서비스이며 GitHub Copilot 서버와 지속적인 통신이 필요합니다. 이러한 불투명한 아키텍처는 개별 키 입력의 텔레메트리 및 데이터 마이닝에 대한 우려를 촉발했습니다. GitHub Copilot의 개발자들은 이러한 우려에 대해 다양한 조치를 취하고 있습니다. 예를 들어, GitHub Copilot의 FAQ에서는 "GitHub Copilot는 코드 합성기이며 검색 엔진이 아닙니다"라고 언급하고 있습니다. 그리고 "제안된 코드의 대부분은 고유하게 생성되며 이전에 본 적이 없습니다"라고 언급하고 있습니다. 따라서 GitHub Copilot와 같은 프로그래밍 AI들은 사용자의 개인 정보 보호와 관련된 우려에 대해 다양한 조치를 취하고 있습니다.

References

(1) GitHub Copilot - Wikipedia (2) GitHub Copilot auto-coder snags emerge, from seemingly spilled secrets to bad code ... (3) Is Github Copilot safe privacy wise? · community · Discussion #7163

코드 제너레이터는 개발자들이 제공하는 코드의 포인트, 특히 가독성이나 함의성에 대해서 많은 힌트를 받고 있습니다. 그러나 이러한 현상에 불안감과 불쾌함을 가진 사람들에게 대안적으로 제안되는 엄격한 라이센스나 robots.txt와 같은 기계에 의해 수집되는 것에 대한 명시적 동의 및 거부 수단이 있습니다. 예를 들어, GitHub Copilot의 경우 사용자가 자신의 코드를 공유하고 싶지 않다면 해당 코드를 비공개 저장소에 저장하거나 robots.txt 파일을 사용하여 검색 엔진이 해당 코드를 수집하지 못하도록 할 수 있습니다. 또한, 일부 오픈 소스 라이센스는 코드가 재사용될 때 원작자의 동의가 필요하도록 규정하고 있습니다. 오픈 소스 라이센스는 크게 두 가지로 분류됩니다: 퍼미시브 라이센스와 카피레프트 라이센스. 퍼미시브 라이센스는 MIT 라이센스와 BSD 라이센스와 같은 라이센스로, 사용자가 소스 코드를 자유롭게 사용, 수정 및 재배포할 수 있도록 허용합니다. 이러한 라이센스는 일반적으로 소스 코드의 사용에 대한 제한이 적습니다. 카피레프트 라이센스는 GNU 일반 공개 라이센스(GPL)와 같은 라이센스로, 사용자가 소스 코드를 자유롭게 사용, 수정 및 재배포할 수 있도록 허용합니다. 그러나 이러한 라이센스는 수정된 소스 코드를 재배포할 때 원본 소스 코드와 동일한 라이센스 조건을 적용해야 한다는 조건을 부과합니다. 따라서 타인이 공유한 코드를 사용한 내 코드에서 해당 코드의 라이센스를 명시하는 것만으로 완벽한 명시적인 법적 방어조치가 이뤄질 수 있습니다. 하지만 이러한 방어조치가 완벽하게 작동하려면 사용자가 해당 코드의 라이센스 조건을 준수해야 합니다.

코드의 표절 검사는 연구 논문의 표절 검사와 유사한 방식으로 이루어질 수 있습니다. 코드에서 사용된 텍스트나 개념의 자체적 작성 비율은 중요한 요소가 될 수 있습니다. 예를 들어, 일부 오픈 소스 라이센스는 코드가 재사용될 때 원작자의 동의가 필요하도록 규정하고 있습니다. 따라서 타인이 작성한 코드를 사용할 때는 해당 코드의 라이센스 조건을 준수해야 합니다. 그러나 코드의 표절 검사는 연구 논문의 표절 검사와는 다른 점이 있습니다. 예를 들어, 코드는 일반적으로 기능적인 목적을 가지고 있으며, 이러한 기능을 구현하는 방법은 다양할 수 있습니다. 따라서 코드의 표절 검사는 연구 논문의 표절 검사와는 다른 방식으로 이루어질 수 있습니다. 결국 중요한 것은 코드가 어떻게 작성되었는지가 아니라 코드가 어떤 기능을 수행하는지와 해당 코드가 어떤 라이센스 조건을 준수하는지입니다. POSA와 같은 서비스들은 개발자가 자신의 프로젝트에서 사용한 의존성 패키지들의 라이센스를 체크하고 분류하여 개발자에게 알려주는 일을 합니다. 이러한 서비스들은 개발자가 자신의 프로젝트에서 사용한 의존성 패키지들이 어떤 라이센스 조건을 가지고 있는지 파악하는 데 도움을 줍니다.

의존성 패키지들의 라이센스 조건을 파악하는 것은 중요합니다. 일부 라이센스는 코드가 재사용될 때 원작자의 동의가 필요하도록 규정하고 있습니다. 따라서 개발자가 자신의 프로젝트에서 사용한 의존성 패키지들이 어떤 라이센스 조건을 가지고 있는지 파악하는 것은 법적 문제를 예방하는 데 중요합니다. 따라서 POSA와 같은 서비스들이 제공하는 수치들은 개발자가 자신의 프로젝트에서 사용한 의존성 패키지들이 어떤 라이센스 조건을 가지고 있는지 파악하는 데 중요한 의미를 가집니다. POSA와 같은 서비스들이 제공하는 수치나 추상적인 엄밀함의 정도는 개발자의 결정을 제한하는 것이 아니라 개발자가 자신의 프로젝트에서 사용한 의존성 패키지들이 어떤 라이센스 조건을 가지고 있는지 파악하는 데 도움을 줍니다. 일부 라이센스는 코드가 재사용될 때 원작자의 동의가 필요하도록 규정하고 있습니다. 따라서 개발자가 타인의 코드에서 일부를 인용하거나 응용한 프로젝트를 개발할 때는 해당 코드의 라이센스 조건을 준수해야 합니다. POSA와 같은 서비스들은 개발자가 자신의 프로젝트에서 사용한 의존성 패키지들이 어떤 라이센스 조건을 가지고 있는지 파악하는 데 도움을 줍니다. 이러한 정보는 개발자가 자신의 프로젝트에서 사용한 의존성 패키지들이 어떤 라이센스 조건을 가지고 있는지 파악하고 이에 따라 적절한 결정을 내리는 데 중요합니다. 따라서 POSA와 같은 서비스들이 제공하는 수치나 추상적인 엄밀함의 정도는 개발자의 결정을 제한하는 것이 아니라 개발자가 자신의 프로젝트에서 사용한 의존성 패키지들이 어떤 라이센스 조건을 가지고 있는지 파악하는 데 도움을 줍니다.

프로그래밍 코드에서 일반 연구자들이 사용하는 사이테이션과 멘션과 같은 기술적 방법으로 내가 만든 코드가 이후에 재사용되거나 설치되는 등의 백링크 추적은 구조 상 구현하기 어려울 수 있습니다. 코드는 일반적으로 기능적인 목적을 가지고 있으며, 이러한 기능을 구현하는 방법은 다양할 수 있습니다. 따라서 코드의 재사용 여부를 추적하는 것은 어려울 수 있습니다. 그러나 일부 오픈 소스 라이센스는 코드가 재사용될 때 원작자의 동의가 필요하도록 규정하고 있습니다. 따라서 개발자가 타인의 코드를 사용할 때는 해당 코드의 라이센스 조건을 준수해야 합니다. 결국 중요한 것은 코드가 어떻게 작성되었는지가 아니라 코드가 어떤 기능을 수행하는지와 해당 코드가 어떤 라이센스 조건을 준수하는지입니다.

코드의 재사용 여부를 추적하는 것이 어려운 이유는 다음과 같습니다:

  1. 코드의 복잡성: 코드는 일반적으로 매우 복잡하며 다양한 구성 요소와 상호 작용합니다. 따라서 코드의 재사용 여부를 추적하는 것은 어려울 수 있습니다.
  2. 코드의 변경 가능성: 코드는 지속적으로 변경될 수 있습니다. 따라서 코드의 재사용 여부를 추적하는 것은 어려울 수 있습니다.
  3. 코드의 분산: 코드는 일반적으로 여러 위치에 분산되어 있습니다. 따라서 코드의 재사용 여부를 추적하는 것은 어려울 수 있습니다.
  4. 기술적 제약: 현재 기술 수준에서는 코드의 재사용 여부를 완벽하게 추적하는 것이 어려울 수 있습니다.

코드의 재사용 여부를 추적하는 것이 중요한 이유는 다음과 같습니다:

  1. 법적 문제 예방: 일부 라이센스는 코드가 재사용될 때 원작자의 동의가 필요하도록 규정하고 있습니다. 따라서 코드의 재사용 여부를 추적하는 것은 법적 문제를 예방하는 데 중요합니다.
  2. 코드 품질 향상: 코드의 재사용 여부를 추적하는 것은 코드 품질을 향상시키는 데 도움이 될 수 있습니다. 예를 들어, 재사용 가능한 코드는 일반적으로 높은 품질의 코드입니다.
  3. 개발 비용 절감: 코드의 재사용 여부를 추적하는 것은 개발 비용을 절감하는 데 도움이 될 수 있습니다. 예를 들어, 재사용 가능한 코드를 사용하면 개발 시간을 단축하고 개발 비용을 절감할 수 있습니다.