🔐 소프트웨어 개발 보안 구축 #3 - 보안기능

2020. 7. 14. 13:01컴퓨터언어/소프트웨어공학

728x90
반응형

 

 

 

👍 보안기능이란?

 

보안기능이란 개발자가 구현(코딩)하는 단계에서 소프트웨어의 보안을 위해 포함하는 인증, 접근제어, 기밀성, 암호화 등을 올바르게 구현하기 위한 "보안 점검 항목"들을 말한다.

각 보안기능들은 서비스 환경이나 취급 데이터에 맞게 처리될 수 있도록 구현해야 하며, 소프트웨어의 기능 또는 데이터에 접근하려는 사용자별로 중요도를 구분하고 차별화된 인증방안을 적용해야 한다.

인증된 사용자에게는 이용할 기능과 데이터에 대해 개별적으로 접근권한을 부여함으로써, 인가되지 않은 기능과 데이터로의 접근을 차단해야 한다.

그리고 개인정보나 인증정보와 같은 중요한 정보는 변조/삭제/오남용되지 않도록 안전한 암호화 기술을 적용해야 한다.

 

다음은 보안기능에 대한 점검을 수행하지 않을 경우 발생할 수 있는 약점들이다.

적절한 인증 없이 중요기능 허용
✅ 중요정보나 기능을 수행하는 페이지에서는 재인증 기능을 수행하도록 하여 방지
부적절한 인가
✅ 모든 실행경로에 대해 접근제어 검사를 수행하고, 사용자에게는 반드시 필요한 접근권한만을 부여하여 방지
중요한 자원에 대한 잘못된 권한설정❗️ 권한설정이 잘못된 자원에 접근하여 해당 자원을 임의로 사용
✅ 소프트웨어 관리자만 자원들을 읽고 쓸 수 있도록 설정하고, 인가되지 않은 사용자의 접근 여부 검사
취약한 암호화 알고리즘 사용
✅ 안전한 암호화 알고리즘을 이용하고, 업무관련 내용이나 개인정보 등은 IT보안인증사무국이 안정성을 확인한 암호모듈을 이용
중요정보 평문 저장 및 전송❗️ 암호화되지 않은 평문 데이터를 탈취하여 중요정보 획득
✅ 중요정보를 저장하거나 전송할 때는 반드시 암호화 과정을 거치도록 하고 HTTPS(HTTP+Secure) 또는 SSL(데이터를 송수신하는 두 컴퓨터 사이에서 인증/암호화/무결성을 보장하는 업계표준프로토콜) 이용하기
하드코드(데이터를 코드 내부에 직접 입력하는 것)된 비밀번호❗️ 소스코드 유출 시 내부에 하드코드된 패스워드를 이용하여 관리자 권한 탈취
✅ 패스워드는 암호화하여 별도의 파일에 저장하고, 디폴트 패스워드(사용자를 등록하기 전에 설치권한을 획득하기 위해 사용되는 초기설정암호)나 디폴트 키의 사용 피하기

 

728x90
반응형