Blackboard는 보안 문제의 가시적인 부분만 아니라 문제의 근본 원인을 찾아내는 강력한 보안 프로그램을 보유하고 있습니다. Blackboard는 Blackboard와 고객의 기대치를 모두 충족시키기 위해 코드 수준(정적 분석) 및 애플리케이션 수준(동적 분석)에서 지속적인 내부 보안 테스트를 수행합니다.

그뿐만 아니라 주기적으로 애플리케이션을 새로운 시각으로 판단하기 위해 Blackboard는 타사 보안 벤더의 보안 침투 테스트를 실시합니다. 모든 식별된 문제는 신속하게 분류하여 보수됩니다.

Blackboard의 보안 프로그램은 성장하고 발전 중임을 염두에 두시기 바랍니다. Blackboard는 Blackboard Learn의 보안 기능과 강력함의 한계를 넘기 위해 지속적인 개선 작업을 하고 있습니다.


보안을 고려한 구축

Blackboard는 클라이언트에게 안전한 애플리케이션을 제공하기 위해 노력하고 있습니다. Blackboard는 OWASP(Open Web Application Security Project) 등의 많은 조직에서 파생된 일련의 보안 엔지니어링 가이드라인(예: OWASP 상위 10개 취약점에 대한 구체적인 대책)에 따라 Blackboard Learn을 개발합니다. Blackboard에서는 SDLC(software development lifecycle)의 모든 단계에 이러한 보안 조치를 통합했습니다.

Blackboard는 정적 분석, 동적 분석 및 수동 침투 테스트를 통한 "상향식" 코드 수준 위협 감지뿐만 아니라 위협 모델링 및 분석을 통한 "하향식" 보안 평가 등 애플리케이션을 보호하기 위해 여러 방법을 활용하고 있습니다.

Blackboard는 Blackboard Learn의 제품과 프로그램에 대한 보안을 강화하기 위해 많은 조직의 모범 사례 지침을 따릅니다. 여기에는 그 중 일부 조직만 적었습니다.

  • NIST(National Institute of Standards and Technology)
  • ENISA(European Network and Information Security Agency)
  • SANS Institute
  • OWASP(Open Web Application Security Project)
  • CSA(Cloud Security Alliance)

위협 모델링

새로운 기능이 개발되면 보안 팀은 위험을 완화하는 데 도움을 주기 위해 위협 모델링을 수행하여 요구 사항과 시스템 설계를 평가합니다. 위협 모델링은 검토 중인 기능에 적절한 보안 위협을 식별하여 합당한 보안 대책을 식별하고 적용할 수 있는 구조화된 프로세스입니다.


보안 코딩 및 OWASP 상위 10개 취약점

Blackboard 제품은 OWASP에서 파생된 일련의 개발 가이드라인에 따라 개발되었습니다(예: 2013년의 OWASP 상위 10개 취약점에 대한 구체적인 대책).

A1: 삽입(SQL/DOM/LDAP 삽입)코딩 표준은 bind 변수를 사용하고 문자가 SQL 문으로 바뀌는 것을 방지합니다. Xpath는 애플리케이션의 어떤 위치에서도 사용되지 않으며 LDAP 기능은 인증으로 제한됩니다.
A2: 연결이 끊어진 인증 및 세션 관리Blackboard는 세션 쿠키를 손상시키지 않기 위해 여러 조치를 취합니다. Learn은 2014년 4월부터 TLS에서만 실행되므로 모든 쿠키에 보안 플래그가 설정되었습니다. Blackboard는 또한 예기치 않게 변경되는 고객 상태를 감지하려고 합니다(예: 예기치 않은 IP 주소로부터의 세션). 쿠키와 관련된 세션 관리는 HttpOnly로 설정되어 있습니다(참고: JSESSIONID는 세션 관리에 사용되지 않으므로 HttpOnly 플래그가 없도록 만들어짐).
A3: 교차 사이트 스크립팅(XSS)교차 사이트 스크립팅은 ESAPI 및 개발 표준과 같은 공유 라이브러리의 사용을 통해 완화됩니다. 사용자가 제출하는 모든 텍스트 입력 내용은 삭제기 메서드를 통해 전달되며 다른 모든 입력 내용(날짜, 선택/옵션 값)은 사용자 입력을 통해 바로 기록되지 않고 입력된 도메인 객체에서 생성됩니다.
A4: 안전하지 않은 직접적인 개체 참조모든 애플리케이션 객체는 일반적으로 기본 키에 매핑되는 "ID"를 통해 참조됩니다. 단, 매핑되는 모든 객체와 모든 보안 검사는 "맥락"에 따라 수행됩니다. 예를 들어, 요청이 코스에 대한 토론방 게시글인 "메시지 ID"를 참조할 수 있습니다. Blackboard 표준은 코스에서 사용자 역할에 연결되어 있는 권한에 대한 권한 부여 확인을 수행합니다. 이 표준을 제대로 적용하지 못하면 시스템에서 보호되는 모든 데이터 엔터티가 보안 컨텍스트(코스 또는 도메인)에 매핑되므로 수정 조치는 간단합니다.
A5: 잘못된 보안 구성Blackboard Learn은 특별한 시스템 관리자 고려 사항이 필요한 경우 활용된 릴리즈 노트 및 문서와 함께 기본적으로 보호하는 정책을 준수합니다. Blackboard는 고객에게 보안 구성에 대한 모범 사례 가이드를 준수하도록 권장합니다.

