보안은 너무 두려워해서는 안 됩니다.

마리코 코사카

누군가 "보안"이라고 말할 때 무엇을 상상합니까?

해커가 있습니까? 공격? 방어? 어두운 방에서 검은색 후드티를 입고 프로그래머?

"보안"이라는 단어는 일반적으로 나쁜 소식과 관련되어 있습니다. '대규모 소셜 네트워크에서 로그인 비밀번호 유출' 또는 '공격자가 쇼핑 사이트에서 신용카드 정보를 훔쳤다'와 같은 광고 제목을 자주 보게 됩니다.

하지만 보안은 '사용자 환경'이나 '접근성'과 같이 웹 개발에서 긍정적이고 필요한 부분으로 간주해야 합니다.

보안에 대한 부정적인 이미지와 긍정적인 이미지
후드티를 입은 해커는 부정적인 보안 이미지입니다. 하나의 프로젝트에서 함께 작업하는 팀이 긍정적인 보안 이미지입니다.

다음 몇 개의 가이드에서는 비즈니스와 사용자 콘텐츠의 보안을 유지하는 방법을 설명합니다.

보안 취약점이란 무엇인가요?

소프트웨어 개발에서 애플리케이션이 제대로 작동하지 않는 경우 이를 '버그'라고 합니다. 버그에 잘못된 정보가 표시되거나 특정 작업에서 비정상 종료되는 경우가 있습니다. 취약점(보안 버그라고도 함)은 악용에 사용될 수 있는 버그 유형입니다.

버그는 개발자의 일상적인 활동에서 흔히 발생합니다. 따라서 취약점은 애플리케이션에도 자주 도입됩니다. 중요한 것은 가능한 한 취약점을 완화하기 위해 일반적인 취약점을 알고 있다는 것입니다. 일반적인 패턴과 기법을 따라 다른 버그를 최소화하는 것과 같습니다.

대부분의 보안 기술은 좋은 프로그래밍에 불과합니다. 예를 들면 다음과 같습니다. - 사용자가 입력한 값을 확인합니다 (null이 아니거나 빈 문자열이 아니며 데이터 양 확인). - 한 명의 사용자가 너무 많은 시간을 소비하지 않도록 합니다. - 보안 버그가 실수로 발생하지 않도록 단위 테스트를 빌드합니다.

보안 기능이란 무엇인가요?

첫 번째 방어선은 HTTPS 및 CORS와 같은 보안 기능입니다. (나중에 이러한 약어에 대해 알아보게 되므로 지금은 걱정하지 않아도 됩니다.) 예를 들어 HTTPS를 사용하여 데이터를 암호화하면 버그가 해결되지 않을 수 있지만 사용자와 교환하는 데이터를 보호해 줍니다. (데이터 가로채기를 하는 것은 흔한 공격입니다.)

어떤 영향이 있나요?

애플리케이션이 안전하지 않으면 다른 사용자에게 영향을 줄 수 있습니다.

사용자에게 미치는 영향
  • 개인 정보와 같은 민감한 정보가 유출되거나 도난당할 수 있습니다.
  • 콘텐츠가 변조될 수 있습니다. 조작된 사이트는 사용자를 악성 사이트로 유도할 수 있습니다.
애플리케이션에 미치는 영향
  • 사용자의 신뢰가 손실될 수 있습니다.
  • 조작이나 시스템 부족으로 인한 다운타임 또는 신뢰 상실로 인해 비즈니스 손실이 발생할 수 있습니다.
다른 시스템에 미치는 영향
  • 도용된 애플리케이션은 봇넷을 사용한 서비스 거부 공격 등 다른 시스템을 공격하는 데 사용될 수 있습니다.

애플리케이션을 적극적으로 보호하는 것은 개발자와 비즈니스뿐만 아니라 사용자에게도 중요하며 사이트에서 시작된 공격으로부터 사용자와 다른 시스템을 보호하는 것입니다.

마무리

수고하셨습니다 이제 소개를 절반 정도 마치셨습니다. 이제 보안 취약점과 기능의 차이점을 배웠으며 애플리케이션이 안전하지 않으면 여러분뿐만 아니라 다른 모든 사람이 영향을 받게 된다는 점을 인지하게 되었습니다. 다음 가이드에서는 보안에 대한 두려움을 더욱 줄이기 위해 공격 유형을 자세히 설명합니다.