정보시스템 감리 기출해설/소프트웨어공학 해설

(제 24회) 소프트웨어 공학 / (30)~(31) 해설

아이티신비 2024. 7. 18. 09:00

30. 다음 설명으로 가장 적절한 용어는?

악의적인 행위자가 시스템에 무단으로 진입하거나 악의적인 행동을 유발하는 데 사용될 수 있는 소프트웨어 아키텍처 및 소스 코드의 문제점을 말하며, 최근 소프트웨어 시스템에 영향을 미치는 다른 심각한 약점을 수용하기 위해 보안을 넘어 그 범위가 확장되고 있다.

① Common Weakness Enumeration

② Technical Debt

③ Bad Smells

④ Anti-patterns

 

▣ CWE(Common Weakness Enumeration)

  • 일반적으로 널리 통용되는 소프트웨어의 결함(약점)들을분류해 놓은 목록으로 약점이란 SQL Injection , 크로스 사이트 스크립트(xss), 버퍼 오버플로우 등 논리적 오류를 의미함.
  • Technical Debt(기술적 부재)는 소프트웨어 개발 시 최상의 방법 대신에 단기적으로 구현하기 쉬운 방법을 선택하여 구현함으로써 유지보수 비용이 많이 발생하게 된다는 뜻.
  • Bad Smell : Refactoring 으로 구조 개선(기능 개선이 아님)

 

● 추가 설명) 취약점 유형 3가지

1) CCE(Common Configuration Enumeration)

- 사용자에게 허용된 권한 이상의 동작을 허용하거나, 범위 이상의 정보 열람·변조·유출 등을 가능하게 하는 시스템 설정 상의 취약점

→ 진단 방법 : 정보시스템 (서버, 네트워크, DBMS, WEB/WAS, PC 등)의 설정값을 통하여 진단

→ 조치 여부 : 관리자가 직접 환경 설정값 변경을 통해 자체 개선이 가능

 

2) CVE(Common Vulnerabilities and Exposures)

- 컴퓨터 하드웨어 또는 소프트웨어 결함이나 체계, 설계상의 취약점

- CVE는 공개적으로 알려진 보안 취약점에 대한 공통 식별자 목록으로 표준화된 CVE 항목은 서비스 적용 범위를 평가 할 수 있는 기준을 제공

→ 진단방법 : 어플리케이션의 취약점 진단

→ 조치여부 : 설계상의 취약점이기 때문에 자체 개선이 불가능하여 제조사의 공식 패치에 의존

 

3) CWE(Common Weakness Enumeration)

- 다양한 언어(C, C++, c#, Java, Go, Python) 및 아키텍처, 디자인 설계, 코딩 등의 개발 단계에서 발생가능한 취약점(소스코드 보안취약점)

- 입력 데이터 검증 및 표현 : 입력 값에 대한 검증 누락 또는 부적절한 검증

- 보안기능, 보안(인증, 접근제어, 기밀성, 암호화, 권한관리 등)을 부적절하게 구현 시 발생

- 시간 및 상태 : 동시 수행을 지원하는 병렬시스템, 하나 이상의 프로세스가 동작되는 환경에서 시간 및 상태를 부적절하게 관리하여 발생

- 에러처리 : 에러를 처리하지 않거나, 중요한 정보가 포함 될 때

- 코드 오류 : 인가되지 않은 사용자에게 데이터 노출

- 캡슐화 : 중요한 데이터 또는 기능을 불충분하게 캡슐화 하였을 때

- API 오용 : 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API 를 사용하여 발생 할 수 있음

→ 진단방법 : Web Server (HTML, PHP, JSP, ASP 등) 소스 취약점 진단

→ 조치여부 : 개발자의 소스 코드 수정을 통하야 자체 개선이 가능

 

정답 : ①

 

 

31. OMG에서는 하드웨어 등을 포함한 복잡한 시스템을 모델링하기 위한 목적으로 SysML을 정의하였다. SysML을 구성하는 일부 다이어그램은 UML을 차용하였다. 다음 중 SysML과 UML에 공통적으로 존재하는 다이어그램으로 가장 적절한 것은?

 

① Use case diagram

② Class diagram

③ Component diagram

④ Requirement diagram

 

▣ SysML

  • SysML(Systems Modeling Language) 은 복잡한 시스템을 지정, 분석, 설게 및 검증하는데 사용되는 범용 모델링 언어
  • SysML 다이어그램은 시스템의 구조, 동작 및 상호 연결을 그래픽으로 표현
  • 주요 SysML 다이어그램

1. 블록 정의 다이어그램(BDD) : 블록과 그 관계를 사용하여 시스템의 구조와 구성을 보여줍니다.

2. 내부 블록 다이어그램(IBD) : 블록의 내부 구조와 다른 블록과 연결 방법을 보여줍니다.

3. 활동 다이어그램 : 작업, 결정 및 분기를 포함하여 시스템 내의 활동 흐름을 보여줍니다.

4. 상태 머신 다이어그램 : 내부 또는 외부 이벤트에 대한 응답으로 시스템이 한 상태에서 다른 상태로 변경되는 방식을 보여줍니다.

5. 시퀀스 다이어그램 : 시간 경과에 따른 시스템 구성 요소 간의 상호 작용을 보여줍니다.

6. 사용 사례 다이어그램 : 사용자 또는 외부 행위자의 관점에서 시스템의 기능을 보여줍니다.

7. 패키지 다이어그램 : 블록 및 기타 요소의 구성을 패키지로 보여줍니다.

8. 배포 다이어그램 : 시스템 구성 요소가 하드웨어 또는 소프트웨어 플랫폼에 배포되는 방법을 보여줍니다.

 

SysML 에는 시스템의 동작 및 속성에 대한 제한을 지정하는데 사용할 수 있는 제약 조건 도 포함 파라메트릭 다이어그램은 성능, 신뢰성, 물성 등 시스템 속성 값에 대한 제약을 나타내며, 공학적 분석 모델과 사양 및 설계 모델을 통합하는 역할

 

 

정답 : ①

 




 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