Bot Framework 보안 지침
적용 대상: SDK v4
봇은 금융 서비스, 소매, 여행 등과 같은 주요 비즈니스 영역에서 점점 더 많이 사용되고 있습니다. 봇은 신용 카드, SSN, 은행 계좌 및 기타 개인 정보와 같은 매우 중요한 데이터를 수집할 수 있습니다. 따라서 봇이 안전하고 일반적인 위협 및 취약성으로부터 보호하는 것이 중요합니다.
봇의 보안을 개선하기 위해 몇 가지 표준 예방 조치를 취할 수 있습니다. 일부 보안 조치는 다른 소프트웨어 시스템에 사용되는 것과 유사하지만 일부는 Bot Framework와 관련이 있습니다. 후자의 경우 Azure Security Benchmark를 참조하세요. 벤치마크는 Azure에서 클라우드 솔루션을 보호하는 방법에 대한 권장 사항을 제공합니다.
간단히 말해서 보안 문제
이 문서에서는 보안 문제를 두 가지 범주로 그룹화합니다.
위협: 누군가가 스푸핑, 변조, 정보 공개, 서비스 거부 등과 같이 봇을 손상시키는 데 사용할 수 있는 전술입니다.
취약성: 봇 또는 봇 관리가 버그 또는 느슨한 보안과 같은 전술에 취약할 수 있는 방법입니다.
취약성을 줄이는 것은 위협을 완화하는 좋은 방법이며, 취약성을 줄이는 알려진 방법은 개발 및 배포 프로세스에서 보안 검사 지점을 구현하는 것입니다.
일반적인 보안 지침
다음 영역에는 애플리케이션에 공통적인 표준 보안 모범 사례가 포함됩니다.
네트워크 트래픽 보안
전송 중에 데이터 변조 및 공개를 해결하기 위한 암호화 제어를 제공하는 프로토콜이 존재합니다. 이와 관련하여 봇은 보안 채널을 통해서만 통신해야 합니다.
유선에서 데이터를 교환하려면 모든 보안 시스템은 TLS(전송 계층 보안) 또는 SSL(Secure Sockets Layer)으로 보호되는 암호화된 연결에서 HTTP를 통해 데이터를 전송하는 HTTPS 프로토콜을 사용해야 합니다. RFC 2818 - TLS를 통한 HTTP도 참조하세요.
참고 항목
모든 Bot Service 채널에는 HTTPS 및 TLS 1.2가 필요합니다.
자체 소멸 메시지
더 이상 필요하지 않은 즉시, 일반적으로 메시지 교환이 종료된 후 또는 일정 시간 후에 중요한 데이터를 영구적으로 삭제합니다. 여기에는 개인 식별 정보, ID, PIN, 암호, 보안 질문 및 답변 등이 포함될 수 있습니다.
데이터 저장소
이 모범 사례는 일정 시간 동안 안전한 상태로 정보를 저장한 다음, 목적이 제공된 후 나중에 삭제해야 합니다.
몇 가지 일반적인 보안 기술은 아래에 나열되어 있습니다.
데이터베이스 방화벽
- 방화벽은 기본적으로 트래픽에 대한 액세스를 거부합니다. 허용되는 유일한 트래픽은 데이터에 액세스해야 하는 특정 애플리케이션 또는 웹 서버에서 발생해야 합니다.
- 웹 애플리케이션 방화벽도 배포해야 합니다. 이는 웹 애플리케이션을 대상으로 하는 SQL 삽입 공격과 같은 공격을 사용하여 데이터베이스에서 데이터를 내보내거나 삭제할 수 있기 때문입니다.
데이터베이스 강화
- 공급업체에서 데이터베이스를 계속 지원하며 알려진 취약성을 제거하기 위해 모든 보안 패치가 설치된 최신 버전의 데이터베이스를 실행하고 있는지 확인합니다.
- 필요하지 않은 기능 또는 서비스를 제거하거나 사용하지 않도록 설정하고 기본 계정의 암호를 기본값에서 변경해야 합니다. 또는 필요하지 않은 기본 계정을 삭제하는 것이 좋습니다.
- 사용할 수 없는 특정 이유가 없는 한 데이터베이스에서 제공하는 모든 데이터베이스 보안 컨트롤이 사용하도록 설정되어 있는지 확인합니다.
중요한 정보 최소화
- 데이터베이스에 있을 필요가 없는 기밀 정보를 저장하지 않는지 확인합니다.
- 규정 준수 또는 기타 용도로 보존된 데이터는 데이터베이스 보안 위협에 덜 취약한 더 안전한 스토리지(오프라인)로 이동할 수 있습니다.
- 원래 설치 절차 중에 서버에서 작성한 기록 파일을 삭제해야 합니다. 설치에 성공하면 이러한 파일은 값이 없지만 잠재적으로 악용될 수 있는 정보를 포함할 수 있습니다.
Education
봇은 회사와 고객 간에 혁신적인 상호 작용 도구를 제공합니다. 그러나 그들은 잠재적으로 회사의 웹 사이트를 변조하기위한 백도어를 제공 할 수 있습니다. 따라서 회사는 개발자가 웹 사이트 보안의 일부로 봇 보안의 중요성을 이해해야 합니다. 또한 사용자의 오류도 문제가 될 수 있습니다. 이렇게 하려면 봇을 안전하게 사용하는 방법에 대한 교육이 필요합니다. 예를 들면 다음과 같습니다.
- 개발자의 경우 전략에는 봇을 안전하게 사용하는 방법에 대한 내부 교육이 포함되어야 합니다.
- 고객은 봇과 안전하게 상호 작용하는 방법을 자세히 설명하는 지침을 제공할 수 있습니다.
봇별 보안 지침
다음 영역에서는 Bot Framework 애플리케이션에 대한 몇 가지 표준 보안 모범 사례를 다룹니다. 다음 지침에서는 Bot Framework 모범 사례 보안 조치에 대해 설명합니다. 자세한 내용은 보안 및 개인 정보 FAQ를 참조하세요.
Bot Connector 인증
Bot Connector 서비스는 기본적으로 HTTPS를 사용하여 봇과 채널(사용자) 간에 메시지를 교환합니다. Bot Framework SDK는 기본 봇-채널 인증을 자동화합니다.
Warning
사용자 고유의 인증 코드를 작성하는 경우 모든 보안 절차를 올바르게 구현하는 것이 중요합니다. 인증 문서에 설명된 모든 단계를 구현하여 공격자가 봇에 전송된 메시지를 읽고, 봇을 가장하는 메시지를 보내고, 비밀 키를 도용할 수 있는 위험을 완화할 수 있습니다.
사용자 인증
Azure AI Bot Service 인증을 사용하면 Microsoft Entra ID, GitHub, Uber 등과 같은 다양한 ID 공급자로부터 사용자를 인증하고 액세스 토큰을 가져올 수 있습니다. 사용자 지정 OAuth2 ID 공급자에 대한 인증을 구성할 수도 있습니다. 이 모든 기능을 통해 지원되는 모든 ID 공급자 및 채널에서 작동하는 인증 코드의 한 부분을 작성할 수 있습니다. 이러한 기능을 활용하려면 다음 단계를 수행해야 합니다.
- ID 공급자를 사용하여 애플리케이션 등록의 세부 정보를 포함하는 봇에서 정적으로 구성
settings
합니다. OAuthCard
이전 단계에서 제공한 애플리케이션 정보로 지원되는 를 사용하여 사용자를 로그인합니다.- Azure AI Bot Service API를 통해 액세스 토큰을 검색합니다. 인증된 사용자가 로그인 상태를 유지할 수 있는 기간에 시간 제한을 두는 것이 좋습니다.
자세한 내용은 사용자 인증 문서를 참조하세요.
웹 채팅
웹 채팅 컨트롤을 사용하는 경우 가장 및 ID 스푸핑에 대한 몇 가지 중요한 보안 고려 사항을 염두에 두어야 합니다. 자세한 내용은 Direct Line 고급 인증을 참조하세요.