인프라

고객은 전송 계층 보호를 위해 보안 강도가 우수한 암호만 허용하는 것에 관해 문서화된 권장 사항에 따라 Apache™ 2.x를 사용하는 것이 좋습니다. Blackboard는 Blackboard Learn과 함께 제공되는 인프라와 관련된 보안 공지를 정기적으로 검토하여 보안 문제로부터 보호되고 있는지를 확인합니다.

보안 감사

보안 이벤트는 세 보안 전용 로그 중 하나에 로깅됩니다. 보안 이벤트 프레임워크는 일련의 표준 이벤트 코드, 표준 로그 형식, 필드 상세 표시 수준 및 책임을 제공합니다. 각 이벤트 코드에 로깅된 이벤트 집합은 계속 확장됩니다.

자격 증명

설치 시 시스템 관리자는 비밀번호를 설정해야 합니다.

정보 유출 및 오류 처리

표준 오류 처리는 표준 페이지 템플릿 및 태그 라이브러리를 통해 모든 페이지에 적용되며, 그 결과 모든 오류, 특히 인식할 수 없는 오류에 대한 표준 출력이 발생합니다. 표준 출력은 스택 추적(덜 민감한 정보 유출)을 포함하지만, 요청 실패 시 데이터가 처리되지 않으며 관리자 수준의 접근 권한이 있는 사용자에게만 표시됩니다. 권한이 없는 사용자(예: 학생)은 자세한 스택 추적을 확인할 수 없습니다.
A6: 민감한 데이터 노출사용자 비밀번호는 해시 처리되며 암호화되지 않습니다. Blackboard Learn, 릴리즈 9.1 Service Pack 12부터 사용자 비밀번호가 해시 처리되며 기본적으로 SHA-512로 솔트됩니다. Blackboard Learn 제품 보안 로드맵에는 애플리케이션 시작 시 사용되며 기본적으로 운영 체제 및 파일 시스템 접근 컨트롤을 통해 보호되는 시스템 비밀번호를 처리하기 위한 계획이 있습니다. Blackboard Learn은 SSL에서의 실행을 지원하지만, SSL을 적절하게 구성할 책임은 배포자에게 있습니다. Blackboard Learn, 릴리즈 9.1 Service Pack 8 이상에서는 SSL Offloading도 지원됩니다.
A7: 기능 수준의 접근 제어 상실이 기능은 두 가지 수준, 즉 비즈니스 로직이 권한 부여 확인을 적용하도록 요청하는 수준과 QA 테스트 사례가 다양한 화면에 대한 권한 부여 요구 사항을 다루는지 확인하는 수준에서 관리됩니다. 모든 화면/링크는 렌더링될 가능성이 있으며 수동으로 입력해야 하는 "숨겨진" URL은 없습니다. 따라서 애플리케이션은 URL을 렌더링하기 전에 URL에 대한 접근을 차단할 것으로 예상됩니다.
A8: 교차 사이트 요청 위조(CSRF)Blackboard 보안 프레임워크는 요청별 임시 값과 POST 전용 시맨틱에 대한 OWASP 권장 사항을 준수합니다. AJAX 요청은 세션별 임시 값을 사용합니다. DWR은 세션별 임시 값의 이중 쿠키 제출을 사용합니다.
A9: 알려진 취약점이 있는 구성 요소 사용이는 알려진 취약점이 있는 구성 요소를 식별하고, 패치할 수 있는 구성 요소를 업그레이드하는 로드맵을 개발하기 위해 Blackboard 인프라 및 타사 소프트웨어 패키지에 대한 정기적인 취약점 스캔을 수행함으로써 완화됩니다.
A10: 검증되지 않은 리디렉션 및 포워드Blackboard Learn 보안 코딩 표준은 로컬 주소인지 확인하기 위해 리디렉션 및 포워드를 요청합니다. 이 취약점은 정기적인 테스트 대상입니다.

이전의 OWASP 상위 10개 취약점 범주

악성 파일 실행권한 없는 최종 사용자가 업로드한 파일은 실행 파일로 사용되지 않습니다. 그러나 권한 있는 사용자(예: 시스템 관리자)는 시스템 기능을 확장하는 '빌딩 블록'이라는 실행할 수 있는 패키지를 업로드할 수 있습니다. 시스템 관리자는 타사 빌딩 블록 설치와 관련하여 위험을 이해하고 적절한 공급업체 검토 및 변경 관리 관행을 준수할 것으로 기대됩니다.

Blackboard에 대한 향후 기대치, 계획 및 전망에 대한 진술은 당사의 현재 관점을 나타냅니다. 실제 결과는 다양하고 중요한 요인 때문에 실질적으로 다를 수 있습니다. 당사는 추후 이벤트 및 개발로 인해 당사의 관점이 바뀔 것으로 예상합니다. 단, 회사가 앞으로 특정 시점에 이러한 진술을 업데이트하기로 선택할 수 있지만 회사에는 업데이트를 수행해야 할 구체적인 의무 사항이 없습니다.