Study/Information systems

Information security(3) - security control

yudam 2022. 5. 26. 17:37

 

Controls against security flaws in programs

지금까지 의도치 않은 flaws, 의도했지만 악의는 없는 것들, malicious code 등을 살펴봤다. 이것을 control하는 것이 목적.

 

software lifecycle

  • 소프트웨어는 lifecycle동안 몇개의 단계를 거친다.
    • specification, design, implementation, change management, code review, testing, documentation, maintanance….
    • 이 중 어느 단계에서 security control에 신경써야 할까?

 

security control

design

어떻게 하면 security flaws가 적은 프로그램을 design할 수 있을까?

  • modularity
    • 프로그램을 각각 subtask를 책임지는 작은 모듈로 나눔 - 체크하기 편하게
    • 모듈은 더 적은 coupling. coupling이 높으면 unexpected behaviour 케이스가 늘어남
  • encapsulation
    • 필요한 정보만을 작은 모듈이 공유 - coupling 줄임
  • information hiding
  • mutual suspicion
  • confinement

 

implementation

  • C 쓰지마!!! - (ㅋㅋ)
  • static code analysis
    • security flaw찾는데 도움을 주는 소프트웨어가 있음.
    • 이들은 버퍼오버플로우 등등 탐지
    • 하지만 완벽한 건 아니다..
  • formal methods
    • 의심스러운 코드 패턴 보는 거 대신
  • genetic diversity
    • 유전적 다양성을 띄게 하자… 웜과 바이러스는 빨리 propagate됨. 하나로 통일되어있으면 한 바이러스에 전멸될 수 있음.
  •  

change management

  • 큰 소프트웨어 프로젝트는 백명의 사람들이 함께 코드에 매달리기도 함
  • 오늘은 안전해도 내일은 아닐 수도 있다..
  • 소스코드와 configuration information을 tracking하자.

 

code review

  • 어쩌면 가장 효율적인 방법일지도..
  • 다른사람한테 보여주고 찾아달라고 해..
  • 오픈소스 모델

 

testing

  • attacker처럼 행동해보기
  • 프로그램이 지정되지 않은 작업을 수행하도록 함 ( design과 implementation을 고려해서!)
  • black-box testing
    • Fuzz testing
  • white-box testing
    • clear-box testing
    • regression testing

documentations

  • 안됐을 때 메모해두기
  • 체크리스트 만들기

 

Maintenance

  • 그간 거쳐온 것들… 점검..

 

 

 

 

* 출처 한양대학교 원영준 교수님 2022-1 information security 강의 자료 정리

Uploaded by Notion2Tistory v1.1.0

'Study > Information systems' 카테고리의 다른 글

ERP system - CH6  (0) 2022.06.23
Information security(2) - flaws & malware  (0) 2022.05.26
Information security(1) - security & privacy & terminology  (0) 2022.05.26
ERP system - CH5  (0) 2022.04.25
ERP system - CH4  (0) 2022.04.25